From 81d3bc1a3fc7101260b658c9dd9baa110e5485a9 Mon Sep 17 00:00:00 2001 From: vpeter4 Date: Wed, 26 Dec 2018 18:28:35 +0100 Subject: [PATCH] mariadb: initial addon --- packages/addons/service/mariadb/changelog.txt | 2 + packages/addons/service/mariadb/icon/icon.png | Bin 0 -> 23911 bytes packages/addons/service/mariadb/package.mk | 97 +++++++++ .../service/mariadb/source/bin/mariadb.start | 59 +++++ .../service/mariadb/source/bin/mariadb.stop | 6 + .../service/mariadb/source/config/my.cnf | 206 ++++++++++++++++++ .../addons/service/mariadb/source/default.py | 18 ++ .../resources/language/English/strings.po | 22 ++ .../mariadb/source/resources/settings.xml | 8 + .../mariadb/source/settings-default.xml | 4 + .../source/system.d/service.mariadb.service | 18 ++ 11 files changed, 440 insertions(+) create mode 100644 packages/addons/service/mariadb/changelog.txt create mode 100644 packages/addons/service/mariadb/icon/icon.png create mode 100644 packages/addons/service/mariadb/package.mk create mode 100755 packages/addons/service/mariadb/source/bin/mariadb.start create mode 100755 packages/addons/service/mariadb/source/bin/mariadb.stop create mode 100644 packages/addons/service/mariadb/source/config/my.cnf create mode 100644 packages/addons/service/mariadb/source/default.py create mode 100644 packages/addons/service/mariadb/source/resources/language/English/strings.po create mode 100644 packages/addons/service/mariadb/source/resources/settings.xml create mode 100644 packages/addons/service/mariadb/source/settings-default.xml create mode 100644 packages/addons/service/mariadb/source/system.d/service.mariadb.service diff --git a/packages/addons/service/mariadb/changelog.txt b/packages/addons/service/mariadb/changelog.txt new file mode 100644 index 0000000000..af9f010a45 --- /dev/null +++ b/packages/addons/service/mariadb/changelog.txt @@ -0,0 +1,2 @@ +100 +- initial version diff --git a/packages/addons/service/mariadb/icon/icon.png b/packages/addons/service/mariadb/icon/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4337d6d064d719eef8e8eb1554c484fa6cbc136d GIT binary patch literal 23911 zcmV))K#ISKP)wMO1mp|X6pHkMza&TtKX`6`gz}as|wDWHxDEc5CE*V zBQazgSmkGTwZwlQl;lgovC5dBBV}t_U>HT^Gkc|>DdN=CZ>k835zrXB6B87pw-+O= zq>#6+nj&I1DaOvs%Go7>ak?%r1vWux?o}|u+XnOR7(22HOrcFsCRhct#?3q#-Is~o zl~Q4G#4I#s+p!j!{j`o@Mi)OrTLBy!VL@iQnAR9q3r(DH^PM*?{k)ZC1i&AdhtiENz#B~&$Nj(@Rtn!(kJ(Q84 zE^9p<4Hc#2nzE)@LS0o}j(G#jDmixdP7Yz^RI|jHTKi16Fl0q%LHg)VIeD{4W$iQJ z!jKg}`sh!IrjJAu4D0Xgj>9fR4`t5CJS?1mZ!qLkbH~|pxj5T;?5L_2>8o8OycjS8 zIuirC{p9l9c2x7$QT7=cr?gBXo?r}_Rm?46NPT_51RowIv>Ro#OPCbnCrg;=HnS>C z_okfYx(vvtf{8kOa+*8J%nC?Chf1w5%UwB?)8R#&t~$$_DUpb^zKmiIsMAVfKB6vZ zJsYM(!d!3(liwj>dRijZr#1A_A=pIl>=P6?lL!myhZFbxv3~D~+DnH$}|2J#E#)jLy;;G8_p`*kQVfF^sOc zTj!&M87oL&MqDn8>R4DG7X)>G8piDD;qK&)66$Xadz@wG8Ns$VVWmv)>_J^Dp#sOT z>Pb#Zr!=xPN@|gChIH+0y2q^_dOokzKF-i!tz44BF zN@P0v5X|tZW4D5A1j-&($gX=f&Wu9i9IP7VXygWA!A!IdLq_%>)_}5=)>BAWnB`M3 zMm2LBvV1)(tRD_b!$feLmX57cLSp(}SIQ%id05QstXZ;h zr;Os+0KsUWyGma%V2)fglkdzWWd1^C+5xAuOe3CP44GBz-jsPRArryLY&4MBFJ;0^ zx0zLGx;McLXf`O98h*+e1Ri@4ai-fR2^W}JVV1jcNYAFl8BbU^U5z3`rbIGtIK}J% zby`W;rP*`9B~0+%$czc}&NFG+I|=L48X44HZKc1K(O8=FQ^eG&f0rZW2QM~Od#)KK&v2)1v*SWugvi8atbk#W+@nnd0(|JXqti3XZ6z~+zo=eHjLcwgi zES5ORI!{jDtFRuc1t+X5I4hbB)D2-Vw{mn9%IuYfriinl&u4Te$4MeAm=pF-cY9@| zl@#*E`Y1+D-iOoW5;FS9x|=M_b~}uFN@O}3J?iE)Zu%p))r9 zC1$~S*0^<6BRVe=yDRC0XCZm00EyV-1$IBS27oz$%>!R3gze;E2Hw7EgD^AN*GS*v zM?4y9q1mrlaQv0b+JY_^9nw0(2&f49Rq{W5EkmHlKp^i6Kr~?wkNql8p$6herIE7| zXb?W)Xwl}z`lvm&#C$S~%xFmGH>AkMMI@CEScBLU1ZD{fgr^k1M7DUmpndaI61oi3}S zVIp{3ha>bvC`rNw@=P>T5Euih#RqKhpT>ns1leWA0rHw~R@!~TG!YhaATn9nFstb7 zqLB=ES##^?i?G)!rjm+0Gh}nNtC@2b+u^g_d2FNSp z6;}HDdv?z>XUJ6$V$w1XEFv&USP+4UIC?Zjj)!W#SPgp*4?a_I#8H_=*a~p~BA^iJ z8-aQhMUhpRhOrRBvE@}J-0ykT-?Io=q%br8QixU}B;^P6A!4H@uQ*L%!M@&x@!+-* z1EaOL|06|XE*S$!0e%^XKH#uTn?LD>t7grcUU&S=g@1eQJ$Gw2uo=PdatW$IRgqMz z653KY4yr0)u3_a>CK#M&y*!J$D9)bC%~-Y~VoIdh1|}_&(?ZxvRUwd7s)kgFdUFb< z&YeL3yZ{754M9i*L7oR3TTkt9CObpDQ&HBqFPG2`J?ZL$~ znUk;*p(mn}i0=kDz(W9eDzFG)nT(AUg=HoAR-+)83?>d51cSlI83f+QbA+6X9I%+p zg$1UPqWogJjeK)PV+9dy`7k}Qg1p3QRWRhKk1w~1XIP0lIQH-!CPT45_a#IIeXWhX1J(7dk8#^Wh)N+{ ziUWnl*;A@-TQO(l;#rF>tr_PcPDB&Qvij_6n~X+bYE5x_k9)__b5=8d&E->gj=%TD z1?17=^6qPDIosBK;!OL79mh88I8L2J0TRMOKp7yZj7}NtBdp})VP$DP74s39>)sDP zuyx^b7jURRONJtjSBDc+6y9~?qR*~gxM+5x!)`WE?`*sr(c12O@$GFBtBZU=@yvzp z@}m6WLff9>ZMzSjyK&j91v6^NcN}@vrSm2dW;}GV?R=+u!_H%bKp_vI;)8@n5f|YS zrX~9_A=SjkKIB->krnw=37!a^OT3xd5~ki5PEgd1%e)|uhSmK6;FjzYORm0Q!SaQZ zubMw;&eYmOoyg_!?>Tn5*B3MyxuSdv$8-LGDEky1VUGm7-ay!Qsg6SswsrKNj-An`@_A41U5quOR0t#Dky@EOFb}2Mpp=4&& z7j9kh^#@jzIPykt?^GaDHlcP2NGi`^lfctq#G#?C|MXCEt8-$dqrJydV7DxsTJ`R> zmO`A^5K>vr`x*x zvJ52kNNdOJ`to1@;DG|0c__=NtsTyNCpyi%YBkxb%LEnU^F5w<6U#ha-@&67?pZlM zKkA1~XWBi-+knFc)gb3T-`CKS!&Yelud8O2+A#-~tHCfjbc3=ET&bvtjs`k|d3BD* z?_U1dn=hNySQ+bAJ)RfW@7S@U>3Cbu;S+7$J#LzuMF^~^<>;ji|M$t;ha{|yUhjYW zY2%DZ#RdVLZg*ZeyVe&J*K9p8r?GU-qzODgMfuif4m#K21R|kP%!ysR?<^b&8QmP% zC}CWT#&R_nda1UmQ3+dVb7cw|ik^Jnx*tAvQ*3K@I(@%<;e)6D>n+f97L*hNyEbE) zrjlZiZ|4MFQI#PD*|q~Gd4pPz?8Bmx{{XtJRQiC+Bs~{?*Bru3tR2{#So~4|MrJbt#=d17ZLA3Usz$zQt@ao1$s%_4oI*b$BkDS<~h6 z^SpTVoVsq0|6GT-?2_8uO|2(ex^KC9ZbZj*d4j)ue*L~JM?t<7Nxdl89qtTQE ze18*8P*Y|*Kaa}vss1_E|7GO>IzeSSsHSTu5N*}%chndE^dIkd?C#|w{_usjxBlwS z>nU618-c}07lh&a=lzkYb(m&NoRF6nO;}+2z80r9FtNJKFDd6beKi%uhtGDlcDhz9 zs56?3K~WBI(ZKf=MfuCS+dkQSlJ;nb1=nHX5{6V23PU==SU9mwna>HHVYwPHE}rFT zjHIpFL6yc@FL30PFFQGiuFK=k{Djd2j2n zUp&7a_=CV|;5{b=-x&x8$ttwgX!@3QPb5$>8=yXv56jg^{l&w~EEtUZ3Sp}@P*2zS zlvNN=it9^$`1no#_|VD`&*Sw6Us=18xP-*(>zf6wgcfYjR*><@z>Mx*HUGiSTo&P= zoj%w7{Q84cCH5&b#Yaz_H<%1dXV=P5C7xq(fh{280-LEg-x~fCPe6KY-Ht<_9wtZT z#dC(9y+B)8G(=Tge;6w}1`7G4-QsYT^}*bZYK`)=S&^&J3rdK#(w3%Dfjdw>wenxT zdfNk^xjdfp2m)s@33iJR?Df#8g=U^E(%_eX5rIPMC5tEDzH-q&+;L^JHTch#ckUwJ&K$oIzNi8hU8xYQPnYmRFh0SsIb>tgSOJ zM1TmP3!pX#EOZTZ2^-4tzWLBKU%qeoC^{EHld4O8@TJw?e{A)!=C*U~J&ru zAN|+ge)ZeG0~sQlDD)iU{jCvf#q)fKv$8>6X*NqEx(;6$LHI!)!8N;xei2gpDQd?3xA%A8=x!W%~3d}bz zoHzT^#AjvTdK+nQ*;aKrxmNoKpvq#YbpwB z$_usq1o7;NRlj=qgP;Ftee=Q7G_cS03f=p;U}rd6@fyO}Dx>ew5kE=ZC}GA55$PM!;l}F*7386<9jbz$IA!j{ zC+}NPTTz(yOAV^(v#)G;`oI6)cK9@KKCK#5?9wMn|XK;kwaZ=wB$9*u} zOnzn&m<+LW+A1oUCl-OpiHhkS@rnX2cq->N{PbJ5&zv|R?UnW6_QSt^dE>jE9`YRT z05&TZJkPt2^1=2PY!x22%AjGvIIEY}OCw`!l_A;P-$|4e(Uv z(~vHeA58cVV=luB3wmG~eI?O_KySTm@%=Ylmfj+DxxBxAal?;(^Eaub2Nc?Y1qd$U z1|EZ|G-PV%07eyM&&0}44q@fidUt8dr%FIsaz6Df2&}!J3}EdOB4iwv`)|H{&eWPT z7V@o+_WtUn4IgYisC4*1o*61`gL6OcJ4Z?wJ|H+;zE%9%3hS_Gr`aXU>b9=OPR}NS zkJ3C&SnP&H+LA94unPCCTCif_v~*pNqN=Z~+4cYaXWfqX_W~Y)d^1vALhr%;#f}G; zi-~pvwM4B%uO6enc@d1T7!~AhmH2_(1GI5Kj6tV&>eVy<@uBPUZN_w6&~IMZ_~YNa z-FoaS5mvy+BiSu<@8SdP@dT|vvevrNSHow7#gL;=0N(*?g3v@algt+>E>p=V!+t)jJ6^t788y*SH;RpL`v zqqt}`?8Gpx7Lu9<5l*4V)6=x?!;&=FwQYsBjL;-8U?} zV(!GWnB$#|d!PO5=3q-Vu$usfpzJkt?~GupaH<;6R^%Vfy-tEg`W>U8WcJrY)-bci zu!n;ezjDD+Ix-mgL5HWZy5yUmzplI_KlNAN+|u!{&#vFM`5?$Q6Kw^tC^!#sVs|uK zMI^GraJGUu)Jb?ImlzG^kaaMSfuS2tP=L^v*Is77X~~Sa=}5ft_=11@>*h~BJqQ2? z1fK8?-`ga(PYlUcu|n**RQYUQLWUfI3J`Gy1JFkQAcW=d-?D1Km+o1bmco3v^~is} z@-f{($6_FC#d%Njo@N?<>5sC9vsLyj#WyyvQ9_0sf)D0*!Agy~h}OcOFz=3Q=FDiU zOiN*Q96H@`pcy!9z`!H1SLi*6WKYDxp##EdP)_A`hh+*&&w%Xm5_>`yDv_a)`cQrm z7`gjyT(E3WTJqZQ>9(E&CtCs15dC`MR%2F~QBrL)Te zpc_?sLt9JGymntzZN)bqy1uHcAT9m)tq=C>Jah)+*#V&>e;e;P1+*N6A?1}`*(#1E zgA?2eGM2D%+L2EaJ7%&kA_JonmTR$gx&yPZ)^YPyGv-cD+a%|AKG}czz$v2g0Ef6> zCsG5^+A6tmE0`%w24)3evB(?4C>jfNqB0Sh=^v5|x;)F5&U)Q~~yXB4*^JYz|PD^2YLHV7H z2YQ@7V55VByzew8_6+F^=J4@=%pH?^&pduz$8qv=10p56zkR6DUm$U$<@~9(xgS zrrRe87l_mEg!G~cA9B!>lb+ubsH`o0^8V$eX~=8uLtDFZ*P+uOr~;mYlADuV;r?Ja zXN^K(<&5e;x^DQ1?zs?TL<3;)xr9}00Oo12c5QbFQ4#8k?p!f%{*3xGmbJCZb+qX` zEe}+Y*hy$Kf~^LfL727ml39e6>YmG{L}p5Rh6!yb5;S*mwF)%QKNJ;od2YV?lJ7mb zD!ms?Ttd+01gZkn01};qn))U)b5ZgN>$IBEcyonF2zRYYer1#Eq=y*$WO9v1* zKm?WSLs$-vxQ|I&>AMFdx{0x=IgAK1uF;NoRj?OT1z?^=T?%M(H(b*2?FX+bEU=~B z;)k2tkDcoPMxH7x*&i;iLbR1_xmSs9VvMkINOz3m0->H7?FjIo(jKn5kF8`C*bNWf zu;`}cm*~OtM^3a#tv%GBsu!yMD5`>N0huf$tR&ZG)_bWqi)})Ll?#>k{UOSvY;2dU*K3vJ8+3~OH|o~WH0ES@C+GKWier~xEI5aPyyG&RryeXw%nBhdi^Ce zWnca5H502#_0VjaPPIE-emdcqbUeuo6+esutHjt~3;1P-q{OUzBb)~V)XPoqqC)yo zQGr*oOsaV7jw{l&yF>&eN!fk)OhA(8`l3WvNiL)WAa~Kqd`a$%*)X1n#^+(N8$uc+ zCDdKTU_G42#g%vQ4H$5gtrQGQ{1c7lbObZDYMTQ;X{sY zu2zNys;vStP?e=C=KkBow_PVc^^R=OG&VJOK(3JESw867{f!c1!+V{{1_ zm_E#0nhl`*4t|OZO;lT{D(H1BUV6zh|9pQ{d7-Y#d7<0ceny+~j3APnus>xq9OJZf z+A0bsy$v$LV)`%}E+T;PI=KdkuoY?h{vhab&$#N+e}4SN84VSBE9$xS9^efCtU@&a zB{vaO(c^=;HcB{#HpoT^6Q);~9a9V$8oRhUqOhp83d+D4$e&t8Ji(PqX6mh9cJ_Kt zo$Ue!L;n;)7hx{Ce`>@Rv!yd8uREael!;*!_X=jOM6*?=Fxig^DO(XgtIO}0TJiMb zH{X8krTXi>_(*fxiPkQ_(-}EH384N(+_N?PYW!?9oJIICQz8=-qqi5+VTri``;o)R zS9wvf<`#;e)9aWv;U7Q0>hb%QK|Mw}VAI+2XIi>K2@OyTBE<_X9voyTqjAy;&*&$k zZalee2MnMO74`D90hC9_1VstB10{1CzxBX1U$|`vhjbc~J$}0LI8j(MO%y{l0Q$!V z*-jIq1=}@;A!DFIzL%@+`6dCQ7R^n5=!da5mWwuA0UPZXf+ zjR>^oX2gArgvEmHsq|nDo$qn8M0%j}FJ*ig3o79r?IoBCLYYP8U0t zBp`$Q`l2i6Px-;)H_e|>r}N^UZ0YEA`haQJInVlR;L#0B4-JS<0iEjq&YpqVW1z@c zE|68g^$K;w6C|%_UT8o8NS!pR{ww!i^Z4CY^1R;fxTMH?4xRP|g1};=>$ppUtIFuy z8N|Bmj(iHroB1=GSdr5M4_D^l%Ke;!ZrAJ$0)MdX(#D7HxN`NWm^Tj)_GzvmyT~0@jXZyj^z$*bG0;-G@A6v9xp3wJ4ZtB25_^CuMN29j zj?|B*J0`U&Cr)8y>P&Nn^oA>tge(%Yh{*2eih`;I_$46vNhdC^FI&8D%B|O4de?P} z3__;P(r<3<0s*N%$Gw+MejdFWI5Gt!nj~;KejCS5r_3eHhFe;uUWyFOey-5VmH2^! zCW6Y^*1P1#7UQHz6TW=!vd8aQZZL2eYY2Sw^o64*+kjC32twIU6c!>b?&ue3z)2+- z9o@Y~{*)0`MpRZ-U5Z3`s@Tsth^kV7pwdK847&Y5@|&hq-@Ihe%B3@xFPK_g>EJSa z`J+R}+V-DprE{K%yizhdJbyFs@7H#S>qTkd(;fk!PZ< zFhF>~xg&>ni9iZ+RVAyJ&bs5ec~{P#Qc_?wn}jSgr5Kb?v~+{sAjq>4c7|F8R(Qlc zks@ond*k91cg8WFkI$Z7q64nWA)>#y&Q!=#rw^KCWY)Yti$q*MWYt#JQ|W&3l1MkR zQ2<}#n7h3G(kV6bXVuLi&ok??)RO9f6Rq9d9&HywKv(Re%OVf4O%C%7Gmo&C^Ok|k z2B~g>K%rqNi-@e6s>&yv)wdZ0At^OTiH-PuCc$7gaT5$xCHc$ePQLBhxz{h5k=^DA z1l6qvPW5{I+7vEzIa9sBH)gG5;$G(%DPB$>}gs_n0r0ckcX)C~H z5sryNdFxW>hIF6$bK2nfTq3)hZfd&PUXMw0H@>+!k8bPN@O4Cz82?P}& zsi4SQ*-$a9zO1pfd}@7pU3pPMP4UEszbDp(*o+BBGbUnJY z7wdpops>DG>ptAv24oqSdAhHcw#p~~Aa1WP zD~Em(a8Z0F_PA_2tv;YaL8L=_+5jK4%gEH{<@GTf*8YT4LrFm(V!&ZgTrhKD<;;l_ zCO1^fXq<5Al*+2|B8%n(X}`){m#67;2X^~4M;XFkSNIgd_ySlsV<;pU{cHGQu^3kF zf>4fxEObNSCti3m*&-!7gts0mlqZk zJM85}_Cklf)M1NibUA9)&K}Rcqh~3_BM4Oy1-lTC<6ER*y!ljFa*M{9rmz^2))F95 zQZx&J#?GxGvWdtpK`Tu@AS5NKw3}g(I(jC-Qed!{4Q8XkYBklA3ddXUbeARq?mWH+;=VPg5*DYerkmQ8IapV?43wQ+($;0AjL3lqo0j)Nz+ z?L7fF2p|U~LRejJC@@2fg|ISZkfLAsvN<=S22oN$&Y?xn?KEu)nfvlNiPPs1fhz!P zoUOKO=G+O>>L*ODFQ3*>R_w?taoCFN7Ds^%AsAT|tgpqyo~BlC`U0pZ21HfKKBxqM zwqas8Po=8grK-QA>O8zocxc3r@kjzVwM>?xvyJ04kY*u3gT&baTv328RG>-ALQsGh zpf60u{L=h_MoWHywXvdb=A;RiPOY9jwRU1vF=L$Z_}qt2w4G}02GAHv9)YqaLRg`c zYAc*&=SeeR!4cdGoDz!-MGGTP1=fLiVihsS<$HuGKVPasUQ0bEM^dQYM~C?&U^6dX zIC;gQX^SsySUhJ^p4FIx(U4>y5LDjzWPe+GFDNw8G*QU~MHh$|AJjqCXy*DUX(lXv zSPkp7WO($SLLXn|6H1BqCm~B;UV?%_Km=VrU=yYh^tioiJ~`OY)&ooe%@+;!BEnfwON^#HfR(woCKhzh5~xs+5b^#BLu^GQl_=AP z41kd@sVS|#yztV-s-+7j-L&kI!aOUpSTfMs?$oxN2!eb%V+o2qNbIJLAq%%Bim=$s zfGmKFEFMFRSEy70N2yAZso$X@y6jY*VZkMn?!0d9UDwU8tt?`;N-7Q>Kj$R=AjExs zpSFlQpkb?v7Qh;MMh+WKieF*r(pI^&_w<;9CVY`ks0eZn1<_@vC|d<3aNYy*`RNO% z-n{hE#d8~GPOd2}v{`d$DqmXMtWz!BoA;ie5kqYYLb_q9HX|qAgof;FqVeo3F?zzn zdhGN#VP(n2rXVA8fF@Oy1^Ggar?lmU0Vu66pM2HK84VMznm_rvB{PfjEsRT2(=)g3 zJNeaaRHSe3UrcZmM@wVmyjWIgcS`}`T0_s|EWbp z=zcRmzU0bTU%czeRaeZaEOi(StXk86!za&!E+;5=&~0)=LRjr|c^(wcj2woz2`i03 zcNSzE6;vn?@6Ruk`-F08IKN2u92L;SIdxYpns)Qmm)x@aQf8%eY5om6jy0X_0A_Pv zxLxg=ku%uZQ=Q|Uot>IbV;LD+#SaA0MYE zs=bCPx<*w%1g;=3^Rus*di~`yuDxpJwF{>*6Q#e7RQ$pAqrK;QfC+^r3qY}lJV4a? zqKvlm;Sw?=2Qo5yjP)L&n$B2O$pi3Jjui{1e)+EDtFNBT?4uK``{d9I?`#2_KnW}4 zoQSt}Ta71GfZhIJD>$O=Xb1gKa2kr<`oHMRI#f|IziSuyDF8c=1ot!B$A{ z80tNS8mu6?=ZdIKSTylF4_^PJyO!~TYko55rIY^t^^N-vp9bamfa~)Ik-q~fL6Cb1 z?l>h!=a~glXY`REadxM9T97ZIyFZ9Bkd#%c7d-vd+vZNMVceiYv|Mn$yky&jR^@o~?km4|`?9I^rOY@w zgbKh%+mAJ$X$JxV{i{gRJ#xgJhyd1*zM=kapZY8lBP?BjXe*a#vWN=kfS^;%YbgHe zXIFgxu~kN1V8+oW_8dI@=eIV~^j&jU9bpy9o^XE_;Sit zq6+hj-~Pg?AN<2=W|wFjJkh#-%Mn?U^-!3$PUkP4`{3Nk^Ps@cmnk|>qe=iOexS1r za9v1lYP27v$5uHnul$Be3EJqCX0PwEMN^*s%4)mS z#OxA*54IhC@VmeN-{;o$IQ>Q;@qC3f#Q*i(N6x;nez$U=7a(n4990EjKc`7pYA{+= zC0=AD;CPuTQ_?|LIWOtFrh30&0!`uR^vqm3`(OTHbxC0!qo)XLKXB?B|Ng(uLoL8; zu$cse64~tuPdPolJx9)TIz938#J~S(?Yj4NfqXNKwUcHnYAY!Yauy7^g9AL3EPpVE zdk~9Zr5ZA4^P1|g0)Sru<@t}@y>!(TGniQ}W)sc%dVkN}H9J7D&Cxi)k)Pm23ME-x zv-!}!{c+viBQ0_Mhs!+8vHM4X?wXl(|M=i_)fI(o3?dqCU*P?1 z$HY_Zz`y|x3LIxj;P|P=AUlqn0d3vDWN`WdXD)Pu;c4aMxsIRy;oZI4j*u?{X8;yk zAOHMy-+T1N(5DSGCHW2;^$N)Wh`bsgELN+@AqkX@o~wuBr2!suqlg?pQh{A~^o}d; zUdgt)85*1R9B(>zp0;O9S4FTG1)I&BuqFV(`Yng|9BBczJYW!z@ajLcRwKY54PCu|4C<{o6!(pu~El3mxNTTw}n(cdzp92mH z5O|l@-{bNTs)_#Qp<}K8{GV_B@s*E(F9-q(FbUs%^41?baf^9yc?NZQV|iI&0q{z6 z3vTKa8bP-2JeXN7A;VZ8b9Rq;l8SlY43^cDe)DtJHP#d}vkZv?$68)pze~%f)zpe2 z78ls6OAG0SjEO)?NAJ2VNAS6BU_gKu0s+bI7o)wCgH5eJdiLEH-r53){_+I*%7P~z zx&FJ4taRAI(&aFkF?m8^ferZleNJV+!eY^@B!OkRCtvqM!E34)fdlv?LrwALZ@z5d zC2VQ-VX^;si}QFZu$uuAv|J~#q|n|_U6iOnw=H{`&zx(gOYV^aazK(5k@$KMWjJ>3 zpMLe`TWhxiw@8NtF@EHZtA6^mJ1r(Y!n?GYOy$K^0F}PDJLGW`Se=f4By8aKYyrQd z!)=}FH&%n74BVdE?!M{=kFyDb!*ct9rnaqnPXUgjYy!0axvG{H+IcQ9LHGSlEw6pB zlZFwATc@4E7nJ+~G5kC4eths}e^|5Oll^oF4Mg`HeBgm=zy0v_k!;nE%Hn)L9y~`A z-yw%NBf!$&B@t!F@*BqO&JX-P%Lq$%Srh0cAUnN1K_EkzDnqE4`R&&fB|@20K9Ky?$~P5WahcOR#0#nFvXr_619^1kH_RVBk6v#PwPu&Sh|!-WZ9As!3)K^3M|2?sN?4q!ys$9eoPd_0xn_Hg zoKenPpv=N)3$gQ{^+NB-vy@)~qWJW0{{G~TU)cT8eqi8%NdN(*W=8!#J#xd`>9sMA zTv6!9W1hCzh2L7bL{r ze0j~bZ3j;Rhk2002#jFYk(So>^(UHI=_cD26OBgsgFsSmT(RhLt1ln%xHB88W>2XC z0humx4UDR(jHZvOURI|`AuM(uNGuf25-?WziMGNV&EK(`9=-4CM{m1|Std629y{~$ zx^1%8Pkpga*oP=An_>Rc`i4ZLfOI>(8+IKBXI-G;;)oc6Ua#+j%L|MgF!xWf7HQVi z-Pg~X+E6j#kvR^|n^FU8CeW@0?-8#Gc2(>em;#MZMBrtpNUJWQudxfEiz4P|9u`c( zFH~gko9mo;i@cU8s>;!!D5G%Wic7!y(5mVRHeqlCtlNBO_ohQIC{cj}wH)`LY%-V@ zUD}wJh?Tyzr)$Mg58}K+jWiDa*Y9`KKV8|)RqVQIQvniZaL1y{_nE~l_Jpo__ zt8ZKSlds)cQI@Q=t}b-;9zWaF-tBaG0==$)%jY96dfa|rAV4|}2O$zTf!^OC$J3oX z1&-qpGVmPvgQxG1Pod3f%D0&E@+|pwOM#8PD6pCf@+?L}>e|L%-`n-r8_{As-kZ_2m;ifHldR9s>Kt_pSXAF#M-hrk6&Jx zcm0x?hnqWkTDyROQ>-^d@#JIV-)5mq8Ws0TxX#zY1c3fiB7N?A#JM!X6Qp^y4~ zL)<61`tlpKcSIE^BH@L_%P#rugR54rxFoSEdhfB;cQ@|eytnCabNlf#7pRUS1VqQP zxDd_K!r09;n1b;ji3~U+p?CV82mkbY#TIX8ODnO$IW0n<(vNA_1&5{|Ba=|>u$33v ziwo?fg?Yt=LL>?TKRG7nB@278K1XM_) zQ8YH80@)8_Eyf|q^aU}U83CKwSXwZ-u6SDQgemo<6KgAGPpQ0gO7$3HWl?B4)BgUJ z!&~<^??2XhwzZ?Z+XGxdph#3S5xK-^%mTH6dg9s$+(mkaE-WY0{nLraQf0b?JQa!L zN_l#(f_#5AIqqA6P7Zrb9t!ZB}smKE4QZRP@#m3G|U7E zTUk_SQh-?jCMdn7kGqpVPN6BUikB|4%H6=1W10*fWjN;lNNP?RJ>NeafQM7}}kkG@tl z$C+@ZtkOBdK)W37V!x8qi9ax@u5|I7iC|oO1^)2YjobH~0)nA$@?Z#x9|n7o?>zLi zpkOx+lwm_Y7V-u;3qi>jT=)8BuR9=0t7lG{K-49v?%3zLVd>1~maZTD>J7Rkhe5!+ zP0X8$ocjgU6Y>f()i)f8kWwIdvUO_C5KuUKz*rd+Diq$zd3FjIT0CR`1$K}R`g)xjfc`ER=z_s+B=$ntM>#8Ivl+3U3<_<^VgjWz%3=n( zgeGssycP2nz>yag%vmXU38?Rcp&#PGuI}>&eV$y{3GV)(P-1XCE*Mi<4uo(wV0c9`h+=W~x2W)}@?R?j6xp+Rg%t6P{ z2!LSUv~mBceJ7XAopj4Jm#$ngYifP@VE4h1F)rdJKlqu&uddyBcyDtk45wHsgG90Q z?1Wg#;7FF9e6Xw~EESo8#tKO&QlLfgakyOs4zInkw7#mSv9_ePyl_GZp&+BhWX!V} ztripUVR%6>67|Fhya5?GjyG^bTbX#lAaH^pm;`MAD^`p-0nKsErb92kyM4!j=GF^6 zJ?DBT9T-Ue4nWZZB^MNXfaFDrA1Fbn1c55{kr5m``-r__;0xi=fUsW?r6vMJ#Bw-= zg@hQ2|6 z>~vetU)JvGJ<&?nS?*u36nRdgox>l~ELm0n~N z0_O#(!yr3p17eXZMpzLL4P~NG5(LGnUjTWg`dOv*)g=v;C3O{!`l^z~>QX{j<)vfF zjY?W$JAStPgRMuN|J&A&-`@o~19Y&-M%ufZ$SCM_Ldgk57vZdn_@%$Uh4+CN{b9I| zhKyr|y@~1a14JVzQS;-71mh`N(S_>cxO(2) z8RH==_`6p>Ui1ELD&qRvIC3|muDwXJAq+$4PtJD=5$D!ESv8dm`i3S0FcN20y>RNn zg}rC@8u#TlRLq=QSzer1oNu2{nopRktS}F8u-EDJ2SmT5kUNc$;|B*2h{iV-lLvI} z<7GF(N}Trd!@E2(!WSV7oM4MV^u^CkAH7fsHyjD6#YeaBm$U$dq6NGqr+(xP$z z20FQp?R3}#4h`}h!FQGmbOZ}#DfY&2!%?kd)uM+GI-R~vn~%{DA<%|mLhCrgP@^J} z3IpB%jXV%8k^)F_s;aCIZx^V^*{^VfI1|j4MVqrqVPPcr%?*BIJ$7MGgzo#y@-N)J zWKvyORas$*WYXyI&d2+o|NEAWJ5RJ6Z=rz?15s7I$a@C*TA<{C#Ob@3mEbUc#<>w* z#HYjEuA%^g;7yvrU7qr3DsiSD#O6e zUpA{@QccO2P1@1r`q$sQb-Jk)6x%{GoC)c39XkkHg)Ze9G;BdbaZ?Yb@V;ghZFHXnKQ zovoWbIY9TeD=A-s&3Ui-CZq|Y#mQF+mP`UUt6e- zn>H>Orr-6kgqH8l2C7g@hLQNAgd}m=ot3GRkU2{ihU=lP7AtzgU1jLw@i^k-gp7|w z69uyP<4y9wCZ(aZC(UOvRa3%w)rj}Hx#(V2NUJr7+Lpvg{HHs)?PmahTpkalT?|L8 z8Z~a|sxdABK%}$3-}L4#kS`-dp(1_+zdQHxj`><#gBwkLp_8T6ez>R6phTx3*JIN| zROHNQqWs=@jPbiqk?CHk?VF{t+(Dv~VpkZ!-cKRx`IQI+3fk*VB_oCfNG>o#Fjg-r=ZT z`U@*kXbK$3B_N4XBy42h84#)TARxef%OT+T23|#EIj2KzvRY2t5ud2&4!Jr4pU5Tv zt#rZSeE`Sz(uN`Lkjxenj zM3+JD7D(g$#h!><&1XoeJLtzU(1EDJvMWDHXN;`X;WqPWUbKAW_8eZ-9Gl-ls*HB` zt6X|r1c0WpJ0XAYk+`|B2D5pEk^Y(a+`%h}3vrcmZ&!ka1$35pged-BCE#kh$6@y2M*vUDIpAOQx1NOFv24`CXEt-8X(5zFKXq z=#S3pu~9iCGXcMbO_&O9`}1mr+o3x`5t=;nB)$0QKU@5>9=ufHX($h~&hd<-!7-FM z)E7rR)t|8%)Z;$YYhU{gvBATOcph%({fz#a((}55^K!}M4{6-TyGGhq{DcO}D7Ire z@{mULWK1syZNesrtvUUyIkSJtNx#cE>JO+2!X*Rhz-!ZDbN-29=ti`7!$Z`aTW*zZ z!s#0+X3TGWK_M9raY~ym+gN4QnaP~7+hY01DPh%1lS(PyO9aqw6Kf1w6Z3M|_n^|{ zcQuu+iIB0c+Z{~FdNvsw@rNL^v;&n!FbERAsonZ*lz)#1+?x_Y4v{ws<-$oK3QFc$ zIwy6Geq)zp%9yu9lf0&dVWqwN_4r8$^11L`L!ICY)YT43x5JGNl!{50h^yzAJ1K_1 zg?})Nya@TDjr1TR$32YwuG56Q&P*iVP}#k_>-TD3l8V?bMV+v!XCj4cjgN_pZIZ#- z_EpA+l}euh0n^B#Ux?-RYcP7@_mk|o6bZsF;|=l)xiVg0!=U8(BYR=*fN_fBC63TQq+FlyyUcHw*O(P4 zq;18{c<3tHogBHufJ+%$+Q{S$yv7M(_-WI5xh2CG!5>AU4_?9SX%s4#fBJ zY1nXb#GmVo;q9mHx-{1C@d#U%-|28Lvb!DUtCqKKd8i-8 z%BaEhmVzq+O_MmKm~#BFMWojhe_X^vw6p+{I*Y{n+0``WSWE9q(%mmr*^3ADnytV1 zO0Qev&H@`Yi@^7fwf_2;*Hw(sCDlxce@>JUUYVd^ov?4Tl(jQAa z-*_%C3c)1;ctiOP4s%ZjB}_V}@meGf(st8M!C$*Z`=_KUpKsPzvqWE>LEM7YrU6>n z3W32y7#H=qt90vQZ`VQCm@Na8I^pNAe-9#6i{Ee%>W5%p#tb0gVXdMNn*Th~kk+8Q z7W{#+Pohwneyf5Dbw1v(L1(U*pgy`rX*}USzZvj`J{UWBYcNqpkDe+-f^s9SsJDbl z%i*{roPB+|84a+B2VOE%0fBSh7FDGrb#k#Ht!Ha=BX*U-UVyo|ZD%(PFHf5-!fCkh zWhJ5+!ud|`Djwgy@eUcqMc0z6F>@`kKIIdKy+aiI=H49Sd4^I<5&^p*t*J&rqF=iv z9o$}0&`yjh-BM_f+3Zx2i!U~AHs~AgtexI% z>$3u9B?SvDWE@g0jl)FQHJH&JeO^y?{O6xg-gwU^#a-~zLDam+!aMiJ`XrKW;%WTm zabYQwU|E#ze&iIvKGV?Hv=IO?U^E4ar2S&&BgVzg;Evq(lKt`*M_YNU`f(_+|shzizhU>t1A=jysaGldF z`s6wi5&8A=u)~t}w_l}<6JC3cGMTl+!PD^{esiLWyRs-*bS^0uls+^IRz4glMaVoQ z(U+8Gth}_k-@bS|Ivk$7S5-&CDEBS-0IP}LslUbtlgnaZ_NNSV#&QHD`5v15)26$A zSuzk1+urMQyg_Pa!Q_0Qzgy8`^}2-FcsrPqAv<25d0OzPs8oKQQd;PPoAt;eXq=H& zhX6<=YwF~gZ`M@8;|uguTLMzVeOPE5Jd<-P91yebmdAMF0>!NBcVoB33W&{0;0%ci z`>eKg-G|jDO0Y6Q5k_Qyz_Ww@26Y{@!9=r z3TfwI(sID}2{!MxF6E+KiR9XL$l}T|@`_)}8laM8S4Lly3Z7nU2(j(><1qQ&kDTpU zwiB+r8~DuyA6}fxg9^G~5bcz@tn3wx6Gbyj@gdtJ@Q(7`sg0W);w{Ejhf9NFD}Q|FE2_Mn1ppY)<)=F3Z<)l1D9VJNTa| zApbv8le(5b4wbT5>sqqQ@*SVnzTQg_HTOqEs!HfKdc4&dE}ROUXFX}H41tmoI|gtf zIG`PW@8}6mQwr~>u&m1y61x@Y4A--*#bZ$s!ws~!ARJAOwD__Yej;>JAnW9_Q{o+B z-@C$^HA1=Ib@vB4ck1UirhE+~uYv@upmis#X@$vsX$e<2Roeoy8$ay@SJW(!jw%_B z_Gb%fkB$4v-Jl$4?0?z3moa9-ske6cNqX}w(9q)y0cfL_*4gDCD~Y*6hSf>){izDu zU~R3RKouzA#B`Mz7=Y6lKglMQ+YG89B>cjN7Jlnt?F%wUPhY(op?2qS4;oS0_>DZ->;pNG-8Pq$GY(M75HZ>zwS})2-thKQi)t>BdV*BD5S-ggbTj zb~Kkx29{i35bYpu7{eQMa~kw&asdfj;)$ipiB-9CLS)nMK|RcnpJ^GgfD6PqnHK3X z`NkyH3a0z+a)pEUZ?5>-tyr&s*G&@!d;GvQw~>yW7duZGU`x43&Rv*qfm&Q;%s0F;A zG?~uAKBh+3iAN51i#P}x+x`~2wb`<#wMPc&qM0-e@zSYePkG~g(Au7fpxj_YW&ZF% zZv0%<1QeuaZ!8b%43C>SB*nf@0Nf6S=akbzQQ^!N=+lC<;kTsi0!97ZJ$nnXJHP1Y z{+Zo;y;uUVEw`adxG=9GCxcRAoUhq$2peG~^>+S~5rK*ieJL6EQ25}VI4m2J`f7ro zjA66nuNlYwgtfbk@K5ntHeH|`aZwhluLbHms zW?EDg%2(Q#B+LPmqqG`lW8#6-5mb}vC;(WX7J^=qG2_PYbh_Wm=qLl=t0iY&6+_-?dJ0P z2shCAk}e^C0aK#9gshMzORIzD6xj<`8Kul;erW4wRJqjns5oYPGY`^El#e7NCLH+} zRCr2Sl8!}WdWsySrmuH9#WJT(zvnNJ#8-+0VDX#{vtx9d(&=M`xghm~BzHr!ux`-3 z0zEy8I1QH5I&8?W6kkDln2^-;W(OWh$D4RbjV%76z}NM4#(sEfiGYIgdW9I)tGwo9 zl90F%+9#?)Np?xzkawFJV?@xnb=tuA5fSN_U)%lL@IUQHuHcD)D)=ZpEB0S`Q7Gr< z`3^o(j=@{#Ax9lDpev5_OSTPrt|e+KDL0NJ&Jw?7iOo#a)J9aD@%eXe1yVIf8wfF( z{=_FjM3mGH1iU`}9RVao=aLv3g}6VALrh4wZ(*7=5xaB3ZAuWS`T2L(!7xqbxieGLJ4z7X)9} zk7xLXGh0T?FqkY^=87`y2F!>@r}kyW3;R`tDPvi;xxXKMfF<#B$_ zu?t;gQpT2E?0==bYm!e{!jzv{YCqtph?>vDGlZZtfVlc@J!eT_odR75zR>ftuoD*(wl=`6+?>n9|ir} z`_(4?ySMSA;B?AdYyjQ3eQf%yrn@e~%u%9pa8dwv_%*z?#-c@rVl9CyI_axc|M!q* zqexg`-HjdB<$V#vddx%@4}VHDCPW^O8XO?MbV=~htl3Fi?k{Q?1kz3v?r$2wux&Pf z{-=zJii&2}-5Qbp&Nte*E!MQHo(2XhG5$}R@$vDYw_$U4uv33gl=5oZ+0w^Tu;{~g zR2+)Ce%_9_Q3X=W(1vi&qT=FE{qEM&jhZOy9oh*MUzUF*G@_n?8xez`gqm*6gH&d$GKco z*?zNxmtFuKc{%X_r?q81bz`#Wf9)g8dl))dY2|fVrBIP()^9qS)iH{C8T14D?~Z4H zpSIajh|@Kzvc0?U0?W~;{O(M0(KbYv{_;YSHJ;ATMQ1+^fuyws#uS(5a#)R1Y&4!M z)khQ;EkNzerAecgmGQWkR)tUd{IHXNe+EWX1hI{^q1sV(dOre!-1o& zxJ~~Zt}N1vK>`M4^VzsJ!AV|es^;Tpr-zkb>wwax3YxCTi^$QX@5IenqU?eG_*GuG0^ z(ee3V9^B!$(qiwcdHORZ{EZJ*vcyPe^&6{`!|2KQ8 zl&33Q;d_=Zb?n`Jp+9ZtOs8_CrH12nX;4|ipi;}z$wq$sC~R%_J86i0ZN%3`<^DAfRKM-pM_$L}yFNBQ4wQsdcZkDGkxFGnMfCI4-c;VJ zepij2FOqZk0WsAAXdbc*5wY?#k)#Y(*kN2&-9&Cbna?R9jjP|7HZsa8S{VCplUekLazGm%8)yJLqR>li6|`V>39RvOI5m}? zxRK(sRw(SGq$o4o6)V6eitlUKHnR)Ol#@)POC%9DH#gw)2nx>n4=U=$C%|-=F-A9Y zPp}K^w~G*JKa!Vb?FxPVrH#In@rU~ff01v@_V%G;^OE>>rmhcpcJx4^4e^-c?<%4& zpcGt0Q;&ek{%b5^XU_e!JIqu`agjC^{i#kYB0v>ElP{V|_~DCaD6x!yI#3qYP29o0 z5l29h9d-iAH%1JmN2aLrL7xedc%|E z@ceY2k&%&C-{1KGskvp|$R9Qjes=36M&p%^**5T4aYI*31v{@xT%}40}q?LcN_cyqsX2_Ui&@EbKzMuM>$D?XQF)!x_R8G^D`?rvzg6#jQT z)c9VXjf^Iigy?=_$$Y$y^>%AwlQEQ)t5OlU4?@cgN;V%Ipr=}%@3^V|^J`=uXlX4? za07BAU zaF{JcXlXnS;e%LB`-N#JLci}XcSHQQZXfgVrt-QsV?>pu^sN_}eczi9fcGm}Pf|bH zs2dnip5NieZxJ#Ss$_}e2T`1d0D|e0o$t4k6UbGr1bzh7%5CE_WYqh-egX%CBImsX z>!)uB3FFe(ZDxY>X{Rf51NqKtI}=nyNQLW_blyI*owLfeezrzXGc?S^6Rp$jiC}wv zIa+B~I8>$R|61wc>T(|Aj8BpO_QPKB8uesXPDHqRx~4vblrvu2TO6X0FKtag01|_= zDxMUwG;mU2K|D4$;?dXoZIJ79BfW3+?PH3(jf&x@mk{`h{=SUT@uj8&i0Rdb`vG0A zj1kB>Q_VnX!I=UVq1w0zh4NNp+HlKTIT#Skl>R|uQmoknkDr`Wz@7&O(PTyFe&3W} zgn&RF-*c`qzrlc)N3YK#>us!34_rmpQ2LEWSaNxJ+2QqYbF*XUuQQJ^_3YcD`)!ME zFM6Yw7w0h)F~aNfwb>CQFfdSxcKx{GTZVi=q|RMeS9mjHlPqT7c!*T3Jpa@w0~Z$;{-#-nH95kz=rt57sAjcw zbnukYc(<9!e&#+ppvzEZV`FO^-?3{lF^c`A_@3O$@{8J@UK9#sx4$!rt__|qWLA}s zfvK3MWZ#7%S-1@Yik`>K$7k(iPd6ivygxh~4)ZHd7Q4S#4V>H-!UrJDsnoZ(I~WBV zxw*LDuYVtJoM{+e{opq90h+KugX-ZQ?xT`LI?ssA&c$U0#c#;-G@uy}dbd7dsS_NB z6_FSyz|M8@vr0$}fT+__Q&yVbsZw3}M6{YR%;=;K=`|2Jdi`HKMz7oCAf;ISb zMB8eptMlxm`b;~(X4Y%{Ld*zdl%?J30dC&jnpG*^mtN=;~{k|znXRM$rq z9y@QMp9JMXHxf&R0)e9!&8mr~Kat*wulSzum9d{stScSJ-) z=h%{mk=n=6@$piXSL*F~Aj@?w=@}V|fV^;Kqq^E!f>{TIvK(JiXsiIEo}M07CE8z8 z@U;_&0(Ea?3vlvh*`VFVXe=7-k@2M3#T>c;ff2iPwA{Xs_ion`CfG{M^^ zv0CWj=vZNDNl8u3doF&k)LBqaaAA_ard%{bmZNEZyt$cISWspW#hdg#FE5WUOXKC~ zN&j%prnPR#*VmVjT-I2TA}UfK(A!1FR}x;+7D`1)`41l`BxHp^KwvJ(v_PbC+||`} z1`0iW#s#;v)rmemJP3%0P{j;r?Ke@oKbFqzo}EqZE0CEs?S@@1Im$;I9v{2usANqE zB#LTY!8_G{*?64n@IJ$d8N=T}pDc;tjDwK>7X4fIw(7s@ o-~y1pcOv{P{r{HY7=HvTI9o){dwjBQ3xCl+Nh?cLNErY4FPJuP_5c6? literal 0 HcmV?d00001 diff --git a/packages/addons/service/mariadb/package.mk b/packages/addons/service/mariadb/package.mk new file mode 100644 index 0000000000..905d6e75ff --- /dev/null +++ b/packages/addons/service/mariadb/package.mk @@ -0,0 +1,97 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="mariadb" +PKG_VERSION="10.3.11" +PKG_REV="100" +PKG_SHA256="211655b794c9d5397ba3be6c90737eac02e882f296268299239db47ba328f1b2" +PKG_LICENSE="GPL2" +PKG_SITE="https://mariadb.org" +PKG_URL="https://downloads.mariadb.org/interstitial/${PKG_NAME}-${PKG_VERSION}/source/${PKG_NAME}-${PKG_VERSION}.tar.gz" +PKG_DEPENDS_HOST="toolchain ncurses:host" +PKG_DEPENDS_TARGET="toolchain binutils bzip2 libaio libxml2 lzo ncurses openssl systemd zlib mariadb:host" +PKG_SHORTDESC="MariaDB is a community-developed fork of the MySQL." +PKG_LONGDESC="MariaDB (${PKG_VERSION}) is a fast SQL database server and a drop-in replacement for MySQL." +PKG_TOOLCHAIN="cmake" +PKG_BUILD_FLAGS="-gold" + +PKG_IS_ADDON="yes" +PKG_SECTION="service" +PKG_ADDON_NAME="MariaDB SQL database server" +PKG_ADDON_TYPE="xbmc.service" + +configure_package() { + PKG_CMAKE_OPTS_HOST=" \ + -DCMAKE_INSTALL_MESSAGE=NEVER \ + -DSTACK_DIRECTION=-1 \ + -DHAVE_IB_GCC_ATOMIC_BUILTINS=1 \ + -DCMAKE_CROSSCOMPILING=OFF \ + import_executables" + + PKG_CMAKE_OPTS_TARGET=" \ + -DCMAKE_INSTALL_MESSAGE=NEVER \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_CONFIG=mysql_release \ + -DFEATURE_SET=classic \ + -DSTACK_DIRECTION=1 \ + -DDISABLE_LIBMYSQLCLIENT_SYMBOL_VERSIONING=ON \ + -DCMAKE_CROSSCOMPILING=ON \ + -DIMPORT_EXECUTABLES=${PKG_BUILD}/.${HOST_NAME}/import_executables.cmake \ + -DWITHOUT_AWS_KEY_MANAGEMENT=ON \ + -DWITH_EXTRA_CHARSETS=complex \ + -DWITH_SSL=system \ + -DWITH_SSL=${SYSROOT_PREFIX}/usr \ + -DWITH_JEMALLOC=OFF \ + -DWITH_PCRE=bundled \ + -DWITH_ZLIB=bundled \ + -DWITH_EDITLINE=bundled \ + -DWITH_LIBEVENT=bundled \ + -DCONNECT_WITH_LIBXML2=bundled \ + -DSKIP_TESTS=ON \ + -DWITH_DEBUG=OFF \ + -DWITH_UNIT_TESTS=OFF \ + -DENABLE_DTRACE=OFF \ + -DSECURITY_HARDENED=OFF \ + -DWITH_EMBEDDED_SERVER=OFF \ + -DWITHOUT_SERVER=OFF \ + -DPLUGIN_AUTH_SOCKET=STATIC \ + -DDISABLE_SHARED=NO \ + -DENABLED_PROFILING=OFF \ + -DENABLE_STATIC_LIBS=OFF \ + -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \ + -DWITH_SAFEMALLOC=OFF \ + -DWITHOUT_AUTH_EXAMPLES=ON" +} + +make_host() { + ninja ${NINJA_OPTS} import_executables +} + +makeinstall_host() { + : +} + +makeinstall_target() { + # use only for addon + DESTDIR=${PKG_BUILD}/.install_addon ninja ${NINJA_OPTS} install + rm -rf "${PKG_BUILD}/.install_addon/usr/mysql-test" +} + +addon() { + local ADDON="${ADDON_BUILD}/${PKG_ADDON_ID}" + local MARIADB="${PKG_BUILD}/.install_addon/usr" + + mkdir -p ${ADDON}/bin + mkdir -p ${ADDON}/config + + cp ${MARIADB}/bin/mysql \ + ${MARIADB}/bin/mysqld \ + ${MARIADB}/bin/mysqladmin \ + ${MARIADB}/bin/mysql_secure_installation \ + ${MARIADB}/bin/my_print_defaults \ + ${MARIADB}/bin/resolveip \ + ${MARIADB}/scripts/mysql_install_db \ + ${ADDON}/bin + + cp -PR ${MARIADB}/share ${ADDON} +} diff --git a/packages/addons/service/mariadb/source/bin/mariadb.start b/packages/addons/service/mariadb/source/bin/mariadb.start new file mode 100755 index 0000000000..5a05c3a24a --- /dev/null +++ b/packages/addons/service/mariadb/source/bin/mariadb.start @@ -0,0 +1,59 @@ +#!/bin/sh + +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) + +. /etc/profile +oe_setup_addon service.mariadb + +# create dir for socket and pid +mkdir -p /var/run/mysqld + +# exit if already running +PID=$(ps aux | awk '/\/bin\/mysqld/ {print $1; exit 0}') +if [ -n "$PID" ]; then + echo "MariaDB server is already running" + exit 0 +fi + +# check for first run and generate passwords +DEF_XML="$ADDON_DIR/settings-default.xml" +CUR_XML="$ADDON_HOME/settings.xml" + +if grep -q "@MYSQL_ROOT_PASS@" $DEF_XML; then + MYSQL_ROOT_PASS="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8)" + MYSQL_KODI_PASS="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8)" + + sed -i "s|@MYSQL_ROOT_PASS@|$MYSQL_ROOT_PASS|g" $DEF_XML + sed -i "s|@MYSQL_KODI_PASS@|$MYSQL_KODI_PASS|g" $DEF_XML + + cp $DEF_XML $CUR_XML +fi + +# copy config file +if [ ! -f $ADDON_HOME/my.cnf ]; then + cp $ADDON_DIR/config/my.cnf $ADDON_HOME +fi + +# install database +if [ ! -d "$ADDON_HOME/data/mysql" ]; then + echo "Installing database" + $ADDON_DIR/bin/mysql_install_db --basedir=$ADDON_DIR --datadir=$ADDON_HOME/data +fi + +# init script to create user kodi and change passwords +if [[ ! -f $ADDON_DIR/set_mysql_passwords.sql ]] || [[ $CUR_XML -nt $ADDON_DIR/set_mysql_passwords.sql ]]; then + cat << SQL_DATA > $ADDON_DIR/set_mysql_passwords.sql +SET PASSWORD FOR 'root'@'localhost'=PASSWORD('$MYSQL_ROOT_PASS'); +CREATE USER IF NOT EXISTS 'kodi'; +SET PASSWORD FOR 'kodi'=PASSWORD('$MYSQL_KODI_PASS'); +GRANT ALL ON *.* TO 'kodi'; +flush privileges; + +SQL_DATA + + init_file="--init-file=$ADDON_DIR/set_mysql_passwords.sql" +fi + +echo "Starting mysqld" +MYSQL_HOME="$ADDON_HOME" exec $ADDON_DIR/bin/mysqld $init_file & diff --git a/packages/addons/service/mariadb/source/bin/mariadb.stop b/packages/addons/service/mariadb/source/bin/mariadb.stop new file mode 100755 index 0000000000..049c577dec --- /dev/null +++ b/packages/addons/service/mariadb/source/bin/mariadb.stop @@ -0,0 +1,6 @@ +#!/bin/sh + +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) + +kill $(cat /var/run/mysqld/mysqld.pid) diff --git a/packages/addons/service/mariadb/source/config/my.cnf b/packages/addons/service/mariadb/source/config/my.cnf new file mode 100644 index 0000000000..7f3fd3191e --- /dev/null +++ b/packages/addons/service/mariadb/source/config/my.cnf @@ -0,0 +1,206 @@ +# MariaDB database server configuration file. +# +# You can copy this file to one of: +# - "/etc/mysql/my.cnf" to set global options, +# - "~/.my.cnf" to set user-specific options. +# +# One can use all long options that the program supports. +# Run program with --help to get a list of available options and with +# --print-defaults to see which it would actually understand and use. +# +# For explanations see +# http://dev.mysql.com/doc/mysql/en/server-system-variables.html + +# This will be passed to all mysql clients +# It has been reported that passwords should be enclosed with ticks/quotes +# escpecially if they contain "#" chars... +# Remember to edit /etc/mysql/debian.cnf when changing the socket location. +[client] +port = 3306 +socket = /var/run/mysqld/mysqld.sock + +# Here is entries for some specific programs +# The following values assume you have at least 32M ram + +# This was formally known as [safe_mysqld]. Both versions are currently parsed. +[mysqld_safe] +socket = /var/run/mysqld/mysqld.sock +nice = 0 + +[mysqld] +# +# * Basic Settings +# +user = root +pid-file = /var/run/mysqld/mysqld.pid +socket = /var/run/mysqld/mysqld.sock +port = 3306 +basedir = /storage/.kodi/addons/service.mariadb +datadir = /storage/.kodi/userdata/addon_data/service.mariadb/data +log-error = /storage/.kodi/userdata/addon_data/service.mariadb/mysqld.log +tmpdir = /tmp +#lc_messages_dir = /usr/share/mysql +lc_messages = en_US +skip-external-locking +# Kodi needs more for library (256K should probably be enough) +#thread_stack = 128K +thread_stack = 384K +# +# Instead of skip-networking the default is now to listen only on +# localhost which is more compatible and is not less secure. +#bind-address = 127.0.0.1 +# +# * Fine Tuning +# +max_connections = 100 +connect_timeout = 5 +wait_timeout = 600 +max_allowed_packet = 16M +thread_cache_size = 128 +sort_buffer_size = 4M +bulk_insert_buffer_size = 16M +tmp_table_size = 32M +max_heap_table_size = 32M +# +# * MyISAM +# +# This replaces the startup script and checks MyISAM tables if needed +# the first time they are touched. On error, make copy and try a repair. +myisam_recover_options = BACKUP +key_buffer_size = 128M +#open-files-limit = 2000 +#table_open_cache = 400 +table_open_cache = 1000 +myisam_sort_buffer_size = 512M +concurrent_insert = 2 +read_buffer_size = 2M +read_rnd_buffer_size = 1M +# +# * Query Cache Configuration +# +# Cache only tiny result sets, so we can fit more in the query cache. +query_cache_limit = 128K +query_cache_size = 64M +# for more write intensive setups, set to DEMAND or OFF +#query_cache_type = DEMAND +# +# * Logging and Replication +# +# Both location gets rotated by the cronjob. +# Be aware that this log type is a performance killer. +# As of 5.1 you can enable the log at runtime! +#general_log_file = /var/log/mysql/mysql.log +#general_log = 1 +# +# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf. +# +# we do want to know about network errors and such +log_warnings = 2 +# +# Enable the slow query log to see queries with especially long duration +#slow_query_log[={0|1}] +slow_query_log_file = /var/log/mysql/mariadb-slow.log +long_query_time = 10 +#log_slow_rate_limit = 1000 +log_slow_verbosity = query_plan + +#log-queries-not-using-indexes +#log_slow_admin_statements +# +# The following can be used as easy to replay backup logs or for replication. +# note: if you are setting up a replication slave, see README.Debian about +# other settings you may need to change. +#server-id = 1 +#report_host = master1 +#auto_increment_increment = 2 +#auto_increment_offset = 1 +# disable binary log +#log_bin = /var/log/mysql/mariadb-bin +#log_bin_index = /var/log/mysql/mariadb-bin.index +# not fab for performance, but safer +#sync_binlog = 1 +expire_logs_days = 10 +max_binlog_size = 100M +# slaves +#relay_log = /var/log/mysql/relay-bin +#relay_log_index = /var/log/mysql/relay-bin.index +#relay_log_info_file = /var/log/mysql/relay-bin.info +#log_slave_updates +#read_only +# +# If applications support it, this stricter sql_mode prevents some +# mistakes like inserting invalid dates etc. +#sql_mode = NO_ENGINE_SUBSTITUTION,TRADITIONAL +# +# * InnoDB +# +# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. +# Read the manual for more InnoDB related options. There are many! +default_storage_engine = InnoDB +# you can't just change log file size, requires special procedure +#innodb_log_file_size = 50M + +# optimizations https://forum.kodi.tv/showthread.php?tid=329046&pid=2708799 #pid2708799 +# https://discourse.coreelec.org/t/kodi-and-mariadb-part-2/513 +# innodb_buffer_pool_size=2G # MariaDB recommends using 80% of your available memory but the default 1G might be enough. Always set to multiples of 1G. +# innodb_buffer_pool_instances=2 # When innodb_buffer_pool_size is > 1G, MariaDB will split the pool in instances. They should be even dividers of 1G. +# innodb_file_format=Barracuda # Gone in 10.3 / This is an optimized storage engine not available in MySQL +# innodb_log_block_size=4096 # Gone in 10.3 / Default is 512, when using an SSD or 4k drives, block size should be 4096 +# innodb_adaptive_hash_index=OFF # For Kodi no benefit is gained from additional indexes. This should only be used with large databases. +# character-set-server=utf8 # I really hope you all used this in MySQL already. This avoids potential pitfalls with text in exotic codepages. +# key-buffer-size=64k # When not using MyISAM as storage engine, this buffer can be reduced to a minimum +# skip-name-resolve # Avoids name resolving in the local network, thus reducing overhead. That also means that all connections are done by IP only. +# optimizer_search_depth=1 # Here we are, this is winner of the year. + +innodb_buffer_pool_size = 256M +innodb_log_buffer_size = 8M +innodb_file_per_table = 1 +innodb_open_files = 400 +innodb_io_capacity = 400 +innodb_flush_method = O_DIRECT +character-set-server=utf8 # This avoids potential pitfalls with text in exotic codepages. +#skip-name-resolve # Avoids name resolving in the local network, thus reducing overhead. That also means that all connections are done by IP only. +optimizer_search_depth=1 # Here we are, this is winner of the year. + +# +# * Security Features +# +# Read the manual, too, if you want chroot! +# chroot = /var/lib/mysql/ +# +# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". +# +# ssl-ca=/etc/mysql/cacert.pem +# ssl-cert=/etc/mysql/server-cert.pem +# ssl-key=/etc/mysql/server-key.pem + +# +# * Galera-related settings +# +[galera] +# Mandatory settings +#wsrep_on=ON +#wsrep_provider= +#wsrep_cluster_address= +#binlog_format=row +#default_storage_engine=InnoDB +#innodb_autoinc_lock_mode=2 +# +# Allow server to accept connections on all interfaces. +# +#bind-address=0.0.0.0 +# +# Optional setting +#wsrep_slave_threads=1 +#innodb_flush_log_at_trx_commit=0 + +[mysqldump] +quick +quote-names +max_allowed_packet = 16M + +[mysql] +#no-auto-rehash # faster start of mysql but no tab completion + +[isamchk] +key_buffer = 16M diff --git a/packages/addons/service/mariadb/source/default.py b/packages/addons/service/mariadb/source/default.py new file mode 100644 index 0000000000..72eb7df141 --- /dev/null +++ b/packages/addons/service/mariadb/source/default.py @@ -0,0 +1,18 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) + +import subprocess +import xbmc +import xbmcaddon + +class Monitor(xbmc.Monitor): + def __init__(self, *args, **kwargs): + xbmc.Monitor.__init__(self) + self.id = xbmcaddon.Addon().getAddonInfo('id') + + def onSettingsChanged(self): + subprocess.call(['systemctl', 'restart', self.id]) + +if __name__ == "__main__": + Monitor().waitForAbort() + diff --git a/packages/addons/service/mariadb/source/resources/language/English/strings.po b/packages/addons/service/mariadb/source/resources/language/English/strings.po new file mode 100644 index 0000000000..e8458d0767 --- /dev/null +++ b/packages/addons/service/mariadb/source/resources/language/English/strings.po @@ -0,0 +1,22 @@ +# Kodi Media Center language file +# Addon Name: mariadb +# Addon id: service.mariadb +# Addon Provider: Team LibreELEC +msgid "" +msgstr "" + +msgctxt "#30000" +msgid "Accounts" +msgstr "" + +msgctxt "#30001" +msgid "Passwords" +msgstr "" + +msgctxt "#30002" +msgid "root" +msgstr "" + +msgctxt "#30003" +msgid "kodi" +msgstr "" diff --git a/packages/addons/service/mariadb/source/resources/settings.xml b/packages/addons/service/mariadb/source/resources/settings.xml new file mode 100644 index 0000000000..f77e80cdbd --- /dev/null +++ b/packages/addons/service/mariadb/source/resources/settings.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packages/addons/service/mariadb/source/settings-default.xml b/packages/addons/service/mariadb/source/settings-default.xml new file mode 100644 index 0000000000..bd3557c81f --- /dev/null +++ b/packages/addons/service/mariadb/source/settings-default.xml @@ -0,0 +1,4 @@ + + @MYSQL_ROOT_PASS@ + @MYSQL_KODI_PASS@ + diff --git a/packages/addons/service/mariadb/source/system.d/service.mariadb.service b/packages/addons/service/mariadb/source/system.d/service.mariadb.service new file mode 100644 index 0000000000..b5cd63ff84 --- /dev/null +++ b/packages/addons/service/mariadb/source/system.d/service.mariadb.service @@ -0,0 +1,18 @@ +[Unit] +Description=MariaDB server +After=graphical.target network-online.service +Before=kodi.service + +[Service] +Type=forking +PIDFile=/var/run/mysqld/mysqld.pid +ExecStart=/bin/sh -c "exec sh /storage/.kodi/addons/service.mariadb/bin/mariadb.start" +ExecStop=/bin/sh -c "exec sh /storage/.kodi/addons/service.mariadb/bin/mariadb.stop" +TimeoutStartSec=60 +TimeoutStopSec=60 +Restart=always +RestartSec=10 +StartLimitInterval=0 + +[Install] +WantedBy=kodi.service