From 97acaf6d65e869abf7dc9e6825aef4c0e7b98432 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 4 Aug 2021 23:50:10 +0200 Subject: [PATCH 01/73] glibc: 2.33-108 -> 2.34-115 Announcement: https://sourceware.org/pipermail/libc-alpha/2021-August/129718.html --- .../libraries/glibc/2.33-master.patch.gz | Bin 155232 -> 0 bytes .../libraries/glibc/2.34-master.patch.gz | Bin 0 -> 122816 bytes pkgs/development/libraries/glibc/common.nix | 16 +++---- .../libraries/glibc/nix-locale-archive.patch | 45 ++++++++++-------- 4 files changed, 32 insertions(+), 29 deletions(-) delete mode 100644 pkgs/development/libraries/glibc/2.33-master.patch.gz create mode 100644 pkgs/development/libraries/glibc/2.34-master.patch.gz diff --git a/pkgs/development/libraries/glibc/2.33-master.patch.gz b/pkgs/development/libraries/glibc/2.33-master.patch.gz deleted file mode 100644 index 777e94e2b2ea5d258abdbebf8f671f8003327e97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155232 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

!XQNAa~WnW8t#rzixd*h5| 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ŒKPj+V&AzenteWe@=ET!q zbB-ViA_^}Dz`ym(gV7%W`vJ8hRl^63?)-3G&xL7OZZ+4sJ0w3|uY%&4&11D$N%%3H?EZ4Na zHett+i}uF73X5Fq(qCDZEy$XrRR3~S)!C;d*#!!>8{8t9*TDyc|=>7QJ!Pz z4Dpv|J<~mzLan!6diu)KY3i~)Up}uXITWW~u=kAU|KxN}r_k5$1(QNocl)eozGifO zrn3;U&kWybXF1s-7zMXHP%-?`*3#8syA9T0X7sY}3XoCl~#)?%wg_@Igj45yK-(r&FQUP&tr7bgubQ1$RN1A*8Ryd{ z`qH28h-!5DMD>&JWkTY&F6oFbsyo4cackwzP={%mOWh8H1xEe)Def?5QkAgj_pOY# zteSSZ)KB8s7s&oyoa=J)3?LX8byen!qxjWBQA#d#%kW6Fu&vN2oDt{$7anlDczxNf~I zqY5j-TK`M;ZwekbaD2h)#l?xw{v~f!n6$Mq`ox+kDpv&7c3Az&`}f1*e5trJH`}FZ zN9)clN!wR>M?cuOtL5jj55IT?zD|$V{4o1^u3)0|t(pe`yJqUO*cBS@?NRYx@k>-) za7A6@htLH3Sm_^^MHkxt-QT#M^V&qhaR-DDP`uH97niS?mXq~M0h zQYq@M8^xCTsbxss?AmPb>(iClEH>zi~L>}STPWro)I ziFep{a5Cn8y74n=hCyS+uWY5}jNM9h4>In{cpa!-(OKSyMZz-n|k3!DxN?<1L?d@B00%DY6S*>v^V& zzf(F?&HqJp#`3*A@$-Bc^0gwD*SMax+uWup!){=EMex`2=|N9x0+xq7+Bg5$m$T~K zyFSg_RrR~n_TbNiwmp;W|Lkx6no{>({!r8wfrk2@)n>68UJDj*o9Zk(y>x!ti$ls9 zOS$_Su5smQ$7)$b39T1xyT&E4fa`}}?>^x}@1>61=j41K#Acz&y6NtrGY)lY)+*Ou z%@dq!q&Kxbc{gjngHrwe8Sg(WpX<;RQ-;zOo7P7OD+SuFwwEknoGW(N@=}7I)TxVXMf?7{CA&)pJ<{zd z^{Lu6?-~Cl0TaUGeaGdD^$PH#oNh>OXC|@FuNX?*5saC2zKu z?zZNSlYduRyW{)*svX~tz2j@UTfDpL?E%G^YmFy3-|JG(XMGs;e#>>s*TVKQl1dpn zQ~v~T9>2N1{AYTp(DtjU>-7D9iNEci`|ZK0s)(LRH~5+DW80q1@q2%%DRD*Tu>%j* z{C=5r!~SoM>T#0;65Gw!*=a@BhU}>ld2;qq@V>8Ad%uM~KXWQ=^RbC$A7XiI*72F> zOxkC>RBy7}>`Q8s_n9x1^SsL(TyS`|C*U@aX{Y0%ro!pa>3opH~F8R zn=JEM)PD69d!0!?#3bLBWzE^s-+JL&oA7z2Jv-~7AmnqEl2j8o2mJgY_jS;`7E8ANSlTQu$RiF8%*b4e3AeW(BU+cGaH z{fTJHekt>L%j9&5l_nhJaGbW0r6I!8SxIN=BF!YPzO^61UEX9n3N6oMWbEj@lEVL` zL@IXm)fFKJziI8OQ(4?S#pzJG*a2y^4nxg-pC>j6nkDlHCFyH%dgXSWd^P`+;#ul{)XD&4TFU+=otl{we*Gz%6?xIDab!#U{Ie$1{ zU@ak}zV`6RROd%_PquWvdZ>1+SSsmm>$m6LT1S3g^gk@`>G4m(m5oiZ{r{_LeSv}^ zJ9YC8&iG)l)bQ?HvAy|H$GiTR@qFg$303HB=4k#fbMK#av$VwzrJWg{G>RPaUcch* z{af=Uf94h3Q6c$L@t8U5k?mfX@mynmNvhRWH0au}=f@eP7_%6tN&gT6|<4wE^ z%Kx;8OZcwR(eFGrKb1Y=YX65*lFWWjgf%BDR9i8*abA%4x0|Lvk8-WqVbGv>=uV^^ z>*qU1eD}RGym!Uj^ZxRm(yQ+0szh|9DK81wbMm$A)4V6MPtN+)Gc9P+xqy2DXX?Uc zomBGR`Fh1ysHkfqyNc(cRK_&k{adfCI=#Q^lCs)AlO4yIH^(yWeKU(!nsFVght`@^ zmv78lt1SP_Qk2c_Pg8TvyoBPVTH%E~sR!Pc%ys*8qABvRs_pZ&#h1A1&n}KmD@j!4 z+I00-e3E@f@EdsZLcV~|s&nk8y(>i>FH!fn=l!D6qUtE8xH{wSz=P_Rd} z)$6ZC>iJonMf`~u!fvG%>*P5d`<3)u_xJi`gtBkkCR^4m3+?RQddAgat|HF7#U6;#!rF^l`$~gjXB^w{9K3bV6N1pzW}^LcpxM zCt~G-4js>sXywQhnJyG z2Qx3vIl}ZJ^LVG{0?nUiOd=*R%KqT?H4wPFLp`74Np`}nkqn`x^F$n}m2+!VBcur*EG{Ig^Jq?e!+J|Nt9Qe-N@P4u`o10T! zlBZG4xxO`TSae%XoO;Z= z+@(@$ZDF?OPP5nWQlgjY)6k4o9pqMqE6>C*Rs4Yy{d3aK*E<}(f!T)CQa}y zN%U3PegB20qlyvlj3td(9St{lrp#FAGFQdfVWy%e1N%YkPw`s0ztR@`IC^l;@0Q%+ z1CiHdKTSBkI3>WK|EK!xcdPWCm_1R4n>T z9A3K>yl+^dlDo*S?|4qr0`cuG?-n}Tozw6xsHjb-;F$TQ&Ifi*S%qq|I4XqsjyM~n zi>5z{-qM%K$r{0&!YOn{^}sEGqk<9bg&I=35AM7rwWW`<`V`}OmUa~{52XXs#4iL} zR@8~D;+!^VqUZ$!S4d_8H6#uj@YsEi_i^@6STZqBTlbEdNueZ1=A#3Jce~6O?=IAO z^j!G1r||a3>tT--w+J6TDRjN^%*p5L!zQhGDYCUEZ|#?yWZT%wg*U{%T{;`U9{p)8 zpX!^Ln^QP{rdj(OJhZ6jWQ16*o#9vIyUsOf^HlfRoPBYr>w<`qBmVZoMz4A?r#4L+JwJ)W zO`obVf)~o1y!n}vEx`O=?KS`X3*W9WvHRMVEIKxf_NrnAx2O;#y;Fa9avV@d98UZ6LJrS!gMfV>sw zD`j=Z+BYgI*jXL#I!4PEW_nyQobIN=TekRS>zBeJb5+A7JM+1VFZ!|4z1QRi%5@&W&@M!_Rr;E}NJ( z^YmFB&;7BL&pxy4VY`#}clLae5tYVQsMrMa|`0j&Ap#2Tk|0wOi#duzp} z1%C6p7lzjE<+3nRuuwVApsh&dcLo-d2eRE6xB z;(O~3-bncQp3gV)kkQ1B76qF`d)wdpCmA}6>D<2?&iOL*Q@+&Nt(V#stc{vDd)-v& zv%56j=TCaiaFX#q^QBEcoR~&(<|(L_&>=A}1AG@!IWijsNqee>d(`6X`7wi-8)m>>n#8APpi`|UN!i9c;(ND5p`RY{AVe8 zWN}DwA5_gZ;xhdpGCzUqOW+ZkIegFGeLnG5wEE!k^-0z)6R*l0bh)K}bXvk;$M_{Y zv48kHYS*E4Z;Dx1=6!SBJy|*+ zDRC>iz{VBUK4u-EAsc(FO$_-M-TIjp7jIB^k)3tn{j%v%!gBL3&i>}5Gwst zo!5G~G~e9*%Cs{9(@ji{^nL&7rx9WJc-kbR=K)ry%=|WJM4!BwFz1cH;jhNJr)>}N z<_EM&9ew>`r8MWqeT<;q%aXai*@q2y+TQ;Zy><5GrNd>?iS3&z175Uy-i~$6j17~B zJSlTSkBx6H*b7v@#>>=}b^%+)RU*0_F-NcgdgTk8*V zuj$=y#=?2%7R$UXzZ=399IvmtBv6yM_ny}JpbIVg>Iy$h<%{*)Xw{wd%6qHa>aMl6 zf22$er!t#qh)?BP%ycwK1VfKNkjJb0c?sKu1i!R>gu>Vc$-Td2T0`=eO z7cxmFBpyq;m3O)1#Nn=$p}{=VR|D17UbbMyIvsx~xiZ`(9A_4cBh4?c#>?|W?g zSHxs?hCkCS86Jh~8vU(X+8K4GNgiRC#^JzjR?fj>5V=)m+oFWqhSGa&E=T$QO22&g z_?jFao*A$D+k}{AtnuMGBRpC1c$%xtBgX!U1IltA>W?$m{fIcqe8}(A$+fZle%c1k zvfan51kJymZ`Qs(&poWO`M65s!P$)L2es|yu6NjHC3Aq~y-1{lO@Yjt-4d4aJJL&+ z{dUzApI#pmx2OBwKheaEfiBhy&S{qK{FM9Qk;eCNmO7zy zFPR1FAAPjl@E~P!+T=YF9p5U;+nBjqzr^j8I;frHQ}}mI_q#tb+j5G^)$CdicCNec zzN7b5&#ARD{qz5R|1JEJVJF*~aBsbRN>wi_4oq78q_Kc`>nhP-L3Z!UU%XuTJLKc# z>+!-tlaGBlZxP+}Wv_;@@`3YfUY6;qZ{^rsx#wI__0Q8+cXMCpv3UPkModX0sd!Un zSn+RTu_i;_Iazi4Z$%5Pw(FZKpklaU#!r{yVX}{nSiPKU?x{X==xy?mbux}PAR*^6 zJ-y~a8}Ap{dVKw_BDzN%ft++j*LMQwHCPS@G-h^_-NFk7-Bub4V<|cVfp4{}tH|>bEU( z6*UdIgRQT=G2u5|zTxxHgNs}ziKvUFmGfMEe4{-<=E0rdlo@$@I^_?hc?h5s(9JeE{=$lA&}wXwE& zQs~zD-BptJb#H7_et5X-6z>sH!y8I-C4VQ*GY&t_IkQd2(&1g%n(*vx`yQ#X^4~l+ zxt%2~b=GUs+G&E94_d@-(%q_7xKix&genzx|6nQpJM&-oJbtKl>!3x4?Y^^C=U2+z zlYHfw*eb(yqD`*Kd+y7suVT4b#w+JD4}2YgzP&429R9rmS-$_WhXEVlA{&)WJb@Sk5! zRlD?AZzHLV&kC8Z-PyYO)S~%mvM-+)7{1KAzN3D!Qe?(mwG$Qbc4uwhAJbdk{IyLo z+GFHcPo1r=z;{`s^QV zva$h3&s(>@zjY@^HsN5D)Q7!Gn%b8vSyXW5cDl|}j!k`S6BD~PyqYFw9dUT$j!PF; zu+1}F_kGE$nHiU=%xfN9JMPQvwH+5ZpXWPSL`lnmHb51|CjoUGQ?qru+f#wS{PtU77;IqDc z(UHm3x2|-(DGavOt-9wni|zgto0BE$6=z=2@SW#$Up1Kb;Fi8gSGT2qZBW=h|7wx{ z`>*H3<{I9(`OMh!&WG8Pc0By-b?1Xd;eT*Nb|&_IcC&%NzwnyZY)02y;!~<$gvqlt zJ1*T2Zq3ZKTGq|%+x_)B|Cp#n-Cp-4Quyh+Nq1_$-+j77w4Fbu@JEg|pZuOjA8v-v z5uKx=Wm0-o=HBjkL92`2{6BR4mt;nO*x&{NyVO zlUx(~d)GRn4`&zO>+CDhIe|^?eUha39sA`wI_P(pLz2RELytDMyD#|$|05B-?hRFx{^_x97YS)#_wL0=iGjn z@eR*`o%N;ZJ(Bfi+|8-K_IQa$&hj+k@Mq0Axc8T)r)-YIa+zi7HY*P>q0(JN5H@dTP>G=jr{MfO*alta$h(8^V4^eihW)Lyls5oQrNTd@^xGBMqy>!$eEuco-ibz+J4|y z-iI5j|E)vCC(@*&R)TcPVuN$4aby4`TN6c0x!6znD{MN8kcd1(Kli_PrKo9 zmFDLnix;F$yui{pt#V;%8K>|M^DEE&J~}f@m}v08XP>m;!-ux_*R68lw`dMI`b04? zfByQVeUVdK_l2*VI_vchm&F(N$|$8CI-aH;F1oWr_nJVQy#EKSjasf-f4$OGtDo{z zy=9$Y=L5b;4k{@J*)yia{!|P1nHzf}{3f?smGAQNKB~SCUg)pbZZt2%)?w;H;Rv@& zTcg`lPH^NGMc*ijUCuOXwg1(V2~j(k{2ob`OYN-9CwtAh*>nzWG`t3$rc6Z(To$J=_Z{2z|Gc~Q)LF(L@yY*T93y$pD zd;7w@$VChjyS>;>y>;9CMeK~bkabRQUEAc9>;8olPcn_1SvB|0X=$sS(+$^rx$-?Y zUB*_uS}@=GwiX4x2e`|XJ;ncFeH7OzoHRxi4n%zXcSOv{-y(sO6t zoHplF#xso-?Q87%;@k?OX9Q)n-S(V(`_cBo+kz+mrvF$vJ=x!-RI=;ayu9|uZ?~V< zTD!ke@R|DE8T03y{iD+L({skpt}8POw@U=&*RSaL#|COazlpu=ciTar_L=^lTVgA& z8?NYD4bwla zsN|F0-FIv5*Z=v+?Q^&NJ5jr2<$IeS6_Gh%QMYSW1ne$YtjQa;u|(%vm{nQery0>t zgm<{sP5Z&^;dE1HwUXrx`-u)e-yUs=|7yq`Bs6OZ=l}l7&|N8y{dUPD%Cr~oPCL|E z{W|0S5yx9gU6w3U(W-x678mQuHjA_IuyKPx+2>r}&(B4STWoC4Z026_@n%2g)-JVZ z{tGjmXIn@cNne@Y6!9?diqw84gN^%U+(^h)Oh5G5p!(b5x^#zwQJ-}9owq%iEA~RK z+UER+#}zWoD^l(~YyZ-=E&1TmW<49z_fD$iPCp{=owXK|y|qAes!3`ayY9(Fj*kql z&92a?wo+5^U^-@$JB5Suwd0nF^HcrZ>e7B(?mxQX;ffmnb6vhq&#Yaq#{JsnV*9G6 zk~wwJHNLwo%@(X@OxPcJ@5PMcClh2mPA=PDaZob8;MmqJa`M)nX3AXFNzAvhte-tUBlqU{nXpA=E9V>Uo_;H}JY@G8@3(wm zi^?Kb&;Pvh%DY)BZ7NR+Jk{Trr<4ErL(Ge<{Oj0QuCnuQi}^hJ6@Q?zNt&7eY2IZ; znfF!2UEi)!ym;mi$G-5J+mctxU7Tka#(lNrP(Z-shgtQ($}`U!Og?_kz30=;Ju`J# zetI%S{x6Q5#AcB+O+a@^-Id~|y}R-&gpOT^To{}``Go7bc`r__zM_%IJnh>wm0!K_ z8y?Jl;%~TD@a5B(1C6ekQB#lp$Y=T=+xOBT?s@)$J4e2}o^|BvLC?Lt*N}?bC|5zF+b7zw0M>WpR8^dd3c??Bu zj|Vj|_2@6;(6xAOt#V3_&pNB>z|Fxl`>v3v65Bb~g6mn|;@k za<*^n%&;kv$klH&etBfB$sXm@Hz_`QZqJzcw!@xf>VhlcUxYIwe4a9&^%uD(kR&+u zf7ge5r!-|)H%%*a6>Vm3sX3MP)$IGkIBxl^r_MTcGN0o<^KRemuYSh-%N$x`!qg;R zC~`iSH|yBdOHZs`aqtM;nlAls(d`usdpImq@5k3{ZTRin;#U7ZYn7tcEM<Wye3|!@dDXk-o~%Expzey&i*l}6D+Fq`dz5j^`tjiN_PzSY zugo#1xm|wh#?9wA7iBwD3EmW0{e0~Ok(v{F&#v^f zR-F8~RfUClbADi-8te4@JTd);Sz4c+`KF)b@i}U!VYvEQPGfiLmB?Ef*WXNYn5mMf z#N#U^@n7psQLu4bSN^P3`j~ zxo_vl-c~#iar>hS_c{INcJpiZ{oW@$L2~b(tP5E;cYpY5u|kmLa$u+z$J3}RIfl!> zoMYF{m>D}U@7kU3lcFU3etmve>-*|xs`Iw_vc8t#(tNW-Z?CCVIqEEDVKjnpQvr}?6{~Y(Y&DphK)2wTJ{n>o;&uXoHX?v_G;%x58 z|4C0jmrQuqu!oJlxrq#3uCIN$4>#NRu;2OE<6+H8{k_=Pq*RV6&`mti8ly zD+4*^?!cGR=G%Q!YPHp!5#D4_bk4Dy|J1$-3h9#r(o|VmC$cVWXp=eT%X;Bm_*bTk zJ-rjwNU9vx@m*vf7Z+Ey`R49_2@)xe%#0=$*ZpRhIWg$+I570qe)*;Q?dZ#|=goq+ zUq6^^>vMQ>&#g$ew~?n;oMe{Tqkpei*wDq+TGZ@!^%ss!QxCf``);e*b;CDuP0o(h zn<8eh?v1mTShl@)>d_NNJ2pj#@O5mE$Y$Q8_-FFk(xdGEzw79fiHTWrcmK^!+&J5R zK5wGoH(su8!=9>^qh-N|jr`tE*)4SFa{ubzKa-NfckhbeH`di(?l;-XdU@>HSBGM% zufFoCoU&+F*wPjALN&FvXt}zEEnTrMR5NSAltnt9a&)JpXRr8tC~lfxvnF z8J%%@S692dQ(S!gzPjCFT^b+Sr>rSk-uLjNcdl5WM9vZ8#mCf7-(dOp>zVhB**-_+ zKDo@|e(h}5Q3myl+@3R+CJFT9oLF4Yz3c3a<+mpV{o6I^VxIa_(ZvC|r^B!AH=KX@ z#@*I~4R5YBE!h*d#{Kl?uR*pwE*E)qdL&em=4NnQc>O(f<-Ey`>HZryA2WJA+q zW$G(CDYs#QptawfjxuB4mMzQX9gcglM2@%rn*(=y($27l`YWA-ni=apu&l^ z#k22*&pyASSX5fogjasD&D{@?*4gZ9ey%Y+$&tZ*FT6naLQ`1To~LWAb0g9WPd}2q zRkzmf^2Rysd&4+>Xs}saD=nT8Wgr}T{?pU2eZ5D&@cq7Gb!4gQRmPpi(yXj*#;+_E z`5JNgVY7^Z!eqg`lAY0&W!<>3ztDy0zoGclFPGXk+%uQ7>U*5?w$Imk zZ}0biA5NE?J-wsyHvj&J^W_^qoDk=>KBA|~vaSBURqsg-<9R2XJ}x?&6|BS~VYz(P zq^{Z9UdR;lJ@TCVRMMC2UQ5!(9kYe}TAZVwKRx@*t@Xv!(5nXzpN(=v_>a{mk=EN^HdK zmVrpy`rrBi<*ipjk9cZ4UH97T>#|!RyY9L%HifL^7Jjq%*82E9`$vy&_`MOzI8_uH z*zS{1N=udUL#_=9T;T`!Sz-_F z54-u4@y&Pcy2n!t*Y9Zww%;qoc~3@pPo_=Z@sv4fr$2u#EZEqwDZ!-guHd~pQy-qS zX8!o@++DFqmnG@t)n(h$%dJnmi<)0$_FF);i*-jx?zbKPCV!aEXS*vYy~F(b@(O(p zNx@BA?hF54NIh7w+Bw`Xf&a#Z)&mZ;FPc&qm4z-oP(A%YVo#U7wE58hukfQ`(^E|P zFINavYPWeicTFtpIgswbvcmY!+rZ~?rSAftPj{Qk9r#{rjq#uEpN}v2NM}6PZz}tD z^quktriH6p>;L|F_wMr5->+BS{Co1f{Ab^X&N^J%lU}-bE2~u{B`)gSd4BGWmwzu@ z+#de@y1ANzl?G!b^NE^IIuj(1$VmmpbzIlFBH@r@JHx5_mgkmbA^8U+lP0!=J==PD zzXnscf61ar-$fl~l!}}b2+O!qGiCO^_FFb9ziC`vu#3r6J}TOL)xpCu(`wtk9lkN4 z&vFsxibIB6#tXHsZJO?H6r#+ke&kQ%{0CdtN3Lp+wBEOO;o+K9&Nr_8x^#8%qP~E~ zPZa&N&Y!Hf+@q&7b^6KE+OgXuE9|dY9C6yWwC!Yf_PyS&9k&1HX(nD%mVdRX$Ia)) zG0na2%64wq>b=8z@hQE2*7wT5n6A z`G1RE^__s*S+jKxty}W9t>c$@^QqLB7-QS;?`(b90+t7(Ctm$$5}!XoHe%_ksYRiy z%vZ&&a$EUtR|S99q&v;OelT3nSgqYFyX3?~t>c^5JZ5=Yn;GD0Cvf4k;F{W9c1cq{ z3#o?b{_u;gEWA>)JM)%Wi0zEK-#A|~d<=WYbW`k}^alZaHO>NP?s0S(C z-LqFq_g(#{t2SkA-_l+4U%xv4x$496eZJf8vu#jd=?>Z=^`%9;SA6TQldG58?kG#= zYPWCxWIR8AfykBAXXXbZ%=g}WYOwU#&snCzKWfyznJ#dXUMF|w=)~z)52c;Eb@=1$ z4UbkN1~2>gsM6fou=KB~mb-jLbGTLO(crBNrKhe%3O@=wmND}S-^?6kroNN=$~OL+ zmwQuFbMoJgyiX_2vfJn82GlhAd`Q*RPh)cGwR*cqgLCfoxniGBYMof5@b$J!Aoprk zwY+z1o`){YHlM2y5VWFwGbb7|ADk@` zJ)jzCBF-CQb*WtVW`%5TiAYrO`=cFigWg5^i>);m+*6*=Zo7U#UwduWrZ6@e3m1<} zi37hD1Z}w^@NvW2WD`?kxwf*Sho`Zx`~Bm+v)oZ;y&bQccKh*`&z*9v>6XdS>#wE% z=9^ERT)^%xG9`d#a^J$A4`y^mR&XCK*5$qb{ZWCxT->{#E=Tuit?V)sRq{4FdF}LJ zVFrf(|4X87b2T{#)ZSkoQB^*(G<>tF(n2LA`=tChCu1M^U%!`qIeO^(Ov{29w;PS! zqyK!`lx!wwrluoc*7`T*isZ2_fhlWvFR^ZXd~0`yv?eeA^*ayT^_`S$%w32D%dvJn|K`w((gn9ag>BxK`}+C5jFM1eogK>TcdJ{^*1poZ@=3N=z@an3)!^1X zCJ%-ao1m$LZFe(<<1SSE|+4 zSTFgpZU#?pZfyO}mdTHt-lZ;jepK{A_UWq}Yxbt}&Mhd9+V$r3?H^}aoo9!N7DQ>! zdi&h2{;rYW{uPVeY($mrc^_JJNg-Ba<)!G#+gm;LbhJO2yWetizI1#4>wTy0-z>b@ zQ#{YcbLqJ^6I9P9c-}rYZC~{6*A|7W<&%9MthqFI`=iFqw;h`OCj4+>OL|2(Rm<6Dl^{E6Ro)x4LSZu8_LpA*B6_qx*?#dohZ=?P9( z;{UxMoa5$thfVjs>P-3i;pv(QvjSUQ|5V!4cfrajnyd%?oY6=InZX{PWR!&bcM0=Z=;e3e`hd)2$!A zbbdC^E~U;%-st-mMeS#Kp{)MdihDxl+fKIlHe+Ydrn^BM-&{SVj(UE7lqA^RU3O>g zGVb+vC%w3sxmsmK=jJO5Ke#_n75VLc+@9@Dj9_;FnYew+t5T+myQ`;ERx<1i4w|`t#UVd^ zjzeWqYWEhMIHgtj!t2`&G7Zq4i}_E*gZ6Xw*} zvlag8SjKm1eeOlukD6p3@h{F#T}I_SZ4{mic5P zPO;tO+PnFA(Yta>zw4SUa_rlsgRV4kd}lRMo~^3g$-DSYWEAuFHMd`eg&15`HZnZs z^DguLnuDq}QLWLFUWA zgJza!NSLbbGutw)@lx%Jvqe*_du62EuYC%x(onrJ@6^KE#};n=GS%+=;X}Dk`U;Uz68e>W<>hiVny=Sigw%NxE6TLAaN&(6!F@0dAM%*165C zz53#Z@r|cHGB}l0)-}(1tz0Pk?upfx2e)oaw%prwX!Dd**8<5Kt0!>In&30-%J#e& zX;M>S3ypSP7YDy!+S2tQ>bscbAMbrJV@`4Zi)Yc*o+rI+O$-7` zMGQ(Fo$qGv_T%Lj=zSV-Xu6{3=Kkigdt>r!-W#G*eQ%yF#Gs3_TcjV=7A^raHk zic-l28CILuEhnrecO16yQ_m6<|8isJkH5)>`D=33+pol3c;rx0ADAi*?7Jg__Dc+TA8?SQ)?F)GRbP*wpN+{|3#i zt908J`#h z3W5F{U)MU>Dqh(>MQYnN&uozsYh`aqomv}vOX}oW+gnoMwjSD#(p&$mnK7U5{nu}d z58NhCi_`MgsVjN7x9a!TXOB5_=Z4pQ(F_azB%firW~I&b3A+|duUdUaG%!K+brAp5 z8@$__6CUPi1TgrtcU8j-uU?sPumq43&SRAZ{V zn~wFLB4!qtezYMxnP!zdi2jZc^%6?&P~eBhdf#9(S1y zX=-o&GFe7M{GXkXWx1}&?&*34yLwN-;?+GrEZLYYZQo;=AkHs&J^$Kl)f zdWLhOMt9`T!!65Rx7@d%$}{;(3ddH9??J3-BB$b^rR`p!Lkc`~66$R4MK*k?VNhqE zeva>I`G=2dr(ALn%J}%aD&4)`;mve?MFGA!9q+{r*uVCh&3__t-0e@MJg32hZ-M*6 z)@WXzd2T(gq|q9`-)@59CKI;*bY6BhU-Q7zQjeeqvrl+W440_ACTMsVyy4ouE`{NFa*3Ty&|1EnJ6!iUOddQ(Ko_m(9d>+ML(|GxG z$dVqe6rYd{HY~ymdZK!zCDgQ&SMzY_9Zy<5GyYAF(qzWCBn98)sne`Z>Fm`!_dV~R zUG+z&s86PotPh-wl#+Rx;w7|g&4DeE+t?=St-E|{sehBt*@P#$i&);AGSoXeCD2h+ zbHa=Lsh+oaTDaGDim}d#i#$E4OeM8x=d_#0bEes>|K@jA=(_B!dkj9w+HZ9)G|L$% ze0`%G6!`U=re4s*NlTO_TOPRiYuB>h3vM_2>~MW^ZOQtI`AcFq6>M|2*>_>{BXC2r zNleeVU;R{d#y{}e@1FOOqOVh@hJ4vqoBb-tPW9a3=x59;G9QP`eK~hhC+mt6 zq6u=nJ)h?tT-X|VEO8Rs^nc|?TkANwP5y>>eEer;vWENqjlQj!H7`F!6hECC;jPLf ztH>mqf1u+_i_7_kX)IAr3!au2-)FmdlIIW~gYBC9Q}_2u1YS6)_^&`$aM`u~+uIZ~ z^M7eG$~YA(^5T&_Yp=gy&+BoXos{!q$;7H- zZ_l!nnkN;AbZs$we)zy-sWXBnG=#YmTb47pEm&;b(zt-1ewW?9RUV@3TkWW!le8P-uP1>OD<7 zkg?@Y`%OLnlnqKs&AuHx(^QSrBvs8Ar%X`!w1c%PspUrQHMV^xr_Zt8Y?EiB?8~Wq z$XLls;^92OdC4q&LcC|D@SZWr+iTCgoKx1x=I|@&JB(jUJlMCbkH7Gw_;MYWMt&E| z(j6B59t&8x?;d?#E)*Mc+idHx>)TR=Uj4rJU%@zd|FYB@8h`BGa#+te&L6V5kNKx_ zjpwR!zB@vm|FwyI;+&(RBj`B0OIy*AS-+sJu~^VY!6su%3X7NTl86L9ZQia5)nEC~ zyLHxOb$!+OD}Q|PRh5}m3y#RDE4$S8vu*Vjua3Ole!s_;k>6FKiW1Ydc zplrXSWyOn??!mmyLX21bKHKuIE4?*%yUxVc3Cb}?)V6#Ku(fKob5Fk}u}Ay8?yp<* z$F_g^uvVsKwZ^`ykE-MEn;sLN#jtNq)ekrJm1X-?a`y%cz?LTvlJNAyIfx%qk1I5#hFD}Y(-t|1E@A)5*LVt&{{ zp|njasznSfiv6zaTlnO}>|pcIx1AlwWIi#R?diBtcSSxq**a{pwfURfywa;r*50`L z?eMbpjfOU{*3ss_=3Kg&C(nA$f9<~=*MG07T7UJC=5o{Ahj~jpZgL+B*?s1gxK2in z*s^VshEfVif4#M{eo1JY`@<;u)$=F#?!h;)uZwT*5d5F>Uv$SW=e3)UDjrxq<(}{7 z0=3Ls_2lKY>C23z><(3UVGB^(2Z+8p4ofMcb99!BeCF{1?C^-Z*vIhW?w5d z>F25~imEzWLsR>sI8KEv{IgeEW7U*e?vs;FJ=H4SEtb15{A#L_c=*CuKblvSWffl1 zF6KM-wv#EhrO4c2@##H^R_o*%|rj$NK~PT`{9^I1*H zr*ekKC5BDfew(T1)lbGp4=jW4-+okfx^~&ailCI-vNQVO5jvOZKWB3<*}`!2!YY2L zrX@?KN)v%xO`2k_2abt>dJPjjkiw;+Qa<))}6IkALnQ; z-Mo`K_g%GD!i9ZZB8_vswx10CzWPGYs(UFST^o#FY-BG~)O0d@9_rR5r7XAqthPlL z*Ofmf3{$T@zjE(nV(QP&&377}C8pkC;P&-5GoH~dv`VMq?=kk&Z#%T=_Mer$Br#e4 zPR80$ox=7|)7T^8^L4*oIKASj(|V^ZS$unrDNJNryKicnmdbMdwa)}5>=ThrzIOZj zlde5;<7OA9{yTpy_Lo?vkXz)bWiKZGzNlsM_Gag*B}bM8i1to-_HEDMrdU~F|0t(L zQ#j}R6*B#PjB7cwc9q)k43|rP56*b>?udy0bG0(rzl(XodX{W{yw-EwUT3FMd|wY) z?4Fc*l>Msz??ZdS-e$jDu;k*6>wME@<;jk^Y}^ zPnO~A_gZViiBAun+wODjDn|xyMfFYIdG4t?%ZwxnM0M6J_&;6m&ZWJRHnTsPmz$K$ zB5cf8Rj``dD$#h$y&(3e_XbgS?h1xEmOn{6FZED`)AxL9n9(O4W0#H0dj*umk8Vrf zwfM(}r+Vsl5560YB{Lkj{Zu4| z#rpxnW!c;BZhZN%!FU-PhL3 zr~2MJzyFfOg74KvM{e~r6mnnV-f+lRX6;SUK11(L1%@;(;*6kT%p1^3FCI^yLDvkk6uCEYHHG5^T)+P#Cg5n3o&#+kEiBlJ@xc#+8Tj@Pt=KrK3px6Ew5YOomQ8%OHByYBKW{K1puGV`k?8fA7HoobwQ^8Y_)!TB%0uK$tOdfl08 zo|R65Z~L2n*Q-R0+I6Qcx~&@Rv*eA6{$iyQT+z35m$vOGkjy#trD7vXxYwy&48E7E zquNDk?{sWSw)LL6`R3O*0y8(tAG=^+(6c7+&5w<@IrE~_R<&B_nlJeLc6Q0Wllm^d zS;Oyly|bN}B5c{2xBrC4L*4~XMNJA<8ny*+NwJH2-S zlgi=(`*MCGw>On)At&Ay$xD>|P~lmm&#abk!6oF-f|vGtJ5v9?(vSJevby4}pYW~N zIdYHp-f~)UKKs+B?Pvd}`Ky0E`lP&S>HFGQk5t8#+iM;R8W!2SpJ^g`_tn?XkjUGy zUqU|q+E+aL`@-eZs+N2&zZ^KL_`-rkpX5SJr#!9>*%EWPQjFJi*VX71Rj<{*U5Z_{ zX?oeM&(XVIsQr4i?vN7qsk%6)qi0>kgw22NG>P2Rt>yiF!RbqLr+V&MY*xKRuH%-MDnG$?b2~OMd2w zwRsd%vu}@ubOXP<{oefxPh)cC)L8$xxV?4eKRrxJtL!}sHtdUkbXC*#$DBR9VXr%P zusyC3Ji=_o!>~`5@8_&_6Hbfe&b@c@>QU27nJ#ewP()_?mWi*tnOCS%xl&^<|Rs}CjWG7{wzP;;^66%Pm`4VW`DQSQ@!kHxAN`P zn+LXN)jmJ;Dc0j2zg6sWuK3{l+vi-}X5AVk{pwf88I7I|^Lva=FL+9zWbz}eeAt1G4LO*}#G4`JfYfmvK$}bF+eE6}Xz#&p8jkT zY;#PQ`9wVX-JhtJ*;&k~(a(%O&pdy|zSS(0eSw+a`ul%3n@DcuWGcBo)lkZy_K=fw zo&;a9YqkMzqS)smrB(HM;s57^{*PM6_vzK70>)`^Q7ym!@O1oR5bB##u%@f{W{&ln z`AUnpbT2RcKWWkD$C7btHMm|SoVlkuS=DPo2*<~&=8rX#p5JGhRrz_^t~gznyZhFq zG8F7&cxW`keS1Q2_wxkPzw*n(&qQ_HPq#fYebR|jiH}8|9@a5@Zo>b4xtDL%xmV(b zI!}u{g3C9HOwuV1pU9lzWqD|7dFqc_N^?$yr2V~epPBDTW@4d!Yl6(x=PMq_lxRNJ zxpBtwMbSA=;R)(9v}gPbNKBijF`fUz!b4};+0yI^(w@E4;61ZP({S^zb+d(x^QWBI z^YDz${^f`44L`hD)MR6J_}ihBDG_xNRTkTvBz8H9u$b{VajR;4P*UHv_{OH+$I~j3 zU-bB9N9P>lT3^m}R^e^$pWUUC|L-*oYMz*NeE!wGD+yb&E=nl{HQ$Rm{J-Ms>1!K! z-PX9jVB>LLC%@~V#+D|9Pd*|p8jaIh&swzQO*xX7;mrQno%gQBAyXb^w~3Mt!p>h- zER=o|GxN_onO%Y06JH1x6)Le;ZrOUd>y*Z+XXk}iDIPNBY3`WPA1i$9q+%}H<~ZN-)58;0RhrLi-{|kRO*OB7d-g_jL_neAHT zzOSz~tNNrVQu{hx&AhiP==_VED`CrzPg!;5-oNAbjdp5j8%dOWHTv{^e!%v$x=SK1 zc^nJhD<3wP`1aQY_jOmV9zUV^YL`T1ZrPGUizc4PFXvZYr@b{#PG^h%d8J>MxBmFC z&UN~3v9rM~yLO7*-c$ObP^NRmyDO(oY*tyjwzuqqjnUVYcb1!&F8V#q{_fOW@4S}S zuKP7bOJ<_%uPaBDa=!Q;T9zcNBr!|SiSO)@j~`BaQ##K3*3T^Q@>z|XQ(=v@zbD7{ z@08%HzTLX_)z^b@Uw_W~x~}Vv;>{52CXk>n16cx2WR<&0Jj|VvTe)#3^FgB zvRbg)#HqHL8vGRT2yJ?uXg}f5MTa-*6OG?BxO%IxH$-%QWsZ0;|JVMj zi@w@MbJPoRiXUoN!>ZVR!sp}GbC!=jS@IngEi$r>4h-04)uy;T&{w1_cLkSpC4aLa zuk)S7>z?npt5>A?d`75$)?4X)w^Y+q4JJIgd-T3dW8yUh{{)e1&*m!{94WA5JFNUD z;D%aWk%65);MLX-dGmw6 zmKMtEdTp7mWUQqtA97#+ipil}6N5xMjhEQ0P4>4FTPP8*B+1Vq!OLS7)7?pny>q^J z_l0cSpdZ<{bV>*#TPWlC^Q%-=PfxbX@$u@D-zcCNxhv&70>y%XG zaOD4~(UtVZ_}P~jmy=f>KHs3c;X9k$n%9ck9!9?Dc=5kH^y`f};l(QiH`={tyQ*Eg zV&N)f<$cVyHcwBerkv7LsN#vh)A` zTkSVy{wmSs_WxMCK%_vzE6~+&iQ_GivK2>lX1lC@I_dFT^-pRg&u(6`nw?>3p0B7p z=VPVgj@56cioJ_a-FR}@nSj|%OQnuUn;!{1C-3li)6STUKb|kT+G!d6H)F4g}yC-xJ&BtXJ;NjMqZRmGWn#u6fF|@^d6dQeB*jfx50sNK0LfccMixZ)UHm;A)|$6U$~STQYN@$n zFJ8`6Q=2WJCKaU?Il-!!*Kp#Enb{p#9{b&o3*2#S<|&P(!jduvO-L-JzGC z4%OHdra0Mfar(&EIn{^0Vh^o)az|l*gxcSz!h4%`e3fleRXkK2YbM_%Fs(G3OI0X2 zV)h;HTLaVzhKrJ#uNHl9$n95mStTMO9T4>5l~_^gjg748 zfp%9Ke_RkL^v#pJmmXVYbV5qea?df*-0BBK*I3T4y`ZpC)@JKXzvq56i;GRf95)^_ z%F@2KXif2?TD9d3d)i-oygzZx7N@j}U!)D!SWa7fB0oeqY(nt?aq!sYsq@TYH!G)d zS#~;zA1Z-uuzwx=*h1+4od1Wmn}?d~_$c&!Zn!&p*BhPP)1wkB<*bjZpV~O}c;7~6 z8MVg!|8_<5pWc=-Nnpn6UCFD`*miz>mFKy3TGW28x|F+ojy@s3EM_|K9}jrPGFK(= z$$@9z6;ltlXY_M1Wj!zc|7!mJ_;|~`o28!@zkjr-ysY#ybEn+4)qE@X^|^V^alT@S z(*5{Hu*$)8j@;n`Z8m%7|5E?ETKdfi{lBX>KR)gKTs*?2>RjdfN2~t7{I#U~;hgyR zIsfY_W6I}vA5%GQneQ7DE+g->u$maOuW3x2a8uRw4`cdFii2n;Yck)!>vA;`wcoMe1i*f!gd|~5>`FbtbQiC`ja*)o97QReiJjO`Q|(KQrClvpR3# z=9Sl?GZtoND4xIn@aNuFf99FiPk;VC?74ZN#%23bn;**Yny()B?>v6qzu(_}?!3#v zFK_--S#pKv_uE6CUtUvwAT;gu^CI2)InIYZ?zcF`u$zDL^lNKPn2Y~DbLSVRoVdJf ze(jeBZ5i^Xx3snM2>e>~X98oA!xVWV2LYC^6B-{*x%Y7Sm-CyrPWV?(-*3r&`eDF- zhT0JMoOZ z<&&!E5BuhB-&!Jb_1?}`Ig^b254-Q%`*!{u^SigB`Ck3dOtRZ9{^Ej2|BVe!hNnL4 zFxEOy>~Vw9Df+?(yOdg)`A&0R2J%0BDKNty366iVPO6l4YAA>Zp1lyNA`Rn6+ve)9js0wvB(9b}@^!U6F0#_;u-0 z(8{z$dD$yZ7pIA_scxc0(^|cl2*DtVkGbrL-*mv?= zW9q(%2hN_kvrFp9(#xw>JySikaMeeys~&~h%>>LBl|0mWtuH!NQmd_P&u)=&)q6Ej zx{T?$25Yk>FMHv5(Z&6?z3GfEi_XT}_m=Q}su<`Lxk`>_{hi`&7h|D=y>f45FWi`W zq&T7{^S8CkCdmkylqZMTc3eF6en-$_GiRf;e>@z zgs~ZD=L*}W&(`oz@&5nW>4Qqhys7GHVJVq49^y9?q8C=pTpt{F_hX)Q&=>V-zU%EQ zez4uJvUsuiTFOn{c^bFQT)cHm@P>HDld~U}6mdFE^K~xcV|}guv;WtFM*+J}zOic$ zRTWyou=B|~(FKO`h9{iV0(>tYT%gdk=UD`s@ZvBwNWl?&$_NK zl`Geo_x)_W|I)fr|H+C8`!&{Gw-dQIBU2@He#tc9CaXAy8i_OMcK6*6ESXsIQGPBX zcg>y7lxMZm*Ho9VSX9&oeB(_wY88$=nAn=M?%3+eC0TO}rvC}o-t}s7oBG~ci)P%F z+rnRw5K!+IcSWUdg5fzvpQLKOjwOs*{pHHB9)*f0-#&YO^^U09!WAs$?qL@DTW0na z6<#-TzpD{6{glj=Pp?*b>~a&DW5N|}__pc!x}QzUQKaILh|+>&x6nG~O?eda4ocxO&^Gxc&8FGhbH!T)ZfK!Rj?%{FB9M9+rEa zj9mSbdtYO!-!=8GirIqY@{{k+hzY;6^Ngy-xullayWHH<%7bm@N~v={f2SxB-PNS| zB5zXHp)Frcjiptll`i@1U}w>rlh}Ce->DzIF$RWze?HMZ96T|_VoCd>l;n%S%hwit zXL}I!ru@fq=TqF?krR$Aymu$2EOX0*eNT(0{oX0z-@yJzCVj%sXOB}7bxh8POKq$$ zk@xnp=P^CC^o9@P`=!Dj8Bq@xI9Mw)EYtZDnQ?vN_EL_5@VozIncV*Kd)|KXe|AWX z%hHglypOVB)?z0ME==`0$5V0Y#B=@gPi|gepL)}A*CzX`v0`&s<8D5Fm}cj9bzZ(% zVNv0e2m?d4dg<$jxy2rSKO6eD|19sH{{NpRZJfb>E2bdD_T-ASA&on0&p+QAYgX2E z;zM?7d3l$_tI(Ur*`(d-4mY$I%Jjo*yDHL zYtmWn)^71T8egpPtlw1Z+yAWh(9z;>uHp~R=kOoP{;t|nve4GAIez9Prd!=#Qwv_O zcPxIpt%>n9pJCe^-rc?1p0_m%h^;#ucD(#$AnxKC;Ex z+!EhCTc<1~ zm%en-)AOIsS^7EV)O`Ox_m3G&_gVPJPNRLEN8uWe>X2nm6Q8PO{o7Q|=ykWTe)(n< zhSQcam+n;G-zZvL;u;v|wuVnCG;EgKZOP@r7gTQCYJ57a=(v8#Gr?79jBby6r^FZ> z5?LRyPU!W`#OB8O8yVZAneAoDqRzU#*y#6qLFt7u>$>gIRqL+5-EsJO&(|}LtP@@2 z&6@mvZ;)nNFZJ3}-{au@ylm-%^CUKXtl98<*~bODt86r;8qdBjn(U-GH*MOZ@GkDw z^Q}$YDaO$+r(Jt~VpI8PZ&ilNYhG@;n_4yFi0}Ltk|n`aIX?}YC8aLwevxR;^6JlJ zJ-RI}Vz$WbR~kmEKJotQWomrs8^QI*CZ|(<`F4Se-fxc?E~q=`H|0=uWlYmA)9{ub z?@s*>W}Fl>Wt(`e>avek936}3=56|I@$cOmG4OzVT)y}a_@ZaZzb z#eMjS#uj#$KZm9*SaQ8~(|XUtyKX+@w~c1HAI3lR*UK&MXU#WVd@M2gTF(up*GrV- zxMsEmhM&vccWm0;gWuW?{)=p|-@AZk+cn4CrWLmn>RHAaY+DeAO|pMFuH&t0zYvN>vhgqO~7%G8zxU!^L*ahN*LSK#hX2U&E9DKeCv}-J8$^*|BMow`uSn=ia*+yA2$@;5B*QHv*~zwz2zOGRC$R{TAD zav*p&5tJ`D~)ek<($L&q3d@2g=h1Hqv}<9?JsjKc3X4$@Q3f`&l?}_ zRr|Q-;u5=pCqHGiwz=u)zjm8z_FFT1KKIkO^DiCsUrjVm&DKh?{eCUPCButJXVh6$a9<|y}_MawQ zn5;EVbM={v@0j)HY8V^vy_v8+`P+lYJ2iYii?yA_drFMo3Z5%zC|VY5qWSi^U$ArH zSD)QajcqTTKM}n1@YmdP4)&8n94_mz`o7Yd`YmHcXXS#fWwA!H-o4Ct^0y`@XI6&C z9arZBY2KILFHTr6(M|ug_3ieW-t?dQ^NzZ&y{0_<{f8f?S7+UE+ifp$yN8s1M?{-;6rg#wRg-%Y2U z)_}SjVtL^YZHrDbZTdFL%RNuAh-F>!_66sb{CXJOv0%wh!59wx33USEU#_qzeYSJa z)cGtuOI=c0T6L-F>z6Z^sHsLt&0MOcK55p^g>FK#e=j_B@aBD?P3!rhDksjUd^}lb z@@CERH6Eo}qGy}7tv|s2C}`Sp!&@#Pra~9{4rb}CRAmeL?b5jFnd4#MOC0R|i3hg* zdaReYVY(QHI@8?4k=}JH19|gy39LSCdcr(H_}Z<5VH^qFBH14vzGb=UJeA4Td2i7w zDVY|PUwq)+{*&0~{M%+Cb=T@xqw`x?)tfwDMTs1?GRa_G@-AU{^luf9O;=dFbFLT7 z7JJbz&+mD1iOTJutgRW-*>6v*u(Yw6-oNF{`s6#OF8iL|aMWAOeXj8BuN(biPAw8E zl~wPKz5h;Xt4nuo^E3_JI?EHu)5`m2Oucr#@y zCl86flv;nHUv9&Z<}bNSVSzzxYkD5_u&&CO7b(UobNzfy{hU&+h}7=2Okt5xe|F4e z*LiN2y(Zb}grQiB{g1>WjW+TBqu2KQ3uhO)zm;92T-4>^(#E%{ebTq5Jw4Cdz9dqN zWv$}y%-RdC;b;>3M|Cju|x;XV;@dC@Mg&*UNzkQbWblHP< zxxBic<*)Z<&)o6+EpM(yY|QRMiW}w|uMFFvn>gwH(d6^Kdyc$wn-TIpAkq7f%LUcg zbnXWinb?+y2QQcs^kZ_I&ujOL=|_SV>-Gx0uz2Fd*LWnW>f4{1vP!eL8~t;psX44| z;1lJ#A2aW)-qo<}!Qoq&=S06q(oi$JbLsDltgVupe}4|2{P2{^>VpT8ilSrQXlkLl6Q!2Jm9tT+;(NlDan4XV6D!x8i~I1q{8NLF{x!AKBRcXx>BOH zs^Zh}ti3hj@%cpwE!w9<=6=|ewpGDuc8uSBu4|jcgN3c8e)7s%|MGJEl1$}uyHDSo z)5y==wtC|CPt8)t<-CiOdkoK)p1C&Zs}XHt_?)lrG-@L9ZZ+T8v;BD0 zU$ruyX~C9HZcYu;KFjp(LGr3?M>bBixxh7FV7BTULrcX7jb$sARrh`C0aS4>^(V~>00wQOmg!``5+musdhuszwN((#uieVXXm zG_Ac_aCWhEC}f6RKLc3^;l28Hp8Z4`SbJhkFU|HF1DED z%cCo{-DSh^XtOJdmfI{dj%?ePrSaj%aZ%$FxBuLq!QV8clVQiBM6=Z;A6NL5{QvrM zvq0#B=r>iZD@3L81a>4`UH3U-u~vWCOTD+McQRGGo-{r1UlMMf5z$>+e)QT!hXbbG z%|g5xt^vZ~mZsI0KGta*f2`DI`%-X^sZL2q9b}p(X>p(E%i1h@ zIc39=6|u5$v)c~VR2u9E%imM;_4|`c26je*VzYn#KDGAxqjP`$wx8-zf|iQ9bScl;$sL{?g1*i6VPuKZ}#Iz4UiSPh(f@ zqC`)lvZihKIYk4eakQ|Ma7(-oe*ITuTj{1(>v(%s`Ec!5ezUEiCMbI8t0zSbrH9(4 zA3y51RIn`};b-U;zvmB=c5;}%e4DkiFYnOVt5#>%Pctu8d-Ci>M*@5qjAaGISHQg zc|51h=IMLmCAaC__5N}dRj)-UULKor{MWt}uC$Rmx%;=B;r#RGJu`*=oy?WuO6imR zxZ>twD?jtQlB?33IUZckDL!uRaOvQQ&c`)3ECR)ree5l+pS;Ac?sxg4Jyl0ly&@U{ zISl${R0%JT(VeL$anap-+0~12;cnHrGH)H3CCwBW2Nk;NJ7KfL>zwmGyy(Eq^u!#R=inF(`lOSB*It=srm)_V8sBL@w_ zBcjYr%^r2yPMUDA*=bVkLizVUa)kA^);-m+PTWdbRV}lYzo{X6tzVsE5lvII%V)Zgz9F zT;BQ2Sq~~L8?Ct49F}za+dAWzRm-`m!kA5oD$^}EUruVXi~Z*JYLlJL^vdREM*01z&_dQLl?GP7cG$8xvCH^%pSmCLi{OQr5Tp%>Zv*6HIW=>^(B zT0gr|%YIJIc=_bnbFbW(&)u_CXLh>C1%W2I0Mn4hKsuc~PP2dR%4q^@TT;Z(N(UAX%fFH}Pq}#HW{UU0eLtnmhD^ z(3JzrBNDFOohUdlYw`kL*V9wuYlLlPEUWpfeOCFOgTUcg7nU%ToY};`^u2`gpJy|3 z3;3sUpJ~6C@hL@p(M!f3e$O{wtNCt_*7^MWq7~&@7w+z#C$U4x@P|2b_3Dg&zm4Sf zR#ay?1+Cy)s_{|V`)Aaq3rYLqRyt=(AAYuO$%S^oXtvDo>%Uc5n;4d6@URGiB$817B88?!5YEQZ@g7ukNzxS2L!!zm1(S>)Y#jo>x`ApWR>j zDe;8emn|#bES_fb_Vu27*Fv+C!>_Fk4YGZDE={KJ!a55Ex14I9Una9zJRiAoE>u^a zeBiTfz3VT7Gf}g*7rzYS5oA(ZpnYNor+05#$o9?+5|{5!oW~$P(?v}Dz1=zer+OIUh@mj8eJ z&QCh6_{n$bqJX(ecE7pJl+fp@l6+c-KghIT-qc{$nk|mbr?lFbmS(rcXIxlbD!JLd zAUcoJNTg3Sy)Kbg4b0baEpOdDckhXE=_5hM6JC6; z{FnY{iryoalU!Z%z$GY8mhuk!O#dYnQxXAVQ z*=uo&J*MB)KF!d`l=*O1>5|=xU61~ja+!GRo8-F4>VM~dq#B;=wo;2~dVc30x8h~a znUf_SX{jWz)-GU9-zpy{F7?}G3X{&6r@IYqKQy@J`J*)DKoLJ{zweU8ET1kYcbQKU zyJ{=DxM%C7aIW{~7clhf&-Hgdxj7GCh|4c2N7kmE+_MY%sb3CI&V7>Q+`F}F@YhF92vEqZ6cKhpN;%BF9 zT`%tT)Z_L^$w_sA%26{;N`8x4efdVE0FxX0ZKqF~S!XznZ!g;ZYwu1GH9NK^jF+Y# zcMSD>yL_J3w7(VH`-{$0FIaVd-OAEaKhzMBjGnrXKMtH&dnyq&%!$U;f|s)3&D*4EoepXF7%3o>n|&w^gVkd}V{k z``_aIFFjU>tlA&)cEYvquUzZ5r8d{FPv?l1+N_w9?J0FO={mpq=1_ZYGwUm7PH3e~ z5!DK9#@6g#9BqHWLsn1bTIb(35NP=RhpW_kg409~+Z7w{a&4IzRbrwt(TDen zP=aRW@AuxHG-h5oyf7x3bql zL*e(!!{Nr|(Y6=D%cRTA<6W;cUo=+d-S*kxd*K|7B|Rc5Jd`+VdxYmLm)M=we4BSy ze^vYUh9_4T?sQ4}*Sxf|d(ZW-;o2STe_Pgk+%|Q3^&zv|*Lw@x=Wp}X{>SC^!Ns&W zx%2MJo7~;2KPPOvSIW1}&hn&NX+&1Nz~?))N9OK7=zi$ja!EyZMqbUt)6=(S$4!1C zuf3L2?#0vETu)!O^E%P@{4{;1Es*nD!hIPl{bTP~`bu zG2G{UJmkCGGiavzP(eKGV~yVHg7KopZvbn(ymCN8%BH5mR0&N_5*&ANvxPKdc` zUJ;xa`Q(`E*I>TF{ZGW^HXnTVWcvE|33WGf=Sqk!;h4PPL+!LAsdPimlZ(~{Z+W^U zo6C~>Hvfsnsq5b+WCUNGz35^7ELG{1-Svxp_~_j1kGETBetu%Br=HJoSFzQ)@8|UT zd+SZhoY=ZtVr_HzIW}*$uvI^{|C}Lw!mjSOPO{(RZ4Zj>?@L~5QMy$1jm++3)uW7O zgZAx_e=9C${!iCRz~;i;tUFSrrpNZbn>m^7cI5*8O7}Szf@(5VPkc9=`sQ5IWYuH; z7dn0qyso@%6ZiY0?@LeGAA0d`-uuC^H(W$GVy zsxRlhy?Is0*7%rR?C%*_cje~sm2(=b;#bjo{@&+cTgVTm#1x&7Oy%|alIMMBhbB5Bl9EZc_v6R{cNI6Y(nV)1g zZFb1df)79X)ppm(OJ$jTt6ioNev!Ao z7!wwdcdP31{2%c_>L>3Tt%^Q&LcuwK)px>5Z=R#a47ZgyzRqm+&E1p|@GGY?CQN#& zqtatDfgLZsCMLe(d0n8pGxY1GHvPccZ)%(VGchpy|NkZyG7|D_zrlugi4lSwQz|aT zb&E+{;A6bBHX@Ga=A>xGzDZi=CcV4fZ?orxo8=;%Xy*wGj7e^4_JL0Xe}0_veuG@e z@~TO-`MfVzg>;pFTQyt&5{Co3$?_&E_ zanU3;KiatWSkg}AFxx4|&9atX{N!|J+KaO(>i={$t=HP&^hY;2{+@zA>x*UYH~h|h z!*ge5KuMI^KHe|NNgb!%k7zNc{)?_})lOgKrRis#v*p;e4!aC{o@Fli5$5;2XZ*;# zE@~Ug$|SczOlP0oQ6cZXt4kHj9-4TIOuPBLJ?729>EFw5s`;0l-W&1j?bEK0=2Nx4 zfB*aG*~7a1KKVyqh5vhXc|!`n_wm|wllau1#+iMd@qWMK&*XVspuDM(kTR&vkm-OnX$Dtqt!Ur=(IqqjL^Ug%>}?`t!E ze7yCaC;7tztJ+1L4_%7;_Usl`TT^*fQ#5dG%x@e17mgcF`rOjC{TCm3@Y3<`%VnPb z+I(;l<4LpVXXlf@R{gW6(E0E-vTSbkscHG=Pe0gLa{kB1h;QD^zxM{|q=+1k+~oS? zQPUbt&J3>~*ADlEi}KaKdL|$(vc|crPLBJ;+-2vx|Gm3>_UuBH}(gejL zc{`r0RjAglI8-gUC2#uKT!&0(Gsn5&R=-`!$uGq>)J48DR>m9k|u zj2&JV6xJLzKKJ&j!P;%&=`Aa3e=;urq_e{gjJseAldJTH7dgnj?1 zul()B+`2WUebHa|_+>ag8npaS;W!+cVsI=$J=4{=Oi#MuQXjjWY0#!e(>epMxId`6 z_i9t*#ADhnydgYuPiakG{;qU$l539WtiUWy)mO9Je;tav*tRg@ywnzv96RL`rg2|e zH!oWH?CTMUdha9Wx;VK-TV*#C++|oYMJADHLDh4qowe+j5^l@zcF(_jx8p&K`_vs_ zPcNH)=j@gw;XUS#vyb^mi2n{-yz7LEq2GlC zb6=@_W?Zo-=K8GMskbf8D@(6`+xpMMXa0|zH^TjiZ;$Mp`%!4^*V8S+ZIhN4F;3Ds zvtaW4O|6nw=*k=<#@uc z^y#99ckX+3)On|!+qH|c0$a@Q#l){Z*c@~J`1g8~opyl>cGv};?tc8s=X^zB?bYdQ z->RqX)brF(GUPTB7x$<+@u+8=`Qe@WqFN8n-}Ug92FscY(`7d(xvjq4=-v0)ap$s$ zMa4`P4>#{zc6<4=Rjt4CpO#OZkaur_sEpEdrHt^)+j0;6e*Yw6eQ(~O%*lIq>OcJQ z^T5~i8DTpg6-?DWH#f0LY{goh%P}hteELw(_A+w8wn^T{SA{2+S?v6x6EM4ItKuQA z{~|k?nx8dPO}3HDkpWS2qTwbvCc{NLCfmnhG&i`6Uf zH%-o$nfvGECh4)~mi)k&V7n7B&d2e7ni7DOXI$s%CNk&(}9v|J2vT z9f+Z|7fYl1_4F;57cH41+-)rOLEw1un}zFT!uID~uD>()AYYRKPuux@ zt^FGk+dr9{ZV>b>VP9;wzo*So;z((e;XQA+>IJXm|E<3sy2H0kWy(yGr9F;^KkI}y zt(!8lawX3(*`u7vX-j%qUAHZ)39C^GpLp!JC(Dx#GhV)3kG^P4;;>Xydj8bzpSOpf zl&ZSiWZ|NsBYxTp8=+csmIn1;4ZP#?KO#Qvo;nBLk z;u#Ze6>+-Gu2@o(-=Z>$r~G2-q1;E`4nH~RVg8scvc$V~-<+2EFX>{->z4Q(JQFdy zvg9#mQ}S;=URP^h^EE0(;)j{l z&*bcn@^MD4wXE5^J2OAY{O*C}w|q{AbE?lczv-@twBLNYKD}$#lqd8b(kZA-;aOl< zIVE=rL)>I5Gft&1f-xE|D@>kr{hF(qXjSYM&^1Z^a!h*uGrucIQRRWZr=_?A*`HT3Pf3()&Ew;Y{%5)}|Ncz5P5+fI z&zydsdeY|VNt;)9#p@i2M(~cv(@IvmS8hwIx{?jg%6l~&jXJDW*x(r{%Md+#TXfXNnzZAM zOOA#ut2(}~%el2%irbX){df1uOFrQTrrc7QZm3%r{hEz6?!(vYgEe>m>!-+?9a+#} zdu;*hn}9cZ)AQ=oc`IZxm9N?PF1{4|Z57k6LvI}pSnNOCC}2}2BGYTSO8Og*pEb)N z-|qRsJ~!6C{`++5+6S{$CPqI0vGT(Xoo!4F?~B4eluvJsJhyIw=3iC0`YExw#gEJc z{+(NYq5WLU4CP}t_OKMaz2e(1Bdd3^;j+nmt4+Gc-$~Bi{PgjU@3mn@8#x>A)Ow~} zTRrvL#BZ)_Wzlupq7EL=(^)dR=FH)XFOnYcvu!iyVlRt7P;hK-pn=S%eWE-zyPr-m zI`xV3cgmmC4V5SDT>h)Jo!PYH$KTAOkB>AQxF1ztq^V}noTqssq~gq`nU-^Id}CRb zJ~ND8?&%?uXsu0$*QuT1WLlQZADDhp=l-S*K3}VSt$bE7GR{qoUF+H#TrU%8-1UCr z8-wTX>m#;J`^a@lZgS*{uEw)wRUxwty8dRQE4${JIds{sNOM-5cipJMPxb30mdhb* zM@m%>)*2t$)e^sImBCiFxox4p_AJ>|!#c^tO=9;6y@fw+p6{ji>cuI*mS!6mS z+YgUm*3hIpwP6%W4bGW$M44 zRaks#et1JB@?n9F&HYCq%Phatz6v$S+1_XM{$2V%*A)iO_IlmhnS1(Or1Nc=F9H`2 z6};%Rsjj(`d;KtfP1#?MzlS<^9o>68-h1ht^P%030%}sz_s zs_o?t(fRxtCGEAI-u%-xpB7zxzH!~M;^$SB`_>ESZMpEJW@$xSK}MyzMcJu&2`BH* zTh8=I!kzcDCLix5&OWY9!ZI(Vxy&ErY%=kWS=B$sW9Rga;`kF~>Sz1D^S_pR(^~%N zW4~I@BKueUzth%#Pph7ISaX(sYDrPYj>m^oLe>U;y;^$q{~N{n6V_5%jSJ%=4@$ZV zm0#V)Cw)2QLD-bmBIk4EtM)z7n`%9G={~uqZXwgBUOD#Pw0-g6t#h>sWAESDtZml6 zch2+Z=5sq9)qQjbEnOPfl{L+K+gYy_&Z>u+cC1+Uy{Al_cUR=PBMgb3jwmF#c5GRt zB=NO5+s`jn<>Q;EB}&gZcWdue`F8a~<(qDiio!KBR=6$+Hj%3IdFrh;fr-o3Udho> z@q$s+Zb|K#vRdD&+87vhi$ooN6Syz*+k^X%?Z&N z3tVdcbx7+Tv#3Aw%=r66k(uZ2%pP`Y~*||Qpo+#X7V$` z6V_=0Pd0@e;CY-p&ofet-{#TIqYDH*Cw9LNoNVHkux(LGYMo{@9zYmlNZ5_$1q>dAlj~E^diGxXPKW`x-CXq)?{&{a0RWSnH#9Sbgoi z$^Rv6dUnOyeQcThqvLJY(X(6c%isOJ86^ z<7BbdqIyNbw>@+V0&WC>;i`7sHLn&ec=BeF-|19YU9sl^CcUB)H=Hf! zPu$kLMOsNQB}lwAv(seezo^-Nz^f;`OicYve7AV0?s+WKEqjF5Ppr4kuP>~1ai}5# zC~Bo-=Pr5wB1N#WxpIaW&$WYIQk4_juEq+PU`6q)R=%J;J_0Lctwt z{|JOB=-)Cr8u`6Z-%@7nFSphEF0RVo@=7`6YvTIE6_NE5o(V8>b=NEi6`A@&!`pY# z2QT5fcQ+b%nQrniGcZ?Lb;NyRQ^!3%m%kaE_EC@er~O#0Y6o`7o7l|k#|8p_wO=(I z%$uZk)@;cHwGF4IE!|M!J=w`##3$x>0*Bv;gJso!zMq?Xto@CQUZw(T?Pk+mODpqL zDxdf|a9{pyEN;_dbF1jV>DtDP(aPU876h8!nt626dBwfGk2dLC`!ehBwV&S;c1PE2 z><~I0uC*`G@NiPw(K9cvzT;v4kmjQ~=hzy{J%M%Kvlq$VGQ28xdz-%B?0@&CUY@ja z_pAb;!k4?fW~IM9W*{-`k4K!g(&5b9zs^pgx?dBNbWCc}ew_JmQ~mSIOU5UYGZkKH zF$!}QJzR47t7fn5o(~HyRDLY7ntMj9v~uPzDaiwCo}FJ|pXM`9dxAj5cZ<%1Tc=dr zOpeGunVxd(5j$sx)`!{OSJiClm*kLT3z+3nU=X&6MLKdu>;J`%Z21p8tCszwQc`|* z|L&bXtF3qZxf=Mm=TG4Gr*p&{I4`Gl2A}HNC3XH~WtZC8u6|gdMV`>gO?t9y8pwnbd&1oo!{;C>*Hg0 z|2@cG!m4+mV&dJsdh$X${TH7I*Uv9J)+Moh`Pz^jS7%c8c} z!zk;OCS_4`J&z~7ULqMWZG&z+g9c}|&i$WkQz!U+?+EGTUYo^QxIOR2X+P7@7i!+> z?V8#pe>ZNwYT#+hy|?!f|D9KIbLRcLSGjvl;v})ayp6se&nDfLP(Nm27=29swo%+( z^FJ3J$UgZ{`9$wSu=duiUF{a%uk4%fXq`q%sYCXga&UTGw9Gx@%0jj%zsz9;(Pb(;H2H`^10JczS?Lh{q zx3z(*zqjV5@_k$#)pp_?Gem09s`(60=EnLr8;G>M|E^v2Jk3Ed{FK0LmE+nHT@ldoB_k+S%Pw&~36^S+v}&ifbS_WIK!Ki2dT$q13R=aD{gCQKk#o-jgqTa-P1@+HEZ%)1T5j zY1awAqA8w|&e6-xnmm{+tJrm^uhL28c4_7dgVRq17xsJ-xO`yQjXnBE*m}H zUHvX()VT6e{Jz;%_l3g$O3kjC5pjkyao%Z`-P2yHIJ*C;x&6X?!^3Zks=ac_%&X-B zcj~6^7EGGgHc{g#(-WpAv**oznc)!sWzrNWUTL@UYjX4Vcb)$9F>dMWd~rYZ zX48lKG2C(Yr#_i)v3-C1ipB9&%POMXH#+z0b@BHk)P6Axdw;O-cX`Y&7El4bC-!ds zYy*M%W%aBRX@#R%3PTshFczRJoZS-p6#`!z@ zMArUz^!eb?iwm!Ai=E#P6nwJiu$rSs=Daq+nSPpwDt(?joDh+FW2@WZySt{bJzvOJ zpinFcFGHLRW*H2U!*?$x+pDcVXr!(|R zP2!pNn>=N{hN~|7D;s-8T=;5at@2H&VC`~d&7$G9e>s=GdsTG zVBW=VzoyCF~{#-?wb;U0>VKU*WUy#Al0nev-V!Q&Mftu4Ssr7616!?F75l zldF&ITWzjAzN_GqI{9g#QvSv8t@3m4sqWE#^?P&Qa~^-o!&1`EB=0V@ott@5>vYMt z3%9b;dzTm){FG9Y_-Ys${-RtW)NQG4{#EXtpeUgrp0G5=n1At(yhm4;R!lfi7X0f? zUS#ZnNRcBt=Y*{0Ch0`Ha@XnRIlOy$`@D?znXv`W-zD>`*D?q@a-vAlPwez$<8q$m z2Ry~w4KGx^TKf2Q=i@(-Yuy${_kMhGyQWX(`Sq-)?NKj%1Apxf)tb7%$#wUZ0Nwcu zqBf`0)zv<=IDeq{&j(|bwX2#}X-y1`7123*@Z8-AvbueG)33LO$4{I7`~XYyH1_m% zZ;g-;-Q<1m?fmY%pU}*8R4@Fikh7E z*Ev>So#EiOYZ*MXje)$2_wUoan0ipFmH;yt%wuPTEjv&y!x>_X%J zC3RN&?$>K|Y+rr&cgB}1hMv1yvNfhnzTs|iI^s~|i5>biQ@VS&)GFq6cc?3Ia|nG2 z4bb`9(VQ5N^U>a_SV!y#?}2dH3f(Vzm};&zh97+p+_=8B;*90%yd%wTc@9C{+(0-K= z`?)5M>qcnQJqex{8?MX6{DCx8W2^ITTL}HX{adpmkNe1Li{;aGZ)@;Pf17su-qK9H zbBX!+ff82^cSavA(p}#9{qlXD_9-s5Ihr@^8e$i$VCqt8Km0I1PUSD}g3W()2q z?@R4CS>on&>dEJ5!OiVmGyeSJ_PxRUxFLSxA+v+wj%lgOFTeb9WZg?c&q){NRo?l3 zVXFOeR|B>A_Zu31u73MC(Z}r5&*d8(a;pV?znZeGdBc=D%Q(!8G-fK#zu(bd%XHwu zXMN*H{+9LY-QuM`I4RAXIa%|Mqui!p|%x&gp$icPOj#(-gRTM5NRrPX$m+syxOM{~I zWdm0(p5C{zBtU|d_na1ApIf@9Tl%FBYYu(zk(wVWG2fGU3pcY#X3MslCVxxHJUy2^ zRr~Sdc-pdmFG@H|syA7)GF`p8lJje`;a~rS@liVdmr^=&*&1bU?MsiIv-?|t2p>~- z^unXH$K|YTW=J3lAnh_Isf79cuvu2)= z@sTM{vd~I?BxbB;um4W+?RlpKk$F3IWqZf9HU4QZo%c+5L!Hq5mY=U48BEG*>GQ~p z-@N;EYrU?XS0|(IUR`6?=pBn?d|q0rdYTz3*znJKs>k-YF+Xyle9xhYr**?~ewX(e zZ0N0g@Uh?wbM}LX!^d`V&rMjL=-PR%E+OLD0g2!DE>1L*xcOj(RNmz;TkbuO)48VI zExYyIgt9A_guDFsl|oXl{pC^FV9mJsYep)kVakRXe*Dk6P4~2wZ>~;O%gYj)YPSFP zY2PcAVxN9HxBY)?v?%iL`7bGDHgo@eN~)?VYU^IUX-?^rx0d-6?u2ehEq|eO_CRn~ z{&eX%_jL{Hdu76ECI31~h2&i4E)R2K{;Os4O{-pB?ssKlNq5=; zf!iEE+E%OmnSJ#*-?J1$Hu)QmH1AlHw;}eEw8rG^d3lfc6<>U9UcP*Ny-kY$dH;U>`nu|mZ2xMi zKmL09+W2MK@9cRo?VMZR-fH{Yx7O_Xieu>uZZt;<7=Sr~NFe;ETw6xglbeaJP7?+69)dnx$o- z8lTwAwy5Q)FyAth$*~rg@c2bvzOYrb_C3|r7vj%M6fS9>xgq_MT1|yE859i!oXn0EHkIu8}Z&GDg57<69`&s+z^NV*c zZt}Wu|HzKHX{U42ZU`Tq!*gkJuirU~IUBYYwR10yU+@0?{Hf@sbi-431?P58zp^^k zu=C%=i4($q2F>cZ6!Wjo=6C3k+Bq(XQB~RdzD#s=GO9ILR{MX#w^LJIACQV^=*fS2 zPnuERAo1iG!EgOL3?59l`+?tS&BLc%@vR1&h8#&E@dsU!a}{0e?Jq!7Tmr z2fzF0mHVdZA6;9iCD&LlKk?0l1uF#uH#{rf;aII?k}I z=>F|(GZO!NQ~I-oOGLa&Fu9cK2e-hy}$y>n1wi}UtM29@g%{uQ{d+q6Nfyb%=@+Yx&FO5^Z)GroXOgy`$vK!cE-NnA0NH_=&#?meEQr! zefw+Xim&g}*YH!4NhmzBYhUGh$Io%4pAW@Oenzm`bzp;3wKc6nXxqI^T zxfk}I-@p6B{^-~5`~2hQrM_npe7bP)#Vxv#c;Ew8$LK|i>8(&nv40-rXq9Fme= z>?M0aaQz|i)(p|jpB`7hE>GdszL?zmpH`!(RV5 z6}>>s%5wLfA5&!o!cS_H+;PsfN!YuvG{ZXi%DYytgy)O}CG%qce7S$~rR5FxFYL2C z_BXe-Y+qGk{OPwWgU=SuX4YHD2fFQ~;_bC81&aH##1E&Y)PB`m!gODSduR04xMS8Q zw{H2WBKgAdS}b5uoRv+~TUYpe32H_zO{dC+QMwy($0+hWdcnyUkNU1w}>oN=vW z#?;@RlZp+=we>qM~`O+DnJ8y@l>&;NZ z4(=5Td2e(GPFVPZ_ZGv9iiC~wMuLZP zAlLhqeny$0wjJBAG=B>#ogV7-Tf6i`m)YKez)csQ{AsRpKO|~h!S;HawxuV3@P}C! z)_gK;?rht5S4G}ND=@AtLUh;X$S(u;c7VZrB@pFq)U-S3vojX>4;8OErS^i3P zTAljNuXb6+TlkLfaIR;~y|%8PCE(ZUUGF9p?3=fmZ@#bwv&F-(lCs{-;zo&mpFBKQ zeVEiW_gl*Hs?U-NCmwR<3%M)Uh)GTt37Wa2ZSscHB^_*z8&|uk?YtVqt^aU#-NVIk zmCLGFVzq8InLkx+sBq|&~CnmS!yhH4g9-qDM4wmm_ za#lA^h1hxQcoegFHUdWGDD+C9gFF0KxkzeOZe){%X|BljpilUI3G z6(;SA4VLbjrs(CcdFHQ1%ezf8x*QZGPi?NSb@txT%`C2!I_cu9#d2%z?O9h@zu8G$ z)=lsB%ST#g-1UD=Z7{8zq4BnPQr3n^!RAM~r-yw^>g=07N6&Go!M8-g93ipw;^7a( z+}{ZI=N%1=KYf9Hn}hL`qN7`x#Xh|flb)!@aN?rW+z!@O*CV0vH_Y$p9BqA&$gd*# zDeITzz5J~T%OiHMy>Qi?a(~GY_Vd%1Y|?jejX$yA^rt)4m)C~qtuD5d88;7uj zvp+8K*@m{({q@?=aO~Z}7cS~rt2Z)#|914wuc|X^m+Y;2wb!6~mc}fhFmZ*jo)v!L zPsH?&rHh@uZL77=BJf1-W#*_!KV=yuG+Z0z2s$k~aY%gq^6Bd0m*+5PCQLK46z*Dm z?S=Tx)Yi;HzgQ%WRV6W|wOti9;ySw9?(}-O71wK(_)d2vN6WJoO@AnQ)@f;+d&0%!A54a;E%rzJGC9~QT3o+g zsxPZOZfY@j4`XIqy5=XBMjF}bJHr+It+iHQ8;6Z^;H z&#QOE_e>|`9$lJtB=YN#n`b+NJ^n~?Y}svjVqL?1S6;_5TgSatJ6D-3?qadLdw1T( zcNdt{7V#M7K7D#O@>|8(pgvayF_8;V2{{)(d+v2zZkD2E>$bKnsiuDWu{C@GZz3X% z14c{p?p+Jc z9-GM8Q4&-xJdJzp*`rDX*@1L^*^NSQh#>S znaP=3wg-0A1${jeesn|OtEjiuV5a`A|~u6|q_GpU(0Zue9#A zm|JIaRbhL=WWJ;K^CrCH;RzDW)Uk5v-|$^KxLowkHsieM!h)fO9Ysp5Iu?88m^_ZW zy&<6QzC`{CAA8Y7?Z39XZ#-A4*{ifky!N_Dhrj&{L;Z(Bs^ZUfrid<87xT_+N(+mX z7T36HV-x*Fq;74bt=sCWm-D-h{f%m zNG58D1wC$`Cc1TLrP<2aL5YDcCSKKf5EyejRJ+{0rp-3#^M7UawOVghKU;Ijf9chb zZJRlmKTFv&|2Voy?9uE)8P6Eao|GMQxp-@}pLw`n5#q|Z;ftD>Hop?X3mF)TZC61FV#}or^1w3$@qBN`+U7m znHx{qeX;ocSfNm7Um=4`w`ax9ZT0``jKB9Ny#2klCGdB`jNCR zuD6cXvhq2W%xw8}`JpL$xJN47^!+igL`Nm8#SF`WeV&~&m z3i-chvf$-M`x=hyopoiJxbERiS}Bj`vVJs8n^pPP`af4;$=$2h-z~j3K~ZIrM}+@> z-{jZD<_mJ%Y?9X-?%P&knsXtf<3}bZ4?~LWn_JTtUZ|Q8YUOnLXFRaJ(y1^_Kl*|zdP;Du@5^|3+wehXi=^^w2AG-21c`s2LxOmu4}FNxIwZw z@tSeO8-a}1pH5%5*Ae)){?RU_tc@ypuU2$K&AMc@N}_WWZ*FAlgjs4g%{n8)QVTE6 z^S|@|KADH6HJzS$_3j8a%=qL`p|sE<;&d^4~3Rj*%Hqxw|3|rEO(5!llCV6 zu=S>yF>l|k6)aKD_{bR%cK4plmy?mbzcqYPf0b@GM}rgdnJ0fa`@ZCyDO`45pS8jE^*oJ&sI~88 zW^|rsm@4&G;NCawecdicSKt46?vjlilSK$i=&S|Jn*&|Fum86`7j|k=lgez}OItFo zr0ATA*u0XXJ7Stk;mr-ZdTwR(ZB|uSXg6uv9_7f$)XUpUy3I<9tEI1(9=)WpGOh1! zfbNgXh*#?@KD|rhX20i{D;XJj%zu~BRI4AYSH1iUU-#YF9401tTFuGxwD8KXu638P zi>+C^wuKS;(Zd~41``hX3&0U*bnCCRKFMsql{(^kv_piC!?j4j zWa`}xsdHUYd@j7b^UE#X@?Y&g{wcJi|K-xBmkt>$5froc?zFkT(w=9LDYw?5gG!e& z_9z>%?AoQW@|^p_{OV69th+ehpJ?1Yvre{ryX_x8pH=d8?Y|ng)-SoRV$zkrr=-Gj z?lGn=s?aPxy7yIOp4HxEEp0_#$_?5bQ?%z+S(NqPwY9K~SY^??E++p3uj(Q#rlf7F zn!bxgF)w=5ugJmKCAD91`a;ur7xfp)eqbu??f7$O>&fTyAAWX~HkriGmUcpirN*{j zsC^QrJGaWanI^027yS2`y0x}k{lJ@R-#cvs3;B-iD|oarA=GYro?KeVB92g{c_I~+ zw#6bf_YN-g4AojM&Q`Q&*^L)l%5qGql|FGB#BSsHs?fQ^?#_>Arxi+GzdUw_F)#i@ z{f>rrhL$mtKG{hzmQ4P_#KV8()}qz+ml%=)L^bB!CM_$(@Qf5J zO*OJ_vx-Bb$wsBgJZsrC>*i}6NVvt3tGs8IMgsSogPRtZ>2Ze~{Cz&wT-9x+R;9v= z@}HMl)ix@ul0K1VraL25{V;jfll zm6(6|^A(FFWxdTJrq7xk?sw-(x!=5*rNd@9_n14w(w7YxVXGh2#Xc((`u)XXfk`1t z^-}K#f#+4VdfB$N%n0!2VeHnc`?b)yb7w?T;iIrcTp#N?7V&$1`D$J4?`rq5i<@VH z>SK=P^hVX2>c>aCb{D?-2B6`mV}2o4a9;$$}4E z#Z4Zww5Pp2&sEjJ`d)y8`<|nK*d9p^?%!NzKd%k?wA1PH`hG6uxh-n59<6w~L13P! zSW@7Br^ppGm%jVQB&eTAOjN({TeB&PZA-J?HEVN8Cr<(GDJ&bEJbie0=bNpcU3#{; zb#LLq_A{%N9I4mzUY(aQgE7)kEl}-3L}bIUQ$ce#PB|2nwDOp$w^#GYJ(nKTzUBFT z<@PRv+q3i&bh~D+IqEF8WABm>HW8j_r7_++MT)DwJ(4Ia)Vh|e*{jm+rF?ROiO^e@ zi>#RvKD!=lD4XOnRm1P9-@o+sRlh#}+Tgdjc;n8}Sw?S!oo~3m5pz2_#YOD?dS(anG#iZD^=lf0$Hyl-yO>e;~uS!UmiM>^`ezl z_n~<8K$n+J9vM%#Pu{#AIwR)iOBS^)4;Id7=e+xS5})v{iboX}ZnLL#?N8bM^t^F( z%FTvfP0TOjBSJU(nq6u=P<-wd>pt;c`JA`QH!sYOHW7WFy1BL{X|w}G4E#F=kzSsGF;_`YnrQ&V4Aag(zm{ocXqpUYm}`@62}$1>;2b!7!J zzkiOOFfaGQSyxAA25-M+3!m&=>)t&+F9iZY_$8b&a)%(AH4Waf9$AyV%;cZfAGPkRY#K73-M1X&)KT5kz`a9t#Bd_;|XipR?{SKfU)-Rt@x-~aq=%R`?{ zn$Bz5)>K*bXWfZeRrr17vzR%nX1)wP`*TO==Jt5gOB*K{I3M>~6l^Ir|H`sIUOu&a zueR#?zYUGyOJDv<#Ad6%X4CFnA=)-oA!j)ICLgh%>u#E-cXh|_kYYW*t7pEfdRB91 z)y>1}cl_A=;_I@@YyS4OKKQqyYtgyaOV)&~F7kc7WZmKwGu+odpO*I4{MnbP3O3uR z=@-75M2S7>zqfVv>+|u6n|Ec#iCwInVP!h0X2*v_7e=9g7`KPNHO}>)>n!~KblS~N zNh!(Sex@62GM}gu=C`MB-AUzp<=2%?cm3aToH2S0i^So1ivKt3{yXq}q1O|$WZu*` zk7KLNzdt%-SI+o!!Jew=YkZ%+I(dE9o-G3Gn-8tY&b#upE=O|4>sEoSr=}$eoH-(C z^lY-klDP&ezW@5c{$bCNMBS&XAGa+zU~hK6e!+s8>8F0h6#877U;4M>B*zXmpValN zx7Tc5Ys*sN8t@Ks66=|{XFb9AGxV5HbrVnFjq|X+Dn#Z&bKo%O?4JpMif84yCg{A<-u%a ziyl5HW-*x?9uGL)Z=SX<@$}4Xe)ku&+tkfpzyDPJqy>`;RZ|N*-ZcHV`0T~@^#?Ui zvYuCe>~)G=RM1kk!D~l5!|EryXO+xa-y(QXK4_0dv3<`s-aVF&T+{wHpWV5IZT*^M zvMZGIcidZ(Irq|Wx#mN@)jwn&RV!zzr%QHx$>1(ex)Y}_@#=BbqM{8;7OEau)#6*^ zc9O~I%3B7-PuKHpHyjR$wvRM+S*kJrn(@SV&yBSm@^_@Kn`B4cl5iB9?sdmB#wc$}60Q}i7h&!Jnzv65#T9bf#vbVH~5)A0x2iyAAu zQ%wSyCbDoW+ij~TxzR~s&&B!Pdo~2w_zGE0*>U7`lF;Qtt2i>6n(dXA{NEd_cH?N; zm&VOU>U}?J{!*I1X!Ru#3D3vZorLlXK7N`T?!<;sFxOKrjyx2<@1OmL^vTaVs- zqO~9Azx!%%fA6tbHgya3?AH~3)w(A`Y*F&w$org|>wKHvO*7Vz*U7w+7rFS{qF%_N zsXKFT^Bq#)ahU&IyxKJF|w&w>>-V+i#`q0dZn{r%oT|y0TSc%G0$D4BP*zUFCi-OHoo{H>12zuKU7m zm$qxqei#@3$?HndNz1b3wj4tHk1t+i*vY|g^8Uo^UFJEt!E=0UKIiu4l&?^3Tm0tR zKlg+&dVfqdj6w7VYE}I?(tccmEC+sq|mVvg(4SmfW)yS>$Ra{#!R|*;oIr z=O)7bo?|X@8Agc<-4T!9-OEj8+A2x z;+nY(JzfX;?%aGN?pHn2l0&xorS`978@X3}e>n2%+?B6qQjMSA+7a(RZJvMN(U8KgM>n_X6>v+MT+~gu(6T+F zEna^9s+pG;#p-OEJgr~@r=F4eg)EQh&#RR0Yi=y$cTQXwx25ZD_r3(3ihA*$qv_Y~ z>u5h(`XRV*`sIyo+o$JG-FE)Z4TJP=4fl+_Sbm*<;p51a%POZ?6bm@7oAKddpEJkPDN~z{-KbXNUMtmQmy>>E?X6i6uWsJ=a@jngvD7*IG}AZp-nsXm zOsMmfal1UnkI(w(O9@7mJx3VancE~6txPy`X~BHYOC0$LzZV88M-+y&{+Y4=fB7zH z=1ux7oY!L}_LnVJlK0)Z=hT|gMh4BPYYr7@NBT>gz2BuipKsi zU*2`)RGx{ozu-HMZFTL%9lzJMom)ER!fDlf1%s&z&0KkygZun*eX|Z52(+$Odacyj<`zBgw6TqC|LLKemT*^nyJdf)NWcRL zjwP~t1-4d(zTOaZNnK03W9!!s3w|Cexij(C^6bpFb2GyIrY(*<7+Ik&I-RMMPetk2 z%*k3EGhX}(<7x?c@U%cp|D~!H_q`mCiJ$dmpUZ5j3rKivbNNhBuZv{K6Ww>ZOwNrl z2Ig5Wxb^sXg(m;dz4D>&UD$`+e`S;oJ$bN%G1Rqk*|WZFnJw4%#4T-NR#>x)-=?D9 zHm>GDgrcX=vRv+6v1>&RNUd9TM&P<*+)bz5Car$gKNweM?Va_@HP^lDdTUoF^N z@2SZU&a{R}NA$Y0%jW7Ef1c)g`?CLF`Fv;1!|yG}lxr_U%W3hfo+PX{>;L?^AiKNm zGQ4NbaONGn^!my5ork}ft@4+Rad*7Kv8UrF__+QnbEESw8;BgA|5^9b0cMTZleRDK z9TP}uGCX3&*-~-h=vA-XX|MF6etvl(W8Hc8M&IUciAziTR=z#f_xSWj%l-DZPQBdI z%~rFz{LR(y)t4ge=R2HUb#wpeo^GwB+U`g5q)TL_N*)9@KX>zOjN&g=*$~K`X!|VY za>t7K7x(?<-u3I@$)D4WpKT61Xn1_qh2Vv!b85RE-$-RG*<0PGQ+j`AjV80+F44^! zeI)+pl&xJ_?X@v6O6+^Xg;huSmPt*Scdvb!G;>wb*4Pkc+k_LkJI{yye_9x|Zra8( zlJ^-FUSL=l#p3&D@~_|huk_rz=fAbBS@CM;y8gcZ8!QEVXBO`^esgD?WtZr7-c5X4 z)?aH9FH0#{y6g1qA1B&Fuelhl<4zG(ecYsR>Y3!s*1TEAKWoeo?my!hCuH8itl#-Z zfipeQNshh9>fE-kyRP$odu^X@cAzjRCbP)>-C0XNCpF3AoY%UxtF~(7p17)|ov`Ha z;U_hd*G3=plb+`h=<|kW&b!~42~)QzuGT$jxlzHg;$4Z=A<5jJ{zmT;U0Hbs3omB) zzq;9O$oh3sZr~k-B@8y!x9?m2sJS<#tCq(zFnl)GjCCSUSroJ$c!bWLz2;rQ*XI*QNfwC2~It--uVvIM=<%rXfqiX025t5VYn|4ua?)GxzmG+I_1`u;e1MwpJkLCzho?QeY5jobe7 zi$`TU&kBPRsSDzBe#cjc#rbNyW;}U3(8^Qt`9g2;WUKq;4R#zm{9B6}B$b#h3ItbN zZF|BJ@Q1-vajr!m!<(-QIvDrbtNE=@Q|`GgS+K;5S$P8A+Di;YHHSPOEZsKw$m9#W zA-o1_cn|EoY8EYO>KUiwo;clW;c~}6%BeH<-o+S+*_ZEOm^X z6s?}=Rn&e}a-RI|2BwK~V|KKxG0@;x7+5z!Sj?jQsJe=P2IEHEYdgFDNF1_$&!z9P zBXQ$qo$Q|?Lfv1x4|)aYHEp{u$tdCVif!3JZ)rBE6A{d68SQs(7)vfl>{02cvEQYA z_2HK#Ry|cbcaN>>c=3u=^yQvMk@ugzX542Mcc{v++mU7dmS5uUD=zg}Fx*<7d5QH> zrO~te=qtDT%*!^eQdm;RD-ic=ebCMBNhz!I%uToYYiC_qRqk`+z^B4(U)x@DI@?SW zepqmgv$ys`{bh#2s*6Ta#>+eZwfo-BRNH^)^8Xk8j7?_k7RhhDl3py+yK(i#sjpK! zuI=9!aptCgx8q%t9}`oKvUdO5YG0X9up(M!+o#0-v-v?y+EW@FrybHcAExl*)7I$O zZG27L``@i<`0?J=@3gz`wqp;k>*OCzTp$`K+-FmG|!&u``Z5={$T}IRI#`7ZiBBV&@<>!EW5;a^k3?Wv=og? zM-NO|bi3={Z;^9;A zOX%`>t+RyXQ)MO2=Lq zMo$%&+1f1ZJJS!p@GOxj?5%kh!_}#9P04pg{aW|@ibK-&r^5Yf`MH%PY*w7rKI+{V z8>-WMBI4cY3A}!9--jOkyZ2l6_ish#L~9N`(eisx!=NhtC-~;R`AejH(pozvu=sNa z`u%_4e{=m2@2vWp0xPbsnej{U*S4~K2i{&{TCORt5m?3=HT`sVz|uP|+;bu$-tXQZ z8Tnv|=N6sSmvrB0$?$fpHjG>HL-j;mRoSa;Vzag_D12&7I@|(L^OU})7yU=-~XO?>TiVqVGTvRmQAibK!Dfg$Ynu3PC(BG#bTkg#|pv26X z+9Wykc=?<9=*JZy`fqmV+lt%@TD<4-ytL0p*VZknyK~Sv^_-Pzd#zbx7Za1b_{UrO zZOT{ODBsbo`NX(DtD+?3z_Ja$nIGnUIJEM~1EYF7cQ(*wp$&qduN%b`=(6|pH7O+dtvcm{qfI*F?tK411?D^p3(oP zcKvzmp1;-KmlWA0eOnTe;;1IE;El58Ar^OjX=~pW!^95hjj@&&5BeRp=idQS>`!bb!+a-_Y#mXpIosm&+x{{r#gy#d{z&u zFDT_klzKHda`rFZZ}w;9nk)_b;)S}qXHAUU>v%>aV3*C_eZAfWM-M;OdD#5;{p{M8 z&QlyWtWob_KDRP>sn)B2J-qApxapd&S(I&hY`gaPfLDK??dw>2h(Yz;Q!N4KoxF!1 z*gt)EK2`Q&wOZza)jyW-#yUH%5ly(EXr-z6uezX!Poe2gij{rOPuXW_1$VNdq*w)h zA3iXDY58g==WE}dN9Y>uN?x_qF865o{e;{-f3&BsI6sBoYIFZhC7Sw!jylUI$vWi23DjRj=Drz-@e!M<8=jh?Y)NILpJ-?PcjI^3q?xc|#aOOq) zd-Io5bcNmLh_CB?JYkBj*QJ6U>*tAo#Y6S?I0Q=S&c3)e%j*7v*h5|Jr7z95|8=vP z@QXQT+llR4ZwQICa8AFMQ}OZRlDQrMohI@b>P2dwkL`G~Dr!r7aQCeu-BVB76V|#O z;lH?URprLgJGqzGervtDkW(~yo${u`t51BE2bDNiVsrEFm{2cNhJAdt7pokm|(jpHG9fI6j`SM5D-L zj-vde^DMDfgI}J$cTM)LA5Y_2(bpdgwco!LNG;u+cDk)>`rd;@YP+|y^8NfL`Ju0o zZKrl>N14J?)dfB4Vx06hy6fz_pmmfvy`%i{wuGJh3)i#1ef^u=jN|I5^}2uJYL)eW zJy_&aw|l>&gLzx^u9)Rd8Q&U2FaH!${`zIs&2wknr{po}9=&v}=ZmY=rSA=g ze)NaTD7KQmn^m#WL2J{2W-g_7=gh4G{=aA{Sx|X>`Nyfe@o%PA{r|6FpFZcylz)7$ z{w>{EXE?`xt-{3P@=GqW8tKMz*fec8{#!Ynr)+=j)b!()f6P|eS-5UEb4SX?!r$&Y zyY3tIUBMen7D~SGi(4f3b-T?iyM4Dh@4nR5KK+36lu^a3O*~eb-ra0V_VnIf!svPF zLg}%{1OMfJ3t#vDyKwr?x=Ct}Q;cT$%vmU$+Pq*1qh-{Y$5Z}hAKu6PG5+t8`t61r z>t)tIJMzyk=^e{Wdz9hdE8KfK;KJ1{Wv%kP^C z-iMAnudh{&>YljUKB@We5MCn%5EXV1BIpXOT-wtDNSkYTWqwQ@TI8F;p?R zuUja>vybu2$HgC&>h3R%+S0VWu#xpAzs`>H>*Oykny_tON5Y99pPr(un5!(`RAbH_ zu8HM{b~@wsa8bmgp7NirZOnI`h|FHNV}IX{Ip1&QeEXJSHoNmwy6eO$)#m;)lVT6p z)IZBA%j$l}Iah_tEjj(ku|{FmjrLuC6XsMfn|sd55b*h zlTLS)OU){OizeiYb@v$wzjvBw`J3-{@%O!oQLnC7?a{n9lZ+UWS4_&R5pT0a~*F?wb&L4DJYfdZfj?dH35t(myX5t3zLk2sFcQMvB zlrJ?Dx-zN$c(uH8k-)B7_0@j;z=-_6ecT$6Ip?!(nDHp`CR|F|=_?_on_ zx8c?uj~*K>`Ve?cPkvKLpJU_-CRMlo?vQKA_YqgU;uqT?Gi zrpVZR&X0?^=o#6yX`|QUl7Fq{Mo*S~diHPP{L+n2CZ9Bti1gjpUh*(w=e^^n-M?HZ z4}bmD*U;8t$KJhf!|R1lny{}3+^027c~z7r-0F1u)`wNBId?ZmC$P6SzBTYh5si!h-_HYy)Ot4@CH z_nxtOo`J${*7>_U!uOr7Rn+>THCO1-m$$NPiOjP)9{KLVwUtRjTx4-}P>3X%(uJzwLzQ6n`Cn)i@OZ95x2W8k#@Z!SvGjNyQ_+or>uS2TUg_CpqnGys;;1`N|@t zkSV+FEM4CFHR-EBaFt={{6`z?B)snV@l4*bq*dmggQIsx!e`aC{U;;;{r%pz&-cTt z+nYZNpFHCFUm-_q;klY=`o*Pl+Sfb0+PLOP;QCb;w%p2EHMvqNOfPb`+rhTod_QGQ z9_ZY?-&UdPRYvFx6%VOvIa>dvs`z8vRf>-vz0TCQez|G)u0@uq*>QIR)R#_rz;AnY z>aG>bD}&g-ZfU%-SIwJ)bM0AaCB5Z8&ZVrFv?JhNu*2e}pXUxR-~Z^o^nYOboR>LL zX~o6651u>_rSj1Agw;}EyLF*|HC^5NcWpd*alUYko`t>lwyCfF9eK~#{r)lQc7~%# zm9wYysPLX!H!oK3WM9G&%@~Uhp8rkjQZ|+@UE|%EsXbd$Zhoyr_5XK&qc2teD!J3Z zX%=Z|ccfRr)lggLX{`LO4>sN^i)MwdT=k;<#epRT8+TOR&c6M-%6mpf#QLlEHoQ=u zZuu)Rso#x<{j8#|LXuLL=n=D{QGPcH4o!?Vd$XkC@;jxTs#TA79qO3Y9qqO0xz@&e zVX00V682os?Unf4)%DkJGV8vOKT@JI{o-}v7wp`0IDCqW*?}KVueJ+J>o3_~!nkyf zbffznhpO4WdRJo>-}d~sd*x5={YJlTb$p%8c1wSIzRP}XJ^ME%&f3Rg7ue6cIJd!-G4qnu4_PzM=_GTl+IG!$pHSdq+u)659P2ZkV!YaxmKRoS zc00D;MdCxm?N_0nGA}S?DouNGgZF)8s!2@x)QcZxi(Sw7*e$mF#-|S5@*7{O`HzM! z$*!Ne(=FRg&iBsbtN@$D&4~_Q_DzY_G2M8nrCc}pPLSFBt#R51S2^y8x%Y+VVX?_> z^W52Ub}f5ddiL3!>$!$g=L-Zqyl**id7mopgGsadMd#01FaG^$YhmZd2WKYuzxVQD zygMuL@}knf{cdsQ9J$#6vzXTI^vzDV_%Z(si&&`d<>!^blP6~GUu7OTnf0IV7XKjY z$R}2-=D)mK6MOeS(81QPnVNM@v%X$u51kq(9~@d$>tR`1Yo^s;{&mUXteP3mJZGJoeqGH(R%G4m zU4g;NUHW-Su5(>Ay1%OESlsomXRaL*&uuM9Kcw=v&}!|SU5_OZNw zZhdvTuD#g)&rG*Dmvc|BHZ576Sr;N(-;$+O{`1+F<3*kKc_&VNVdYU$tF3igN89m6 zflT{EVRw#0e47hiq^&gWvOaWst(Ck(cJx!uCu%*>j(57mW4QNy^5y+nclAz4MdpFs zchWm^EQ3lqpYvY2AS+n+wmR+&-{Xosp(UxjZjMuTYKWEBcQ||#ILZ_z@!Ns%+6SHk zx1x4Sve)l$`^LdB=j5gHZ3jFv4(@x-zvE8R--a(QJsC7!b2Yr0wVZju)LS#lwaSi6 z=2c*z^7ZnhB^3p`+a@;kO>7cXW|dWDy>siB zJ(F^)m77-7cOwbS83sWcl9p^>Rc_Ul(98jA1u4{a;|l8$;gQgkFbFb8SaRW*$H9h) zPTb0@wFVlS`DG1*Hh={ec1}F?o29fzX@$sy-GFbC!LF>e*ikYt@H1`O&apm@i#BnIMnz?0#9yuqWdBYH7SHdBW zgDn%A1eIBt-EM9A&Y!fTwEJI4kH{IYV+|6)<~B@h;skkuOATaqX645VAD%`t$YpRd zsy^?N(41iyWRSEZ;h4w5R**@p=}AjU4MUZ(5|@04>A9kk#O=mq)+3T5vGS&A)SpF1 zHMiL$ot8EG8+ZEUR-3r9G5Z(X+viE|)rF2+6xjN&@7XM2}JQj9NY%((TJ;J8b!5bkU zy+Oe&!6oNF&kYCZjg3-nT&4$>tz9eyHgjJ4#97Zl$)EkNsjQA+P==$!g{FoDtc*9$ ztXg=z)OPdM53bRQcV`-S>bFhI3(V(s;}Yu;(UH)+VQ^{smCz#|t2Jz-+11nXRf}zmr&)o zEj&`*4J?Ode$v@tdFsu7@M^|4va$KM3_eu;6}>07Y>CO5jm`?QzBxo|DLS^_x|DlK zMVs@aRc|0mYPRXy{qN7ouM|Essl)co!deZLopXBMzxn-PF2DD>0}7`i-mHI_COFxg zrQRYc=%v<_^t8ONOU+aD_birjd7L$MiI!E!HjN~C;UjuA6}x7wdAT7dHG1l1!)bbZ z|8JIBJ-=+1&XT()`l~0p&wO7wcV4wj)x7uezx7h5EIq)prtHfPi$Bvi?9)Pc7uy_; zdvGk){>9lxWw+lq9Qi&;W5w(>lOC=rSe9P!;s?)-!2T^q>UT_e|KaLgwq-0cl-8EJ z$SnF=s~PkD*ioy*o1s2-@)N{Ycr(p?{B&`hj{YbA{BR||*n0kYn}E+hPq9Qu3iP!Z zd}G{n`UcB|g&%(Hc37Y&y6u|Y1N9@R7glYQ-K+6W>~3{>>3`dD`L;E0_8nXJ?s~G3 z;cVGC9q0bM{w238;tE3q`;~T+j=gf-O=Yv$a-Qwnyd`@3m-l9uxc=R)a}>G%res5r zRvpWUt~uSIQ4GZ_&p3F5fA9%kG`u=dM(;qANL^CIUJu4OGD!~K9t-xp=MFV`_BFf6 zYUZcUj`By2H2AOorM{SP<1cf0Ydzba3D+BJCHYt8&W<>`O=yE~HomH?b>Sz9HNhjxPXa6KP9-47I^={neGyP84ZtvXNUtQ@B z7T{da$F+Wn#usImg;VCdPMNoYc^U7|j!4C<8AtAg*V|pcos^w<-Hp?cZ(1Zrba8_F zGmr0<#ZSO!iA^!f^JUG&QL6na{0@<4@^;t9s9gwtT~uJUM`ljk=k9+M36sB1e*IA5 zvb*j^hNi~#CsyY)Zs!erz_mwSNaXu}23GdoM1K>fim3}NGS&v}WxrZ$=q|ojqou6k z!X%;RSq4lw2d0YMV}JRbJ5w`t%cRpEiw<8_arvB7J7c%f`vvLold9+K&b*ngYRuFe zal2`vzXQ9$gMN;Ve49;A^^>Z9%PJl_eShbp+8Omr&wePjS(mu#?`N6S{5QGI>i4d7 z-0t{#hotA!g=zbZLyt~tbco>E>fmBp<-4n>(pJxXhG974%hOViO$DDR?ced(Jma>% z`s9O8--T^pJ@Rk2+r?8Ywp#yW8SN@Tg1yu$qt*U$Fe`VHus#BTfxAa@5ZN05q&~oRr zy!-ovB!hpdM?F2FAa^;+@h_LTg~O>Ro86D13ZLKH{%BG*^ZQBjJ%98bZep>T@|8u) z{$b_fiUVFzx;{yjj{QsXTr^!*Urf)OB2(U!CfKlb#nuxOyIFU?*t$aD#v+G}dzc=| zSp3!&IJZAQVa{LC4*NB?8aWRr@VH#;{FfEEprkyTU$<4`ND2dgpoLsu7K5Xl!1;~4 z8V<0tg#Vv7gN?;jm5n3IpuymPCY!|phm?tI5>gX)S1If&f7!TJu5KZx?S?DNmz-Zb zS}u3v^+Vp+myNrZynd@)&AnxB?=JJNe=BxoT#1d&2i-q&Z@Y!+PGMfA4!AR&7*#I$Kui+bv7e z1hpdppZ0{w-I1B5+rl`R>9FbCt&BInf6;3TI`UvmL*B-yh2pK2dRrnEx3{SB_Um1k zv^;ap@|~A12c&;A>HBoFLMl^MUrey6MKx3FbAe&4o)7=qJ@c3h4)f27JyW7rx~Np- z>EeqaX-58!RYJ};zcgf;&t{n{ckHf@2&+My-;bu-lKJn0l43Pq-u+wf?X`Z5wUocm zdz;PtKVKf~-1|A;t3=txgy&0lG-W>h^XNOHsw021`Okm8A3mq;-goeit;?<76+bV+yK(XJ|9^8l`8u0<;clmCckZS!*NW7iwf=gGDe}RB z|JDY)UMay33w+vRHmzR&;&Ic(F4n^rOJ*L_HWR-%QR8sa!5Nh~(vfP@qfX_d2~}h_ z^w_T47f>W{R%=%E*@9QI8Xs(2p*iJC)Z;5cZ9%_;iqz-tsq}a8F}xPi86f)dvU(%^^^nB{Tp{|JFuLaSzc#u zPIUP8gPVQ|i%9q}8*EXF6ma8-&DeCum04%LyVRzbN4t9ZQjPC*neINdGVP77`P-HY z%`OXF_=`lizcb7(J@|0i)~7cWV;Q@%Qq{y~Y<}9OQ4;W_ z<2cu6{i&Zj$_@oAO!7NaAk-op7QkDuw>;-BV{O>^Z};k0Ghb+2Vw^0LQ@U+VrRVn? zwq-j`hg;h^m402-eB;^bjNV5sEr%PuZu1^Xs-pf$+0v^#}WhZS{2G%3#@5eqV)Ntua0xIq~?K`!`;gXUeX7 zb>fRQ|JC(>TK&`e75bn1uV2zFS8vH_)k@`Jk8Zsa zdfT>Q-|TOiuNJb1Z{Oe_`MWIcB;Wbl3!64HcGf0G9+>>0LY=!Pe7}-0^DHr*d6D}L z=f0}(ocY$*@r0gHQ@X5de`Py==YezU9@Maw?OJoq{K-X8-6@u3&80u`rB{`Ge)PFM zddmgdkXLED?4%8%U!68vdSkh(<(kc`40?d-Y27w(mZR3s@=Cf{Z^%J%-*#sJcqU$Xiq+O`o?U3t@bxs?c0s^ zg++#xM_$REuBsKwnm*;b|K!Q`eT6eFM!cIn#pA&5UF^p;U5Z|pGJ{vw&`)!B)?5Bp z_SS1|{^boz`>*(#F=O$cs6>_aw`^rgugL0}BtE#fr_bqwR+)8tsm+4;%DP0chCL?} zVlQRxdYCVk$G1(*kz=n~tvGD%WKiISqFX> zr2FpDt!Im9uCOmoF}2UVy0qxb>D1Z{GgtF%^IRcrd*aBZoKI83zt1YqTe&mmY`%eo zugv~TpIt#&hupT`+kRomgFM~~R?p`6v7d3-veYBwmSM8LL3z{8_bP&KYnOlQKH2bg zqFMHd{h3O~4R=X3&I-_$NMr1CYU?++|B4}f_gX(`WBb2T7s&9qI?Z3)^_Owg!hFA; zBhq;@Dm+yZE*{|0-f%!Ex~;S+tu^k&ap8!+EH7M^?l;RU$Oi}DCWii{S+gZ(9ylHn znBRFUV=3<&4Z%}eFI@;*B>#ee`-EWLir8!$W`+lgiXX7e2zZy)CU$*V+JZ;7jz~lo z`i2<#z7^Ee61}R%_MrEunwr=So3?zXB!g#C!p;RxlatbVR3C$mt@{7}N~~}HWe)+{ z+3^?I1)@@Ae%|KWF6bl^@L-d+u9M8IjmF7mpEz$cdh=%e@>RQb-Q9Luv61nh?#8)( zx9_f7x2o>_)%X8SsXzFe^!#(pou4oIqYWpkEZ-ez(WW$SM$ED3lXvbdTCY3zzWslfw7#ItA=5TAM$|7n&Wpx%N`npDFve z>=r+*{`+wL_xjIyidhkzxogd?nH5#H2s{!znRaN!#iS{`XCpt=-Qkq_Hm7EZ$r(vy zi@y$6g_7njJ>gsVFYB@HpUmp)cYD6S?cB3HO8=L(@#%$IdtWN9&0TlL%wEQ5M`q5S zM<>%i{|~XYXHqI=>7Bmt#20BV^WYV;J)Mj%ytX+ZS6Z_%ia|7C&jUhr`bP zMDL2S(%rQuwWhkfUtE(CdAO17->h4ixANp!16i3OH!ZQfn4=ozpTDi6H&biP_I=hi zlNgpwdbQw-s_7-U>)ASg?p<9}BszzA^-J6HO1}k^FTPw|E93jP!@b*h$9I*rti|7a z=B#GYowEMHiYd=moP92*UD>=cTxz4(oCz-j9|skr+U}bz_pRp7juz+Ys2y9En})8O zu#xAGP5jf$xa-}aLMktJ`5ev>JrWr@wRF-EN42NlgQrg0y>`bvd6yjmD>h8q%VlI9 z`m%Xi=;Q5O**pEUS37>+DiVGBzhK;wFIRprEt5z*SF$-f@Z6TW8vFQke&}+xA1FDd zldalUy`?>&CqM7K{K|<2A09t&_1B+xRK)XcZ_0y^m#j%5E1%S^?q9v>;hOht2Dz91 zO_;rDr{%jo-PK!GvaLHaJ@>os=dRMJd9?xNK9>KMhn86%RPgeexioX4sDSH|#5wMn zA}1`Ge{SabTq>cK8Th1o$-XI$OWfY^WS{=r^z(P7p!h?j6Wj)0pIT{uTB5V)w2!TM z#k{r8yRXhW6e{tEZRw}0%Y}k=@MOgaR&AEsv3NsO*k9o-{XZ{=_Dh5nR=k!K3yCi; zamqM;I!$@u@;9ooA{Xwq7j5ESx|_dw|E6C7zF!o#=;j??`m22Bl1V%oM`mkY=lICC zp-k;)=!~U*FTIqXe)`Pk0&l}vPcqNyJVxs`?{Xne|K|!uHKn23vo53%g%m&TQ|@ z+kW=!+O9h%+8m>cS^w`@{o0nby5e2H{p2Phs z`Crf3ifz`cN-!2bB@cNUEBNL+qVC>+py8);Tl7*FW9bds2z(N|x3Bm5qVS^Jbq9F!MV5 zD`48nvvxxK+wwPN z?ecs%Z^9Z!`#%#yf3D^Bi+!?trgm3o<0Z}6RkmzbYFRpPj)^qzH!;X z-OR~MjN!NWHm-|pR$Oh%rfvMd$`f&Ur`b{K;4KTC_gs+GkjO4tXzaFOs+~u4zyfp6 z#rX;g-yXUta^2>BZ-ab%to%KpX}z}_gFZz?V_~tY=;*cFZv$aS6{W`YDDFoqyMw~ zBTg4MTr+%Vrx<$9<-v?%pQiQBPBB+InV74)Yj=FIo9%X4>fFZMO_uDld*q{Zy{Em5 zIIptJ;Pj5ZH47`5?dPyAtJXH%)H-$E3@%T9A4Y?o?;(6;n{VE?eQ2Fmy8G?sd0uyJ zST4Cel{d7EF(GP=m`TU0Yo|~B5w+oSZQj3&tTsQ{d3BvFLJH+`c~+`R_k+N zj$*>C%!Y@RzfD=a+8sJ$S07lLqW!t$Rf2R!t*@M)TjlRbQ~dp|v|RnQYR)w7q`Pav zuFVQ@Tr-;^&H9$T_~}E@U8#*v+b}s3qti5KiN7DVi0m>5UTA%1N_f)qCXL{SKlYaM zyPbZlV8-Hd=GebSzqO9amdEVbGV9`GzS;5nYybc0TeO8QT-ASVTlJ=WYXxr?uwRji z{yNL|PvrIee_#BV-n;u`-5T|yG6M4&Zzsq0nJIsI5y)!NqqRWsQ3PL*!{Ka=1rJL_ zF4&3se>q?^|6%ZhK-II?temFaxG$RjWmi^)u32_BhI>MQn?Fdsx1H@#SxM zckU#1*kw(4=DA|ItH#4qY~>7+AO78WQ!W>j8PUPIXTs!N0!63HK3_O>HSXV?*FCk~ zPt48Agg3vQvo~<|66I^0o@UY$`4tzJu_f^B>}B8g?5>6p-znK9&JeaW>5KUk_FjnB z*ZuRQ)OFqK(8)fl_?^=v&aYUK=6)iqW1GtVN#DYM9bFuF_SjO(>->ww950-ow6g2w zsTpD?SokLgel5CdEF&hxU^zwY^v`Q*jzxZA-P{M8#J)YX3S&9Wlm8FAT-U+E|>gy>uve!6|)Lb7OpwD zvD9zL2b;46H!sBgEqQEX$!2LG@Wn!aVN2pZfq~>OfXpqX2Xcp>7{5C&Lq4&|+?e7;R<#}&;v~yp3Qh6rJDdkmHuNBO9E0NFoyJMC* z&->;cj*wMTw_dKC;V;EM-RimAT(bFCHv#&|9AAfYQFUFq=GiZPU|^bn-VnpvZQu(Wx7PxpGX(daf{EJ zppwUaa$ouXl>34PJ1*RPo{-kY`eh627n|r$BEQeJ+Fw|`dY9uDRkn$O4tfeTU-k%Q zwj|$K8+ugMM9We0&;32;9F*re3JbrV{i#nne8s=z6K^=o=PtH5EwNLMuU%m3q*FUi z?YK8#X7Eh*dolS%okfAoUM{=~+x~67a$)j4=_hYluUugapSLY>NwWd#Dc46oKV@cC z9gACh^7fkVerP^P^hezpiCgWLY4^-4v=Uo-Oevya>8yjIAvz~SlayDS;ahR& z_O&H}r&xcA_1v9y&1%b>OK%U{h>i4R>Yw|8rOM#jr6ehC2`{Vfb9$5iF@f3vTjs`d zF)0chTmOi$>Cg7O*U=Yvtr~Z+ISRhXn`@u$b~tR&^s2e-ffpMaKYp)$wZ7Fe;0f!# zg7jM(ALU1%6I}4{{L%|ve0%#OYqK*x&J^ zU-5eO)VjngHU^1nUaY;)`{QKc%%I7MH|u1syB(R@bfRsdxzVYH1cMz)14oWTn;m@H;zM

pEi};ZG}c_cOocNqrG(b)js* zdda?%C$`nh;8qczEN9DC_xtU-C+ESLP&Pk!WbFV<5#Q$DVeHRY;{|H~(7ivs*7 z8W%Sh&$zIv{^rJWIa7Mt9D4eut(7&Ld*H{5f{mx%U)1(IJFm+&xMew8I76tpz=ZQ6 zXPQL!9{J)OV!W^1vE6mKmcH=E(w3JuHs>33`iY7kFZr>{?p@TfDJNokz3gBbY28@xCDwal-kM%VhvOgq&(EA( z8kZD%A!Uu8`m+C_TIZ{8tqWi8=y-`a`^>BNFQ54Q-xKuwMbf30Ve_h_+T3}2)2weg zA6000r@3$P9$j{JckRia&NFf?NQ-0qm45k2KxC-y5zD4;64DYufy&G(H`Nwj$zPjw zGVXsa^NB~jNjpl^SBWr6Xo{KUpJBdqwM;8u%kKLN?yRWT_-AVQzhf@!^3i9nt7SX9 zUJ&aduhYq7D(^W%&Y~^+hl+|br`SdB9{(th5bdVMNiTT!Fz(sy^6jNq<1%~2YZpyI zPJ7)y^t~&?=|HchNp($Mnvh94LsS9Nb}83P;ch{p#6WY?ASvrx%?0xm$%E52S>J+;$t_PK;-}PVBwAvh!I#q35 zpTlZD1@%U$u4|3|eBanMD(yd0w%m>9ex|AU4bIyP7wazR+%AZm%H{F?zPQP**|XoI zEUwCrOBSq4d@r_m%QW|${MPSV_fDAJ{b9ZQg_Ez@zkK>tcz4gf)$=VsP5s3+UEAk$ z#8hsN3MRAnFG|9+4yY_t$+_d=cwBZai&P@pj*lA~W@pM&CT%(W&vI_~+iqiFWa`Q zUi!=Td*aWQ241g9J#A_iox+r2;hrV6G3LqX%Z{=u*`FJxSp8(M-()#8uhzb6?W9Mc zb|IU&N;6BN0+)4%zFb?J*cTLc*5__aze-22MvKkT)Y4W)@QOV0E^-MKwdJly_J+5vWp&pB*b*Ug;YNOm%KJGR_i zC&<1{{K&H8`+3G1e}0-Z?`rP}sC@nKeeIr;tJqh{acP+gF@NO$tW>P^z;bh2m6Vt2 z+5aoGBaNrM|D>4xpxm-@V@KCUGCn*1LS65U1evgqe0(KecKAb zp9aE{8o#Zu`6E2Dx2@tzQ{6_}(99XGYML6wCv49b^hYd9YL&QqLSy+=i(`MXW?V}! zv0eV%>!V>wU(#*&Hwjj9{c6v7s@2tZ%uSoo_W1MTPLYqF6YrdL+p@l^S8d~*6+3Ro z7oM<6_C3P?Lr}W^-?YhvSCS*YOwHZ<>hPjo_v-GPEeZ-dDRJFS=G0=j+jV!tCmz+Ayj*b^=Y$K^jW>61%9q^NI`d+s zV!Bmf_(nUOldUgZ*1h(+J)v)kTpW*nhm83*-P^o7@+0m<71f6H%{JI0SF>ZLd(7Tb zg~GDe-)*e@dEJDSZ{Mxg#jlPeEZFpi-{7e=FXPlXPhGDvNWHtii(BsS`c#R@|6bgi z?fJ%iSvKeWF6MBTOFly9{ad8FP6!7{?VG!!^SR);zZMM>EXCvegJx(6KQlP|ws80J z4|6y*RJx9Z%xrw5baVmlQN!KGuW}fiPU&_o)YgScV*shbjV2`o5+ty3wpAtg^ zEBttvr{DSD*w^&B=?!lTQ(2~`NMqx+l-$eDn)Q>m_PdN;an|gYmiyP} z78&bJ*#9o;?}caK#}D2wDXO$vB+zCp)4x>gxa(r)CE=POm!;0?-|e)GiPOvZeo0d9 ze9lVKJ-ZA=zGk&aHyAm*oF2cV>c->OWxI4vKk$g*XjJ(ZN%p$te@PM6$B*)I zzqNU~Vo^|AhU@PLH&y$CE1&$I7wYL8ry706Yuk>gnm)=Oe8qmH320ed{5vmiRpZhx z%6Hi>J9PfCd(o3|A$x_vW?8R{8!zKSU$4G+f2o1vWqZ55UY8%Mb|yVP5;?Ew%l8kr zB6lTg^evgVcS-Ca&VN#QDlh$1y!JGH^ZxKdB>j`9hmEYa;O7G?&N(m$zU>qZ*PC&* z`F>K#@i5Na=Z&W=J@l&C?Sb!}YH95$E-McnHGZ}JhRLdF6DM{~X#DPCYO_|3dD^o6 z)n63$pEa-a=@U>}{Yq^4@!wN8_1?M&&ahe~8udVW!wHU=oiDd59o}RT+g$(a!1eDM zlk+}&sZm)mZQ4}#l?L3Ru5mZQm0kH$Zhku8!Bg8mbL*)^F`llLQy2q|MJ(ag@nPgy zf2XLNRXWP4hhf(2g`V+U`8DD`iRUc88O<+uJfCIReaY*1 zoKL&)p1h5WmoDv`**m@avKkMQ;>9Pzn;)J$awWE1u2v-~TyNcHj3^0XrW*I=x4WKX1;%se5lunY!}cymS|~;KL4qp}GN1Vy(;8X*ue1 z%visow%`$u{+meql~r5iPTXC;E7YSmB51Eja)i$LI}hJf{op??D;KXb?aAQ-{Yl~m z6{n*T#XqowoO$;4c-7x2b#Ke!gy#iudz1Ja67#Hvh7o_b#XIvb|TW*kWgw zRewn5DG7a>cV*t6`S4tOWIQ3fm{xL6ZzGvc`BG(uDllB?%-(ibnNVd^f->vN6 zeqi>unk)BD>}5SXwS%FVDo>~rU~1=pKAFI6#5c=zL0fY*)g4cZrK zm;OI#``YE*+!Nn^JS%toc~2{N+uZNXs^|H0S|9RkJna}0%ooNS#rE3$gVSM)1rtKV z<~TVkMeVQ9-nR1-8?#@4!*{DozWs$&6WaGO^Jpk4cQQqu)}Pe0^kDX>=*iL6NgO3F zl=n=R6kw~aShve&&%TGj*|YhMyRaKg(_;PgecP0|hK+t*uNurWm-3wB(5n=b$ZVA> zN=n(gvo7ZD$34MUCX3(s{bqBE>qo22?PhDMJM!z-6dqTPKFY(aD_5m(Qdd}>{rvt3 zJ;uLV4wnZ$KXN=m?3lWZ6w{*_cO^~U{yT9{d+}n6hKa{M@9|n|oPKdyRlU~U&L12m zN9M-pxS7cd?|*D9cwF}En}?68%iE4`Hp5A@& zyVSedWwYDTfBoGczA`OgW!(egyBGHCTiEXN*+5Zqp2=;qJC$ue^xQlPIg%%xl<0XG zYoC7mIx~M3*V;zS(^Ar3ey>{jW9i%1))#lq+_$-d>1&sV&HdLr7uG58x4&Q$`N5l} zmNDUefzf|%j=%XY7zFoB@Me0Zp&=l1&0-xNpXIs4zRjkSRy3ss#&EYyzHwOf?rt9e zJN257Q!DOlmwMFGzdz9R^1@}il7IjBG~3!X{#N(Nf)sCq&Yue`Y)%e?fMaMS+CRZ6F`1irHW)!5WjC7%`U8|t1VF4B6f!CN9~ zG5eo}qJIt19D275ZE_yQoef>op4>lee%)E`l}Fb-HS*H9{9eRx`Sax8Y^NM#cQyNO z^=Q^zVywvi`r*Qb8Ex->buGG*tXZO_psmBdXm5pSZP1k}ovm`-tB+sWwxK9Km0$PE zx%iiR^KHr^+Y*<*N?VZiD*pA}**g|hWz3R)C$-2f=Rsk>iM5P-_F5FrvS`VOHY-{# zdpqw*1OIVz-vjQOPrkWixpRiT@%-4Odo3P?oMtzA_U2KRO{__mTY*TheclV_d8UO7 z+RuK~8?O6sxsj>pG4I1;{Qt`LR=m^s|28*&=ONaOhRaXtFu#rKlk$)k*>Q3a+twfp zzoy^MC**b?+GMyvTEp9IeS2+M#H@2EH~VME8HNT&>~Y19t(#AYyY43t9eE0*}AriPIuHk=gwG> zukCm=eZi~f1yOvf-ZI?P_{`&#|C!}$Ti=vt{aj0T?pnXt^t-gHc9~*s@E_j~bKc#a z;Qm`XY)X(b-|7#dd?s1D7MZnNzt?u(AVqpgj!3tgeSJv9rljrGYmY&oCVSZ3u`uKAA&vISH5Uubc1pH}~!7<}wdQ(?sx{))d7ULWR? z(AqwC!GG{+HHXq|!BaAKVk7hKmwzeMz6rtDc*>Xf0p*7se^4XKr)5cAxLXg5E7|*E6as<|Z_M-0im`>*c!OJ%1kG zocUFD-TrqGdySG@Qlr@R?cbiTM)TUof4NI;#(Ql$!Iv1h%QiLbWqId0p}eUJmcHV+ z#8%w0NZ?Akqd@As1(9zIZ60ge2yLG6p+_~7f#nUit(V02_KOEqjwJLM%&kh%wTh^k zGB4ER|BDj>@_Rn{%NsF&){+zRpKZF$XTnn1^_TQtJ&6?ZxMME)-r&uwS64cD6R#Zm z`sMeIC1L!f8^z~3-<4}QDc(3g$C6J?=7(03QUiahh~U{p1|MwRUA9OzI2Nhk;l-)S zFMa&tynj2^&EI68D>N;gzgkEn&CqII|HpKN?dzUy-8Sv5U+Ma{tNB`!Do)-?{`)+g z)3NX0?RR%(y$*OeeaplNma+af?kxOtE8BPZqlPK*Cu2684gJvf@%YyA<$)_VMX6uq ztzqlfX&IDf`!*u8#CFZRdKVXE;r^7lvCkg0_tv~W{r+S4$JO1^>&icI3*|4!d+{Qp ztW|SEwW@T5j1M_cBdi?CjfQ@Ab#Gg~y+| z{mW$5&C6U@ZhZ>+Dzs1I$Tyv5KZTeJc^3$-5IDK?^OMdsF2~+!+D|P%EpuA*La4+P zy~QU_Np^7D-O9DmOG{WZMc=!8*5T-;TX8ckI({#Xn>xevg5=?!TXlN%eK&Kg{pR)d zbmQDTsmHB49QnOPHM-|5n5H|~Q|kD|c0((ZQ02{*+Pe)?%aXP}I{l;V;SWyfX^$^X z-X-#>_(^GD=;8_NuXu9jrk%0weNggaq4CCO{wI7>^{Zc%uwD=RbDaJ7eTS#X-8Xig zOF7c_=R$P*{dx2E$=j9QYY&?JtoBsmu2Aj69$!Ac`u?yaRlZ~8)n0{f_btyHzI^28 z5@X|AAL|~qoD&V5UiOe#Lg;rQzYo8H{U$N?#FZZoYotX!3uM$5RqSasQDOA$eD7+~ z8oPy~yZTA=i5is+7Mn5!d=4kvcyu89-qg+%mmlxmeEIX`?QgSAwziZTuMUWRaJ;!d zs3*sP+3mcZiJ=3Zbo7RGiLLJHVJqg%+f)Db_RAf|kI$=QkUMx(+_~9h-fvGWn{yEd zh3q*N@6q_9&|Nc0{r0p!?RTbcuP(g)bjF|A8#8#Hy}AANH1o>^A@=)<;_Ecmoi-B- zVy`;6`B8Vbc)tCd2N&ke{r9SeW1q0 zTXi$x!GmkRQfHda)ot!KJSgXH?6&hbm!SH-`D&fVT{RY|bZK}x-3hoOzb5FJn4Y%! z)P$)Ar=(;jO#KvmP2gtj5tpxt2aG!dZus+U6wE4=U%qL!#EPn&(=%7oa)oh)B_-AcD8Mf>tjIds@{yT;T{PCIS z=ah4<*@fNITVQ)pX3s*di21J~YVUYoaFZ$$S{IYten_S9R@xfF7pp3^->GMs{>1B?xy}-tIB819``Jsx z+)r9K-#F)DnY7>W-Q{<8l%B`!bj>>V`pTk{=dLJC4$nDze(e(N%JHvz1p(8SI20iD$Hhi-+MTZA-_0PHd@%CJ1MFq^1;Q1 z0(&7w?iC6mcI-21?Ia2lgP!awpFic#yG=8BbY~asopAlTCTptEo{!;~&#Kv`|9taD zw5lv5=GB8!KlevTzYJf~yYA!>vx_UZo*(?_vRc*rQ_N(|HO-&AEO;Ws~q#=^`!n%XS?+#n$N3v#|nQY^6XoUxp;w6^<4j# zpSrDG&bstLz4hY5ftyoYBjtOq9%$SZU>bYnvnr3|^l4^$4*Qnd?cTXU?fU2JTTfC~ zZrmk(ud?hxjMAra~IF|b^js5tku7>ILkHnHMZg$~| zGWZqhSE(A3!x;F(OGVl0aQalE{Aup9BcnntTvT(9n^P6&>AmzJ_tBW@j~B9*o_b<= z>&U)&`;VKQepX$BMeSXS+EIpP${bG_s!a)c*pL=7)21KD>_hY2civ z|Lm*mI_|G$W^z3L@O)%VkI6DIy&FfJI9lsot<9TRtl+nh*Z2H!$-2IV9cN^t!35R9R{AOTf8MNzb<=LIZ zc}0x#PG?UF_}u&PPTRjv#yn|W8<&d|BK0+Gv{cE zj7{0QXWo@Ji_Ufn*{f`eDY%lqAYA?-qkIT+lg?3DJC?pJ>zeD%%*uPb-ZJCUt;&Pz zD}A+}-<=eis@J_=ueh!^Q}TeJUGBP&Spw7UTzOg#ZkN27dp7@;hsc5RyX#wzE=-!; zk<={gbZLv8>Z(vLWdpC`O~=w=)=130wJb91)&G0n4U>6%rFY#rELX&won~|Y^E2E1 z_pQTKYP1|C`{-DxUy%--d3*(T-l0~usEL*Fv=l8dTaqFw*n7(T1(G2{$;P*qZV|yY3<}|hb=$b#Z#mLR1-{JY2v-y14O)@`D zHEq1S|M`jqE!sMX2Q{y|#;X3YjNQKJ&*$!zZmqZ&t+S>-#ge8>l>Yu!;BfVd_wjok zUip0dT>HX{56-S?^lKFP@qD4l9uetVg#xagIsy9^&3oAVxbNdyuY>g)-H#o9{qWJJ z#;#CFjR@AIE3*y-dTfc=lsyrA3r$~81`io}$I$M5h-_iVnLyd}fv&1yFem4Gkai}`xf3}l-@t-ENgSO(MPhqC>>ZS3rgFOom7cm4Wse%HZed#X0D zZ(0y=F~@Y}B5RqyA9LH=ceAdOT;KCh{rcziGUYAuYrgz^Ut%V4VB1P{hg@Fm)k3c=rB;^wsFBPik|lR!(0xiRW>iq`6U?ld}Gz>R%tFt{q~^{A=yC%+x1jr_q{uiQj&0yZc`2@tMHe zm!g&h&RO^Wopi8NafIPMeql}BO&|KE_;xg&aqT!FJ3%}nI_%cczF2j3i|~IHFM98M z{C(=I%rng>xqWMrBj(ziPc$)LlgKIBAbojusD$>lEr*p3EVOr9;pfAu@^P+<-GZ{t z=M4D@3MZa=`4&Irk6Lp$AnW}z#yLMfosL?Tx@lp*Rnf_-hCv?AZqb5Ty8QAs1|9EJ zOGLLMo0ZwGe04^XweHk}<&%0eCP>Zgoo;yal+$X4Ki-oZS`?N%xU*D=Gf;&qOh52x z_Frbv$YUvq86Q8TEk4BGy1wYAXl56eElW~(!)4jnJ)4E@aTeQYY+`xB81pK#%>VDS z@P!%EO;h=2?c|&u`N87xt839y6!zy_5k6sa@A?c`ZRTBJ%Dt(a``@o}Y&&yfsde7d z{YG`{fxkm$Il9j&TiYk<;<&z9K>4=G?M9PUTk$gMSEc`|rWo%^?cNrZDBvmBH90`$ zfTZe|)!&Z)_&(?2e^!$#Kl&FgybmtN?!*S>-!c%WliPo&c5&3EPE(eE?VcU3mqV-s z-ZJM4MmL2VbdWO0z4YsT`Te_=Wlmezb}hGkbmRWbcG>#!eRC{1HP`1DYwK4zmE^bm z*WQ^i^Yq0JpZ;cB2PNiTHJaNLzSr-{`9*Oq!38^ITqO4%>%TM2J$LGA*{Peo^*aun z+oh1Mc>l*+;dSQ{3^=4W>Y1o+ResKXTCnxfy22Z8RJvW~O^vsh^h|uFzRUO9>wlNZ zzRbSEUd;5l*!}nUlschq`I3iXz0IpRs!Y<~{$BQSUw+iW{EzAU(S{GYjiSy;>lw%G zjkli5Sn+`I!32YtWTyp=r$5|%l(SpsO}wWTOJvK^wZGf#8sb_$8*1K>-S^^Y`MIx2?X|wen{)QBw`jP;wyw@u{bl~4 zEeDRaYDKJ#=I^!c>jQ$drgZBT{;X1UHjv)H zWN|nAN6)diwdsxe4JDekn(u5<7&BMx+EU6~Y%Y0siM-vpw(SOs*XNc#2o#n-bywXZ zA?jn`lHay*o5N;*Sz9<=heK-0@n!SWlH})i)cvVl6SC}UmP>|7D67G`6_0h>L-$s2 z+2^SxSlKhzS>?0X&DsBQUSD6>*$2xn7Z%ye+@GU(*vwY!OOW5D?x1rTsxmHTf?HOE zRI2E1+?JYqqI%^$$$(<-M-m_3)lK8ckB^PY=MR&OGrFSf|0w^bp_KomN~2xdL=7L# zO};!amT#Um|2114iTx6@R=xPU`%vuDwQADm#Kj)|e;QhPW6HJAwGjfpgHx_Go%r>G zUEyP=2Frx^!S{T9tbf{g=A=2qd-s2xxAO3_hw62I7QF55S;w`va#K*ZMC>`u?XPM> zD)&!6TDiU7|J|JZtBMMKgU|mz8yi`C*+Za?Z-3G${*XLkg?XPTDzO`<;J1JMjyQhl1;_5Bg^-&$+YwhB; z?kfvWU39fLtW+*(&Z(2?5iwj|6W?`6mCQBz=(K%XWAG}reUI1(VF& z@+Qhlq%#|;u+Ei`pYw6fy}IzgZT}3y`>l6;S$)a+`T~Yt!J{u6YUQ`x`@GEL#xI)* z{GWLOilSKeI`L$!@cD96_WM0&+5B^Ho}EcotN*j@@VU3{ROzkvM_%uG|1)&|YqmQN z^6#k&!k6v&93>~9;gweU#&We@%2ZpBFnjF=gm!?f8YM^ zYFmzqfc_-mdMSlX`Hqv?ef!#(!Y1WgIxm<1V_{U&u;bLXKOG8Iflh8I3hUYD6c#w# z-2W`;1wJ&)+ioM2m27}%-Spm#Uqe!|C%8tYZ}_-M!!_br;Unm=>0Tzik& zLxW0H<>fjZvp5CjOZc?R>be`cDB_KWB~yQhmzCP~LyKphKjQ4R^l;mLE04{~Ydl?- z=&#JbFT$++!_xZa-!DE+N&?x3OZIf_)2ZN|V79XHjt^sh(VVsCMV{?Y+;E^hRWK?^ z>6$Xvz2s~K*2If{H1;TQ@;`Z+q$}pwKDlhc-@Z*XUl}}ng7hMOG@O%N7im`KIJ4gK zfsEYqUBOkNFD@A+i=KF!Z6|&rZ@Xv!OF)XIjKBx z1J2egdAiN^xZvZflRZ-6J42$F*~Qo{-u^9+{;)whV_9%om-?o#hx{!;_g*f2^n1sV z^-1Rreh##fDw2E6bnm6}J*_nD1v@2$|6aPmpM9tGOYgEY8-dmKsd^5J>cf;4$4q(Z zJ}Yg@(NjMoi&7QTrYo;Gd);knQ1DsdO@cvL33IyNzm2>u947qZaT>pq-Ti-ZDpu!a z>|BzcUcb+-@>kNgch4^^50=+XH5ary`ze`4x2e!%%d4w`D{uGQdlJMb#2!2ET}fAW zNh{~MnAu1DCx)`LU(%erV^4;}s>65BpFFrt(}MA%Dbx4<19?V1D_Z{wJo$B??J|p9 z(%#7}BG%6vwlo~Mrh5GQvC~2UE7MNB)mpu@-RV=3`_$66t>5yhvX?(uKjr!vzQZaK z){$k*Pq*GaX2yFh_sexD$r&G^|-l}_EuYbIb3K|cvvSwXAWn^&AK@j>*n8# ze4@MT@`aBw)-!HwEaTtbt7k4zzW0pyl!V_GXUX+wReoT(wLx!RLlwJ~i?z~sopn=; zk8b`ISCO;Z*8gMC=0nyY7M?FR&Z=dT)jhYG+i!+$#$;8OWls{y_w@xHlP;e*Q_kUr z`?n%{evA3PRo|R@)~=zFovyvXX`z7K=l>hJmCsD_>V{)d1pV-9NN7uF*Ocb4cj)y^(s7ubt;r-$7~T(@2m{t3H7U1wp6g#$CSMC zQ_j?X&HuOkWnLy#k#a+A`|S_Au7#GaPhM`S`)k{hz^_kVP3An_;CX)OeXEs%oqh~Y zKTO{^LukW%m(VW&JikFt;J-`A7LPe|^1GyglxRs3y)o9A;hV_P*`^dex_iFQ0fN-{+r{ zBDM2mis9GE1{|BNl>c4%-Y@C)++UAb-yzSlZ#@#Ha?NDuG5X18@1|(_4bmh58;J+4k5X z#%IqB@5>u)=N_47`;|$(Yw`i#-v`~yKU^`tS9zxOeed#hlUu7RU&YqHNZ<^K?lIe*<@s*+&65uoOSShK*~V=>eEinMhsmWja$(nNqoTv#t&FX)TooL9 RUHZ5Do{vW^x5;ud005?8u7v;q diff --git a/pkgs/development/libraries/glibc/2.34-master.patch.gz b/pkgs/development/libraries/glibc/2.34-master.patch.gz new file mode 100644 index 0000000000000000000000000000000000000000..8fb02ca6d72171a183725a558e128ca878c8b203 GIT binary patch literal 122816 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 literal 0 HcmV?d00001 diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix index ffec9972d287..45fceace18be 100644 --- a/pkgs/development/libraries/glibc/common.nix +++ b/pkgs/development/libraries/glibc/common.nix @@ -43,9 +43,9 @@ } @ args: let - version = "2.33"; - patchSuffix = "-117"; - sha256 = "sha256-LiVWAA4QXb1X8Layoy/yzxc73k8Nhd/8z9i35RoGd/8="; + version = "2.34"; + patchSuffix = "-115"; + sha256 = "sha256-RNJqH+ILiFOkj0cOrQHkJ56GmsFJsZXdpORKGV2YGrI="; in assert withLinuxHeaders -> linuxHeaders != null; @@ -62,14 +62,14 @@ stdenv.mkDerivation ({ patches = [ /* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping. - $ git fetch --all -p && git checkout origin/release/2.33/master && git describe - glibc-2.33-117-g55446dd8a2 - $ git show --minimal --reverse glibc-2.33.. | gzip -9n --rsyncable - > 2.33-master.patch.gz + $ git fetch --all -p && git checkout origin/release/2.34/master && git describe + glibc-2.34-115-gd5d1c95aaf + $ git show --minimal --reverse glibc-2.34.. | gzip -9n --rsyncable - > 2.34-master.patch.gz To compare the archive contents zdiff can be used. - $ zdiff -u 2.33-master.patch.gz ../nixpkgs/pkgs/development/libraries/glibc/2.33-master.patch.gz + $ zdiff -u 2.34-master.patch.gz ../nixpkgs/pkgs/development/libraries/glibc/2.34-master.patch.gz */ - ./2.33-master.patch.gz + ./2.34-master.patch.gz /* Allow NixOS and Nix to handle the locale-archive. */ ./nix-locale-archive.patch diff --git a/pkgs/development/libraries/glibc/nix-locale-archive.patch b/pkgs/development/libraries/glibc/nix-locale-archive.patch index 39312951fcf9..2fedf2a7a7db 100644 --- a/pkgs/development/libraries/glibc/nix-locale-archive.patch +++ b/pkgs/development/libraries/glibc/nix-locale-archive.patch @@ -1,7 +1,8 @@ -diff -Naur glibc-2.27-orig/locale/loadarchive.c glibc-2.27/locale/loadarchive.c ---- glibc-2.27-orig/locale/loadarchive.c 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27/locale/loadarchive.c 2018-02-17 22:32:25.680169462 -0500 -@@ -123,6 +123,23 @@ +diff --git a/locale/loadarchive.c b/locale/loadarchive.c +index 512769eaec..171dbb4ad9 100644 +--- a/locale/loadarchive.c ++++ b/locale/loadarchive.c +@@ -123,6 +123,23 @@ calculate_head_size (const struct locarhead *h) return MAX (namehash_end, MAX (string_end, locrectab_end)); } @@ -25,7 +26,7 @@ diff -Naur glibc-2.27-orig/locale/loadarchive.c glibc-2.27/locale/loadarchive.c /* Find the locale *NAMEP in the locale archive, and return the internalized data structure for its CATEGORY data. If this locale has -@@ -202,7 +219,7 @@ +@@ -202,7 +219,7 @@ _nl_load_locale_from_archive (int category, const char **namep) archmapped = &headmap; /* The archive has never been opened. */ @@ -34,23 +35,25 @@ diff -Naur glibc-2.27-orig/locale/loadarchive.c glibc-2.27/locale/loadarchive.c if (fd < 0) /* Cannot open the archive, for whatever reason. */ return NULL; -@@ -397,8 +414,7 @@ +@@ -397,8 +414,7 @@ _nl_load_locale_from_archive (int category, const char **namep) if (fd == -1) { - struct stat64 st; + struct __stat64_t64 st; - fd = __open_nocancel (archfname, - O_RDONLY|O_LARGEFILE|O_CLOEXEC); -+ fd = open_locale_archive (); ++ fd = open_locale_archive(); if (fd == -1) /* Cannot open the archive, for whatever reason. */ return NULL; -diff -Naur glibc-2.27-orig/locale/programs/locale.c glibc-2.27/locale/programs/locale.c ---- glibc-2.27-orig/locale/programs/locale.c 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27/locale/programs/locale.c 2018-02-17 22:36:39.726293213 -0500 -@@ -633,6 +633,24 @@ +diff --git a/locale/programs/locale.c b/locale/programs/locale.c +index ca0a95be99..e484783402 100644 +--- a/locale/programs/locale.c ++++ b/locale/programs/locale.c +@@ -633,6 +633,24 @@ nameentcmp (const void *a, const void *b) + } - static int ++static int +open_locale_archive (void) +{ + int fd = -1; @@ -68,11 +71,10 @@ diff -Naur glibc-2.27-orig/locale/programs/locale.c glibc-2.27/locale/programs/l +} + + -+static int + static int write_archive_locales (void **all_datap, char *linebuf) { - struct stat64 st; -@@ -644,7 +662,7 @@ +@@ -645,7 +663,7 @@ write_archive_locales (void **all_datap, char *linebuf) int fd, ret = 0; uint32_t cnt; @@ -81,10 +83,11 @@ diff -Naur glibc-2.27-orig/locale/programs/locale.c glibc-2.27/locale/programs/l if (fd < 0) return 0; -diff -Naur glibc-2.27-orig/locale/programs/locarchive.c glibc-2.27/locale/programs/locarchive.c ---- glibc-2.27-orig/locale/programs/locarchive.c 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27/locale/programs/locarchive.c 2018-02-17 22:40:51.245293975 -0500 -@@ -117,6 +117,22 @@ +diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c +index f38e835c52..779a3199fc 100644 +--- a/locale/programs/locarchive.c ++++ b/locale/programs/locarchive.c +@@ -117,6 +117,22 @@ prepare_address_space (int fd, size_t total, size_t *reserved, int *xflags, } @@ -107,7 +110,7 @@ diff -Naur glibc-2.27-orig/locale/programs/locarchive.c glibc-2.27/locale/progra static void create_archive (const char *archivefname, struct locarhandle *ah) { -@@ -578,7 +594,7 @@ +@@ -578,7 +594,7 @@ open_archive (struct locarhandle *ah, bool readonly) while (1) { /* Open the archive. We must have exclusive write access. */ From 7459a4021cb33d71598f0cbf8c798f9168638d3f Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 22 Aug 2021 19:39:47 +0200 Subject: [PATCH 02/73] stdenv-bootstrap: force using new libc from stage2 This fix is needed to work around linker-errors such as undefined reference to `__libc_csu_fini' which I got in almost every derivation which is part of stage2. The reasoning behind this is that the startup-code was simplified[1] and thus `__libc_csu_fini` doesn't exist anymore. A workable solution is to use a newer libc which properly links in stage3. And actually this seems expected given the rationale for stage3: # Construct a third stdenv identical to the 2nd, except that this # one uses the rebuilt Glibc from stage2. It still uses the recent # binutils and rest of the bootstrap tools, including GCC. So this patch basically overrides the libraries inside `gcc-unwrapped` - which is basically the bootstrap tools and thus also contains the libc used in stage3 - with the shared objects from the freshly built libc from stage2. [1] https://sourceware.org/pipermail/libc-alpha/2021-March/123079.html --- pkgs/stdenv/linux/default.nix | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix index d2c28b97ff93..e20ea9e16860 100644 --- a/pkgs/stdenv/linux/default.nix +++ b/pkgs/stdenv/linux/default.nix @@ -230,7 +230,7 @@ in overrides = self: super: { inherit (prevStage) ccWrapperStdenv - gcc-unwrapped coreutils gnugrep + coreutils gnugrep perl gnum4 bison; dejagnu = super.dejagnu.overrideAttrs (a: { doCheck = false; } ); @@ -254,6 +254,19 @@ in ''; }); + gcc-unwrapped = self.stdenvNoCC.mkDerivation { + inherit (prevStage.gcc-unwrapped) name; + dontUnpack = true; + dontBuild = true; + installPhase = '' + mkdir -p $out + cp -ar ${prevStage.gcc-unwrapped}/* $out/ + chmod -R a+w $out/ + cp -a ${getLibc self}/lib/* $out/lib/ + chmod -R a-w $out/ + ''; + }; + # This also contains the full, dynamically linked, final Glibc. binutils = prevStage.binutils.override { # Rewrap the binutils with the new glibc, so both the next From 7bc32b3e5cc623a7b4b0fad900db26258592b9e6 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 22 Aug 2021 19:40:56 +0200 Subject: [PATCH 03/73] glibc: symlink `libpthread.so -> libpthread.so.0` (same for `-lrt`) for backwards compatibility Linking via `-lpthread` (or `-pthread`) is not needed anymore since `glibc-2.34` since all the functionality is part of `libc.so.6` and `libpthread.so.6` only exists for backwards-compatibility. However, e.g. `gcc` (`libgomp` to be precise) expects a `libpthread.so` to link against, otherwise the configure script will fail. As already stated in the glibc release-notes itself, it is to expect that a lot more applications will have issues with this, so I decided to re-add `libpthread.so` as well. For `librt.so.1`, the same thing is needed to make sure that Perl still compiles: /nix/store/d6y5r7m93x14bmgn2p75fannz39jz66f-binutils-2.35.1/bin/ld: cannot find -lrt collect2: error: ld returned 1 exit status make[1]: *** [Makefile:490: ../../lib/auto/Time/HiRes/HiRes.so] Error 1 make[1]: Leaving directory '/build/perl-5.34.0/dist/Time-HiRes' --- pkgs/development/libraries/glibc/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/development/libraries/glibc/default.nix b/pkgs/development/libraries/glibc/default.nix index caaacfe4f436..dfe1d2db7d58 100644 --- a/pkgs/development/libraries/glibc/default.nix +++ b/pkgs/development/libraries/glibc/default.nix @@ -119,6 +119,14 @@ callPackage ./common.nix { inherit stdenv; } { # Get rid of more unnecessary stuff. rm -rf $out/var $bin/bin/sln + + # Backwards-compatibility to fix e.g. + # "configure: error: Pthreads are required to build libgomp" during `gcc`-build + # because it's not actually needed anymore to link against `pthreads` since + # it's now part of `libc.so.6` itself, but the gcc build breaks if + # this doesn't work. + ln -sf $out/lib/libpthread.so.0 $out/lib/libpthread.so + ln -sf $out/lib/librt.so.1 $out/lib/librt.so '' # For some reason these aren't stripped otherwise and retain reference # to bootstrap-tools; on cross-arm this stripping would break objects. From 49028fb110ffb19e5326879d7ec6245ebd0315d2 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Mon, 23 Aug 2021 12:12:17 +0200 Subject: [PATCH 04/73] findutils: fix build w/glibc-2.34 This "-D__nonnull\\(params\\)=" leads to a compilation failure in e.g. the configure phase: configure:21131: gcc -c -D__nonnull\(params\)= conftest.c >&5 : warning: ISO C99 requires whitespace after the macro name : error: stray '\' in program : error: expected ',' or ';' before '(' token : error: stray '\' in program According to the commit this isn't even needed on Linux. I confirmed that this is an (expectable) glibc-2.34 thing by checking that * the issue doesn't occur with gcc 10/11 on a recent glibc-2.33 staging. * the issue DOES occur in a docker container with Fedora rawhide (which has glibc 2.34 and gcc 11). --- pkgs/tools/misc/findutils/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/misc/findutils/default.nix b/pkgs/tools/misc/findutils/default.nix index 3746c4b4657f..56d710c85454 100644 --- a/pkgs/tools/misc/findutils/default.nix +++ b/pkgs/tools/misc/findutils/default.nix @@ -40,7 +40,7 @@ stdenv.mkDerivation rec { "--localstatedir=/var/cache" ]; - CFLAGS = [ + CFLAGS = lib.optionals stdenv.isDarwin [ # TODO: Revisit upstream issue https://savannah.gnu.org/bugs/?59972 # https://github.com/Homebrew/homebrew-core/pull/69761#issuecomment-770268478 "-D__nonnull\\(params\\)=" From 9fe34ccfbe8e80f6c0c5b2df3625e0e44d2ed070 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Tue, 24 Aug 2021 12:38:20 +0200 Subject: [PATCH 05/73] glibc: also create backwards-compat symlinks for libdl and libutil This fixes at least the openssl build. --- pkgs/development/libraries/glibc/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/libraries/glibc/default.nix b/pkgs/development/libraries/glibc/default.nix index dfe1d2db7d58..a48276f0b9ca 100644 --- a/pkgs/development/libraries/glibc/default.nix +++ b/pkgs/development/libraries/glibc/default.nix @@ -127,6 +127,8 @@ callPackage ./common.nix { inherit stdenv; } { # this doesn't work. ln -sf $out/lib/libpthread.so.0 $out/lib/libpthread.so ln -sf $out/lib/librt.so.1 $out/lib/librt.so + ln -sf $out/lib/libdl.so.2 $out/lib/libdl.so + ln -sf $out/lib/libutil.so.1 $out/lib/libutil.so '' # For some reason these aren't stripped otherwise and retain reference # to bootstrap-tools; on cross-arm this stripping would break objects. From f363b7c5dfc50b3b3051c333678d22fd318fa89d Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 27 Aug 2021 12:13:21 +0200 Subject: [PATCH 06/73] boost1{69,70,72}: fix build w/glibc-2.34 To quote the release-notes[1]: > When _DYNAMIC_STACK_SIZE_SOURCE or _GNU_SOURCE are defined, > PTHREAD_STACK_MIN is no longer constant and is redefined to > sysconf(_SC_THREAD_STACK_MIN). This supports dynamic sized register > sets for modern architectural features like Arm SVE. This basically means that if the above applies, `#if PTHREAD_STACK_MIN > 0` won't compile anymore because `PTHREAD_STACK_MIN` isn't a hard-coded number, but `__sysconf (__SC_THREAD_STACK_MIN_VALUE)`[2]. The issue (for 1.69, 1.70, 1.72 - the other versions seem OK) was reported upstream, but only for Solaris[3], however the corresponding patches[4] seem to work as well for us. Failing Hydra build: https://hydra.nixos.org/build/150926294 [1] https://sourceware.org/pipermail/libc-alpha/2021-August/129718.html [2] See `${pkgs.glibc.dev}/include/bits/pthread_stack_min-dynamic.h` [3] https://github.com/boostorg/thread/issues/283 [4] https://github.com/conan-io/conan-center-index/pull/361 --- pkgs/development/libraries/boost/1.69.nix | 2 ++ pkgs/development/libraries/boost/1.70.nix | 2 ++ pkgs/development/libraries/boost/1.72.nix | 2 ++ .../libraries/boost/pthread-stack-min-fix.patch | 15 +++++++++++++++ 4 files changed, 21 insertions(+) create mode 100644 pkgs/development/libraries/boost/pthread-stack-min-fix.patch diff --git a/pkgs/development/libraries/boost/1.69.nix b/pkgs/development/libraries/boost/1.69.nix index d934e3267fcb..c8846daa64f3 100644 --- a/pkgs/development/libraries/boost/1.69.nix +++ b/pkgs/development/libraries/boost/1.69.nix @@ -8,4 +8,6 @@ callPackage ./generic.nix (args // rec { # SHA256 from http://www.boost.org/users/history/version_1_69_0.html sha256 = "8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406"; }; + + patches = [ ./pthread-stack-min-fix.patch ]; }) diff --git a/pkgs/development/libraries/boost/1.70.nix b/pkgs/development/libraries/boost/1.70.nix index bc70797acda8..4d50f41e49ce 100644 --- a/pkgs/development/libraries/boost/1.70.nix +++ b/pkgs/development/libraries/boost/1.70.nix @@ -8,4 +8,6 @@ callPackage ./generic.nix (args // rec { # SHA256 from http://www.boost.org/users/history/version_1_70_0.html sha256 = "430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778"; }; + + patches = [ ./pthread-stack-min-fix.patch ]; }) diff --git a/pkgs/development/libraries/boost/1.72.nix b/pkgs/development/libraries/boost/1.72.nix index bb2fccdfaf78..666a3cacb656 100644 --- a/pkgs/development/libraries/boost/1.72.nix +++ b/pkgs/development/libraries/boost/1.72.nix @@ -11,5 +11,7 @@ callPackage ./generic.nix (args // rec { # SHA256 from http://www.boost.org/users/history/version_1_72_0.html sha256 = "59c9b274bc451cf91a9ba1dd2c7fdcaf5d60b1b3aa83f2c9fa143417cc660722"; }; + + patches = [ ./pthread-stack-min-fix.patch ]; }) diff --git a/pkgs/development/libraries/boost/pthread-stack-min-fix.patch b/pkgs/development/libraries/boost/pthread-stack-min-fix.patch new file mode 100644 index 000000000000..b6c85f840529 --- /dev/null +++ b/pkgs/development/libraries/boost/pthread-stack-min-fix.patch @@ -0,0 +1,15 @@ +Taken from https://github.com/conan-io/conan-center-index/pull/361/files + +diff --git a/include/boost/thread/pthread/thread_data.hpp b/include/boost/thread/pthread/thread_data.hpp +index aefbeb4..bc9b136 100644 +--- a/boost/thread/pthread/thread_data.hpp ++++ b/boost/thread/pthread/thread_data.hpp +@@ -57,7 +57,7 @@ namespace boost + #else + std::size_t page_size = ::sysconf( _SC_PAGESIZE); + #endif +-#if PTHREAD_STACK_MIN > 0 ++#ifdef PTHREAD_STACK_MIN + if (size Date: Fri, 27 Aug 2021 19:21:16 +0200 Subject: [PATCH 07/73] glibc: revert `/bin/bash` usage Rather than `$BASH`, `glibc` now hardcodes `/bin/bash` as interpreter[1] in several scripts (including `ldd`). This is a problem because relevant programs such as `ldd(1)` won't work properly without this since we set `BASH` to `/bin/sh` to avoid dependencies to the bootstrap tools for `bash` as runtime-dependency (since NixOS doesn't have `/bin/bash`). Considering that this was only done as an "improvement" to their build-system and not because they wanted to use some bashisms here (the variable was always called `BASH` and we still used `/bin/sh` anyways), I'd consider this to be relatively safe. [1] 5188a9d0265cc6f7235a8af1d31ab02e4a24853d --- ...l-usage-of-BASH-or-BASH-in-installed.patch | 131 ++++++++++++++++++ pkgs/development/libraries/glibc/common.nix | 2 + 2 files changed, 133 insertions(+) create mode 100644 pkgs/development/libraries/glibc/0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch diff --git a/pkgs/development/libraries/glibc/0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch b/pkgs/development/libraries/glibc/0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch new file mode 100644 index 000000000000..45bad2867e90 --- /dev/null +++ b/pkgs/development/libraries/glibc/0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch @@ -0,0 +1,131 @@ +From f81744bae4442345ff6f40d80fdb8adaba8b330f Mon Sep 17 00:00:00 2001 +From: Maximilian Bosch +Date: Fri, 27 Aug 2021 17:19:27 +0200 +Subject: [PATCH] Revert "Remove all usage of @BASH@ or ${BASH} in installed + files, and hardcode /bin/bash instead" + +We need the ability to override to use `/bin/sh` here to avoid having +some bootstrap tools in a final build product. + +This reverts commit 5188a9d0265cc6f7235a8af1d31ab02e4a24853d. +--- + debug/Makefile | 5 +++-- + debug/xtrace.sh | 2 +- + elf/Makefile | 4 +++- + elf/ldd.bash.in | 2 +- + elf/sotruss.sh | 2 +- + malloc/Makefile | 5 +++-- + malloc/memusage.sh | 2 +- + timezone/Makefile | 3 ++- + 8 files changed, 15 insertions(+), 10 deletions(-) + +diff --git a/debug/Makefile b/debug/Makefile +index 6893111cbf..3f66666c6c 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -216,7 +216,8 @@ $(objpfx)pcprofiledump: $(objpfx)pcprofiledump.o + + $(objpfx)xtrace: xtrace.sh + rm -f $@.new +- sed -e 's|@VERSION@|$(version)|' -e 's|@SLIBDIR@|$(sLIBdir)|' \ +- -e 's|@BINDIR@|$(bindir)|' -e 's|@PKGVERSION@|$(PKGVERSION)|' \ ++ sed -e 's|@BASH@|$(BASH)|' -e 's|@VERSION@|$(version)|' \ ++ -e 's|@SLIBDIR@|$(sLIBdir)|' -e 's|@BINDIR@|$(bindir)|' \ ++ -e 's|@PKGVERSION@|$(PKGVERSION)|' \ + -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|' $^ > $@.new \ + && rm -f $@ && mv $@.new $@ && chmod +x $@ +diff --git a/debug/xtrace.sh b/debug/xtrace.sh +index 9697fbe0b4..279fe59ac6 100755 +--- a/debug/xtrace.sh ++++ b/debug/xtrace.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#! @BASH@ + # Copyright (C) 1999-2021 Free Software Foundation, Inc. + # This file is part of the GNU C Library. + # Contributed by Ulrich Drepper , 1999. +diff --git a/elf/Makefile b/elf/Makefile +index d05f410592..9264409fdd 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -144,7 +144,8 @@ $(objpfx)sotruss-lib.so: $(common-objpfx)libc.so $(objpfx)ld.so \ + $(common-objpfx)libc_nonshared.a + + $(objpfx)sotruss: sotruss.sh $(common-objpfx)config.make +- sed -e 's%@VERSION@%$(version)%g' \ ++ sed -e 's%@BASH@%$(BASH)%g' \ ++ -e 's%@VERSION@%$(version)%g' \ + -e 's%@TEXTDOMAINDIR@%$(localedir)%g' \ + -e 's%@PREFIX@%$(prefix)%g' \ + -e 's|@PKGVERSION@|$(PKGVERSION)|g' \ +@@ -659,6 +660,7 @@ ldd-rewrite = -e 's%@RTLD@%$(rtlddir)/$(rtld-installed-name)%g' \ + -e 's%@VERSION@%$(version)%g' \ + -e 's|@PKGVERSION@|$(PKGVERSION)|g' \ + -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|g' \ ++ -e 's%@BASH@%$(BASH)%g' \ + -e 's%@TEXTDOMAINDIR@%$(localedir)%g' + + ifeq ($(ldd-rewrite-script),no) +diff --git a/elf/ldd.bash.in b/elf/ldd.bash.in +index ba736464ac..57442bc3f2 100644 +--- a/elf/ldd.bash.in ++++ b/elf/ldd.bash.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#! @BASH@ + # Copyright (C) 1996-2021 Free Software Foundation, Inc. + # This file is part of the GNU C Library. + +diff --git a/elf/sotruss.sh b/elf/sotruss.sh +index 003cf4d825..fd4da80244 100755 +--- a/elf/sotruss.sh ++++ b/elf/sotruss.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#! @BASH@ + # Copyright (C) 2011-2021 Free Software Foundation, Inc. + # This file is part of the GNU C Library. + +diff --git a/malloc/Makefile b/malloc/Makefile +index 9b70831d38..90ecadff6c 100644 +--- a/malloc/Makefile ++++ b/malloc/Makefile +@@ -271,8 +271,9 @@ $(objpfx)mtrace: mtrace.pl + + $(objpfx)memusage: memusage.sh + rm -f $@.new +- sed -e 's|@VERSION@|$(version)|' -e 's|@SLIBDIR@|$(sLIBdir)|' \ +- -e 's|@BINDIR@|$(bindir)|' -e 's|@PKGVERSION@|$(PKGVERSION)|' \ ++ sed -e 's|@BASH@|$(BASH)|' -e 's|@VERSION@|$(version)|' \ ++ -e 's|@SLIBDIR@|$(sLIBdir)|' -e 's|@BINDIR@|$(bindir)|' \ ++ -e 's|@PKGVERSION@|$(PKGVERSION)|' \ + -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|' $^ > $@.new \ + && rm -f $@ && mv $@.new $@ && chmod +x $@ + +diff --git a/malloc/memusage.sh b/malloc/memusage.sh +index 0645f09911..c1cd4e23b7 100755 +--- a/malloc/memusage.sh ++++ b/malloc/memusage.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#! @BASH@ + # Copyright (C) 1999-2021 Free Software Foundation, Inc. + # This file is part of the GNU C Library. + # Contributed by Ulrich Drepper , 1999. +diff --git a/timezone/Makefile b/timezone/Makefile +index c624a189b3..395abfeebd 100644 +--- a/timezone/Makefile ++++ b/timezone/Makefile +@@ -123,7 +123,8 @@ $(testdata)/XT%: testdata/XT% + cp $< $@ + + $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make +- sed -e 's|TZDIR=[^}]*|TZDIR=$(zonedir)|' \ ++ sed -e 's|/bin/bash|$(BASH)|' \ ++ -e 's|TZDIR=[^}]*|TZDIR=$(zonedir)|' \ + -e '/TZVERSION=/s|see_Makefile|"$(version)"|' \ + -e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \ + -e '/REPORT_BUGS_TO=/s|=.*|="$(REPORT_BUGS_TO)"|' \ +-- +2.31.1 + diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix index 45fceace18be..599a7f2a1302 100644 --- a/pkgs/development/libraries/glibc/common.nix +++ b/pkgs/development/libraries/glibc/common.nix @@ -125,6 +125,8 @@ stdenv.mkDerivation ({ /* https://github.com/NixOS/nixpkgs/pull/137601 */ ./nix-nss-open-files.patch + + ./0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch ] ++ lib.optional stdenv.hostPlatform.isMusl ./fix-rpc-types-musl-conflicts.patch ++ lib.optional stdenv.buildPlatform.isDarwin ./darwin-cross-build.patch; From 2357e828f5dc9fca7dc9df0e62f210c79f948649 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Thu, 23 Sep 2021 23:37:00 +0200 Subject: [PATCH 08/73] gdb: fix build w/glibc-2.34 This is a problem that seems to be related to the most recent `gdb` update in staging from 10.2 to 11.1[1] where `gdb` started to fail during build with the following message: checking for stdlib.h... In file included from /nix/store/vf96x4h90fm7bwf5zvfx8zb82fm1p21j-glibc-2.34-5-dev/include/signal.h:328, from ../../gnulib/import/signal.h:52, from targ-map.c:7: targ-map.c:412:17: error: initializer element is not constant 412 | { "SIGSTKSZ", SIGSTKSZ, TARGET_SIGSTKSZ }, | ^~~~~~~~ targ-map.c:412:17: note: (near initialization for 'cb_init_signal_map[18].host_val') Since I couldn't find any patches in the upstream repo or for other repos - according to Repology we seem to be the only distro trying to ship `gdb-11` with `glibc-2.34` - so I found the culprit while bisecting `gdb` which seems to be commit `a0e674c1`[2]. It seems as if the entire `sim/`-subtree is now built by default if `--enable-targets=all` is set (which we do for cross debugging). However it also generates a file called `targ-map.c` referencing `SIGSTKSZ` assuming that it's const, although this is not the case anymore with `glibc-2.34`[3]. Since I don't really understand, what precisely is going on in there and there are no patches available I decided to switch back to the 10.2 behavior here and disable the feature by specifying `--disable-sim` as configure flag. Failing Hydra build: https://hydra.nixos.org/build/153893135 [1] 43b96f66ef7a69602b74f9bced64573c11a1df05 [2] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=a0e674c1ce2c877426f8a861c5294c535c5d49e6 [3] see https://sourceware.org/pipermail/libc-alpha/2021-August/129718.html --- pkgs/development/tools/misc/gdb/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix index 5bb5bc0652fe..91947a024d7d 100644 --- a/pkgs/development/tools/misc/gdb/default.nix +++ b/pkgs/development/tools/misc/gdb/default.nix @@ -92,6 +92,7 @@ stdenv.mkDerivation rec { "--disable-shared" "--enable-static" "--with-system-zlib" "--with-system-readline" + "--disable-sim" "--with-gmp=${gmp.dev}" "--with-mpfr=${mpfr.dev}" From 3aa6c49ab4a6b094ab6f125303b674bb99985f35 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 8 Sep 2021 19:23:41 +0200 Subject: [PATCH 09/73] libressl: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/151984996 --- .../libraries/libressl/default.nix | 4 + .../libressl/fix-build-with-glibc.patch | 92 +++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 pkgs/development/libraries/libressl/fix-build-with-glibc.patch diff --git a/pkgs/development/libraries/libressl/default.nix b/pkgs/development/libraries/libressl/default.nix index 7a2718c01539..4de1d7e7d152 100644 --- a/pkgs/development/libraries/libressl/default.nix +++ b/pkgs/development/libraries/libressl/default.nix @@ -89,6 +89,10 @@ in { libressl_3_2 = generic { version = "3.2.7"; sha256 = "112bjfrwwqlk0lak7fmfhcls18ydf62cp7gxghf4gklpfl1zyckw"; + patches = [ + # See https://github.com/libressl-portable/portable/issues/653 for context. + ./fix-build-with-glibc.patch + ]; }; libressl_3_4 = generic { version = "3.4.2"; diff --git a/pkgs/development/libraries/libressl/fix-build-with-glibc.patch b/pkgs/development/libraries/libressl/fix-build-with-glibc.patch new file mode 100644 index 000000000000..db482bcb35da --- /dev/null +++ b/pkgs/development/libraries/libressl/fix-build-with-glibc.patch @@ -0,0 +1,92 @@ +diff --git a/tests/explicit_bzero.c b/tests/explicit_bzero.c +index 34c60baa8a..9c0e917829 100644 +--- a/tests/explicit_bzero.c ++++ b/tests/explicit_bzero.c +@@ -1,4 +1,4 @@ +-/* $OpenBSD: explicit_bzero.c,v 1.6 2014/07/11 01:10:35 matthew Exp $ */ ++/* $OpenBSD: explicit_bzero.c,v 1.7 2021/03/27 11:17:58 bcook Exp $ */ + /* + * Copyright (c) 2014 Google Inc. + * +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -36,19 +37,33 @@ enum { + SECRETBYTES = SECRETCOUNT * sizeof(secret) + }; + +-static char altstack[SIGSTKSZ + SECRETBYTES]; ++/* ++ * As of glibc 2.34, when _GNU_SOURCE is defined, SIGSTKSZ is no longer ++ * constant on Linux. SIGSTKSZ is redefined to sysconf (_SC_SIGSTKSZ). ++ */ ++static char *altstack; ++#define ALTSTACK_SIZE (SIGSTKSZ + SECRETBYTES) + + static void + setup_stack(void) + { ++ altstack = calloc(1, ALTSTACK_SIZE); ++ ASSERT_NE(NULL, altstack); ++ + const stack_t sigstk = { + .ss_sp = altstack, +- .ss_size = sizeof(altstack), ++ .ss_size = ALTSTACK_SIZE + }; + + ASSERT_EQ(0, sigaltstack(&sigstk, NULL)); + } + ++static void ++cleanup_stack(void) ++{ ++ free(altstack); ++} ++ + static void + assert_on_stack(void) + { +@@ -129,7 +144,7 @@ test_without_bzero() + char buf[SECRETBYTES]; + assert_on_stack(); + populate_secret(buf, sizeof(buf)); +- char *res = memmem(altstack, sizeof(altstack), buf, sizeof(buf)); ++ char *res = memmem(altstack, ALTSTACK_SIZE, buf, sizeof(buf)); + ASSERT_NE(NULL, res); + return (res); + } +@@ -140,7 +155,7 @@ test_with_bzero() + char buf[SECRETBYTES]; + assert_on_stack(); + populate_secret(buf, sizeof(buf)); +- char *res = memmem(altstack, sizeof(altstack), buf, sizeof(buf)); ++ char *res = memmem(altstack, ALTSTACK_SIZE, buf, sizeof(buf)); + ASSERT_NE(NULL, res); + explicit_bzero(buf, sizeof(buf)); + return (res); +@@ -183,15 +198,17 @@ main() + * on the stack. This sanity checks that call_on_stack() and + * populate_secret() work as intended. + */ +- memset(altstack, 0, sizeof(altstack)); ++ memset(altstack, 0, ALTSTACK_SIZE); + call_on_stack(do_test_without_bzero); + + /* + * Now test with a call to explicit_bzero() and check that we + * *don't* find any instances of the secret data. + */ +- memset(altstack, 0, sizeof(altstack)); ++ memset(altstack, 0, ALTSTACK_SIZE); + call_on_stack(do_test_with_bzero); + ++ cleanup_stack(); ++ + return (0); + } From 8631ba18eee7fe48dc17244fa8b6425b3d84201e Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Thu, 16 Sep 2021 23:04:56 +0200 Subject: [PATCH 10/73] fuse: fix build w/glibc-2.34 `closefrom` is now a part of `glibc-2.34`[1]: > * The function closefrom has been added. It closes all file descriptors > greater than or equal to a given integer. This function is a GNU extension, > although it is also present in other systems. Failing Hydra build: https://hydra.nixos.org/build/152456339 [1] https://sourceware.org/pipermail/libc-alpha/2021-August/129718.html --- pkgs/os-specific/linux/fuse/common.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/fuse/common.nix b/pkgs/os-specific/linux/fuse/common.nix index 5adb1b5355ad..88035cf60c80 100644 --- a/pkgs/os-specific/linux/fuse/common.nix +++ b/pkgs/os-specific/linux/fuse/common.nix @@ -31,7 +31,13 @@ in stdenv.mkDerivation rec { }) ++ (if isFuse3 then [ ./fuse3-install.patch ./fuse3-Do-not-set-FUSERMOUNT_DIR.patch ] - else [ ./fuse2-Do-not-set-FUSERMOUNT_DIR.patch ]); + else [ + ./fuse2-Do-not-set-FUSERMOUNT_DIR.patch + (fetchpatch { + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/fuse/files/fuse-2.9.9-closefrom-glibc-2-34.patch?id=8a970396fca7aca2d5a761b8e7a8242f1eef14c9"; + sha256 = "sha256-ELYBW/wxRcSMssv7ejCObrpsJHtOPJcGq33B9yHQII4="; + }) + ]); nativeBuildInputs = if isFuse3 then [ meson ninja pkg-config ] From 486f248ce46043cd4c76e60012c83a14f310784e Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Thu, 16 Sep 2021 23:16:02 +0200 Subject: [PATCH 11/73] catch: fix build w/glibc-2.34 The issue was that `SIGSTKSZ` isn't an actual const anymore and thus can't be used to define sizes of static variables such as static char foo[SIGSTKSZ]; since this results in compiler errors such as error: array bound is not an integer constant before ']' token Fedora worked around this by hard-coding the value in `catch`. Since this is mainly a testing-framework and there's no other fix for v1 - we should eventually remove it entirely in favor of v2 anyways - I guess this is a good-enough fix. Failing Hydra build: https://hydra.nixos.org/build/152455108 --- pkgs/development/libraries/catch/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/libraries/catch/default.nix b/pkgs/development/libraries/catch/default.nix index c89fbd477c96..c4d64a0f4787 100644 --- a/pkgs/development/libraries/catch/default.nix +++ b/pkgs/development/libraries/catch/default.nix @@ -20,6 +20,12 @@ stdenv.mkDerivation rec { url = "https://github.com/catchorg/Catch2/commit/bb6d08323f23a39eb65dd86671e68f4f5d3f2d6c.patch"; sha256 = "1vhbzx84nrhhf9zlbl6h5zmg3r5w5v833ihlswsysb9wp2i4isc5"; }) + + # Fix glibc-2.34 build + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/catch1/raw/23276476148a657e7a45ade547f858cbf965a33a/f/catch1-sigstksz.patch"; + sha256 = "sha256-XSsI3iDEZCUSbozlYWC0y/LZ7qr/5zwACpn1jHKD0yU="; + }) ]; doCheck = true; From f81f59dfce012b9835980e2865e1c107fca009c8 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 17 Sep 2021 22:25:19 +0200 Subject: [PATCH 12/73] autofs: fix build w/glibc-2.34 This build was also broken by a libc const that isn't a number anymore and thus can't be used at places where a constant value is needed: automount.c:86:37: error: initializer element is not constant Failing Hydra build: https://hydra.nixos.org/build/153253104 --- pkgs/os-specific/linux/autofs/default.nix | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/autofs/default.nix b/pkgs/os-specific/linux/autofs/default.nix index 7b29f5a0e5cf..5e552301fe48 100644 --- a/pkgs/os-specific/linux/autofs/default.nix +++ b/pkgs/os-specific/linux/autofs/default.nix @@ -1,5 +1,7 @@ { lib, stdenv, fetchurl, flex, bison, linuxHeaders, libtirpc, mount, umount, nfs-utils, e2fsprogs -, libxml2, libkrb5, kmod, openldap, sssd, cyrus_sasl, openssl, rpcsvc-proto }: +, libxml2, libkrb5, kmod, openldap, sssd, cyrus_sasl, openssl, rpcsvc-proto +, fetchpatch +}: stdenv.mkDerivation rec { version = "5.1.6"; @@ -10,6 +12,15 @@ stdenv.mkDerivation rec { sha256 = "1vya21mb4izj3khcr3flibv7xc15vvx2v0rjfk5yd31qnzcy7pnx"; }; + patches = [ + # glibc 2.34 compat + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/autofs/raw/cc745af5e42396d540d5b3b92fae486e232bf6bd/f/autofs-5.1.7-use-default-stack-size-for-threads.patch"; + sha256 = "sha256-6ETDFbW7EhHR03xFWF+6OJBgn9NX3WW3bGhTNGodaOc="; + excludes = [ "CHANGELOG" ]; + }) + ]; + preConfigure = '' configureFlags="--enable-force-shutdown --enable-ignore-busy --with-path=$PATH" export sssldir="${sssd}/lib/sssd/modules" From b9078e581b20e613dfd3a36a262d2da31c74ce81 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 18 Sep 2021 19:42:06 +0200 Subject: [PATCH 13/73] qt515.qtwebengine: fix build w/glibc-2.34 Derived from Fedora 35: https://src.fedoraproject.org/rpms/qt5-qtwebengine/c/d122c011631137b79455850c363676c655cf9e09?branch=rawhide Failing Hydra build: https://hydra.nixos.org/build/153232768 --- pkgs/development/libraries/qt-5/5.15/default.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix index 5943a80a701e..74b92dda1df2 100644 --- a/pkgs/development/libraries/qt-5/5.15/default.nix +++ b/pkgs/development/libraries/qt-5/5.15/default.nix @@ -56,7 +56,13 @@ let qtdeclarative = [ ./qtdeclarative.patch ]; qtscript = [ ./qtscript.patch ]; qtserialport = [ ./qtserialport.patch ]; - qtwebengine = lib.optionals stdenv.isDarwin [ + qtwebengine = [ + # glibc 2.34 compat + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/qt5-qtwebengine/raw/d122c011631137b79455850c363676c655cf9e09/f/qtwebengine-everywhere-src-5.15.5-SIGSTKSZ.patch"; + sha256 = "sha256-1zS7nvbe5ZVuW/wSNOUBc2Qz0aB483Kfnz1JbzKEI+M="; + }) + ] ++ lib.optionals stdenv.isDarwin [ ./qtwebengine-darwin-no-platform-check.patch ./qtwebengine-mac-dont-set-dsymutil-path.patch ]; From 0caf7e5f0c53b2a3c7320e376eda97e1b29baa68 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 18 Sep 2021 19:49:29 +0200 Subject: [PATCH 14/73] qt514.qtwebengine: fix build w/glibc-2.34 Same problem here as with QT 5.15. Failing Hydra build: https://hydra.nixos.org/build/153224604 --- pkgs/development/libraries/qt-5/5.14/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.14/default.nix b/pkgs/development/libraries/qt-5/5.14/default.nix index 65ce74dac021..5a3bf205fbce 100644 --- a/pkgs/development/libraries/qt-5/5.14/default.nix +++ b/pkgs/development/libraries/qt-5/5.14/default.nix @@ -96,6 +96,12 @@ let stripLen = 1; extraPrefix = "src/3rdparty/"; }) + + # glibc 2.34 compat + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/qt5-qtwebengine/raw/4cef673b2dd01ce85ce7a841cf352104bbe79668/f/qtwebengine-everywhere-5.15.2-SIGSTKSZ.patch"; + sha256 = "sha256-2D0/FL4PBL4p6ccd6JoDAGqNtLs2aeE1OdM+PJItock="; + }) ] ++ lib.optional stdenv.isDarwin ./qtwebengine-darwin-no-platform-check.patch; qtwebkit = [ (fetchpatch { From 96418eb0e78ccce10d8c9e07457fa0c754cb04e8 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 18 Sep 2021 20:09:57 +0200 Subject: [PATCH 15/73] rcs: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/153235059 --- pkgs/applications/version-management/rcs/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/applications/version-management/rcs/default.nix b/pkgs/applications/version-management/rcs/default.nix index d46a67a8601e..6982bd43b263 100644 --- a/pkgs/applications/version-management/rcs/default.nix +++ b/pkgs/applications/version-management/rcs/default.nix @@ -9,6 +9,14 @@ stdenv.mkDerivation rec { sha256 = "sha256-Q93+EHJKi4XiRo9kA7YABzcYbwHmDgvWL95p2EIjTMU="; }; + patches = [ + # glibc 2.34 compat + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/rcs/raw/f8e07cd37f4abfb36e37d41852bb8f9e234d3fb1/f/rcs-5.10.0-SIGSTKSZ.patch"; + sha256 = "sha256-mc6Uye9mdEsLBcOnf1m1TUb1BV0ncNU//iKBpLGBjho="; + }) + ]; + ac_cv_path_ED = "${ed}/bin/ed"; DIFF = "${diffutils}/bin/diff"; DIFF3 = "${diffutils}/bin/diff3"; From 48d713574293092544bd7deae2cef1e789f478e1 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Tue, 21 Sep 2021 11:38:58 +0200 Subject: [PATCH 16/73] emacs: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/153252802 --- pkgs/applications/editors/emacs/27.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/applications/editors/emacs/27.nix b/pkgs/applications/editors/emacs/27.nix index 436785c34f68..064231b24565 100644 --- a/pkgs/applications/editors/emacs/27.nix +++ b/pkgs/applications/editors/emacs/27.nix @@ -7,5 +7,10 @@ import ./generic.nix (rec { url = "https://git.savannah.gnu.org/cgit/emacs.git/patch/?id=a88f63500e475f842e5fbdd9abba4ce122cdb082"; sha256 = "sha256-RF9b5PojFUAjh2TDUW4+HaWveV30Spy1iAXhaWf1ZVg="; }) + # glibc 2.34 compat + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/emacs/raw/181aafcdb7ee2fded9fce4cfc448f27edccc927f/f/emacs-glibc-2.34.patch"; + sha256 = "sha256-2o3C/jhZPl2OW/LmVPt/fhdwbS9NOdF9lVEF1Kn9aEk="; + }) ]; }) From 1470227ef41c4b101c77f3f1969d3978678215df Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Thu, 30 Sep 2021 19:23:43 +0200 Subject: [PATCH 17/73] postfix: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/154082134 --- pkgs/servers/mail/postfix/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/servers/mail/postfix/default.nix b/pkgs/servers/mail/postfix/default.nix index 08c55f771724..942023b4eaf4 100644 --- a/pkgs/servers/mail/postfix/default.nix +++ b/pkgs/servers/mail/postfix/default.nix @@ -1,5 +1,6 @@ { stdenv, lib, fetchurl, makeWrapper, gnused, db, openssl, cyrus_sasl, libnsl , coreutils, findutils, gnugrep, gawk, icu, pcre, m4 +, fetchpatch , buildPackages, nixosTests , withLDAP ? true, openldap , withPgSQL ? false, postgresql @@ -46,6 +47,12 @@ in stdenv.mkDerivation rec { ./postfix-3.0-no-warnings.patch ./post-install-script.patch ./relative-symlinks.patch + + # glibc 2.34 compat + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/postfix/raw/2f9d42453e67ebc43f786d98262a249037f80a77/f/postfix-3.6.2-glibc-234-build-fix.patch"; + sha256 = "sha256-xRUL5gaoIt6HagGlhsGwvwrAfYvzMgydsltYMWvl9BI="; + }) ]; postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' From 917b7e5fd2e29346040dc95a39cae17f92eae0dc Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Thu, 30 Sep 2021 21:18:53 +0200 Subject: [PATCH 18/73] ocaml: fix build w/glibc-2.34 ChangeLog: https://hydra.nixos.org/build/154122673 --- pkgs/development/compilers/ocaml/4.12.nix | 5 +++++ pkgs/development/compilers/ocaml/generic.nix | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/ocaml/4.12.nix b/pkgs/development/compilers/ocaml/4.12.nix index 0662e66e0b6a..949ca185a3c3 100644 --- a/pkgs/development/compilers/ocaml/4.12.nix +++ b/pkgs/development/compilers/ocaml/4.12.nix @@ -3,4 +3,9 @@ import ./generic.nix { minor_version = "12"; patch_version = "0"; sha256 = "1hxy349jfa2vkfgmxf6pvd9w4z5bmcgsg0fxfdabcghyvjw9vvir"; + patches = [ + { url = "https://src.fedoraproject.org/rpms/ocaml/raw/129153b85109944bf0b2922949f77ef8f32b39a1/f/0004-Dynamically-allocate-the-alternate-signal-stack-1026.patch"; + sha256 = "sha256-FdQ1HkMKHU9QvgLPUBvMdPiEa7w7IL3+1F3SLv63Gog="; + } + ]; } diff --git a/pkgs/development/compilers/ocaml/generic.nix b/pkgs/development/compilers/ocaml/generic.nix index ec52e56c1faa..debc3d4272a4 100644 --- a/pkgs/development/compilers/ocaml/generic.nix +++ b/pkgs/development/compilers/ocaml/generic.nix @@ -1,4 +1,4 @@ -{ minor_version, major_version, patch_version +{ minor_version, major_version, patch_version, patches ? [] , ...}@args: let versionNoPatch = "${toString major_version}.${toString minor_version}"; @@ -6,7 +6,7 @@ let safeX11 = stdenv: !(stdenv.isAarch32 || stdenv.isMips || stdenv.hostPlatform.isStatic); in -{ lib, stdenv, fetchurl, ncurses, buildEnv, libunwind +{ lib, stdenv, fetchurl, ncurses, buildEnv, libunwind, fetchpatch , libX11, xorgproto, useX11 ? safeX11 stdenv && !lib.versionAtLeast version "4.09" , aflSupport ? false , flambdaSupport ? false @@ -44,6 +44,8 @@ stdenv.mkDerivation (args // { inherit src; + patches = map fetchpatch patches; + strictDeps = true; prefixKey = "-prefix "; From 8e16dcc4aa268de14fdaa0fac4acf7c7a11df903 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 3 Oct 2021 20:00:54 +0200 Subject: [PATCH 19/73] openjdk11: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/154132196 --- pkgs/development/compilers/openjdk/11.nix | 1 + pkgs/development/compilers/openjdk/16.nix | 1 + .../compilers/openjdk/fix-glibc-2.34.patch | 24 +++++++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 pkgs/development/compilers/openjdk/fix-glibc-2.34.patch diff --git a/pkgs/development/compilers/openjdk/11.nix b/pkgs/development/compilers/openjdk/11.nix index 6f4b78286d63..8c45bece9adc 100644 --- a/pkgs/development/compilers/openjdk/11.nix +++ b/pkgs/development/compilers/openjdk/11.nix @@ -40,6 +40,7 @@ let ./currency-date-range-jdk10.patch ./increase-javadoc-heap.patch ./fix-library-path-jdk11.patch + ./fix-glibc-2.34.patch ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk10.patch ]; diff --git a/pkgs/development/compilers/openjdk/16.nix b/pkgs/development/compilers/openjdk/16.nix index e6fd12a632b3..0a4a8e1de413 100644 --- a/pkgs/development/compilers/openjdk/16.nix +++ b/pkgs/development/compilers/openjdk/16.nix @@ -48,6 +48,7 @@ let url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch"; sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; }) + ./fix-glibc-2.34.patch ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk13.patch ]; diff --git a/pkgs/development/compilers/openjdk/fix-glibc-2.34.patch b/pkgs/development/compilers/openjdk/fix-glibc-2.34.patch new file mode 100644 index 000000000000..7bf8b2b16744 --- /dev/null +++ b/pkgs/development/compilers/openjdk/fix-glibc-2.34.patch @@ -0,0 +1,24 @@ +Taken from https://build.opensuse.org/package/view_file/Java:Factory/java-15-openjdk/openjdk-glibc234.patch + +--- openjdk/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c 2021-04-09 11:36:58.000000000 +0200 ++++ openjdk/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c 2021-08-26 15:42:52.326232581 +0200 +@@ -67,8 +67,17 @@ + longjmp(context, 1); + } + ++static char* altstack = NULL; ++ + void set_signal_handler() { +- static char altstack[SIGSTKSZ]; ++ if (altstack == NULL) { ++ // Dynamically allocated in case SIGSTKSZ is not constant ++ altstack = malloc(SIGSTKSZ); ++ if (altstack == NULL) { ++ fprintf(stderr, "Test ERROR. Unable to malloc altstack space\n"); ++ exit(7); ++ } ++ } + + stack_t ss = { + .ss_size = SIGSTKSZ, + From f97b9951865b659bd0ee3ae6662676ad0efafa4b Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 3 Oct 2021 22:29:02 +0200 Subject: [PATCH 20/73] texinfo: fix build w/glibc-2.34 --- pkgs/development/tools/misc/texinfo/6.8.nix | 4 + .../development/tools/misc/texinfo/common.nix | 4 +- .../tools/misc/texinfo/fix-glibc-2.34.patch | 186 ++++++++++++++++++ 3 files changed, 192 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/tools/misc/texinfo/fix-glibc-2.34.patch diff --git a/pkgs/development/tools/misc/texinfo/6.8.nix b/pkgs/development/tools/misc/texinfo/6.8.nix index 11435bf329f6..992f695bc92c 100644 --- a/pkgs/development/tools/misc/texinfo/6.8.nix +++ b/pkgs/development/tools/misc/texinfo/6.8.nix @@ -1,4 +1,8 @@ import ./common.nix { version = "6.8"; sha256 = "1i7yb7mrp3inz25zbzv2pllr4y7d58v818f1as7iz8mw53nm7dwf"; + patches = [ + # glibc 2.34 compat + ./fix-glibc-2.34.patch + ]; } diff --git a/pkgs/development/tools/misc/texinfo/common.nix b/pkgs/development/tools/misc/texinfo/common.nix index b379df09a4b0..e47d3369de96 100644 --- a/pkgs/development/tools/misc/texinfo/common.nix +++ b/pkgs/development/tools/misc/texinfo/common.nix @@ -1,4 +1,4 @@ -{ version, sha256 }: +{ version, sha256, patches ? [] }: { lib, stdenv, buildPackages, fetchurl, perl, xz, gettext @@ -26,7 +26,7 @@ stdenv.mkDerivation { inherit sha256; }; - patches = optional crossBuildTools ./cross-tools-flags.patch; + patches = patches ++ (optional crossBuildTools ./cross-tools-flags.patch); # ncurses is required to build `makedoc' # this feature is introduced by the ./cross-tools-flags.patch diff --git a/pkgs/development/tools/misc/texinfo/fix-glibc-2.34.patch b/pkgs/development/tools/misc/texinfo/fix-glibc-2.34.patch new file mode 100644 index 000000000000..60f2e63b7ce0 --- /dev/null +++ b/pkgs/development/tools/misc/texinfo/fix-glibc-2.34.patch @@ -0,0 +1,186 @@ + +Patch by Vitezslav Crhonek +Source: https://src.fedoraproject.org/rpms/texinfo/c/9b2cca4817fa4bd8d520fed05e9560fc7183dcdf?branch=rawhide + +diff -up texinfo-6.8/gnulib/lib/cdefs.h.orig texinfo-6.8/gnulib/lib/cdefs.h +--- texinfo-6.8/gnulib/lib/cdefs.h.orig 2021-03-11 19:57:53.000000000 +0100 ++++ texinfo-6.8/gnulib/lib/cdefs.h 2021-07-19 12:26:46.985176475 +0200 +@@ -321,15 +321,15 @@ + + /* The nonnull function attribute marks pointer parameters that + must not be NULL. */ +-#ifndef __attribute_nonnull__ ++#ifndef __nonnull + # if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__) +-# define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params)) ++# define __nonnull(params) __attribute__ ((__nonnull__ params)) + # else +-# define __attribute_nonnull__(params) ++# define __nonnull(params) + # endif +-#endif +-#ifndef __nonnull +-# define __nonnull(params) __attribute_nonnull__ (params) ++#elif !defined __GLIBC__ ++# undef __nonnull ++# define __nonnull(params) _GL_ATTRIBUTE_NONNULL (params) + #endif + + /* If fortification mode, we warn about unused results of certain +diff -up texinfo-6.8/gnulib/lib/libc-config.h.orig texinfo-6.8/gnulib/lib/libc-config.h +--- texinfo-6.8/gnulib/lib/libc-config.h.orig 2021-03-11 19:57:54.000000000 +0100 ++++ texinfo-6.8/gnulib/lib/libc-config.h 2021-07-19 12:27:58.810590975 +0200 +@@ -33,9 +33,9 @@ + #include + + /* On glibc this includes and and #defines +- _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 and +- DragonFlyBSD 5.9 it includes which defines __nonnull. +- Elsewhere it is harmless. */ ++ _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 it ++ includes which defines __nonnull. Elsewhere it ++ is harmless. */ + #include + + /* From glibc . */ +diff -up texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c.orig texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c +--- texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c.orig 2021-03-11 19:57:54.000000000 +0100 ++++ texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c 2021-07-19 12:24:46.878419397 +0200 +@@ -192,7 +192,7 @@ DYNARRAY_NAME (free__array__) (struct DY + + /* Initialize a dynamic array object. This must be called before any + use of the object. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static void + DYNARRAY_NAME (init) (struct DYNARRAY_STRUCT *list) + { +@@ -202,7 +202,7 @@ DYNARRAY_NAME (init) (struct DYNARRAY_ST + } + + /* Deallocate the dynamic array and its elements. */ +-__attribute_maybe_unused__ __attribute_nonnull__ ((1)) ++__attribute_maybe_unused__ __nonnull ((1)) + static void + DYNARRAY_FREE (struct DYNARRAY_STRUCT *list) + { +@@ -213,7 +213,7 @@ DYNARRAY_FREE (struct DYNARRAY_STRUCT *l + } + + /* Return true if the dynamic array is in an error state. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static inline bool + DYNARRAY_NAME (has_failed) (const struct DYNARRAY_STRUCT *list) + { +@@ -222,7 +222,7 @@ DYNARRAY_NAME (has_failed) (const struct + + /* Mark the dynamic array as failed. All elements are deallocated as + a side effect. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static void + DYNARRAY_NAME (mark_failed) (struct DYNARRAY_STRUCT *list) + { +@@ -236,7 +236,7 @@ DYNARRAY_NAME (mark_failed) (struct DYNA + + /* Return the number of elements which have been added to the dynamic + array. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static inline size_t + DYNARRAY_NAME (size) (const struct DYNARRAY_STRUCT *list) + { +@@ -245,7 +245,7 @@ DYNARRAY_NAME (size) (const struct DYNAR + + /* Return a pointer to the array element at INDEX. Terminate the + process if INDEX is out of bounds. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static inline DYNARRAY_ELEMENT * + DYNARRAY_NAME (at) (struct DYNARRAY_STRUCT *list, size_t index) + { +@@ -257,7 +257,7 @@ DYNARRAY_NAME (at) (struct DYNARRAY_STRU + /* Return a pointer to the first array element, if any. For a + zero-length array, the pointer can be NULL even though the dynamic + array has not entered the failure state. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static inline DYNARRAY_ELEMENT * + DYNARRAY_NAME (begin) (struct DYNARRAY_STRUCT *list) + { +@@ -267,7 +267,7 @@ DYNARRAY_NAME (begin) (struct DYNARRAY_S + /* Return a pointer one element past the last array element. For a + zero-length array, the pointer can be NULL even though the dynamic + array has not entered the failure state. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static inline DYNARRAY_ELEMENT * + DYNARRAY_NAME (end) (struct DYNARRAY_STRUCT *list) + { +@@ -294,7 +294,7 @@ DYNARRAY_NAME (add__) (struct DYNARRAY_S + /* Add ITEM at the end of the array, enlarging it by one element. + Mark *LIST as failed if the dynamic array allocation size cannot be + increased. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static inline void + DYNARRAY_NAME (add) (struct DYNARRAY_STRUCT *list, DYNARRAY_ELEMENT item) + { +@@ -348,8 +348,7 @@ DYNARRAY_NAME (emplace__) (struct DYNARR + /* Allocate a place for a new element in *LIST and return a pointer to + it. The pointer can be NULL if the dynamic array cannot be + enlarged due to a memory allocation failure. */ +-__attribute_maybe_unused__ __attribute_warn_unused_result__ +-__attribute_nonnull__ ((1)) ++__attribute_maybe_unused__ __attribute_warn_unused_result__ __nonnull ((1)) + static + /* Avoid inlining with the larger initialization code. */ + #if !(defined (DYNARRAY_ELEMENT_INIT) || defined (DYNARRAY_ELEMENT_FREE)) +@@ -373,7 +372,7 @@ DYNARRAY_NAME (emplace) (struct DYNARRAY + existing size, new elements are added (which can be initialized). + Otherwise, the list is truncated, and elements are freed. Return + false on memory allocation failure (and mark *LIST as failed). */ +-__attribute_maybe_unused__ __attribute_nonnull__ ((1)) ++__attribute_maybe_unused__ __nonnull ((1)) + static bool + DYNARRAY_NAME (resize) (struct DYNARRAY_STRUCT *list, size_t size) + { +@@ -418,7 +417,7 @@ DYNARRAY_NAME (resize) (struct DYNARRAY_ + } + + /* Remove the last element of LIST if it is present. */ +-__attribute_maybe_unused__ __attribute_nonnull__ ((1)) ++__attribute_maybe_unused__ __nonnull ((1)) + static void + DYNARRAY_NAME (remove_last) (struct DYNARRAY_STRUCT *list) + { +@@ -435,7 +434,7 @@ DYNARRAY_NAME (remove_last) (struct DYNA + + /* Remove all elements from the list. The elements are freed, but the + list itself is not. */ +-__attribute_maybe_unused__ __attribute_nonnull__ ((1)) ++__attribute_maybe_unused__ __nonnull ((1)) + static void + DYNARRAY_NAME (clear) (struct DYNARRAY_STRUCT *list) + { +@@ -453,8 +452,7 @@ DYNARRAY_NAME (clear) (struct DYNARRAY_S + stored in *RESULT if LIST refers to an empty list. On success, the + pointer in *RESULT is heap-allocated and must be deallocated using + free. */ +-__attribute_maybe_unused__ __attribute_warn_unused_result__ +-__attribute_nonnull__ ((1, 2)) ++__attribute_maybe_unused__ __attribute_warn_unused_result__ __nonnull ((1, 2)) + static bool + DYNARRAY_NAME (finalize) (struct DYNARRAY_STRUCT *list, + DYNARRAY_FINAL_TYPE *result) +@@ -485,8 +483,7 @@ DYNARRAY_NAME (finalize) (struct DYNARRA + have a sentinel at the end). If LENGTHP is not NULL, the array + length is written to *LENGTHP. *LIST is re-initialized and can be + reused. */ +-__attribute_maybe_unused__ __attribute_warn_unused_result__ +-__attribute_nonnull__ ((1)) ++__attribute_maybe_unused__ __attribute_warn_unused_result__ __nonnull ((1)) + static DYNARRAY_ELEMENT * + DYNARRAY_NAME (finalize) (struct DYNARRAY_STRUCT *list, size_t *lengthp) + { From bcf8aeff3c7fbf92d576f89dad6a21913f7eb37a Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 8 Oct 2021 13:21:25 +0200 Subject: [PATCH 21/73] ocaml 4.10/4.11: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/155189331 Applied a smaller patch from Fedora's fork[1] as it also applies on older versions. That said, these versions seem unmaintained anyways, so we should probably drop them entirely. [1] https://pagure.io/fedora-ocaml/c/dfb5e954a04f59b0456cc4c0ddf3acaf22e0ff07?branch=fedora-35-4.12.0 --- pkgs/development/compilers/ocaml/4.10.nix | 3 ++ pkgs/development/compilers/ocaml/4.11.nix | 3 ++ pkgs/development/compilers/ocaml/generic.nix | 4 +- .../glibc-2.34-for-ocaml-4.10-and-11.patch | 37 +++++++++++++++++++ 4 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/compilers/ocaml/glibc-2.34-for-ocaml-4.10-and-11.patch diff --git a/pkgs/development/compilers/ocaml/4.10.nix b/pkgs/development/compilers/ocaml/4.10.nix index 78051040b571..48d01a5a8c8d 100644 --- a/pkgs/development/compilers/ocaml/4.10.nix +++ b/pkgs/development/compilers/ocaml/4.10.nix @@ -3,4 +3,7 @@ import ./generic.nix { minor_version = "10"; patch_version = "2"; sha256 = "sha256-locUYQeCgtXbAiB32JveJchfteN2YStE+MN9ToTwAOM="; + patches = [ + ./glibc-2.34-for-ocaml-4.10-and-11.patch + ]; } diff --git a/pkgs/development/compilers/ocaml/4.11.nix b/pkgs/development/compilers/ocaml/4.11.nix index 3e5aefc11f1c..6a2e4f61f80e 100644 --- a/pkgs/development/compilers/ocaml/4.11.nix +++ b/pkgs/development/compilers/ocaml/4.11.nix @@ -3,4 +3,7 @@ import ./generic.nix { minor_version = "11"; patch_version = "2"; sha256 = "1m3wrgkkv3f77wvcymjm0i2srxzmx62y6jln3i0a2px07ng08l9z"; + patches = [ + ./glibc-2.34-for-ocaml-4.10-and-11.patch + ]; } diff --git a/pkgs/development/compilers/ocaml/generic.nix b/pkgs/development/compilers/ocaml/generic.nix index debc3d4272a4..cd1bccd1800f 100644 --- a/pkgs/development/compilers/ocaml/generic.nix +++ b/pkgs/development/compilers/ocaml/generic.nix @@ -35,6 +35,8 @@ let x11env = buildEnv { name = "x11env"; paths = [libX11 xorgproto]; }; x11lib = x11env + "/lib"; x11inc = x11env + "/include"; + + fetchpatch' = x: if builtins.isAttrs x then fetchpatch x else x; in stdenv.mkDerivation (args // { @@ -44,7 +46,7 @@ stdenv.mkDerivation (args // { inherit src; - patches = map fetchpatch patches; + patches = map fetchpatch' patches; strictDeps = true; diff --git a/pkgs/development/compilers/ocaml/glibc-2.34-for-ocaml-4.10-and-11.patch b/pkgs/development/compilers/ocaml/glibc-2.34-for-ocaml-4.10-and-11.patch new file mode 100644 index 000000000000..4ff9e6fddba5 --- /dev/null +++ b/pkgs/development/compilers/ocaml/glibc-2.34-for-ocaml-4.10-and-11.patch @@ -0,0 +1,37 @@ +From dfb5e954a04f59b0456cc4c0ddf3acaf22e0ff07 Mon Sep 17 00:00:00 2001 +From: Richard W.M. Jones +Date: Feb 28 2021 20:45:47 +0000 +Subject: Workaround for glibc non-constant SIGSTKSZ + + +https://github.com/ocaml/ocaml/issues/10250 + +Signed-off-by: Richard W.M. Jones + +--- + +diff --git a/runtime/signals_nat.c b/runtime/signals_nat.c +index 8b64ab4..7f0a975 100644 +--- a/runtime/signals_nat.c ++++ b/runtime/signals_nat.c +@@ -181,7 +181,19 @@ DECLARE_SIGNAL_HANDLER(trap_handler) + #error "CONTEXT_SP is required if HAS_STACK_OVERFLOW_DETECTION is defined" + #endif + ++#ifndef __GLIBC__ + static char sig_alt_stack[SIGSTKSZ]; ++#else ++/* glibc 2.34 has non-constant SIGSTKSZ */ ++static char *sig_alt_stack; ++ ++static void allocate_sig_alt_stack(void) __attribute__((constructor)); ++static void ++allocate_sig_alt_stack(void) ++{ ++ sig_alt_stack = malloc(SIGSTKSZ); ++} ++#endif + + /* Code compiled with ocamlopt never accesses more than + EXTRA_STACK bytes below the stack pointer. */ + From f8a7d99e54e0a7cc0a41e89c74e04015aafdc369 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 9 Oct 2021 22:55:55 +0200 Subject: [PATCH 22/73] spdlog: 1.8.5 -> 1.9.2, fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/155163350 --- pkgs/development/libraries/spdlog/default.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/spdlog/default.nix b/pkgs/development/libraries/spdlog/default.nix index d4e0888ffd2f..2857b8776f69 100644 --- a/pkgs/development/libraries/spdlog/default.nix +++ b/pkgs/development/libraries/spdlog/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, cmake, fmt_8 }: +{ lib, stdenv, fetchFromGitHub, cmake, fmt_8, fetchpatch }: let generic = { version, sha256 }: @@ -13,6 +13,14 @@ let inherit sha256; }; + patches = [ + # glibc 2.34 compat + (fetchpatch { + url = "https://github.com/gabime/spdlog/commit/d54b8e89c058f3cab2b32b3e9a2b49fd171d5895.patch"; + sha256 = "sha256-pb7cREF90GXb5Mbs8xFLQ+eLo6Xum13/xYa8JUgJlbI="; + }) + ]; + nativeBuildInputs = [ cmake ]; # spdlog <1.3 uses a bundled version of fmt propagatedBuildInputs = lib.optional (lib.versionAtLeast version "1.3") fmt_8; From 49a7ee9604b6c4c0a7389baa293b9f57a331ed9c Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 9 Oct 2021 23:09:45 +0200 Subject: [PATCH 23/73] seasocks: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/155145624 --- pkgs/development/libraries/seasocks/default.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/seasocks/default.nix b/pkgs/development/libraries/seasocks/default.nix index fd53db0dcf91..044948a012e3 100644 --- a/pkgs/development/libraries/seasocks/default.nix +++ b/pkgs/development/libraries/seasocks/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, cmake, python3, zlib }: +{ lib, stdenv, fetchFromGitHub, cmake, python3, zlib, catch2 }: stdenv.mkDerivation rec { pname = "seasocks"; @@ -11,9 +11,15 @@ stdenv.mkDerivation rec { sha256 = "1f9a3mx3yjmr5qry4rc1c7mrx3348iifxm7d8sj8yd41kqnzmfv4"; }; + postPatch = '' + cp ${catch2}/include/catch2/catch.hpp src/test/c/catch/catch2/catch.hpp + ''; + nativeBuildInputs = [ cmake ]; buildInputs = [ zlib python3 ]; + doCheck = true; + meta = with lib; { homepage = "https://github.com/mattgodbolt/seasocks"; description = "Tiny embeddable C++ HTTP and WebSocket server"; From c2050675d6c7f9d2a7aaaa3d3d00c7b4f22753cc Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 9 Oct 2021 23:24:31 +0200 Subject: [PATCH 24/73] leatherman: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/155215198 --- pkgs/development/libraries/leatherman/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/libraries/leatherman/default.nix b/pkgs/development/libraries/leatherman/default.nix index 874c567ed42e..05cf84144feb 100644 --- a/pkgs/development/libraries/leatherman/default.nix +++ b/pkgs/development/libraries/leatherman/default.nix @@ -11,6 +11,8 @@ stdenv.mkDerivation rec { owner = "puppetlabs"; }; + cmakeFlags = [ "-DLEATHERMAN_ENABLE_TESTING=OFF" ]; + NIX_CFLAGS_COMPILE = "-Wno-error"; nativeBuildInputs = [ cmake ]; From b770794ce34ad8d1f03a24954123d4c41487286c Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 9 Oct 2021 23:37:51 +0200 Subject: [PATCH 25/73] eternal-terminal: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/154077447 --- pkgs/tools/networking/eternal-terminal/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/tools/networking/eternal-terminal/default.nix b/pkgs/tools/networking/eternal-terminal/default.nix index 035a99103fc7..0fb559afc990 100644 --- a/pkgs/tools/networking/eternal-terminal/default.nix +++ b/pkgs/tools/networking/eternal-terminal/default.nix @@ -7,6 +7,7 @@ , openssl , protobuf , zlib +, catch2 }: stdenv.mkDerivation rec { @@ -20,6 +21,10 @@ stdenv.mkDerivation rec { hash = "sha256-cCZbG0CD5V/FTj1BuVr083EJ+BCgIcKHomNtpJb3lOo="; }; + preBuild = '' + cp ${catch2}/include/catch2/catch.hpp ../external_imported/Catch2/single_include/catch2/catch.hpp + ''; + nativeBuildInputs = [ cmake ]; @@ -42,6 +47,8 @@ stdenv.mkDerivation rec { "-std=c++17" ]; + doCheck = true; + meta = with lib; { description = "Remote shell that automatically reconnects without interrupting the session"; homepage = "https://eternalterminal.dev/"; From c905ab58a2fe60e0a34b3c1ed13b28b573267da3 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 10 Oct 2021 14:18:20 +0200 Subject: [PATCH 26/73] trenchbroom: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/155141010 --- pkgs/applications/misc/trenchbroom/default.nix | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkgs/applications/misc/trenchbroom/default.nix b/pkgs/applications/misc/trenchbroom/default.nix index 8a7025060607..a49fbf71191e 100644 --- a/pkgs/applications/misc/trenchbroom/default.nix +++ b/pkgs/applications/misc/trenchbroom/default.nix @@ -21,6 +21,19 @@ stdenv.mkDerivation rec { --subst-var-by APP_VERSION_YEAR ${lib.versions.major version} \ --subst-var-by APP_VERSION_NUMBER ${lib.versions.minor version} \ --subst-var-by GIT_DESCRIBE v${version} + + # Tests don't compile because of vendored `catch2` being incompatible with glibc-2.34. + # Also, no need to since we don't even run them. + substituteInPlace lib/CMakeLists.txt \ + --replace "add_subdirectory(Catch2)" "" + substituteInPlace lib/vecmath/CMakeLists.txt \ + --replace "add_subdirectory(test)" "" \ + --replace "add_subdirectory(lib)" "" + substituteInPlace lib/kdl/CMakeLists.txt \ + --replace "add_subdirectory(test)" "" + substituteInPlace common/CMakeLists.txt \ + --replace "add_subdirectory(test)" "" \ + --replace "add_subdirectory(benchmark)" "" ''; nativeBuildInputs = [ cmake git pandoc wrapQtAppsHook copyDesktopItems ]; From 7c5781615febc475d9b33ae07d2cdf634b50a783 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 13 Oct 2021 14:35:47 +0200 Subject: [PATCH 27/73] trafficserver: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/155205200 --- pkgs/servers/http/trafficserver/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/servers/http/trafficserver/default.nix b/pkgs/servers/http/trafficserver/default.nix index 9058a4cbda75..06d640a5bc00 100644 --- a/pkgs/servers/http/trafficserver/default.nix +++ b/pkgs/servers/http/trafficserver/default.nix @@ -13,6 +13,7 @@ , python3 , xz , zlib +, catch2 # recommended dependencies , withHwloc ? true , hwloc @@ -113,6 +114,8 @@ stdenv.mkDerivation rec { tools/check-unused-dependencies substituteInPlace configure --replace '/usr/bin/file' '${file}/bin/file' + + cp ${catch2}/include/catch2/catch.hpp tests/include/catch.hpp '' + lib.optionalString stdenv.isLinux '' substituteInPlace configure \ --replace '/usr/include/linux' '${linuxHeaders}/include/linux' From d4593d4dafa3dab28acb76eb0256081077fcc15d Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 13 Oct 2021 14:46:46 +0200 Subject: [PATCH 28/73] pdfslicer: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/155183850 --- pkgs/applications/misc/pdfslicer/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/applications/misc/pdfslicer/default.nix b/pkgs/applications/misc/pdfslicer/default.nix index 31bc47140159..ed20f460a167 100644 --- a/pkgs/applications/misc/pdfslicer/default.nix +++ b/pkgs/applications/misc/pdfslicer/default.nix @@ -24,6 +24,12 @@ stdenv.mkDerivation rec { sha256 = "0sja0ddd9c8wjjpzk2ag8q1lxpj09adgmhd7wnsylincqnj2jyls"; }; + postPatch = '' + # Don't build tests, vendored catch doesn't build with latest glibc. + substituteInPlace CMakeLists.txt \ + --replace "add_subdirectory (tests)" "" + ''; + nativeBuildInputs = [ cmake gettext From a3f4ff59ae365e1f10b5fa36dd802eb7d7b326f6 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 13 Oct 2021 14:56:50 +0200 Subject: [PATCH 29/73] openmw: mark as broken --- pkgs/games/openmw/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/games/openmw/default.nix b/pkgs/games/openmw/default.nix index edc8147a2b77..8746d3172ac8 100644 --- a/pkgs/games/openmw/default.nix +++ b/pkgs/games/openmw/default.nix @@ -83,5 +83,10 @@ mkDerivation rec { license = licenses.gpl3Plus; maintainers = with maintainers; [ abbradar marius851000 ]; platforms = platforms.linux; + + # 2021-10-13, doesn't compile with glibc-2.34, maintainers prefer a fix on glibc's end. + # Can be marked as un-broken as soon as https://gitlab.com/OpenMW/openmw/-/merge_requests/1239 + # is resolved and a patch is appliable here. + broken = true; }; } From dbe99a0172e9316cf5f3a9c6a3935efeecb1b1fc Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 13 Oct 2021 18:59:14 +0200 Subject: [PATCH 30/73] ntp: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/155170191 Patch derived from linuxfromscratch/openembedded.org[1][2]. [1] https://www.linuxfromscratch.org/blfs/view/svn/basicnet/ntp.html [2] https://patchwork.openembedded.org/patch/180019/ --- pkgs/tools/networking/ntp/default.nix | 5 ++++ .../tools/networking/ntp/glibc-2.34-fix.patch | 28 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 pkgs/tools/networking/ntp/glibc-2.34-fix.patch diff --git a/pkgs/tools/networking/ntp/default.nix b/pkgs/tools/networking/ntp/default.nix index 92a6005e2a66..d1673a013e9a 100644 --- a/pkgs/tools/networking/ntp/default.nix +++ b/pkgs/tools/networking/ntp/default.nix @@ -9,6 +9,11 @@ stdenv.mkDerivation rec { sha256 = "06cwhimm71safmwvp6nhxp6hvxsg62whnbgbgiflsqb8mgg40n7n"; }; + patches = [ + # From https://patchwork.openembedded.org/patch/180019/ + ./glibc-2.34-fix.patch + ]; + configureFlags = [ "--sysconfdir=/etc" "--localstatedir=/var" diff --git a/pkgs/tools/networking/ntp/glibc-2.34-fix.patch b/pkgs/tools/networking/ntp/glibc-2.34-fix.patch new file mode 100644 index 000000000000..256f125a77b2 --- /dev/null +++ b/pkgs/tools/networking/ntp/glibc-2.34-fix.patch @@ -0,0 +1,28 @@ +From 082a504cfcc046c3d8adaae1164268bc94e5108a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 31 Jul 2021 10:51:41 -0700 +Subject: [PATCH] libntp: Do not use PTHREAD_STACK_MIN on glibc +In glibc 2.34+ PTHREAD_STACK_MIN is not a compile-time constant which +could mean different stack sizes at runtime on different architectures +and it also causes compile failure. Default glibc thread stack size +or 64Kb set by ntp should be good in glibc these days. +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + libntp/work_thread.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +diff --git a/libntp/work_thread.c b/libntp/work_thread.c +index 03a5647..3ddd751 100644 +--- a/libntp/work_thread.c ++++ b/libntp/work_thread.c +@@ -41,7 +41,7 @@ + #ifndef THREAD_MINSTACKSIZE + # define THREAD_MINSTACKSIZE (64U * 1024) + #endif +-#ifndef __sun ++#if !defined(__sun) && !defined(__GLIBC__) + #if defined(PTHREAD_STACK_MIN) && THREAD_MINSTACKSIZE < PTHREAD_STACK_MIN + # undef THREAD_MINSTACKSIZE + # define THREAD_MINSTACKSIZE PTHREAD_STACK_MIN +-- +2.32.0 From f8fc20df2b7bdae96c8b8abfae13f70437cc80bd Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 13 Oct 2021 19:18:49 +0200 Subject: [PATCH 31/73] breakpad: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/155160812 Fix derived from Fedora's Chromium fix[1]. [1] https://src.fedoraproject.org/rpms/chromium/blob/c3fea076996d62bff1404d06de5ef3adf93426db/f/chromium-92.0.4515.107-rawhide-gcc-std-max-fix.patch --- pkgs/development/misc/breakpad/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/development/misc/breakpad/default.nix b/pkgs/development/misc/breakpad/default.nix index 7fb2b329667d..045e2e8f9a6e 100644 --- a/pkgs/development/misc/breakpad/default.nix +++ b/pkgs/development/misc/breakpad/default.nix @@ -20,6 +20,11 @@ in stdenv.mkDerivation { ln -s ${lss} $sourceRoot/src/third_party/lss ''; + postPatch = '' + substituteInPlace src/client/linux/handler/exception_handler.cc \ + --replace "max(16384" "max(static_cast(16384)" + ''; + meta = with lib; { description = "An open-source multi-platform crash reporting system"; homepage = "https://chromium.googlesource.com/breakpad"; From 65f5fdb81823a4875e8c714211ef117d3ededadf Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 13 Oct 2021 19:41:31 +0200 Subject: [PATCH 32/73] arangodb*: fix build w/glibc-2.34 Failing Hydra builds: * https://hydra.nixos.org/build/155187495 (3.3) * https://hydra.nixos.org/build/155161270 (3.4) * https://hydra.nixos.org/build/155154245 (3.5) --- pkgs/servers/nosql/arangodb/default.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index bf7f7b439609..d9f1892beca9 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchFromGitHub, openssl, zlib, cmake, python2, perl, snappy, lzo, which }: +{ stdenv, lib, fetchFromGitHub, openssl, zlib, cmake, python2, perl, snappy, lzo, which, catch2, catch }: let common = { version, sha256 }: stdenv.mkDerivation { @@ -26,6 +26,14 @@ let # with nixpkgs, it has no sense to check for a version update substituteInPlace js/client/client.js --replace "require('@arangodb').checkAvailableVersions();" "" substituteInPlace js/server/server.js --replace "require('@arangodb').checkAvailableVersions();" "" + + ${if (lib.versionOlder version "3.4") then '' + cp ${catch}/include/catch/catch.hpp 3rdParty/catch/catch.hpp + '' else if (lib.versionOlder version "3.5") then '' + cp ${catch2}/include/catch2/catch.hpp 3rdParty/catch/catch.hpp + '' else '' + (cd 3rdParty/boost/1.69.0 && patch -p1 < ${../../../development/libraries/boost/pthread-stack-min-fix.patch}) + ''} ''; cmakeFlags = [ From 84635a6e17a8907b1f28d3efb9d3b98ea61cbe66 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Thu, 14 Oct 2021 14:42:44 +0200 Subject: [PATCH 33/73] apitrace: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/155150225 --- pkgs/applications/graphics/apitrace/default.nix | 6 ++++++ .../graphics/apitrace/glibc-2.34-compat.patch | 13 +++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 pkgs/applications/graphics/apitrace/glibc-2.34-compat.patch diff --git a/pkgs/applications/graphics/apitrace/default.nix b/pkgs/applications/graphics/apitrace/default.nix index f842cf6f5c4b..756f0da9f348 100644 --- a/pkgs/applications/graphics/apitrace/default.nix +++ b/pkgs/applications/graphics/apitrace/default.nix @@ -11,6 +11,12 @@ stdenv.mkDerivation rec { owner = "apitrace"; }; + patches = [ + # glibc 2.34 compat + # derived from https://github.com/apitrace/apitrace/commit/d28a980802ad48568c87da02d630c8babfe163bb + ./glibc-2.34-compat.patch + ]; + # LD_PRELOAD wrappers need to be statically linked to work against all kinds # of games -- so it's fine to use e.g. bundled snappy. buildInputs = [ libX11 procps python2 libdwarf qtbase qtwebkit ]; diff --git a/pkgs/applications/graphics/apitrace/glibc-2.34-compat.patch b/pkgs/applications/graphics/apitrace/glibc-2.34-compat.patch new file mode 100644 index 000000000000..3f8cebe030c0 --- /dev/null +++ b/pkgs/applications/graphics/apitrace/glibc-2.34-compat.patch @@ -0,0 +1,13 @@ +diff --git a/wrappers/dlsym.cpp b/wrappers/dlsym.cpp +index 2eda082..0c0c8ee 100644 +--- a/wrappers/dlsym.cpp ++++ b/wrappers/dlsym.cpp +@@ -34,7 +34,7 @@ + #include "os.hpp" + + +-#ifdef __GLIBC__ ++#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ < 34 + + + #include From 40fc0090fc5442d8dd67423284282548625618a6 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Thu, 14 Oct 2021 14:46:29 +0200 Subject: [PATCH 34/73] aspcud: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/155189149 --- pkgs/tools/misc/aspcud/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/tools/misc/aspcud/default.nix b/pkgs/tools/misc/aspcud/default.nix index ef1b6a5a4ca5..12cc6572abcb 100644 --- a/pkgs/tools/misc/aspcud/default.nix +++ b/pkgs/tools/misc/aspcud/default.nix @@ -2,6 +2,7 @@ , stdenv , fetchFromGitHub , boost +, catch2 , clasp , cmake , gringo @@ -19,6 +20,10 @@ stdenv.mkDerivation rec { hash = "sha256-d04GPMoz6PMGq6iiul0zT1C9Mljdl9uJJ2C8MIwcmaw="; }; + postPatch = '' + cp ${catch2}/include/catch2/catch.hpp libcudf/tests/catch.hpp + ''; + nativeBuildInputs = [ cmake ]; buildInputs = [ boost clasp gringo re2c ]; @@ -28,6 +33,8 @@ stdenv.mkDerivation rec { "-DASPCUD_CLASP_PATH=${clasp}/bin/clasp" ]; + doCheck = true; + meta = with lib; { description = "Solver for package problems in CUDF format using ASP"; homepage = "https://potassco.org/aspcud/"; From 0bdcc484855b74fc50f2f821e81ee9518550a4cb Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Thu, 14 Oct 2021 15:16:18 +0200 Subject: [PATCH 35/73] conky: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/155171697 --- pkgs/os-specific/linux/conky/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/conky/default.nix b/pkgs/os-specific/linux/conky/default.nix index 9bd8890e7134..87f5bb052f48 100644 --- a/pkgs/os-specific/linux/conky/default.nix +++ b/pkgs/os-specific/linux/conky/default.nix @@ -1,7 +1,7 @@ { config, lib, stdenv, fetchFromGitHub, pkg-config, cmake # dependencies -, glib, libXinerama +, glib, libXinerama, catch2 # optional features without extra dependencies , mpdSupport ? true @@ -85,6 +85,8 @@ stdenv.mkDerivation rec { sed -i 's/ Example: .*$//' doc/config_settings.xml substituteInPlace cmake/Conky.cmake --replace "# set(RELEASE true)" "set(RELEASE true)" + + cp ${catch2}/include/catch2/catch.hpp tests/catch2/catch.hpp ''; NIX_LDFLAGS = "-lgcc_s"; @@ -133,6 +135,8 @@ stdenv.mkDerivation rec { # src/conky.cc:137:23: fatal error: defconfig.h: No such file or directory enableParallelBuilding = false; + doCheck = true; + meta = with lib; { homepage = "http://conky.sourceforge.net/"; description = "Advanced, highly configurable system monitor based on torsmo"; From 29e14f8a72530d059a1eed65ab2c772cc91e76be Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 17 Oct 2021 19:04:58 +0200 Subject: [PATCH 36/73] polyml*: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/156205993 --- pkgs/development/compilers/polyml/5.6.nix | 10 +++++++++- pkgs/development/compilers/polyml/5.7.nix | 12 ++++++++++-- pkgs/development/compilers/polyml/default.nix | 8 ++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/polyml/5.6.nix b/pkgs/development/compilers/polyml/5.6.nix index 7858e3f6dc11..4354ce7e2d67 100644 --- a/pkgs/development/compilers/polyml/5.6.nix +++ b/pkgs/development/compilers/polyml/5.6.nix @@ -1,4 +1,4 @@ -{lib, stdenv, fetchurl, autoreconfHook}: +{lib, stdenv, fetchurl, autoreconfHook, fetchpatch }: let version = "5.6"; @@ -12,6 +12,14 @@ stdenv.mkDerivation { substituteInPlace configure.ac --replace stdc++ c++ ''; + patches = [ + # glibc 2.34 compat + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/polyml/raw/4d8868ca5a1ce3268f212599a321f8011c950496/f/polyml-pthread-stack-min.patch"; + sha256 = "1h5ihg2sxld9ymrl3f2mpnbn2242ka1fsa0h4gl9h90kndvg6kby"; + }) + ]; + buildInputs = lib.optional stdenv.isDarwin autoreconfHook; src = fetchurl { diff --git a/pkgs/development/compilers/polyml/5.7.nix b/pkgs/development/compilers/polyml/5.7.nix index 5ac6990383cc..efd3d1bfd40a 100644 --- a/pkgs/development/compilers/polyml/5.7.nix +++ b/pkgs/development/compilers/polyml/5.7.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, gmp, libffi }: +{ lib, stdenv, fetchFromGitHub, autoreconfHook, gmp, libffi, fetchpatch }: stdenv.mkDerivation rec { pname = "polyml"; @@ -8,7 +8,15 @@ stdenv.mkDerivation rec { substituteInPlace configure.ac --replace stdc++ c++ ''; - patches = [ ./5.7-new-libffi-FFI_SYSV.patch ]; + patches = [ + ./5.7-new-libffi-FFI_SYSV.patch + + # glibc 2.34 compat + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/polyml/raw/4d8868ca5a1ce3268f212599a321f8011c950496/f/polyml-pthread-stack-min.patch"; + sha256 = "1h5ihg2sxld9ymrl3f2mpnbn2242ka1fsa0h4gl9h90kndvg6kby"; + }) + ]; buildInputs = [ libffi gmp ]; diff --git a/pkgs/development/compilers/polyml/default.nix b/pkgs/development/compilers/polyml/default.nix index 8a283bb6cf99..63506b8f07fa 100644 --- a/pkgs/development/compilers/polyml/default.nix +++ b/pkgs/development/compilers/polyml/default.nix @@ -12,6 +12,14 @@ stdenv.mkDerivation rec { nativeBuildInputs = lib.optional stdenv.isDarwin autoreconfHook; + patches = [ + # glibc 2.34 compat + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/polyml/raw/4d8868ca5a1ce3268f212599a321f8011c950496/f/polyml-pthread-stack-min.patch"; + sha256 = "1h5ihg2sxld9ymrl3f2mpnbn2242ka1fsa0h4gl9h90kndvg6kby"; + }) + ]; + configureFlags = [ "--enable-shared" "--with-system-libffi" From da905d4cf918e28f924bab99c6f2a4012d55410d Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Thu, 28 Oct 2021 18:52:35 +0200 Subject: [PATCH 37/73] nixos/stage-1: fix `modprobe` in initial ramdisk on systems w/glibc-2.34 This effectively fixes the majority of all VM tests which were broken because `/dev/vda` (or any other block device) wasn't mountable: machine # mounting /dev/vda on /... machine # mount: mounting /dev/vda on /mnt-root/ failed: No such device[ 2.820976] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100 machine # [ 2.821757] CPU: 0 PID: 1 Comm: init Not tainted 5.10.72 #1-NixOS machine # [ 2.821757] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014 machine # [ 2.821757] Call Trace: machine # [ 2.821757] dump_stack+0x6b/0x83 machine # [ 2.821757] panic+0x101/0x2c8 machine # [ 2.821757] do_exit.cold+0x14/0xb3 machine # [ 2.821757] do_group_exit+0x33/0xa0 machine # [ 2.821757] __x64_sys_exit_group+0x14/0x20 machine # [ 2.821757] do_syscall_64+0x33/0x40 machine # [ 2.821757] entry_SYSCALL_64_after_hwframe+0x44/0xa9 machine # [ 2.821757] RIP: 0033:0x7f67ec2800f6 machine # [ 2.821757] Code: 00 4c 8b 0d 2c 5d 11 00 eb 19 66 2e 0f 1f 84 00 00 00 00 00 89 d7 89 f0 0f 05 48 3d 00 f0 ff ff 77 22 f4 89 d7 44 89 c0 0f 05 <48> 3d 00 f0 ff ff 76 e2 f7 d8 64 41 89 01 eb da 66 2e 0f 1f 84 00 machine # [ 2.821757] RSP: 002b:00007fff8f5a71d8 EFLAGS: 00000202 ORIG_RAX: 00000000000000e7 machine # [ 2.821757] RAX: ffffffffffffffda RBX: 0000000000699704 RCX: 00007f67ec2800f6 machine # [ 2.821757] RDX: 0000000000000001 RSI: 000000000000003c RDI: 0000000000000001 machine # [ 2.821757] RBP: 0000000000000004 R08: 00000000000000e7 R09: ffffffffffffff80 machine # [ 2.821757] R10: 00007f67ec33f3e0 R11: 0000000000000202 R12: 000000000000000b machine # [ 2.821757] R13: 00007fff8f5a75a8 R14: 0000000000000000 R15: 00000000004fc198 machine # [ 2.821757] Kernel Offset: 0x31e00000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff) machine # [ 2.821757] Rebooting in 1 seconds.. This happened because the kernel failed to load modules such as `ext4` from `boot.initrd.availableKernelModules`[1] on e.g. a `mount(2)` syscall. The problem is that `kmod` isn't linked against `libpthread.so.0` anymore because it got merged into `libc.so.6` (however, the .so still exists), but still needs it: machine # newfstatat(AT_FDCWD, "/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.34-36/lib/x86_64", 0x7ffd951114c0, 0) = -1 ENOENT (No such file or directory) machine # openat(AT_FDCWD, "/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.34-36/lib/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) machine # newfstatat(AT_FDCWD, "/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.34-36/lib/x86_64", 0x7ffd951114c0, 0) = -1 ENOENT (No such file or directory) machine # openat(AT_FDCWD, "/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.34-36/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) machine # newfstatat(AT_FDCWD, "/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.34-36/lib", 0x7ffd951114c0, 0) = -1 ENOENT (No such file or directory) machine # openat(AT_FDCWD, "/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.34-36/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) machine # writev(2, [{iov_base="/nix/store/kdc9n48ksdc1a8y8w512w"..., iov_len=69}, {iov_base=": ", iov_len=2}, {iov_base="error while loading shared libra"..., iov_len=36}, {iov_base=": ", iov_len=2}, {iov_base="libpthread.so.0", iov_len=15}, {iov_base=": ", iov_len=2}, {iov_base="cy machine # ) = 184 machine # exit_group(127) = ? machine # +++ exited with 127 +++ machine # mount: mounting /dev/vda on /mnt-root/ failed: No such device machine # [ 19.167180] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100 machine # [ 19.167711] CPU: 0 PID: 1 Comm: init Not tainted 5.10.72 #1-NixOS This is not a problem * inside stage-1 because `LD_LIBRARY_PATH` points to `$out/lib` of extra-utils where `libpthread.so.6` also exists. * on a running system because `${pkgs.glibc}/lib` is part of kmod's rpath. However this is a problem inside the kernel which calls `modprobe` (in our case `kmod`) to load modules and doesn't know about `LD_LIBRARY_PATH`. Also, the rpath-reference was nuked. To work around this, the kernel's `modprobe` (i.e. `/proc/sys/kernel/modprobe`) now points to a wrapper which explicitly declares `LD_LIBRARY_PATH`. We can't use `makeWrapper` here because `modprobe` itself must not be renamed. Otherwise, `kmod` (which is the link-target of `modprobe`) won't work because it expects `argv[0] == "modprobe"` to perform modprobe's tasks. [1] https://nixos.org/manual/nixos/stable/options.html#opt-boot.initrd.availableKernelModules --- nixos/modules/system/boot/stage-1-init.sh | 2 +- nixos/modules/system/boot/stage-1.nix | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh index 8fcc1f029723..ec8860b74249 100644 --- a/nixos/modules/system/boot/stage-1-init.sh +++ b/nixos/modules/system/boot/stage-1-init.sh @@ -232,7 +232,7 @@ done mkdir -p /lib ln -s @modulesClosure@/lib/modules /lib/modules ln -s @modulesClosure@/lib/firmware /lib/firmware -echo @extraUtils@/bin/modprobe > /proc/sys/kernel/modprobe +echo @extraUtils@/bin/modprobe-kernel > /proc/sys/kernel/modprobe for i in @kernelModules@; do info "loading module $(basename $i)..." modprobe $i diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix index 1575c0257d1c..5999a993b141 100644 --- a/nixos/modules/system/boot/stage-1.nix +++ b/nixos/modules/system/boot/stage-1.nix @@ -131,6 +131,26 @@ let copy_bin_and_libs ${pkgs.kmod}/bin/kmod ln -sf kmod $out/bin/modprobe + # Dirty hack to make sure the kernel properly loads modules + # such as ext4 on demand (e.g. on a `mount(2)` syscall). This is necessary + # because `kmod` isn't linked against `libpthread.so.0` anymore (since + # it was merged into `libc.so.6` since version `2.34`), but still needs + # to access it for some reason. This is not an issue in stage-1 itself + # because of the `LD_LIBRARY_PATH`-variable and anytime later because the rpath of + # kmod/modprobe points to glibc's `$out/lib` where `libpthread.so.6` exists. + # However, this is a problem when the kernel calls `modprobe` inside + # the initial ramdisk because it doesn't know about the + # `LD_LIbRARY_PATH` and the rpath was nuked. + # + # Also, we can't use `makeWrapper` here because `kmod` only does + # `modprobe` functionality if `argv[0] == "modprobe"`. + cat >$out/bin/modprobe-kernel < Date: Sun, 31 Oct 2021 14:04:43 +0100 Subject: [PATCH 38/73] libowfat: mark as broken Failing Hydra build: https://hydra.nixos.org/build/156248131 This doesn't build with `glibc-2.34`, however there's already an upstream fix and can be marked as unbroken as soon as it's available[1]. I tried to apply the patch from a Git mirror[2], however this doesn't apply properly on `0.32` and I decided to wait for a release - such as Gentoo does it - instead. [1] https://bugs.gentoo.org/806505 [2] https://git.lighttpd.net/mirrors/libowfat/commit/a10f89d5f3fbe58e8233cc755b599d1d07c63e44 --- pkgs/development/libraries/libowfat/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/libowfat/default.nix b/pkgs/development/libraries/libowfat/default.nix index 9db1354677d6..665121b58b5c 100644 --- a/pkgs/development/libraries/libowfat/default.nix +++ b/pkgs/development/libraries/libowfat/default.nix @@ -17,5 +17,8 @@ stdenv.mkDerivation rec { homepage = "https://www.fefe.de/libowfat/"; license = licenses.gpl2; platforms = platforms.linux; + # Doesn't build with glibc 2.34: https://hydra.nixos.org/build/156248131 + # Should be fixed with the next release: https://bugs.gentoo.org/806505 + broken = true; }; } From 5f56cd54061d9d79aa387ad1df677cfac7eaf55f Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 31 Oct 2021 14:09:41 +0100 Subject: [PATCH 39/73] tiscamera: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/156249703 --- pkgs/os-specific/linux/tiscamera/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/os-specific/linux/tiscamera/default.nix b/pkgs/os-specific/linux/tiscamera/default.nix index 38bc7c3eaff3..1182aead36be 100644 --- a/pkgs/os-specific/linux/tiscamera/default.nix +++ b/pkgs/os-specific/linux/tiscamera/default.nix @@ -17,6 +17,7 @@ , python3Packages , libuuid , wrapGAppsHook +, catch2 }: stdenv.mkDerivation rec { @@ -30,6 +31,10 @@ stdenv.mkDerivation rec { sha256 = "0hpy9yhc4mn6w8gvzwif703smmcys0j2jqbz2xfghqxcyb0ykplj"; }; + postPatch = '' + cp ${catch2}/include/catch2/catch.hpp external/catch/catch.hpp + ''; + nativeBuildInputs = [ cmake pkg-config From 18d915e48e2ff34a525eac03ab0dba82ef89eceb Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 31 Oct 2021 14:14:16 +0100 Subject: [PATCH 40/73] ursadb: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/156279394 --- pkgs/servers/ursadb/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/servers/ursadb/default.nix b/pkgs/servers/ursadb/default.nix index 836a5934d96b..c9b39eccd8a8 100644 --- a/pkgs/servers/ursadb/default.nix +++ b/pkgs/servers/ursadb/default.nix @@ -11,6 +11,14 @@ stdenv.mkDerivation rec { hash = "sha256-/EK1CKJ0IR7fkKSpQkONbWcz6uhUoAwK430ljNYsV5U="; }; + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace \ + "add_executable(ursadb_test Tests.cpp)" "" \ + --replace \ + "target_link_libraries(ursadb_test ursa)" "" + ''; + installPhase = '' mkdir -p $out/bin cp ursadb $out/bin/ From 89caa8e552328b8a28d0133ed5931927eb671ddc Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 31 Oct 2021 14:24:09 +0100 Subject: [PATCH 41/73] libfive: mark as broken Failing Hydra build: https://hydra.nixos.org/build/156227205 Vendored `catch2` is too old and thus cannot be patched. --- pkgs/development/libraries/libfive/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/libraries/libfive/default.nix b/pkgs/development/libraries/libfive/default.nix index 8634f05ebbc7..00031e66bf50 100644 --- a/pkgs/development/libraries/libfive/default.nix +++ b/pkgs/development/libraries/libfive/default.nix @@ -47,5 +47,6 @@ mkDerivation { maintainers = with maintainers; [ hodapp kovirobi ]; license = with licenses; [ mpl20 gpl2Plus ]; platforms = with platforms; linux ++ darwin; + broken = true; }; } From fe58c181d3573e35da55bf43c3827d2e7627c8af Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 31 Oct 2021 14:33:13 +0100 Subject: [PATCH 42/73] libspf2: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/156229214 --- pkgs/development/libraries/libspf2/default.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libspf2/default.nix b/pkgs/development/libraries/libspf2/default.nix index c48c71e14485..203f2768e37b 100644 --- a/pkgs/development/libraries/libspf2/default.nix +++ b/pkgs/development/libraries/libspf2/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook }: +{ lib, stdenv, fetchFromGitHub, autoreconfHook, fetchpatch }: with lib; @@ -13,6 +13,14 @@ stdenv.mkDerivation rec { sha256 = "03iiaafdcwh220pqignk407h6klrakwz0zkb8iwk6nkwipkwvhsx"; }; + patches = [ + # glibc-2.34 compat + (fetchpatch { + url = "https://raw.githubusercontent.com/gentoo/gentoo/dbb8a5c9f749cc11e61cfe558f164b165cbc30cb/mail-filter/libspf2/files/libspf2-1.2.11-undefined-dn_.patch"; + sha256 = "sha256-6JVVkVGCcFJsNeBdVTPcLhW4KoHLY4ai/KXDMliXgPA="; + }) + ]; + postPatch = '' # disable static bins compilation sed -i \ From 6b98a5e51256e8b9d7a5c30f93a8d4178554013f Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 31 Oct 2021 14:44:28 +0100 Subject: [PATCH 43/73] nethack-qt: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/156236800 --- pkgs/games/nethack/default.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkgs/games/nethack/default.nix b/pkgs/games/nethack/default.nix index 2b29bddad93c..f6de3d57c130 100644 --- a/pkgs/games/nethack/default.nix +++ b/pkgs/games/nethack/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, coreutils, ncurses, gzip, flex, bison +{ stdenv, lib, fetchurl, coreutils, ncurses, gzip, flex, bison, fetchpatch , less , buildPackages , x11Mode ? false, qtMode ? false, libXaw, libXext, libXpm, bdftopcf, mkfontdir, pkg-config, qt5 @@ -24,6 +24,15 @@ in stdenv.mkDerivation rec { else if qtMode then "nethack-qt" else "nethack"; + patches = [ + # Don't unset `__warn_unused_result__`, breaks on glibc-2.34 + (fetchpatch { + url = "https://github.com/NetHack/NetHack/commit/81d73ce417dda6a98e2e918e06922e68b67c53f7.patch"; + sha256 = "sha256-PX9XtJTEE3K1yg/IwIzEIT+EZWi02gU+9msrsG9ZWQY="; + revert = true; + }) + ]; + src = fetchurl { url = "https://nethack.org/download/${version}/nethack-${lib.replaceStrings ["."] [""] version}-src.tgz"; sha256 = "1liyckjp34j354qnxc1zn9730lh1p2dabrg1hap24z6xnqx0rpng"; From 748faeb623035c1360eeb6dc4b05abf5defd721c Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Mon, 3 Jan 2022 23:19:37 +0100 Subject: [PATCH 44/73] glibc: don't hide symbol `__nss_files_fopen` I realized that `libredirect` doesn't wrap `__nss_files_fopen` anymore which subsequently broke the `checkPhase` of `pkgs.openssh`[1] which was implemented in 85c63a515d21c8fa27a561a9b8a1db5b18118e39. The reason for that is what `libc_hidden_{def,proto}` are used for, to quote `libc-symbols.h`[2]: The following macros are used for PLT bypassing within libc.so (and if needed other libraries similarly). This basically means that these symbols are altered in a way so that they cannot be wrapped by `libredirect` even though it re-defines `__nss_files_fopen` while being loaded at first with `LD_PRELOAD`. The problem was caused by a change in 2.34[3] where the `files`-module for NSS isn't loaded from `libnss_files.so.2` anymore, but the relevant symbols are directly obtained from `libc.so.6` since a lot of glibc's APIs were merged into `libc.so.6` before. As this would effectively break `libredirect` whenever it tries to wrap C APIs that interact with NSS (e.g. to use `getpwnam(3)`), I decided to undo this change for `__nss_files_fopen`. [1] https://hydra.nixos.org/build/160688523 [2] https://sourceware.org/git/?p=glibc.git;a=blob;f=include/libc-symbols.h;h=d41ecf4384d07f9108698dba1d4e9e6a7a9b975f;hb=ae37d06c7d127817ba43850f0f898b793d42aea7 [3] https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=f9c8b11ed7726b858cd7b7cea0d3d7c5233d78cf;hp=6212bb67f4695962748a5981e1b9fea105af74f6 --- pkgs/development/libraries/glibc/common.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix index 599a7f2a1302..47aa304e7d39 100644 --- a/pkgs/development/libraries/glibc/common.nix +++ b/pkgs/development/libraries/glibc/common.nix @@ -140,6 +140,10 @@ stdenv.mkDerivation ({ # nscd needs libgcc, and we don't want it dynamically linked # because we don't want it to depend on bootstrap-tools libs. echo "LDFLAGS-nscd += -static-libgcc" >> nscd/Makefile + + # Ensure that `__nss_files_fopen` can still be wrapped by `libredirect`. + sed -i -e '/libc_hidden_def (__nss_files_fopen)/d' nss/nss_files_fopen.c + sed -i -e '/libc_hidden_proto (__nss_files_fopen)/d' include/nss_files.h '' # FIXME: find a solution for infinite recursion in cross builds. # For now it's hopefully acceptable that IDN from libc doesn't reliably work. From 1046c86c9986ca7239b00a6ef1396aae0961ba90 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 9 Jan 2022 16:14:04 +0100 Subject: [PATCH 45/73] libosmscout: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/163072881 --- pkgs/development/libraries/libosmscout/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/libraries/libosmscout/default.nix b/pkgs/development/libraries/libosmscout/default.nix index 2f83963d205f..b11ec3eb94c1 100644 --- a/pkgs/development/libraries/libosmscout/default.nix +++ b/pkgs/development/libraries/libosmscout/default.nix @@ -11,6 +11,8 @@ mkDerivation rec { sha256 = "1pa459h52kw88mvsdvkz83f4p35vvgsfy2qfjwcj61gj4y9d2rq4"; }; + cmakeFlags = [ "-DOSMSCOUT_BUILD_TESTS=OFF" ]; + nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ marisa qtlocation ]; From c0f49544d4952b1c63180fbb3dd5af2611a1b6c6 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 9 Jan 2022 16:32:33 +0100 Subject: [PATCH 46/73] maude: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/163067005 --- pkgs/development/interpreters/maude/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/interpreters/maude/default.nix b/pkgs/development/interpreters/maude/default.nix index 860f9ac3a5eb..30055dc7a3dd 100644 --- a/pkgs/development/interpreters/maude/default.nix +++ b/pkgs/development/interpreters/maude/default.nix @@ -30,6 +30,10 @@ stdenv.mkDerivation { hardeningDisable = [ "stackprotector" ] ++ lib.optionals stdenv.isi686 [ "pic" "fortify" ]; + # Fix for glibc-2.34, see + # https://gitweb.gentoo.org/repo/gentoo.git/commit/dev-lang/maude/maude-3.1-r1.ebuild?id=f021cc6cfa1e35eb9c59955830f1fd89bfcb26b4 + configureFlags = [ "--without-libsigsegv" ]; + preConfigure = '' configureFlagsArray=( --datadir="$out/share/maude" From 4427e547ca418bac7cc2a6b4c5d144a4a2fac126 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 9 Jan 2022 16:49:52 +0100 Subject: [PATCH 47/73] jetbrains.jdk: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/163085108 --- pkgs/development/compilers/jetbrains-jdk/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix index bfff07aabcb2..2d76b98f580c 100644 --- a/pkgs/development/compilers/jetbrains-jdk/default.nix +++ b/pkgs/development/compilers/jetbrains-jdk/default.nix @@ -1,4 +1,4 @@ -{ lib, openjdk11, fetchFromGitHub, jetbrains }: +{ lib, openjdk11, fetchFromGitHub, jetbrains, fetchpatch }: openjdk11.overrideAttrs (oldAttrs: rec { pname = "jetbrains-jdk"; @@ -10,7 +10,12 @@ openjdk11.overrideAttrs (oldAttrs: rec { rev = "jb${version}"; sha256 = "sha256-TPNYZUkAoiZfp7Ci3fslKnRNGY1lnyIhXYUt6J31lwI="; }; - patches = []; + patches = [ + (fetchpatch { + url = "https://github.com/JetBrains/JetBrainsRuntime/commit/980cfdf8d04c015bf2ecb4642064e45e3f36630d.patch"; + sha256 = "sha256-/f20sWnlWoObgdgZKWD785q0aRZ5oIP5pzW+AmejLWM="; + }) + ]; meta = with lib; { description = "An OpenJDK fork to better support Jetbrains's products."; longDescription = '' From 81e0c947ecbf88e89f75bed560b07ae2fdc006a5 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 9 Jan 2022 16:58:31 +0100 Subject: [PATCH 48/73] xnee: fix build w/glibc-2.34 ChangeLog: https://hydra.nixos.org/build/163058159 --- pkgs/tools/X11/xnee/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/tools/X11/xnee/default.nix b/pkgs/tools/X11/xnee/default.nix index c3355b802633..00ebb1ecec23 100644 --- a/pkgs/tools/X11/xnee/default.nix +++ b/pkgs/tools/X11/xnee/default.nix @@ -15,6 +15,12 @@ stdenv.mkDerivation rec { do sed -i "$i" -e's|/bin/bash|${stdenv.shell}|g ; s|/usr/bin/env bash|${stdenv.shell}|g' done + + # Fix for glibc-2.34. For some reason, `LIBSEMA="CCC"` is added + # if `sem_init` is part of libc which causes errors like + # `gcc: error: CCC: No such file or directory` during the build. + substituteInPlace configure \ + --replace 'LIBSEMA="CCC"' 'LIBSEMA=""' ''; buildInputs = From 7605d492a772670ebe621a9d0a8f7e34dcf79300 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 9 Jan 2022 17:01:27 +0100 Subject: [PATCH 49/73] qt512.qtwebengine: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/163120450 --- pkgs/development/libraries/qt-5/5.12/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.12/default.nix b/pkgs/development/libraries/qt-5/5.12/default.nix index d89547261880..01b65eb3e43a 100644 --- a/pkgs/development/libraries/qt-5/5.12/default.nix +++ b/pkgs/development/libraries/qt-5/5.12/default.nix @@ -85,6 +85,14 @@ let qtscript = [ ./qtscript.patch ]; qtserialport = [ ./qtserialport.patch ]; qtwebengine = [ + # glibc 2.34 compat + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/qt5-qtwebengine/raw/d122c011631137b79455850c363676c655cf9e09/f/qtwebengine-everywhere-src-5.15.5-SIGSTKSZ.patch"; + sha256 = "sha256-CJxN6sTvWdPVEwSkr0zpPrjyhUIi6tYSWb8ZyO0sY2o="; + excludes = [ + "src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc" + ]; + }) ./qtwebengine-no-build-skip.patch # https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/707 # https://bugreports.qt.io/browse/QTBUG-77037 From f31930977deea1c0c49b8a72234a0a7a7864aa35 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 9 Jan 2022 17:09:08 +0100 Subject: [PATCH 50/73] djmount: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/163123869 --- pkgs/tools/filesystems/djmount/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/tools/filesystems/djmount/default.nix b/pkgs/tools/filesystems/djmount/default.nix index f5b0a0315dfc..3111be5b4d12 100644 --- a/pkgs/tools/filesystems/djmount/default.nix +++ b/pkgs/tools/filesystems/djmount/default.nix @@ -8,6 +8,14 @@ stdenv.mkDerivation rec { sha256 = "0kqf0cy3h4cfiy5a2sigmisx0lvvsi1n0fbyb9ll5gacmy1b8nxa"; }; + postPatch = '' + # Taken from https://github.com/pupnp/pupnp/pull/334/files + substituteInPlace libupnp/threadutil/inc/ithread.h \ + --replace \ + "#define ithread_mutexattr_setkind_np pthread_mutexattr_setkind_np" \ + '#define ithread_mutexattr_setkind_np pthread_mutexattr_settype' + ''; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ fuse]; From 52bba1de8ae33329d9e5937f0585c56179160938 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Mon, 10 Jan 2022 16:33:32 +0100 Subject: [PATCH 51/73] clingcon: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/163641612 --- pkgs/applications/science/logic/potassco/clingcon.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/applications/science/logic/potassco/clingcon.nix b/pkgs/applications/science/logic/potassco/clingcon.nix index 1614adf45537..d7ec2e72433e 100644 --- a/pkgs/applications/science/logic/potassco/clingcon.nix +++ b/pkgs/applications/science/logic/potassco/clingcon.nix @@ -2,6 +2,7 @@ , fetchFromGitHub , cmake , clingo +, catch2 }: stdenv.mkDerivation rec { @@ -15,6 +16,10 @@ stdenv.mkDerivation rec { sha256 = "1g2xkz9nsgqnrw3fdf5jchl16f0skj5mm32va61scc2yrchll166"; }; + postPatch = '' + cp ${catch2}/include/catch2/catch.hpp libclingcon/tests/catch.hpp + ''; + nativeBuildInputs = [ cmake clingo ]; cmakeFlags = [ From 322c490803f242fef658f37f4ddf71b97e2e05fd Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Mon, 10 Jan 2022 16:34:40 +0100 Subject: [PATCH 52/73] mustache-hpp: fix build w/glibc-2.34 Actually, this package doesn't need a build as it copies over the .hpp-file only, so I simplified it a bit. Failing Hydra build: https://hydra.nixos.org/build/163643601 --- pkgs/development/libraries/mustache-hpp/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/mustache-hpp/default.nix b/pkgs/development/libraries/mustache-hpp/default.nix index 373f232a9866..ce6dd1d21a9b 100644 --- a/pkgs/development/libraries/mustache-hpp/default.nix +++ b/pkgs/development/libraries/mustache-hpp/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, cmake }: +{ lib, stdenv, fetchFromGitHub }: stdenv.mkDerivation rec { pname = "mustache"; @@ -11,11 +11,11 @@ stdenv.mkDerivation rec { sha256 = "0r9rbk6v1wpld2ismfsk2lkhbyv3dkf0p03hkjivbj05qkfhvlbb"; }; - nativeBuildInputs = [ cmake ]; + dontBuild = true; installPhase = '' mkdir -p $out/include - cp ../mustache.hpp $out/include + cp mustache.hpp $out/include ''; meta = with lib; { From a2ac7c607b965aa2296421bfd801f1c74f09fd9a Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Mon, 10 Jan 2022 16:40:44 +0100 Subject: [PATCH 53/73] recastnavigation: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/163634618 --- pkgs/development/libraries/recastnavigation/default.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/recastnavigation/default.nix b/pkgs/development/libraries/recastnavigation/default.nix index d39d1a713219..6fd2056d2ea2 100644 --- a/pkgs/development/libraries/recastnavigation/default.nix +++ b/pkgs/development/libraries/recastnavigation/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchFromGitHub, cmake, libGL, SDL2, libGLU }: +{ stdenv, lib, fetchFromGitHub, cmake, libGL, SDL2, libGLU, catch }: stdenv.mkDerivation rec { pname = "recastai"; @@ -13,6 +13,12 @@ stdenv.mkDerivation rec { sha256 = "sha256-QP3lMMFR6fiKQTksAkRL6X9yaoVz2xt4QSIP9g6piww="; }; + postPatch = '' + cp ${catch}/include/catch/catch.hpp Tests/catch.hpp + ''; + + doCheck = true; + nativeBuildInputs = [ cmake ]; buildInputs = [ libGL SDL2 libGLU ]; From 5f9c36c07f0f82d5488f7264651e32dd4c6b0e0a Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Mon, 10 Jan 2022 22:53:35 +0100 Subject: [PATCH 54/73] spdlog_0: fix build w/glibc-2.34 The patch only appears necessary for spdlog_1, so we skip it for v0 which builds fine without it. Failing Hydra build: https://hydra.nixos.org/build/163659629 --- pkgs/development/libraries/spdlog/default.nix | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/pkgs/development/libraries/spdlog/default.nix b/pkgs/development/libraries/spdlog/default.nix index 2857b8776f69..6ef4f4af43ae 100644 --- a/pkgs/development/libraries/spdlog/default.nix +++ b/pkgs/development/libraries/spdlog/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchFromGitHub, cmake, fmt_8, fetchpatch }: let - generic = { version, sha256 }: + generic = { version, sha256, patches ? [] }: stdenv.mkDerivation { pname = "spdlog"; inherit version; @@ -13,13 +13,7 @@ let inherit sha256; }; - patches = [ - # glibc 2.34 compat - (fetchpatch { - url = "https://github.com/gabime/spdlog/commit/d54b8e89c058f3cab2b32b3e9a2b49fd171d5895.patch"; - sha256 = "sha256-pb7cREF90GXb5Mbs8xFLQ+eLo6Xum13/xYa8JUgJlbI="; - }) - ]; + inherit patches; nativeBuildInputs = [ cmake ]; # spdlog <1.3 uses a bundled version of fmt @@ -59,6 +53,13 @@ in spdlog_1 = generic { version = "1.9.2"; sha256 = "sha256-GSUdHtvV/97RyDKy8i+ticnSlQCubGGWHg4Oo+YAr8Y="; + patches = [ + # glibc 2.34 compat + (fetchpatch { + url = "https://github.com/gabime/spdlog/commit/d54b8e89c058f3cab2b32b3e9a2b49fd171d5895.patch"; + sha256 = "sha256-pb7cREF90GXb5Mbs8xFLQ+eLo6Xum13/xYa8JUgJlbI="; + }) + ]; }; spdlog_0 = generic { From 8ba95b68554d35faa422dec4a8bb201510e6686b Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Mon, 10 Jan 2022 22:58:19 +0100 Subject: [PATCH 55/73] symengine: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/163675793 --- pkgs/development/libraries/symengine/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/development/libraries/symengine/default.nix b/pkgs/development/libraries/symengine/default.nix index cbe5e13a7007..5cb2e2117863 100644 --- a/pkgs/development/libraries/symengine/default.nix +++ b/pkgs/development/libraries/symengine/default.nix @@ -5,6 +5,7 @@ , flint , mpfr , libmpc +, catch }: stdenv.mkDerivation rec { @@ -18,6 +19,10 @@ stdenv.mkDerivation rec { sha256 = "sha256-5KpxBusJCuwrfFWHbrRKlH6Ic7YivYqz2m+BCbNfZp0="; }; + postPatch = '' + cp ${catch}/include/catch/catch.hpp symengine/utilities/catch/catch.hpp + ''; + nativeBuildInputs = [ cmake ]; buildInputs = [ gmp flint mpfr libmpc ]; From 6a977757e284b76468c7973f094eb99aa20b9251 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Tue, 11 Jan 2022 12:25:50 +0100 Subject: [PATCH 56/73] zeroc-ice: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/163122463 --- pkgs/development/libraries/zeroc-ice/default.nix | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkgs/development/libraries/zeroc-ice/default.nix b/pkgs/development/libraries/zeroc-ice/default.nix index fcd836348556..9a1861f60440 100644 --- a/pkgs/development/libraries/zeroc-ice/default.nix +++ b/pkgs/development/libraries/zeroc-ice/default.nix @@ -3,6 +3,7 @@ , darwin, libiconv, Security , python3 # for tests only , cpp11 ? false +, fetchpatch }: let @@ -32,6 +33,18 @@ in stdenv.mkDerivation rec { sha256 = "0zc8gmlzl2f38m1fj6pv2vm8ka7fkszd6hx2lb8gfv65vn3m4sk4"; }; + patches = [ + # Fixes for openssl 3.0 / glibc-2.34. + (fetchpatch { + url = "https://github.com/zeroc-ice/ice/commit/7204b31a082a10cd481c1f31dbb6184ec699160d.patch"; + sha256 = "sha256-RN8kQrvWRu1oXB7UV7DkYbZ8A0VyJYGArx6ikovwefo="; + }) + (fetchpatch { + url = "https://github.com/zeroc-ice/ice/commit/358e7fea00383d55d1c19d38a3bbb64aca803aeb.patch"; + sha256 = "sha256-ntrTO6qHB7dw398BRdAyJQUfVYW3iEfzUaBYoWWOEDs="; + }) + ]; + buildInputs = [ zeroc_mcpp bzip2 expat libedit lmdb openssl ] ++ lib.optionals stdenv.isDarwin [ darwin.cctools libiconv Security ]; From e10ea9608a46565bd4d8d0a692647f9ce43b1de5 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Tue, 11 Jan 2022 20:42:16 +0100 Subject: [PATCH 57/73] gcc{7,9,10}: apply patches for asan w/glibc-2.34 This should fix a few broken cc-wrapper tests that also check for libasan[1][2][3]: [...] checking whether sanitizers are fully functional... ==243==ERROR: AddressSanitizer failed to allocate 0x0 (0) bytes of SetAlternateSignalStack (error code: 22) [...] The underlying issue is that `SIGSTKSZ` isn't a compile-time constant anymore, but in this case the uninitialized `kAltStackSize` was initialized early enough to evalute to `0`[4]. The issue is already fixed in gcc11 and there's GCC 8.5 which also contains the patch, however the backports to v9 and v10 aren't released yet, so we have to apply patches on our own here. For GCC 7.5 I applied the patch from gcc8 as it doesn't seem as if there's an official upstream backport. [1] https://hydra.nixos.org/build/163102264 [2] https://hydra.nixos.org/build/163624687 [3] https://hydra.nixos.org/build/163619227 [4] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100114 --- pkgs/development/compilers/gcc/10/default.nix | 4 +- .../gcc/10/gcc10-asan-glibc-2.34.patch | 70 +++++++++++++++++++ pkgs/development/compilers/gcc/7/default.nix | 3 + .../gcc/7/gcc8-asan-glibc-2.34.patch | 70 +++++++++++++++++++ pkgs/development/compilers/gcc/9/default.nix | 2 +- .../gcc/9/gcc9-asan-glibc-2.34.patch | 70 +++++++++++++++++++ 6 files changed, 216 insertions(+), 3 deletions(-) create mode 100644 pkgs/development/compilers/gcc/10/gcc10-asan-glibc-2.34.patch create mode 100644 pkgs/development/compilers/gcc/7/gcc8-asan-glibc-2.34.patch create mode 100644 pkgs/development/compilers/gcc/9/gcc9-asan-glibc-2.34.patch diff --git a/pkgs/development/compilers/gcc/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix index 4493fd936ec3..6c5adac600c8 100644 --- a/pkgs/development/compilers/gcc/10/default.nix +++ b/pkgs/development/compilers/gcc/10/default.nix @@ -61,8 +61,8 @@ let majorVersion = "10"; inherit (stdenv) buildPlatform hostPlatform targetPlatform; - patches = - optional (targetPlatform != hostPlatform) ../libstdc++-target.patch + patches = [ ./gcc10-asan-glibc-2.34.patch ] + ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch ++ optional noSysDirs ../no-sys-dirs.patch ++ optional (noSysDirs && hostPlatform.isRiscV) ../no-sys-dirs-riscv.patch /* ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied diff --git a/pkgs/development/compilers/gcc/10/gcc10-asan-glibc-2.34.patch b/pkgs/development/compilers/gcc/10/gcc10-asan-glibc-2.34.patch new file mode 100644 index 000000000000..d6d4f41ffdf8 --- /dev/null +++ b/pkgs/development/compilers/gcc/10/gcc10-asan-glibc-2.34.patch @@ -0,0 +1,70 @@ +From 950bac27d63c1c2ac3a6ed867692d6a13f21feb3 Mon Sep 17 00:00:00 2001 +From: Jakub Jelinek +Date: Sat, 17 Apr 2021 11:27:14 +0200 +Subject: [PATCH] sanitizer: Fix asan against glibc 2.34 [PR100114] + +As mentioned in the PR, SIGSTKSZ is no longer a compile time constant in +glibc 2.34 and later, so +static const uptr kAltStackSize = SIGSTKSZ * 4; +needs dynamic initialization, but is used by a function called indirectly +from .preinit_array and therefore before the variable is constructed. +This results in using 0 size instead and all asan instrumented programs +die with: +==91==ERROR: AddressSanitizer failed to allocate 0x0 (0) bytes of SetAlternateSignalStack (error code: 22) + +Here is a cherry-pick from upstream to fix this. + +2021-04-17 Jakub Jelinek + + PR sanitizer/100114 + * sanitizer_common/sanitizer_posix_libcdep.cpp: Cherry-pick + llvm-project revisions 82150606fb11d28813ae6da1101f5bda638165fe + and b93629dd335ffee2fc4b9b619bf86c3f9e6b0023. + +(cherry picked from commit d9f462fb372fb02da032cefd6b091d7582c425ae) +--- + .../sanitizer_common/sanitizer_posix_libcdep.cpp | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp +index 304b3a01a08..ac88fbe074e 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp ++++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp +@@ -169,7 +169,11 @@ bool SupportsColoredOutput(fd_t fd) { + + #if !SANITIZER_GO + // TODO(glider): different tools may require different altstack size. +-static const uptr kAltStackSize = SIGSTKSZ * 4; // SIGSTKSZ is not enough. ++static uptr GetAltStackSize() { ++ // SIGSTKSZ is not enough. ++ static const uptr kAltStackSize = SIGSTKSZ * 4; ++ return kAltStackSize; ++} + + void SetAlternateSignalStack() { + stack_t altstack, oldstack; +@@ -180,10 +184,9 @@ void SetAlternateSignalStack() { + // TODO(glider): the mapped stack should have the MAP_STACK flag in the + // future. It is not required by man 2 sigaltstack now (they're using + // malloc()). +- void* base = MmapOrDie(kAltStackSize, __func__); +- altstack.ss_sp = (char*) base; ++ altstack.ss_size = GetAltStackSize(); ++ altstack.ss_sp = (char *)MmapOrDie(altstack.ss_size, __func__); + altstack.ss_flags = 0; +- altstack.ss_size = kAltStackSize; + CHECK_EQ(0, sigaltstack(&altstack, nullptr)); + } + +@@ -191,7 +194,7 @@ void UnsetAlternateSignalStack() { + stack_t altstack, oldstack; + altstack.ss_sp = nullptr; + altstack.ss_flags = SS_DISABLE; +- altstack.ss_size = kAltStackSize; // Some sane value required on Darwin. ++ altstack.ss_size = GetAltStackSize(); // Some sane value required on Darwin. + CHECK_EQ(0, sigaltstack(&altstack, &oldstack)); + UnmapOrDie(oldstack.ss_sp, oldstack.ss_size); + } +-- +2.27.0 + diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix index dcb7d0b91f6f..72f3e06bd32b 100644 --- a/pkgs/development/compilers/gcc/7/default.nix +++ b/pkgs/development/compilers/gcc/7/default.nix @@ -63,6 +63,9 @@ let majorVersion = "7"; ./riscv-pthread-reentrant.patch # https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00297.html ./riscv-no-relax.patch + # Fix for asan w/glibc-2.34. Although there's no upstream backport to v7, + # the patch from gcc 8 seems to work perfectly fine. + ./gcc8-asan-glibc-2.34.patch ./0001-Fix-build-for-glibc-2.31.patch ] diff --git a/pkgs/development/compilers/gcc/7/gcc8-asan-glibc-2.34.patch b/pkgs/development/compilers/gcc/7/gcc8-asan-glibc-2.34.patch new file mode 100644 index 000000000000..5645b97c1d89 --- /dev/null +++ b/pkgs/development/compilers/gcc/7/gcc8-asan-glibc-2.34.patch @@ -0,0 +1,70 @@ +From ef195a39d0d3b929cc676302d074b42c25460601 Mon Sep 17 00:00:00 2001 +From: Jakub Jelinek +Date: Sat, 17 Apr 2021 11:27:14 +0200 +Subject: [PATCH] sanitizer: Fix asan against glibc 2.34 [PR100114] + +As mentioned in the PR, SIGSTKSZ is no longer a compile time constant in +glibc 2.34 and later, so +static const uptr kAltStackSize = SIGSTKSZ * 4; +needs dynamic initialization, but is used by a function called indirectly +from .preinit_array and therefore before the variable is constructed. +This results in using 0 size instead and all asan instrumented programs +die with: +==91==ERROR: AddressSanitizer failed to allocate 0x0 (0) bytes of SetAlternateSignalStack (error code: 22) + +Here is a cherry-pick from upstream to fix this. + +2021-04-17 Jakub Jelinek + + PR sanitizer/100114 + * sanitizer_common/sanitizer_posix_libcdep.cc: Cherry-pick + llvm-project revisions 82150606fb11d28813ae6da1101f5bda638165fe + and b93629dd335ffee2fc4b9b619bf86c3f9e6b0023. + +(cherry picked from commit 950bac27d63c1c2ac3a6ed867692d6a13f21feb3) +--- + .../sanitizer_common/sanitizer_posix_libcdep.cc | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc +index 1a37118c299..066079b3954 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc +@@ -159,7 +159,11 @@ bool SupportsColoredOutput(fd_t fd) { + + #if !SANITIZER_GO + // TODO(glider): different tools may require different altstack size. +-static const uptr kAltStackSize = SIGSTKSZ * 4; // SIGSTKSZ is not enough. ++static uptr GetAltStackSize() { ++ // SIGSTKSZ is not enough. ++ static const uptr kAltStackSize = SIGSTKSZ * 4; ++ return kAltStackSize; ++} + + void SetAlternateSignalStack() { + stack_t altstack, oldstack; +@@ -170,10 +174,9 @@ void SetAlternateSignalStack() { + // TODO(glider): the mapped stack should have the MAP_STACK flag in the + // future. It is not required by man 2 sigaltstack now (they're using + // malloc()). +- void* base = MmapOrDie(kAltStackSize, __func__); +- altstack.ss_sp = (char*) base; ++ altstack.ss_size = GetAltStackSize(); ++ altstack.ss_sp = (char *)MmapOrDie(altstack.ss_size, __func__); + altstack.ss_flags = 0; +- altstack.ss_size = kAltStackSize; + CHECK_EQ(0, sigaltstack(&altstack, nullptr)); + } + +@@ -181,7 +184,7 @@ void UnsetAlternateSignalStack() { + stack_t altstack, oldstack; + altstack.ss_sp = nullptr; + altstack.ss_flags = SS_DISABLE; +- altstack.ss_size = kAltStackSize; // Some sane value required on Darwin. ++ altstack.ss_size = GetAltStackSize(); // Some sane value required on Darwin. + CHECK_EQ(0, sigaltstack(&altstack, &oldstack)); + UnmapOrDie(oldstack.ss_sp, oldstack.ss_size); + } +-- +2.27.0 + diff --git a/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix index 9d21ed667f6c..62878cb6d877 100644 --- a/pkgs/development/compilers/gcc/9/default.nix +++ b/pkgs/development/compilers/gcc/9/default.nix @@ -78,7 +78,7 @@ let majorVersion = "9"; # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96796 # # This patch can most likely be removed by a post 9.3.0-release. - [ ./avoid-cycling-subreg-reloads.patch ] + [ ./avoid-cycling-subreg-reloads.patch ./gcc9-asan-glibc-2.34.patch ] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch ++ optional targetPlatform.isNetBSD ../libstdc++-netbsd-ctypes.patch ++ optional noSysDirs ../no-sys-dirs.patch diff --git a/pkgs/development/compilers/gcc/9/gcc9-asan-glibc-2.34.patch b/pkgs/development/compilers/gcc/9/gcc9-asan-glibc-2.34.patch new file mode 100644 index 000000000000..1aea1f9b18a1 --- /dev/null +++ b/pkgs/development/compilers/gcc/9/gcc9-asan-glibc-2.34.patch @@ -0,0 +1,70 @@ +From 3d0135bf3be416bbe2531dc763d19b749eb2b856 Mon Sep 17 00:00:00 2001 +From: Jakub Jelinek +Date: Sat, 17 Apr 2021 11:27:14 +0200 +Subject: [PATCH] sanitizer: Fix asan against glibc 2.34 [PR100114] + +As mentioned in the PR, SIGSTKSZ is no longer a compile time constant in +glibc 2.34 and later, so +static const uptr kAltStackSize = SIGSTKSZ * 4; +needs dynamic initialization, but is used by a function called indirectly +from .preinit_array and therefore before the variable is constructed. +This results in using 0 size instead and all asan instrumented programs +die with: +==91==ERROR: AddressSanitizer failed to allocate 0x0 (0) bytes of SetAlternateSignalStack (error code: 22) + +Here is a cherry-pick from upstream to fix this. + +2021-04-17 Jakub Jelinek + + PR sanitizer/100114 + * sanitizer_common/sanitizer_posix_libcdep.cc: Cherry-pick + llvm-project revisions 82150606fb11d28813ae6da1101f5bda638165fe + and b93629dd335ffee2fc4b9b619bf86c3f9e6b0023. + +(cherry picked from commit 950bac27d63c1c2ac3a6ed867692d6a13f21feb3) +--- + .../sanitizer_common/sanitizer_posix_libcdep.cc | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc +index d2fd76a6d36..1917e29ced2 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc +@@ -169,7 +169,11 @@ bool SupportsColoredOutput(fd_t fd) { + + #if !SANITIZER_GO + // TODO(glider): different tools may require different altstack size. +-static const uptr kAltStackSize = SIGSTKSZ * 4; // SIGSTKSZ is not enough. ++static uptr GetAltStackSize() { ++ // SIGSTKSZ is not enough. ++ static const uptr kAltStackSize = SIGSTKSZ * 4; ++ return kAltStackSize; ++} + + void SetAlternateSignalStack() { + stack_t altstack, oldstack; +@@ -180,10 +184,9 @@ void SetAlternateSignalStack() { + // TODO(glider): the mapped stack should have the MAP_STACK flag in the + // future. It is not required by man 2 sigaltstack now (they're using + // malloc()). +- void* base = MmapOrDie(kAltStackSize, __func__); +- altstack.ss_sp = (char*) base; ++ altstack.ss_size = GetAltStackSize(); ++ altstack.ss_sp = (char *)MmapOrDie(altstack.ss_size, __func__); + altstack.ss_flags = 0; +- altstack.ss_size = kAltStackSize; + CHECK_EQ(0, sigaltstack(&altstack, nullptr)); + } + +@@ -191,7 +194,7 @@ void UnsetAlternateSignalStack() { + stack_t altstack, oldstack; + altstack.ss_sp = nullptr; + altstack.ss_flags = SS_DISABLE; +- altstack.ss_size = kAltStackSize; // Some sane value required on Darwin. ++ altstack.ss_size = GetAltStackSize(); // Some sane value required on Darwin. + CHECK_EQ(0, sigaltstack(&altstack, &oldstack)); + UnmapOrDie(oldstack.ss_sp, oldstack.ss_size); + } +-- +2.27.0 + From 64f9c9236150cdf03ffacf2c5fcf0055fea1f428 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 23 Jan 2022 01:26:21 +0100 Subject: [PATCH 58/73] soci: fix build w/glibc-2.34 We don't run the tests and I didn't manage to get them running trivially, so let's disable them. This not only speeds up compilation-time, but also fixes the build for glibc 2.34. Failing Hydra build: https://hydra.nixos.org/build/163952252 --- pkgs/development/libraries/soci/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/soci/default.nix b/pkgs/development/libraries/soci/default.nix index b17fbe16655b..142081da0153 100644 --- a/pkgs/development/libraries/soci/default.nix +++ b/pkgs/development/libraries/soci/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { ]; # Do not build static libraries - cmakeFlags = [ "-DSOCI_STATIC=OFF" "-DCMAKE_CXX_STANDARD=11" ]; + cmakeFlags = [ "-DSOCI_STATIC=OFF" "-DCMAKE_CXX_STANDARD=11" "-DSOCI_TESTS=off" ]; nativeBuildInputs = [ cmake ]; buildInputs = [ From da55ba2a06e02e200daa3433ea84d0f9874eff4e Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 28 Jan 2022 16:52:53 +0100 Subject: [PATCH 59/73] sfizz: fix build w/glibc-2.34, actually enable tests Failing Hydra build: https://hydra.nixos.org/build/163931927 --- pkgs/applications/audio/sfizz/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/audio/sfizz/default.nix b/pkgs/applications/audio/sfizz/default.nix index 54acc782c603..aaa79bd3e392 100644 --- a/pkgs/applications/audio/sfizz/default.nix +++ b/pkgs/applications/audio/sfizz/default.nix @@ -1,6 +1,7 @@ { lib, stdenv, fetchFromGitHub, libjack2, libsndfile, xorg, freetype , libxkbcommon, cairo, glib, gnome, flac, libogg, libvorbis, libopus, cmake -, pango, pkg-config }: +, pango, pkg-config, catch2 +}: stdenv.mkDerivation rec { pname = "sfizz"; @@ -40,6 +41,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake pkg-config ]; postPatch = '' + cp ${catch2}/include/catch2/catch.hpp tests/catch2/catch.hpp + substituteInPlace plugins/editor/external/vstgui4/vstgui/lib/platform/linux/x11fileselector.cpp \ --replace 'zenitypath = "zenity"' 'zenitypath = "${gnome.zenity}/bin/zenity"' substituteInPlace plugins/editor/src/editor/NativeHelpers.cpp \ @@ -48,6 +51,8 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" "-DSFIZZ_TESTS=ON" ]; + doCheck = true; + meta = with lib; { homepage = "https://github.com/sfztools/sfizz"; description = "SFZ jack client and LV2 plugin"; From 9a9fff59b28d06cd3f22397c778fcbacf46ccc22 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 28 Jan 2022 17:00:05 +0100 Subject: [PATCH 60/73] quvi*: mark as broken Failing Hydra build: https://hydra.nixos.org/build/163943269 Given that it hasn't had a release since 2013[1] and Gentoo/Fedora already dropped it[2][3]. Also, there are a lot of alternative stream/video downloaders, so it doesn't seem a big deal. [1] http://quvi.sourceforge.net/news/ [2] https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=80024f2367f394b46326064823d0c39f373e2820 [3] https://src.fedoraproject.org/rpms/quvi/c/bf189503ae6c15d2731679e292c0a90ce1454e62?branch=rawhide --- pkgs/applications/video/quvi/library.nix | 1 + pkgs/applications/video/quvi/scripts.nix | 1 + pkgs/applications/video/quvi/tool.nix | 1 + 3 files changed, 3 insertions(+) diff --git a/pkgs/applications/video/quvi/library.nix b/pkgs/applications/video/quvi/library.nix index 071e67a17211..548b3d7f9724 100644 --- a/pkgs/applications/video/quvi/library.nix +++ b/pkgs/applications/video/quvi/library.nix @@ -18,5 +18,6 @@ stdenv.mkDerivation rec { license = lib.licenses.lgpl21Plus; platforms = lib.platforms.linux; maintainers = [ ]; + broken = true; # missing glibc-2.34 support, no upstream activity }; } diff --git a/pkgs/applications/video/quvi/scripts.nix b/pkgs/applications/video/quvi/scripts.nix index 676d073900c5..a31ef6e72ae6 100644 --- a/pkgs/applications/video/quvi/scripts.nix +++ b/pkgs/applications/video/quvi/scripts.nix @@ -17,5 +17,6 @@ stdenv.mkDerivation rec { license = lib.licenses.lgpl21Plus; platforms = lib.platforms.linux; maintainers = [ ]; + broken = true; # missing glibc-2.34 support, no upstream activity }; } diff --git a/pkgs/applications/video/quvi/tool.nix b/pkgs/applications/video/quvi/tool.nix index 87c8066a976c..ad6233cbd001 100644 --- a/pkgs/applications/video/quvi/tool.nix +++ b/pkgs/applications/video/quvi/tool.nix @@ -21,5 +21,6 @@ stdenv.mkDerivation rec { license = lib.licenses.lgpl21Plus; platforms = lib.platforms.linux; maintainers = [ ]; + broken = true; # missing glibc-2.34 support, no upstream activity }; } From 357dd9ed5f5d956e97080996bcf0ed6fdf5b3257 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 28 Jan 2022 17:14:04 +0100 Subject: [PATCH 61/73] zeroc-ice-36: remove, unmaintained --- pkgs/development/libraries/zeroc-ice/3.6.nix | 59 ------------------- .../uninitialized-variable-warning.patch | 20 ------- pkgs/top-level/aliases.nix | 3 + pkgs/top-level/all-packages.nix | 4 -- 4 files changed, 3 insertions(+), 83 deletions(-) delete mode 100644 pkgs/development/libraries/zeroc-ice/3.6.nix delete mode 100644 pkgs/development/libraries/zeroc-ice/uninitialized-variable-warning.patch diff --git a/pkgs/development/libraries/zeroc-ice/3.6.nix b/pkgs/development/libraries/zeroc-ice/3.6.nix deleted file mode 100644 index e8082e50447a..000000000000 --- a/pkgs/development/libraries/zeroc-ice/3.6.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ stdenv, lib, fetchFromGitHub -, mcpp, bzip2, expat, openssl, db5 -, darwin, libiconv, Security -, zeroc-ice # to share meta -, cpp11 ? false -}: - -stdenv.mkDerivation rec { - pname = "zeroc-ice"; - version = "3.6.5"; - - src = fetchFromGitHub { - owner = "zeroc-ice"; - repo = "ice"; - rev = "v${version}"; - sha256 = "073h7v1f2sw77cr1a6xxa5l9j547pz24sxa9qdjc4zki0ivcnq15"; - }; - - buildInputs = [ mcpp bzip2 expat openssl db5 ] - ++ lib.optionals stdenv.isDarwin [ darwin.cctools libiconv Security ]; - - postUnpack = '' - sourceRoot=$sourceRoot/cpp - ''; - - prePatch = lib.optionalString stdenv.isDarwin '' - substituteInPlace config/Make.rules.Darwin \ - --replace xcrun "" - ''; - - patches = [ - # Fixes compilation warning about uninitialied variables (in test code) - ./uninitialized-variable-warning.patch - ]; - - preBuild = '' - makeFlagsArray+=( - "prefix=$out" - "OPTIMIZE=yes" - "USR_DIR_INSTALL=yes" - "CONFIGS=${if cpp11 then "cpp11-shared" else "shared"}" - "SKIP=slice2py" # provided by a separate package - ) - ''; - - # cannot find -lIceXML (linking bin/transformdb) - enableParallelBuilding = false; - - outputs = [ "out" "bin" "dev" ]; - - postInstall = '' - mkdir -p $bin $dev/share - mv $out/bin $bin - mv $out/share/Ice-* $dev/share/ice - rm -rf $out/share/slice - ''; - - inherit (zeroc-ice) meta; -} diff --git a/pkgs/development/libraries/zeroc-ice/uninitialized-variable-warning.patch b/pkgs/development/libraries/zeroc-ice/uninitialized-variable-warning.patch deleted file mode 100644 index 878dee26bb83..000000000000 --- a/pkgs/development/libraries/zeroc-ice/uninitialized-variable-warning.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/test/Glacier2/dynamicFiltering/TestControllerI.h b/test/Glacier2/dynamicFiltering/TestControllerI.h -index 7e21639..1279200 100644 ---- a/test/Glacier2/dynamicFiltering/TestControllerI.h -+++ b/test/Glacier2/dynamicFiltering/TestControllerI.h -@@ -21,13 +21,12 @@ struct SessionTuple - { - Glacier2::SessionPrx session; - Glacier2::SessionControlPrx sessionControl; -- bool configured; -+ bool configured = false; - - SessionTuple() {} - SessionTuple(Glacier2::SessionPrx s, Glacier2::SessionControlPrx control): - session(s), -- sessionControl(control), -- configured(false) -+ sessionControl(control) - {} - - SessionTuple& diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 46371603fda1..e85ef792e439 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1411,6 +1411,9 @@ mapAliases ({ targetLlvmLibraries = targetPackages.llvmPackages_git.libraries; }); + # Added 2022-01-28 + zeroc-ice-36 = throw "Unmaintained, doesn't build w/glibc-2.34"; + /* If these are in the scope of all-packages.nix, they cause collisions between mixed versions of qt. See: https://github.com/NixOS/nixpkgs/pull/101369 */ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0a2099114318..4118bd5b0e2c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -30174,10 +30174,6 @@ with pkgs; zeroc-ice-cpp11 = zeroc-ice.override { cpp11 = true; }; - zeroc-ice-36 = callPackage ../development/libraries/zeroc-ice/3.6.nix { - inherit (darwin.apple_sdk.frameworks) Security; - }; - zeronet = callPackage ../applications/networking/p2p/zeronet { }; zexy = callPackage ../applications/audio/pd-plugins/zexy { From 2db6c7e893ffcfa79e94fb3f6d70666c36e26043 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 28 Jan 2022 17:45:33 +0100 Subject: [PATCH 62/73] jumanpp: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/163976320 --- ...001-Exclude-all-tests-from-the-build.patch | 177 ++++++++++++++++++ pkgs/tools/text/jumanpp/default.nix | 3 + 2 files changed, 180 insertions(+) create mode 100644 pkgs/tools/text/jumanpp/0001-Exclude-all-tests-from-the-build.patch diff --git a/pkgs/tools/text/jumanpp/0001-Exclude-all-tests-from-the-build.patch b/pkgs/tools/text/jumanpp/0001-Exclude-all-tests-from-the-build.patch new file mode 100644 index 000000000000..d41bada82def --- /dev/null +++ b/pkgs/tools/text/jumanpp/0001-Exclude-all-tests-from-the-build.patch @@ -0,0 +1,177 @@ +From c52a5046e19718a43d48c9b3cfdc121d964e8c3b Mon Sep 17 00:00:00 2001 +From: Maximilian Bosch +Date: Fri, 28 Jan 2022 17:43:35 +0100 +Subject: [PATCH] Exclude all tests from the build + +For some reason it isn't sufficient to set `-DJPP_ENABLE_TESTS=OFF`. +Doing that because the tests on 2.0.0-rc3 don't seem to be working and +the vendored catch2 doesn't build with glibc 2.34. +--- + src/CMakeLists.txt | 3 +-- + src/core/CMakeLists.txt | 11 +---------- + src/core/analysis/CMakeLists.txt | 2 -- + src/core/codegen/CMakeLists.txt | 3 --- + src/core/spec/CMakeLists.txt | 2 -- + src/core/training/CMakeLists.txt | 2 -- + src/jumandic/CMakeLists.txt | 8 +------- + src/rnn/CMakeLists.txt | 5 +---- + src/util/CMakeLists.txt | 2 -- + 9 files changed, 4 insertions(+), 34 deletions(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 169dff5..64b6a07 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -67,7 +67,6 @@ function(jpp_feature_codegen) + endfunction(jpp_feature_codegen) + + add_subdirectory(util) +-add_subdirectory(testing) + add_subdirectory(core) + add_subdirectory(jumandic) +-add_subdirectory(rnn) +\ No newline at end of file ++add_subdirectory(rnn) +diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt +index c63d134..01c825e 100644 +--- a/src/core/CMakeLists.txt ++++ b/src/core/CMakeLists.txt +@@ -55,20 +55,11 @@ set(core_hdrs + ${core_hdrs} + ) + +-set(core_test_srcs +- ${core_test_srcs} +- ${core_tsrcs} +- test/test_analyzer_env.h +- ../testing/test_analyzer.h +- ) +- + add_library(jpp_core ${core_srcs} ${core_hdrs} ${libs3p_pegtl_headers}) +-jpp_test_executable(jpp_core_tests ${core_test_srcs}) + + target_include_directories(jpp_core PUBLIC ${jpp_core_cfg_dir}) + + target_link_libraries(jpp_core PUBLIC jpp_util jpp_rnn PRIVATE pathie) +-target_link_libraries(jpp_core_tests jpp_core jpp_core_train) + + if (${JPP_USE_PROTOBUF}) + target_include_directories(jpp_core PUBLIC ${Protobuf_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) +@@ -78,4 +69,4 @@ endif() + add_subdirectory(benchmarks) + if (${JPP_ENABLE_DEV_TOOLS}) + add_subdirectory(devtools) +-endif () +\ No newline at end of file ++endif () +diff --git a/src/core/analysis/CMakeLists.txt b/src/core/analysis/CMakeLists.txt +index 526263e..1b32f8d 100644 +--- a/src/core/analysis/CMakeLists.txt ++++ b/src/core/analysis/CMakeLists.txt +@@ -79,5 +79,3 @@ jpp_core_files(core_hdrs + ) + + +-jpp_test_executable(jpp_core_analysis_tests ${core_analysis_tsrc}) +-target_link_libraries(jpp_core_analysis_tests jpp_core) +diff --git a/src/core/codegen/CMakeLists.txt b/src/core/codegen/CMakeLists.txt +index a905cee..fa759c7 100644 +--- a/src/core/codegen/CMakeLists.txt ++++ b/src/core/codegen/CMakeLists.txt +@@ -30,7 +30,4 @@ set(jpp_codegen_tsrcs + + add_library(jpp_core_codegen ${jpp_codegen_srcs} ${jpp_codegen_hdrs}) + +-jpp_test_executable(jpp_codegen_tests ${jpp_codegen_tsrcs}) +-target_include_directories(jpp_codegen_tests PRIVATE ${cgtest02_INCLUDE}) + target_link_libraries(jpp_core_codegen jpp_core) +-target_link_libraries(jpp_codegen_tests jpp_core_codegen) +\ No newline at end of file +diff --git a/src/core/spec/CMakeLists.txt b/src/core/spec/CMakeLists.txt +index f495d67..da827b9 100644 +--- a/src/core/spec/CMakeLists.txt ++++ b/src/core/spec/CMakeLists.txt +@@ -33,5 +33,3 @@ jpp_core_files(core_hdrs + + ) + +-jpp_test_executable(jpp_core_spec_tests ${core_spec_tsrc} ${libs3p_pegtl_headers}) +-target_link_libraries(jpp_core_spec_tests jpp_core) +\ No newline at end of file +diff --git a/src/core/training/CMakeLists.txt b/src/core/training/CMakeLists.txt +index 960437e..4ede9e1 100644 +--- a/src/core/training/CMakeLists.txt ++++ b/src/core/training/CMakeLists.txt +@@ -39,7 +39,5 @@ set(core_train_hdrs + + + add_library(jpp_core_train ${core_train_src} ${core_train_hdrs}) +-jpp_test_executable(jpp_core_train_tests ${core_train_tsrc}) + + target_link_libraries(jpp_core_train jpp_core) +-target_link_libraries(jpp_core_train_tests jpp_core_train) +\ No newline at end of file +diff --git a/src/jumandic/CMakeLists.txt b/src/jumandic/CMakeLists.txt +index bef3149..85a8b5d 100644 +--- a/src/jumandic/CMakeLists.txt ++++ b/src/jumandic/CMakeLists.txt +@@ -53,10 +53,6 @@ if (${JPP_USE_PROTOBUF}) + endif () + + +-jpp_test_executable(jpp_jumandic_tests ${jumandic_tests}) +-jpp_test_executable(jpp_bug_tests ${bug_test_sources}) +-target_include_directories(jpp_jumandic_tests PRIVATE ${jpp_jumandic_cg_INCLUDE}) +- + add_executable(jpp_jumandic_bootstrap main/bootstrap.cc) + add_executable(jumanpp_v2 main/jumanpp.cc) + add_executable(jumanpp_v2_train main/jumanpp_train.cc main/jumanpp_train.h) +@@ -64,11 +60,9 @@ add_executable(jpp_jumandic_pathdiff main/path_diff.cc) + target_include_directories(jpp_jumandic_pathdiff PRIVATE ${jpp_jumandic_cg_INCLUDE}) + + target_link_libraries(jpp_jumandic jpp_jumandic_spec) +-target_link_libraries(jpp_jumandic_tests jpp_jumandic jpp_core_train) +-target_link_libraries(jpp_bug_tests jpp_jumandic jpp_core_train) + target_link_libraries(jpp_jumandic_bootstrap jpp_jumandic) + target_link_libraries(jumanpp_v2 jpp_jumandic) + target_link_libraries(jumanpp_v2_train jpp_jumandic jpp_core_train) + target_link_libraries(jpp_jumandic_pathdiff jpp_jumandic) + +-install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/jumanpp_v2 RENAME jumanpp DESTINATION bin) +\ No newline at end of file ++install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/jumanpp_v2 RENAME jumanpp DESTINATION bin) +diff --git a/src/rnn/CMakeLists.txt b/src/rnn/CMakeLists.txt +index 448ba51..ca09a00 100644 +--- a/src/rnn/CMakeLists.txt ++++ b/src/rnn/CMakeLists.txt +@@ -1,12 +1,9 @@ + set(jpp_rnn_sources mikolov_rnn.cc) + set(jpp_rnn_includes mikolov_rnn.h simple_rnn_impl.h mikolov_rnn_impl.h rnn_arg_parse.h) +-set(jpp_rnn_tests mikolov_rnn_test.cc) + + add_library(jpp_rnn ${jpp_rnn_sources} ${jpp_rnn_includes} ) + add_library(jumanpp_rnn_legacy legacy/rnnlmlib.h legacy/rnnlmlib_static.h legacy/rnnlmlib_static.cpp) + +-jpp_test_executable(jpp_rnn_tests ${jpp_rnn_tests}) + target_link_libraries(jpp_rnn jpp_util) +-target_link_libraries(jpp_rnn_tests jpp_rnn jumanpp_rnn_legacy) + +-target_link_libraries(jumanpp_rnn_legacy jpp_util) +\ No newline at end of file ++target_link_libraries(jumanpp_rnn_legacy jpp_util) +diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt +index 53b6c57..c4599d5 100644 +--- a/src/util/CMakeLists.txt ++++ b/src/util/CMakeLists.txt +@@ -25,8 +25,6 @@ endif() + + + add_library(jpp_util ${jpp_util_sources} ${jpp_util_headers} ${BACKWARD_headers}) +-jpp_test_executable(jpp_util_test ${jpp_util_test_srcs} ${jpp_util_headers}) +-target_link_libraries(jpp_util_test jpp_util) + target_link_libraries(jpp_util ${CMAKE_THREAD_LIBS_INIT}) + target_include_directories(jpp_util PUBLIC ${JPP_LIBS_DIR} ${JPP_SRC_DIR}) + target_compile_features(jpp_util PUBLIC +-- +2.33.1 + diff --git a/pkgs/tools/text/jumanpp/default.nix b/pkgs/tools/text/jumanpp/default.nix index 5fb5ec88d679..5bea259bccaf 100644 --- a/pkgs/tools/text/jumanpp/default.nix +++ b/pkgs/tools/text/jumanpp/default.nix @@ -9,6 +9,9 @@ stdenv.mkDerivation rec { sha256 = "sha256-ASdr6qbkSe71M7QmuuwidCa4xQhDVoXBJ2XqvSY53pQ="; }; + patches = [ ./0001-Exclude-all-tests-from-the-build.patch ]; + cmakeFlags = [ "-DJPP_ENABLE_TESTS=OFF" ]; + nativeBuildInputs = [ cmake ]; buildInputs = [ protobuf ] ++ lib.optional stdenv.isDarwin libiconv; From b43a3567eca70579e2a34e5fba3fda6154ea142f Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 28 Jan 2022 19:50:19 +0100 Subject: [PATCH 63/73] cpp-hocon: fix build w/glibc-2.34 Simply disable tests as it tries to pull in an old `catch2` from `leatherman`. Failing Hydra build: https://hydra.nixos.org/build/163982252 --- pkgs/development/libraries/cpp-hocon/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/cpp-hocon/default.nix b/pkgs/development/libraries/cpp-hocon/default.nix index dfe7f7776703..bba2e03f8d59 100644 --- a/pkgs/development/libraries/cpp-hocon/default.nix +++ b/pkgs/development/libraries/cpp-hocon/default.nix @@ -11,6 +11,10 @@ stdenv.mkDerivation rec { owner = "puppetlabs"; }; + postPatch = '' + sed -i -e '/add_subdirectory(tests)/d' lib/CMakeLists.txt + ''; + NIX_CFLAGS_COMPILE = "-Wno-error"; nativeBuildInputs = [ cmake ]; From 6320b7240f75d11b5a96bc03372a839c53427433 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 28 Jan 2022 20:52:45 +0100 Subject: [PATCH 64/73] cataclysm-dda: fix build w/glibc-2.34 * Enable parallel building to speed up the build-time. * Disable tests as vendored catch2 doesn't compile against glibc 2.34 and I couldn't get the tests to run in the sandbox. Failing Hydra build: https://hydra.nixos.org/build/163952121 --- pkgs/games/cataclysm-dda/common.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/games/cataclysm-dda/common.nix b/pkgs/games/cataclysm-dda/common.nix index ccba8e23d5ae..33790cf88008 100644 --- a/pkgs/games/cataclysm-dda/common.nix +++ b/pkgs/games/cataclysm-dda/common.nix @@ -39,6 +39,8 @@ stdenv.mkDerivation { buildInputs = cursesDeps ++ optionals tiles tilesDeps; + enableParallelBuilding = true; + postPatch = '' patchShebangs . @@ -49,7 +51,7 @@ stdenv.mkDerivation { ''; makeFlags = [ - "PREFIX=$(out)" "LANGUAGES=all" + "PREFIX=$(out)" "LANGUAGES=all" "RUNTESTS=0" (if useXdgDir then "USE_XDG_DIR=1" else "USE_HOME_DIR=1") ] ++ optionals (!debug) [ "RELEASE=1" From 25172c97d03c3035869c8a1a753232b0b5017cd1 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 28 Jan 2022 21:17:27 +0100 Subject: [PATCH 65/73] securefs: fix build w/glibc-2.34 Tests don't work in the sandbox and vendored catch2 doesn't compile, so we disable the tests. Failing Hydra build: https://hydra.nixos.org/build/163981825 --- pkgs/tools/filesystems/securefs/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/tools/filesystems/securefs/default.nix b/pkgs/tools/filesystems/securefs/default.nix index 44e547b01c24..4d56f08b4426 100644 --- a/pkgs/tools/filesystems/securefs/default.nix +++ b/pkgs/tools/filesystems/securefs/default.nix @@ -20,6 +20,10 @@ stdenv.mkDerivation rec { ./add-macfuse-support.patch ]; + postPatch = '' + sed -i -e '/TEST_SOURCES/d' CMakeLists.txt + ''; + nativeBuildInputs = [ cmake ]; buildInputs = [ fuse ]; From 11597d116244611940d3366db7c85f7181a32ae3 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 28 Jan 2022 21:44:02 +0100 Subject: [PATCH 66/73] sfxr-qt: fix build w/glibc-2.34 Failing Hydra build: https://hydra.nixos.org/build/163999266 --- pkgs/applications/audio/sfxr-qt/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/applications/audio/sfxr-qt/default.nix b/pkgs/applications/audio/sfxr-qt/default.nix index bf8b826f544f..ef83531e4365 100644 --- a/pkgs/applications/audio/sfxr-qt/default.nix +++ b/pkgs/applications/audio/sfxr-qt/default.nix @@ -7,6 +7,7 @@ , qtquickcontrols2 , SDL , python3 +, catch2 }: mkDerivation rec { @@ -21,6 +22,10 @@ mkDerivation rec { fetchSubmodules = true; }; + postPatch = '' + cp ${catch2}/include/catch2/catch.hpp 3rdparty/catch2/single_include/catch2/catch.hpp + ''; + nativeBuildInputs = [ cmake extra-cmake-modules @@ -33,6 +38,8 @@ mkDerivation rec { SDL ]; + doCheck = true; + meta = with lib; { homepage = "https://github.com/agateau/sfxr-qt"; description = "A sound effect generator, QtQuick port of sfxr"; From e9187abff193a6689621acb00c3ee31c954bf793 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 27 Feb 2022 12:04:46 +0100 Subject: [PATCH 67/73] gdb: remove `--disable-sim` fix --- pkgs/development/tools/misc/gdb/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix index 91947a024d7d..5bb5bc0652fe 100644 --- a/pkgs/development/tools/misc/gdb/default.nix +++ b/pkgs/development/tools/misc/gdb/default.nix @@ -92,7 +92,6 @@ stdenv.mkDerivation rec { "--disable-shared" "--enable-static" "--with-system-zlib" "--with-system-readline" - "--disable-sim" "--with-gmp=${gmp.dev}" "--with-mpfr=${mpfr.dev}" From 69af73d4b05fcb2cdd35e9f82ba881718172a920 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 27 Feb 2022 12:11:18 +0100 Subject: [PATCH 68/73] texinfo: review fixes --- pkgs/development/tools/misc/texinfo/common.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/tools/misc/texinfo/common.nix b/pkgs/development/tools/misc/texinfo/common.nix index e47d3369de96..26732657eb9f 100644 --- a/pkgs/development/tools/misc/texinfo/common.nix +++ b/pkgs/development/tools/misc/texinfo/common.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation { inherit sha256; }; - patches = patches ++ (optional crossBuildTools ./cross-tools-flags.patch); + patches = patches ++ optional crossBuildTools ./cross-tools-flags.patch; # ncurses is required to build `makedoc' # this feature is introduced by the ./cross-tools-flags.patch From e110983ed3c6bb301b9a4266e400e0e1b2ef58dd Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 27 Feb 2022 14:06:23 +0100 Subject: [PATCH 69/73] glibc: add empty libpthread.a See https://github.com/NixOS/nixpkgs/pull/133431#discussion_r805338099 --- pkgs/development/libraries/glibc/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/libraries/glibc/default.nix b/pkgs/development/libraries/glibc/default.nix index a48276f0b9ca..65a622f04673 100644 --- a/pkgs/development/libraries/glibc/default.nix +++ b/pkgs/development/libraries/glibc/default.nix @@ -129,6 +129,7 @@ callPackage ./common.nix { inherit stdenv; } { ln -sf $out/lib/librt.so.1 $out/lib/librt.so ln -sf $out/lib/libdl.so.2 $out/lib/libdl.so ln -sf $out/lib/libutil.so.1 $out/lib/libutil.so + touch $out/lib/libpthread.a '' # For some reason these aren't stripped otherwise and retain reference # to bootstrap-tools; on cross-arm this stripping would break objects. From 1077a6e040b445bf3d0854a667a1c03f33aa5c60 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 27 Feb 2022 14:06:45 +0100 Subject: [PATCH 70/73] nixos/stage-1: typo fixes --- nixos/modules/system/boot/stage-1-init.sh | 1 + nixos/modules/system/boot/stage-1.nix | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh index ec8860b74249..317583669809 100644 --- a/nixos/modules/system/boot/stage-1-init.sh +++ b/nixos/modules/system/boot/stage-1-init.sh @@ -232,6 +232,7 @@ done mkdir -p /lib ln -s @modulesClosure@/lib/modules /lib/modules ln -s @modulesClosure@/lib/firmware /lib/firmware +# see comment in stage-1.nix for explanation echo @extraUtils@/bin/modprobe-kernel > /proc/sys/kernel/modprobe for i in @kernelModules@; do info "loading module $(basename $i)..." diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix index 5999a993b141..c45857441c6c 100644 --- a/nixos/modules/system/boot/stage-1.nix +++ b/nixos/modules/system/boot/stage-1.nix @@ -136,11 +136,11 @@ let # because `kmod` isn't linked against `libpthread.so.0` anymore (since # it was merged into `libc.so.6` since version `2.34`), but still needs # to access it for some reason. This is not an issue in stage-1 itself - # because of the `LD_LIBRARY_PATH`-variable and anytime later because the rpath of + # because of the `LD_LIBRARY_PATH`-variable and anytime later because the rpath of # kmod/modprobe points to glibc's `$out/lib` where `libpthread.so.6` exists. # However, this is a problem when the kernel calls `modprobe` inside # the initial ramdisk because it doesn't know about the - # `LD_LIbRARY_PATH` and the rpath was nuked. + # `LD_LIBRARY_PATH` and the rpath was nuked. # # Also, we can't use `makeWrapper` here because `kmod` only does # `modprobe` functionality if `argv[0] == "modprobe"`. From 91fa7657d180942da624520231754706940f23f4 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 27 Feb 2022 15:10:58 +0100 Subject: [PATCH 71/73] stdenv: revert gcc hack See https://github.com/NixOS/nixpkgs/pull/133431#discussion_r805339569 --- pkgs/stdenv/linux/default.nix | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix index e20ea9e16860..e5771860bce3 100644 --- a/pkgs/stdenv/linux/default.nix +++ b/pkgs/stdenv/linux/default.nix @@ -254,19 +254,6 @@ in ''; }); - gcc-unwrapped = self.stdenvNoCC.mkDerivation { - inherit (prevStage.gcc-unwrapped) name; - dontUnpack = true; - dontBuild = true; - installPhase = '' - mkdir -p $out - cp -ar ${prevStage.gcc-unwrapped}/* $out/ - chmod -R a+w $out/ - cp -a ${getLibc self}/lib/* $out/lib/ - chmod -R a-w $out/ - ''; - }; - # This also contains the full, dynamically linked, final Glibc. binutils = prevStage.binutils.override { # Rewrap the binutils with the new glibc, so both the next From 41eb407d2c77046ed0cc8c4beb246be25728ffb2 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 27 Feb 2022 18:33:00 +0100 Subject: [PATCH 72/73] Revert "jetbrains.jdk: fix build w/glibc-2.34" This reverts commit 4427e547ca418bac7cc2a6b4c5d144a4a2fac126. Patch is not needed anymore. --- pkgs/development/compilers/jetbrains-jdk/default.nix | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix index 2d76b98f580c..bfff07aabcb2 100644 --- a/pkgs/development/compilers/jetbrains-jdk/default.nix +++ b/pkgs/development/compilers/jetbrains-jdk/default.nix @@ -1,4 +1,4 @@ -{ lib, openjdk11, fetchFromGitHub, jetbrains, fetchpatch }: +{ lib, openjdk11, fetchFromGitHub, jetbrains }: openjdk11.overrideAttrs (oldAttrs: rec { pname = "jetbrains-jdk"; @@ -10,12 +10,7 @@ openjdk11.overrideAttrs (oldAttrs: rec { rev = "jb${version}"; sha256 = "sha256-TPNYZUkAoiZfp7Ci3fslKnRNGY1lnyIhXYUt6J31lwI="; }; - patches = [ - (fetchpatch { - url = "https://github.com/JetBrains/JetBrainsRuntime/commit/980cfdf8d04c015bf2ecb4642064e45e3f36630d.patch"; - sha256 = "sha256-/f20sWnlWoObgdgZKWD785q0aRZ5oIP5pzW+AmejLWM="; - }) - ]; + patches = []; meta = with lib; { description = "An OpenJDK fork to better support Jetbrains's products."; longDescription = '' From 82580b15188e994aff429220d1634b3fc6ad357f Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 27 Feb 2022 20:02:04 +0100 Subject: [PATCH 73/73] cataclysm-dda: fix eval No idea why this breaks now, but let's see if that's sufficient to make ofborg happy. --- pkgs/games/cataclysm-dda/common.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/games/cataclysm-dda/common.nix b/pkgs/games/cataclysm-dda/common.nix index 33790cf88008..3a620c075deb 100644 --- a/pkgs/games/cataclysm-dda/common.nix +++ b/pkgs/games/cataclysm-dda/common.nix @@ -39,8 +39,6 @@ stdenv.mkDerivation { buildInputs = cursesDeps ++ optionals tiles tilesDeps; - enableParallelBuilding = true; - postPatch = '' patchShebangs .