From e5dccf844328cc68d677e2a45ea40dac639ac822 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 19 Jan 2013 20:48:02 +0200 Subject: [PATCH 1/7] nano: move to system --- .../shell/texteditor/nano/changelog.txt | 34 ------------------ .../shell/texteditor/nano/icon/icon.png | Bin 21747 -> 0 bytes .../{addons => }/shell/texteditor/nano/build | 0 .../addon => shell/texteditor/nano/install} | 5 +-- .../{addons => }/shell/texteditor/nano/meta | 4 +-- .../texteditor/nano/profile.d/nano.conf} | 9 +++-- projects/ATV/options | 3 ++ projects/Fusion/options | 3 ++ projects/Generic/options | 3 ++ projects/Generic_OSS/options | 3 ++ projects/ION/options | 3 ++ projects/Intel/options | 3 ++ projects/RPi/options | 3 ++ projects/Ultra/options | 3 ++ projects/Virtual/options | 3 ++ scripts/image | 3 ++ 16 files changed, 40 insertions(+), 42 deletions(-) delete mode 100644 packages/addons/shell/texteditor/nano/changelog.txt delete mode 100644 packages/addons/shell/texteditor/nano/icon/icon.png rename packages/{addons => }/shell/texteditor/nano/build (100%) rename packages/{addons/shell/texteditor/nano/addon => shell/texteditor/nano/install} (91%) rename packages/{addons => }/shell/texteditor/nano/meta (96%) rename packages/{addons/shell/texteditor/nano/source/default.py => shell/texteditor/nano/profile.d/nano.conf} (79%) diff --git a/packages/addons/shell/texteditor/nano/changelog.txt b/packages/addons/shell/texteditor/nano/changelog.txt deleted file mode 100644 index 1834b2696c..0000000000 --- a/packages/addons/shell/texteditor/nano/changelog.txt +++ /dev/null @@ -1,34 +0,0 @@ -3.0.1 -- bump addon version - -2.1.2 -- cleanup - -2.1.1 -- update to addon version 2.1 - -2.0.0 -- prepare for OpenELEC-2.0 release - -1.90.1 -- depends on xbmc.python API 2.0 - -1.90.0 -- prepare for OpenELEC-1.90 release - -1.0.0 -- update to nano-2.3.1 -- prepare for OpenELEC-1.0 release - -0.99.4 -- change icon - -0.99.3 -- build as shared lib -- include ncurses libs - -0.99.2 -- prepare for release - -0.99.1 -- initial addon based on nano-2.3.0 diff --git a/packages/addons/shell/texteditor/nano/icon/icon.png b/packages/addons/shell/texteditor/nano/icon/icon.png deleted file mode 100644 index 84cfefded51e3ae52623cc453390048872d0560e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21747 zcmdpe^-~;O6y?mo;O_1YK@;3v65L$_!5xAQ7CgASyL)hVNN{&|cUiubU$*uy*qWM} z*RNi6^_%WG_ug~P?NCK|DP#l!1ONblEF&$h3;+N>hCl!u%*T(eWAXR@j+~UGL;;l( zM28;-FvfCH;(+)6KH2R>aUV1A_R?BT001K9e_tRVH68C`64qJfn*{7K3=}dQlYG#( zk0~;MjJSxZyZ)&jth-wO-0GnKdAlead^>JJZf;1fu}DpL?t-UxViDcl8XrU00st(5 zh1Kehb@+u!n1Q_g{;sNlg^McWyr?h(Ur5j{)@hQbZhuUW!?UWPQA{8;`8$&#lc5YE zw|4D(;q(A#0AvZ=28;!KOd28L!5VIMbLny6u%dMFLk)m%8X*n<91^c-7nA=Mar}R< zNN7dRPS#oj&|-<*0RuG=aoi?C^Uf^m0W%8m1JwYI5t zS0p$=S;uBXrEvzzgh*IUt0P0dsRM<0yR%(~m`K!HrKl^5=pyUKCvzaI3UTvp#QIw0 zm|5rR`1*sB=droxQIr<2zUZIzW{3UN`<2D7u|KARLX7~@tcGuMK8f=?DBGQk@lgXb z(s~t(p!%7=_^^MK6YYxTS3fri&-o_4N3GdB778oBGuT``>sgIbZ?+n51GF!+Sal#c zpF3LWYlP)=y2=6C9?)aAkznn=paEcg_T_lN$9U<#@eN$^F(G1oHaK19VyWV3Dnikh z-!*L|^RFCedj-2(SxJ+T1Sr3C&`j$#zWxKt(~XQUh4m7_F)_82w}iO@bFV)`m$+|s zdC#isqIHR(a8x{9fT+KJRcYkP^2Y9o@8!gQeR(^JOMZ zO9fmulnnz(j_R^BXTDX9mDlu}kUr8d(*gWYM^7(1_@liJbAQ)Wvfaf7488%Wql>@l zi8CX}qn;xg^ZC*vTNsxp4lyq~vOLG*@>`f^6m_&zp{<>9Gx4)w2DBP2FUyrzrW@KB zXfaYhjUBm%o89wfN7c*M~aUbL!$fAB7eCj= zDoNY1tBTLFg^M*gM~R!9SY{5QSKERKR!lUY-1jA-l=w00VcRLstemJv`ESr;^Z}J` zG)}~7w&qE)rH8Z9@oq+b3;QJZp6B6+>=N?r8=pO5@~19A>$}ZlXsw%d=Szfss7Au6 zktQNSTFdRd#cr*10pgvoAU(6G$yMj8dDXe$)Tpcc^Po4!-ATOyck@W=mt5i4ccz$? zK!g-l7Ipb#B66J=5aW1F`zv482BpU9(l>VXq+x%)seG~q*)<`fvUpQvW6T z()&{TT{3gcb8f(~#ljUA|5`WR`n^Sb$>X~C6VZ3TaVf5Gy9<U zdBWU^IcVf-oV!e0v3_q=L7$wRI{i$V0tuDbPYycmJ@)223?$`h z$XnW)`zB!aR1(U*_%k8!)+K3~^M0!7J}7H&sHv%-Wc7CoxuWC>dZ`Y8_wOKId4Jfj zR^?+|*&6A24vY>=B_O>9Aoo-uKF~3xlv{1-!EQ+Gb523~E!3j=-yToU9}hzJpBqLE zI-Yzf4uEGoB_V#(yWQP4ByQ5XVF@S#l-;+7QN~!RJ1kP3qd$f}tuAmLUsJxq_cR(G z5-vL4lCDy_{Gd<#LqGM(vmbMv=3=1Dhbl8QScT9|@`6ClrX&-&u_J8jj> zHgZauBK6xpTMV9|I2CPLep1_xQ3@CjX?r&=`pJqohPKxSRt|2-!ESH6{q1&wh~}y? zoAfvqJ|9LwDzPdkrg>K(PcE2?RQ*}O#pX6t2&TzsA44~)-DT~S!fLc zEIjE3eYe2smt+ksRoZ1-?C{noOm(8OKN{vI*@e0KBiBctGetcw!anvzZKIWvDP){o zlat}gDo02+heD{lXoX_v8LQ-hxNF5shLpoR$gDe0~Z8&Jkzkq@ObXjmfJHfgp11` zxecH)kf0q|NLN;go?yc966HvZ`6tR z;G?!LiL0{;1L!7AQjzSK^Kbc~tUD5ai1`cxM=kDAG#$6?Bo15iULHCK*WzCW2e7;4 zRyip$G#T&BZ|$0=DWHebqY0khjWOSkf!|35?7g2G+?l3bs_xeEU%kjC8w-r0YjM1d zeDN)|1(v5EF4E(RPZNUfJvd83+(?y{2NKP&`xqH)0gm~X2V^O-H{vS+%W%9CVW0&# zU-P@(Oa~+F_(KucKCEO{GlJ+8wB=;7-Hyzch%*1`T!IX$j7v5PH${B(J6Av5DFWC<%uP5R#{?}3%jR*m+XJ9FLeeNsmz zHEL_clt4%OKgmfqeHPO6^lVP{t!!AEtM8Aw1$6)?8tUOvRL6I}I$FusqF~pNk$cB} zbdj<+(x_;1NLnrWO|P`?w&cbL<(ZY~7-Ed$Nk$HWY06fIHmcFz@JP>xYoSP`Vy651 zu~t$Sz32!Z3XG60(MK4bOLpO~b|5Yd7WWgkotC{uYWXX-0#vA;{8bF1xoZp;taTz$ z{s3M?xZs@J1ax0AT)VH;`g$ADqc@)%PX&0KZ6WV&MpvXJPudb49)He2MagwY?0HW-BSpv{v1K z4F%Nmcx+*;Im(4a^ndS8LI>p{-7FBcp*7WT}w@DMorOy^LmljI-)6ro|SDO^WL;o6g${c0GV7$@ZA4jccnM}#jMZ9E>e8=dw zG`Ql6t$hx&6JcC=FJ z(O%DM(8|rLyqY==1BU&bl6_4|*OqAvDQtBY#c0N&p!j(-Tq_t=EI3tSqf{5H?Xq4T zWfJhp`16Ek4nk|{p&pu2>aZ4W<$K$sryKpg!RVvsAM$m~3i1jl6{1AhJuqll_93x) z>Z|Dn%V^n{RBU!qvzQ_{-DR2h*AaV*RXfA7pM}HonI2kcv0ruOq{_D4Fm_p7X8g#* zj3#vp3c{>xEZq-M6k~Nz z%1M9ph_9p=m^>&i1Br%F1{=D7*cDfXJBDtbN9X5@h7{tacasSNqR}_P`bF3fIapSh zNwcGLV`^*wlZJB=GRS3d?>_@@9`pXoGAx*lR%5L8Fm4YoT&|Swkw+%Bq3^<-ZAAIW z=e!mw8f7q@a+`=eaW76ZYp**q_nj5d#!4oayEwJdMiMSWe;MrjTMG-JH2gKQEt|df z`wu5v95PkPc{sLVU#C;-J@33hj4Ra%TAE?-5t_h5CqdHrTG#ZoyJ&3Q??#^b3bM`k z{rRKYk?Ujob_%@)v|nG5dNJRub`C>aHrP!4|6-B#+QR>Hvgb3kJ2A(t1~r_%x$GFS z2+(TK-SG>&x3LT>7=s&`>3Rfy9(_?xjQ2-VB|jXM6JcOT648JTv6JFjC8_D3WWmyi z7~UuYQNzMXE(NssfC497U=>X8@G3Si`*%^54Io>l*`#Ybc0>6ppO)dag%kk{>$fl z8=e+oZV=~b*VLDFKli?mV7y=I7%70%!K--x#>ZMRKRJ@bP)-H&6)yg_So;Pb%z12X zk}3M{8p#ytL>*39YQp)xzq=~1(KHgNnMu(jYaWP_k3keDd-^$pQbhPI1aqNaq@{iH z{Ek_BN}cw6v)OJG8psv!B-_lqSr_=PmaVuSHqL%kd(5FDayWRO&~weDWFhZ-s$J-Q zU;K`GBT_9jpx`sf-%sw8VBjR_%&gw}NM#4g6X#YwEp$R;T-gtb}XyPIXp4{e-P^74dwT?Yn)5N*-Rjj$fFvS@fm zQ{#0pW9iqWsaa^4nsNU<9;Y6==rW*QE) zG_4CyzNoWN=E_*o{c>W3+>;=_Z8g{3m|h%_WbYy|_zzoktJ>$Rc59XBwVjVhY0#t% zi#Y>2vllhnq|TSE8lTpBvd)VdT-p;(A`Q!~SZ#SgCL*w+X0j>Ohs?04`I^HeY_5Y$ z=y2SVfc*%k8{;tBK$H+NB$%$dLP`KFDI_d4!w@8b0Q9B~{m#n0d)KWnkUzYpn}Zr^ zQ#*6Wo@Ez$lTZ-b*!DH)Sp?42VN#ZfH>bpltR?U_-=b6~iPmVX&g7S8I;e4wm_t&Q zWPdVOo?!C4N2nl)be=|f8q4zzfDe-C zyhP`Wu*GGiB_?3wqA(c|Fk>-G;qGsV8lh?ZpAFr(`RDyxr$0|zN}p!aFvy@%Adtc< z#Sp%ol_crHn@bF_o{o9$G6XGRbX3T+R)WQoCs;k2n@A=L_&JDmucnn0RfEb1ZSnCw zo8e?1mvneA|5kZgH(+uizQp(UZ>{$e{}{s4`&IYt7ZR?7GF~y!_1Ap)dTJK);ht8N8e<30Dwkx^eMLcx z9UCGv-FIUD8b{Xg@4(S=z!-!O5fAZY8uXpmG!wxDh^W)0jAA%G*n+mZVwAF}P97=w zBm8w3qB+1_m}dzbH3cp#1_ntG(B(Zb5mJs=K?KV{ZSfW@vO9g}qM6N5@m{~hO~}Hh zw9?RroJ6pmnmt8hfN;W2&rptJRh zT0j8OM&wUsI~LyS_8}7ep!9{#2UO~%YpJ~#-8>0G;5;qZL-Aoz3<@(mgu5gPwm#Ja_OJ_`^n(> zuu6mD_WfmbEWBwx$y9At zXs5RJEyGCXXnt~HdcCNUt|IEaQrJdZM*y>>kwm!gX==risHufSy!fg1#ZtiakWlNE z2Y%P%#J^P;_0o3vZT?dYn5=qd75(z>x&f_nuU+x3~K0XpRk;pnKe z2Uizf(LcN=UdVXBdDWQv8ijb^Qz z111KwIkdr`prJxTx}7^NVf~Ekk~hp3HMeL@h)sAH)nODy5S)r}q=mR>23J?+S6Grr zUg#N2s+_R0icjlU6zzw(LOShQJ-`d2Y>HFiF1dT#z}lVj;wj(2b&|>f3Vf5ys6hKY zlEO?oDO~U$({g&1*%e_(NQgXQFdYr4DuS`Ha>S@wta#Ra`V#(#67 zKp-q>#?!#5B>(v?01q1HkPH|SiMjbyAaG-6BO3ji%6%Aig4M}81tC3Fs9RQ)Kk>?_&mr1Hx*R6PZv`b9O&mIx z79!<5pl+9F54aPdp|CNqd9WczSgTPnKphn8R#t<~`aGAvO~```Ay@x{|NG@pHhW{F zrYMVpUaJh8!S{*a#RxV9ivFZW72qj29*3zUyu-9p8F%@M@_W`+YRd+61guNrwY1$y z_%va5MMl)M(h*bDa_mf-xM7IarM-IJ!xzhV>4&>E8{6ZX75Y5%)g9}P+ z-#Bwtlccc^{emR#@mVyys`?j*zGp@yU%;CcrJkh)HXe*Vgyu!3Z9?x&g)FDrBgIR@6vHfQx2Ml!<`r-ua&P<8tIom z;h@z$a{nTLb#Mf#Rfg4_lk1B#qQj}kokS1ViH)K-Uc0;jqv(ys_-whjEq|)D>jI&w zm$Fme&N{)(6t!Dv>$c>h*1)^>7*;9mVUT*}3z7LYp!}vjt%CsZ#Oy=tF+^k7iB`8v zt%1xk85#rd93*q;&0Tue1%4kqa2!aek%dLrAIkXfAC^QoR=Lya_(?M*{`~AGJmf%| zTfFx@Bw>cELgCa;aR0dsZ+QKDxA+bq!ZO2E4Qfwt4@o%SYJkV1qaN_nMurxrep4(~ z+{oO1Q5AwvkE*w2Ab$gz%8>0!8e$i$6u)=n7GqH#BF*l;CBYP<_$Q<_cy@a3d>}7N zoKMYcj!Jf?ZpbagJAX)Gu37?0}(eTGk&=$>Lh@MQ4jq-IFK zFQ}L6e?LM~T{C{avjk)WcV*6Cd7VGFN4}`Ag_iUS?mw3OJz8@?S!zYTpA{PA2K0ER zJkwx|t!ZXu5?m>Os}d9@U)LELgSR)Uj~~&ArFXLcJB^E8J<*er2vHV7dqsy>np|Dr zM|<^uyOt0c_MTq?0c2)iQ=;`Z@xGr>S{6YAK9;`!>}12xF-63w2+{rec+t2-3P?$X zgKS(~lvYCWIR2#_&$JW5riiCbn8N2dOI0hA9jH9_NKPYCps6 zxeUg>doLtqQ!qbE`6++XANsWjzFLm^CRaerjCFv{F@erqV@A~F8loV$)uJ8d`c{{S zy;&$8`$cLw={K{(c?0Bf4{Eniw*NsZCseZ-r$D0@UzIK=xO1!K1(8@B>>uh1tv9g5 zZuBaszW-x1((X#b!!90G9$2enV`vq4rCi9*g?=I{{%sb8*OU(A&maq~&d_UEfcMRd zW;m6>DmLkrT?hW%u>9noJGUyZQ-!(^_#oUy4HOx_o@w%@jkT=p8;r9twB z0Y($Z<{-`OT2+Z;xzG`fIFrkW+qBpOSrb~Z215F#i9Vr6hWfiZE#@5o*(pIhdL-;%SIoEPf-T z7Uz+NLU(DYen!#qMd`dPfO^yf-(=oXAR8K}knTcs1^N*x-n~eG{wnrLBNTx~H2CEI zcmaYizKScw_@HUA=|b+_cItEAlzM;jzR#R4L$ZmdqphbUZ6qF#z3@YNGO57c?g-5Q zw7VBWX9}v$mF(y9Pgw@ldQd3_V&}Hx08wwHQ%+n|Znmq_l2<}Bi=&W=SfGPyBJw+W zLO^G7a(>D3ID1 zInt6R0Deo;aWe?dqRfzQIrC7C^WC+Z*Ix9)r8q2fGgrux4=n!#`x-eC_K`{fYJuK8 zHroDUhRtr(4nR$t1$?05~g3tq&goI)6g?PeuS?@X}nhffd z;j9gzrMPcj@VYTnPlXfh2Y1XLU5!6kDBQ2&#|5uy4A;dRe}ac*|4_sovGl1L6h{aF zB*s%h0&c+_<1$FR=Gx}7=tQsL`7bXQ^6_&xv#sHL{TjT;_fxTZ=UL5aEA7N)E1sOI zop&?F3YY(8bhlkmZl3l;SCb+-Ldf+UkFJ$uPw>NJg$=fBZVVgDZG7J{x*L3N6_wGzUlR}^>{|DyC$xGO8}fu1 z_91Rle>x@z02)jurJ#%#YddFmC9(GUb$Z`~k*|Q(A@IZTEK|!~)R|+qIolOwpfCq{ z`4iAuIWU)=e-62zbB*xFHfXE`Ll+`NxjPrxUcJi@ZIJbGA85QVX>q*>rguClMj52e zY$Kq!9UE8oQ-=8rbzVg(q3<0AW3fin+S)CEnOUdfz^t;cW9!+pROu$Z zVq<$H0v?jq3YfHLL}5>Mi$D9HQ4|9!=a&2;YqIT-7eOGLbo;zx;>3x1zc@VDzYziA zvjjcSN@XZ&UY0vOlYffqZ`Ha=Ibbf7Phc+leclo5fiK-)?$-k8N1PyGdS{2RiVYAM zA}fh5q?t|dN*2`~n3!->W9JJ2j;sqosa_ASHYZlh);QY(MP#8c15Ah3`{xY1#O;A+ zb=ZnIlH%m)LD*>`pvC|t^P8t|co_om{9isgd!WyWhqfrgXL}v`R-P+g(W)CFheTFT zp$zpdIZu8j8l+{u{5kv~4*Xwh)F#ehbE8*`(c_emfDaBt}EMan7h%R3LgcNTzN+?hWV5mtJ zmkgLgV;U_{GW-e`X6ivUJG(|0P`DWVoZExyr+mVt=3gAq#{>|21?sI}y@(mbmm}|n z)sU%^VJ+flu+Y*=N(Na9*9(n?VT!J<)sv&#@YtvNyJj1(50a*XaRi!GK16(kO%$$3 z$s}MM3C9$yaH45YfpTI*i}lu8iIMa!L1B~T)zkCylp3bpDeX_~x70Y_-5H`q{whWC zzSDwN9mTV_x~AbLEwD1I$RyY;-z0Xv?5;bwi0Wv+-i&(a*qlsdt13ucOL_)Bx1^JN zKI_db#W?^6n!G#Zm@yv@&kyWY(5=->&oI4~N_nubG%#!pOmz^~U9nl*kIP=_^(W~R z$jmtu#woWS)Opz{qEsVb+O1+Qk-QA!=l1u*go-&rNSGSa?uV|f^rr3-r4>T=tDVn` zMNs_eX^Aw_&W6Sf;lN0PhK|EcvJ8tl7;-F+cdcZIiyb4FeIRr&4_V^y^=v4mDe}MR z)!f2ch{M>Rmy`WMJT$!Sqzg+28|=rb8axa6_ICQAM2bn*m%tc#)*ike$vqqJHP*(| zhx^0aJ5PrRQMX#|G=6JWY%?zV>Y#(%VyTeOOCh-Nf}eqXsji~WNGpg}nBezt9_O$O zc+x^FObh?81(-7)Z|1C{Xz(|DiR>eE7}4RnQ4L(rTeHePE)jHm^dfxQ+!>_YiF`{_ zwYp4q~KB5{djE zdvv*aON84d%+x7e)-YPGrF z-pROHR>4m+g(4v8A{VHHy)(OdPwGslpupY%M8H@^i59>kBATI;uKi~>V$`(qI(8#C ztMFsMsU~|(5>LJ)b)AD3yzZgugD(AyAV}Z>6KwdN_NQKT4IhVvtMZ5(-Cd<|cfh!! ze9hV5d*?4(#ZSq+aJL(>?l3JwK^!KE57TP+{xZJClTnl{outo}QZfcg3Y>8)pd*=8`Rll>qLX-R6(@3RecJ8?hV*v_b7bf%4TpYHu=WUGvwR5{MvKaypKpushX}lW3H;O_&v| z?Ka+>$`|iL`um)u_!CNBX7Kjg(h<+c?H!1rL~?&zUPKTo01Uwc?r$W!C#kDUhtCzh zldbNTA2rYl;4pi$APH0P$+(I@_rmAx{4VbXXSs@mmFaefaCQ%`!drA}ls`nWEfn* zin!XKkG=6^Qw~H!1v6Z)-19N+ERBr+2RJt$jyA=OwE5fEN)s=&{z8P3&aCL*yI&Z8 zPjx)QC`X|j92C}NxL)XQ`F7ogepKM|<0(??pfoL%S zD?m?I;qI9%01kzq;pt$D<5V8H<7zDl8KPS00L8L`H0s-B`8U$PmgCUCG>1Oil>`Pk z{jtQsBiJ8o;i!HOt;ndKkLN#JA1E_*Rk6a-T6!PaX+c?1TWsidT|Nx=o#4I;L|jwK z4CPAGc$41u8+gUyV5_NUpsfwpwBvkoDF8}ZM<4X*9gBWg(g>|Qn>l4!BEieInM-fZ zJGE*fJBJH4PuHDW(^u_k@qsut@(;XE471}uTsLbZU^4%Os73qrURh=*5nJli5D)RSEw-I^rc%bYS{Ry*Y80e?7W}wy8EsGZTO)98Zgn67@uM838h1x3y!w z9{B+`izdOKb8WP2OIWRmduzjOB0|k{#Fs{&MV+gxf-Te?(&urqAN+~W zkIOj~ird*{9TZV_szx)lD+KX~j8nO!^+j&Qb=HriXr-fy@bX4lY^b3;-8u?#N@}m~ zSIT-yS~VYz(uh3U-urMbCzY`Blo&)~*+5Z61s{Ihq<0QszY2grvWT!97Mzg`Ymc9K zW~ZJ%IiwplV@3m&I~?BxljS|LiLhO6l|=gXa8v~O6$ z`kBvf&7)w$DNh+qA-5ElOV`J{MAcBiH65^sq!2;n@94YyX`-Mky)MdwFB1wrzPu{F zlMBKISg=N(`^oMv%TsgzA&i|d0M@KA;2Fc=rC{;P6Q^5mS|)=KRmF_xNLswAC7}6< zyR;U0-O=pl7Y4W<)od;X_{Fl_of;ZI2A{C zN9$grb`1CfpCkf|Z2L8{TRweIXX7>wP68%=>ZTv8n)W}#WSx%!(-yJ*)I!Ng=NPT3 zX=CDZLJq|P6~dBl{<(6S$+CjP-x4`V^uLzyCt+7})49|b^yOLE)~#EoOhcMtCtK+# zjx<-R{rF$l%_$(lXs~8o#~*&u{C8?#u)BH1`|T7IzMM5ezx2GlTp<`^+3-F{XOOc?Ixh#n}4+!0J?v2h} z@5sRj*(36X)giE#?HBfTH>dROx9s9jT$#ddz71xCl|{aq%}Q@Up7kvwBkqu6erO9{ zsqIM0UFD?A5;%V{mC;dRM#VuKG-)}0)0GODP|I_%n(k7$A*zq2`a^5HlzT7^4@~7XR=3m z)tf?Db={HE?{Bnc+3kxr>rW;}pwHXVv~P-3KLBSDsTh?{uD#X%U_-K{fLQ$^qg_m%1-V+`-?DnzG{YM*;z&1t3E<;V6%6!YvK8 zJ(PFgE}A`9FC2u&_T?mH@VgngF;p(Z%c)150(W%fZq8PF6*Dm7?AxCN zM2jjY&higavZWE~-gU{%sF`3HG&-M%jy+i7x#j@jR0~QM%WU9Sq^VHAdqcYS$&;ZF zl8n@tMn>sl!WXZxp0(e@4SB7ZGU6XV0W%LQXJo;@zV6n1{bb076|bg2YW{dzqo;l2 zAFbK(FXW9;x^zmdr*^(>79FXTTHL6IQ6#3JX@Gqx_%bo=RaJNQ1bIa3&GmPn$yV*U z+CuL;Sbb+A!Hjn?c=bCYQcu<)nXjk60}gCM5lfePIf^)}9Et=>pYm_mPXAjxJU+wi zpJJP)6$}3bcqLj;bY%KXL6!M%HX{^v!~CPfTq6dU}KN7_lXY$lxcbUq;)Wjl6NC-e^K z5v6m`NR`mqQ#`bRf7j9axoJ4p(d$nbUP{9wSX=Ror8+?IFo`1Ko+UlpU7k9Cx@)+% z+6owr{7^i9)M(on@W&SlnwPGQcqIt~7n?pWDqf%Y*mJXcN1Rs0X8eYKcu+?W02YST zC&^Cn&nO!;9pwtro(qFc)P(MSNHnOcsxpJm;c0tCTVJ&{Qr!>%>gnnU&7Zk*Nb zcHT1fDQRBZeE4GsZ3{ma5xj)*>*3cdmv1pG0pRDl?x?=q1FSWm z->+_oqxH1!Ox2wqgqNZ3C$rxiI2OS;tZWch?&3nZ0noG62WZ{REAMfe__IcMS>#Ru@hANaRAGgJ7kh(LQ<1R%`Vy7QQ1Mq`4XsF|E`(w@4a!*| zLw_Oea};gq8(ra`#bU;XX|dwpt@%I${YC-;gJi9W{F;;r@H~?~FoU*&SB<8NsALia4_J2pl%K;yW z*Lz^>>A8aGkh{ecvLu2%&PD}vUKC*+4IWsrMW~V)a?R z)T#+oQu$T<{WMZq1i@G{=NoY&7_6qZGa|7H2%kv!FyB}1PT`VYI}8wJs2aZ>Td6>h z$`#G>smNexyE6;W(7nwMaQfvHwMtNT=2)QHQb7!zf{8}p>DNg?f{(x(1pqQAep7t=IcA5f zXpdbAH?u}?{hx|pGgWbB{vfhhq+ZaawUt(Tq)Yu1>UdH{A>S168AA)BZ7`*y^i{!= zJ!r(4ak_L9f`BQJQq!m#6;5Pa1~0tQO}RGL2gG9*=9nPSu#=JjrbgW!KX$qD{DbWx z5pn?2Q5zY>bll2l^PFX}nt`v9|EswT0%qs_VM~bf9ymB-tjMd1a>vJI(@Kk+meg1v z02PRVyA4fC1cb3sf7d;vJ&1h`l6i%4-(8JFRi0TKql<1tbFlpbFmQ3?NH#jmc)o;T z?chKd3r*uOXh|S|@|-3ZD>j^wsQ!#C#*AMLEb{$t{FvXt)k5mLUkB~sJBhOs{`2&2 zzZ1eV8WhHh-Jh#4nYU!MzbtbDycH=odWipsYQoT8uuX~&2XVA!OG}f7Fi~r3Gog=k zN$Fumh>|Og*qAc{j0xn^i7KPl2mbD{(9+0B(Sa0RnB^TYN=?@yOR|-4M+>VEc3u>W z>%W7H{y9T))HLMM(VZR=?@@e^r(!>$IzbrxFB6I_);{S=S5+EyE~Zk(Op*|bS^ex8 z*sEp&SbMTL-aZqp6Hvm7=^#u0(;kIKB)=<$)(8+tbC+f3ilBd0(PuK<{j_{37vqBh zl4@WJpBz%zez&dl9ftaYB1J|sXfb2 zhZ=d+tCy1EudVj%m^kB;6J%QdGQZG~O17LUmjgf>R6opV;i}nx^=!~bQOCxfvUSd0 ziH^a@&1kN83V*}N#wWcrQEd5TmkV|)Dzkm1Ht1(?eH|ff&0RAn^>X+b+edVs*F&nC ztN)o%5|2B-@U?_Rd;|?mzZskzaB<-li#PNu?rCJ8fO%Mgc|pGZRp5{g@Mw4wH#O{J?Gc#QPX)b@WvSXKD{8^Yqi7KI`O&4Vl|?4~Qv{}}f5 zqLGSOvdi|{a6ipTYkl%Ju5kRQpadUF;IL~ouaz=;e66xkr4Q}qI!!Jo9aP+$fMm39 z91}msNx$7*rSJP&|IB&#UJDvnRe(|=cd71d8tmw~_Mo)9iwjI#b zXiw&kQ8|KUz)T}4LPBcY+6finxqRHNomm-0bvt%}njCp{g}TKK2o3br9+i>NSDv}+ zMf7nq^D_@JS@!lhaza(5yn5|SJ!aF$-MXwP#fetB(kDAHrXXF&FyBHNzEv98Bt9)It=3QRp2&B7~NVdDL`3v3GdxmQ5 zNxongSgE|;F-k{Dhzqb|=fj1NCEd-zS$Hs*>c!cj6O0`V*Q1lq*3jLEutsYXbC6AA z#|HBvxOzbsbf@bPVNrZ#7Dio&CJ685%?MXxL2g#y+=TNo8tRs#?st zexcu8P5XP-HB|9<`wjD>LFNb^BdEp78=PKMhtw*dO8f}|OQ!u;-};2`eEl^UyX#H! zkd-Kp5rCDqaOFadpe8Q+!UfjO%Y0r?m|SIMejscDG$^9Hop{*;$gAv74|2$LRml`CdBPRWfEzGVeVRL{DdfvMMnL{;B++}QFzJD!2^3Co?6);*e8I*W*?L< zj3MAs5{W4MX!mZxRZ>wrA8TON^5u`(#$4D+csVjQnd#{ss0&ypu-U1uAMr&O!0|IG z8!Rmee|Gr6(VS%~&UfHG9#2}wb%B%Jyu)f2H203nn|S@I&LaLmGImi}VUD}Nc-Ojt zNG-h5609I&Zx_^MeCZtnBr)s-o}vjp1O z!v@Hm+Yb|sKAhw$E-m-KB}cA}F2v5{gVQe=DMdQn{$NUG3f`dYfytp-u;84SxO;n` zzejT@-^q{vjYbKG_D`I%{pJRw` z=iXhG>=2c6R3ARN8!N%W_!s%!nqN|Q{q^K;=3+O-s;jS9R7wQlXq4q*EWftSCCK#L zOK8(`gP#2K6eM!gpiwJU%2%Ji6a6gx_xAL_9F$+1AUyHRB^_9o`6^XJJF8ElLkOliytv-di58=XqRtuj z3gLQh4yX1neslnlaQYVqz(*QAZB35x7i^d<4yXLbLlh6ISa1$*V<)SbOkIMJ{_7!F zleOU(?mG{rJLIt`e+V`Yvw93Q#sv7If}t!4Iv#&tti#ELURa!yEIK?mpjnKzTEG+t z`tv7Ds7onwd3Wga9CUJDP)V47U9;whQcBsMaZ(o1@zEwshkj6>ld3Z z!&MU!XEsWTk^0=`;%ogDw&zCvlOw-*GCNH|Ih_uu36P_tR`_SnAg{x~S-;CcxsLiT z69Ixgk&Y2&%k4C-3_&&jP-Efl=H4{-O!KgA6ZIoy!UODU`Hu+mVPV}8GQ8+^mIv#8 z=EKpUQZ5~>nOSFeTzH?(Wa{R0=~FKNsF0+yp73El4;>voUX7lO2*12xL-4pd^mQ6H z{Z?8X0I8Qel^q8^6q9D146K} zw&U^1E_AO2Y8#L`I1$3h7ecrN$njqJjEJ^0-wyQQJuIsH;M`~@11q6SXYu*(xGx7| zZ+2*V%qH?pf1);kU=4_i%Q??XI{x70BuaNsS3F1a4uAk+CN zg8bL-fpE&JBc^i1ph^rnjldP@0-d!FLiz<1N@AJ_A#%;k`!wx)KmQ^wjw6B=m;&J1 zp!YJQl+8={KD)pU#Y*`FC*_BcD`aSt!2)i|wgU~7T(HO1WGSHmTZ^aJq0q?pyg-21 zoJg4CH;q|^Mq37DfYOfB{<<0a#Rvf3!zm;Yl;x>bEB}BNV&pD%aFs7bVY>UwgMj{< zC}Jx?8b}flazAKp6X%tW0dJafuzN5_sVZLIUhn%q$~o_6xZ-z@uf^(C7txkzK_VeG zS`aO)MDK)^h!#;oLey0fR__u~Rwszw%Oavh3!<**BrAHCweHDx?#!J#bN_?;+nMvz zIcJ`EKIeHq@As>eLWX^Y0Z|%$auUBKLK8?JwPm8<#_A5wd?q(QvxvW2Utpza8At?z zFKe|{Ymj*1QM%kxAi}7>G~v}=>qcEo>wult^3AGypj##D%vfLV0oV@gxfrMBQ~b-4kct4&P?bvrx3ER zt|BaxVC*g$@9$zD}rZUw}e#BL93zY%O`1o zWclj)81y_+N$2Nv(>zH7swaX{60aS(_+IhMxBx(c8pXoO~Fh#(d}v@5*$sJA8wp=s+)Q;^;rwDiP}S zSW0(C(Ico-KTKX(wmIx_XuBdLJC^p!^5!vy_rqJ;#kv~SQ0s>-eon`(cuT31P4~yK z0hZ?$sbxfwhWbr4b zqWqxoj%2&w_)p8ed-oSduu|ZnTLLtZl{fs7ZijN!kjq$wIu6&k(HMpH_a0Bi->7E& zMg-Pe5qDc_GLBV}x81J49U8dH9q#u#@o4a_T>tsV0Za1$Kfhh0M~QCpt&#gy@=qZy z6JIW=ZkZ+`0YNS3xu}VX)1zjOp6B{Zak(NA-DOkgfOG8xCePfs?#$(DJJ}2pHC5q7 z%aSyoGXCDLbxrbd;SoA(8qfR6YM!>#K>iJSQm{FvVUdkzZhx}dc4{;41VPvs3;Z_g!N_M`kx5)KlejP9rX`BM(tFP z6MYn!Uom;3NuT&c|BCagNTSXS1O{n)o%fSb9BZVv^lAl&dSP-QB@EEF)1u%|VI@`) zwP%=RQurVQ!O&}m*s-X~vz#tJy~5>D)o4JmKg zPV@(*QtF5PLmmiDOa)nEEFurww0=l#LRSw>pB1?2i6k>U5p(}(m>rcoSAPhhZL~58 zK(_QmdRIUDaacI@yr59_Ps6inQ22cQdRVw~a6f&i(b8#fE0L}ULCDc#BRUino`~f8 zb{1uRW&WzjhD)HnB0(LxSpM?>ST`(xVMIMJMQO*oJk@WO@0;1t&=%MymN8ax*@?3~ zq58chw6g054RS~^^bYnv{jx?1J(`@uoeWW9hUm=yVwb`PDEits0zP^rmuX5=o(}ue zU5gJa&^sDZeew3Cxzsh?SgaCDI=ZuZzm026PdwnBwkg=5eMZX}6iwJ%6VCyOFut>c zWD(TDT+W)6nfNM(d(f8)gnPq<7nVM{&=}InF~^34_G*GTy37BhHf$%Vu9)IE$pq;{ z4UgX$t~_OtFr|Gmej&g%fy7@=R^|nEqGz8P7^2>zB&JcDibE8S8?CEXN|U9&duC*V z%MxJ{!x}s!+~KSrslXP%vH2$3CVC#j?DO(F>YY5dmpaPjvQDkNm0t_j%C-7_GgN?f z78LC9*+MDj>N4-Dx_eigawjzPB3=P$FH;{#VZ4Bbo7@ zT7QyNeh3Y3Nqs^{*~CNI4n*F(#`yqV%V;0Xvo!DCYg_<3LxI$Wf<({MXu(d@VkCIp zN*>r!Ctp0-iR#&%u2189jRxtD^9Gb~mq|L0)C(Wl(K;)43RQ$Gi@B8D*332DSUI+; zh>Mslsz)gR7M1>QI2!alT5*+g04X50HKr;~zQdAjL;t-#~IH&vDCpZuEe| zU4W{mp9xzh>jA%*0t?YizwRBD^d=UMINt~lJf8bLyAd~nP}9MxxDr}~2g2OaGD`=H zoTZOhY-Imt>R2cS5N}*JASV}cFs1ls%06rnPzFE^LYs=;#+f!rJhm6XYIp6x;!g+L z<*O^^rJP?VN^QLlH{f5B`q z{>H7Qd@QcU6Uq*|k`lDvV2qTNFo;OBNin0-JINmCuo~m_^QIIPB=5&VJz2-JU)%6> z>;F^Fnm~5!lSUJHqK5U8EHZmJ?&xeAk-40~!DGFC(3#t{&KIfPl81wWx4U5A*$#vnHX@oLi-% zi*-`_du?(P)Ws~W!oG1QrXG5TnwpfgNqAG1@t?uKbQmT@qb26>=V&4J4Xe+=V2GymEK3 zq2RL=<>~xZiNSk%^NO6G@#JxAZjNMu06n6NG;)L_Qc=~7J~iQzPPJeS0R(Xc=-42y zU!~Q6ph650xftxdCT-D#+rK>QDLA5DZd%_j7Ij&&HvyPggvr^Xt_jiW?{sWdj`ujw za_F78A2zQ6uR)C--Fw#5G;G2R(~HT+Hwoezfmzks)o|m!!`qexuyTv-aPh{{hNOq` zeD_78oYyS#X&yX6$Iro!O{RANg9~1e@}}tQ%yFqG@1RdQD?n)&^52NCSUl4iB|CiO z(m}HOq?agcG?tpypFQ&IQ^r(;yef=ly+p@$jY8JI&>GsQ=axbyZ~L;bD=;WX$WZJu z)>pu4JTlcaiMdse+isXxf>&@V1af?m9er zvSDYBcF#Sh{NvG$pSL#2JO#li{9_gb57X8rpTj7&|8yq)7N>F*;~e(f^+`2wXd$%7 zcz~aeMgk6*G8ue%>&SfY=p1MA!MCR^ER=WFe`~(oCMpQ30`cfiryKoo4+bJyR8t^> zpY8)jjV~_jvTOaCd+3+yd+}Z{^34v;zO>*pihI`6!l5SV4hm5U|gW69~Q6X#2XIp&V3CEea8pms7j#gL#RR5w-Wf2 z!sgrzZKO3j;L=u;jWZP$x{M<*;eeVs&QPy1dZVyK>s9@%$P;feg7-Mif9B9QcprRj zgNJSf*_8CKE$Ol_52>)hK(#hKPz5=eQun^d64?PxBwqrM3jh6kV?H@|H3!&in1AVr z@pa-tt-Zr}O`9R($bpkWf$smJvw>*z)J2}5%gu^Y()+=yU2Bh1_-R|7K`;sfwhlK8A9R1~ zqv*OSNk_&Z%P-wG7?P4c^WTpjyha*Qp=0QiVn*KRD~tAysG&QexZ*AyACwiWbJ~^{ z26bnDpfF=B!eJdpt||cgl1#vl_Nz0ZjA-oJP?do^lAB}P`;7}%-*gAW$kF_>5LM1b zG<+w%BwvJHV0QzvP-IhL{%K{3O#YISskXWD#kYPrVlInGW&S1#l=OaUr5|1J{26C5 z+>w}8V*odt*ED(TY8t;B5$qg5!E z+mSsN>PI#TJ{IIkqWQ}Smoa~KD(6@!;i=jbxNflUWx?FJ3eh)f6^pjHmUTKq;ub)> z7vv|1r%K*;X?|SU;9E>D&j&%)+1G(^B4##U{pFd1&DcXcAfs*2 zRC}`3bOH)w@O}8>J8Y+S0nQle4g5b1b_FD^a9X$tFa}B9 zJ9PY~3+o|ipn;Z~zHkIeP?f=JG+(&{@?IENJF56z2dmJb$`@Eglc!j5fzFpH%4QSH zpRl)ueM@(~7>k)?lh@{!XppR#(%#u`Z9Rp^i~Rr2Ux-Z=vxMC5djI8$Jj>?(|u z(%_;{%Stx9N;kc~hk0V*6)I5+!jnQgtwjOwZYc?_D;EL=Zp8AE*{JJ0rK^A}XT&OV zx7{F%+FbaMfuv%BHGE*b6lu};p+0Bj@@snS=807V4?$;(|8#BHtJx9SoL_;eMblQ?1Jx_0=%lN zHws@|>cTOm#WZ#urO&2c!UcO+)a%UzUj{xuiI$YffAZf?FX%yjc1VihVh zgyl1-ExSVaslpE%slfGd8($A|GtFV=G7?n3) Date: Sat, 19 Jan 2013 20:52:00 +0200 Subject: [PATCH 2/7] busybox: add 'crond' and 'crontab' applets --- packages/sysutils/busybox/config/busybox.conf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/sysutils/busybox/config/busybox.conf b/packages/sysutils/busybox/config/busybox.conf index 03019de61d..d945b26cde 100644 --- a/packages/sysutils/busybox/config/busybox.conf +++ b/packages/sysutils/busybox/config/busybox.conf @@ -664,11 +664,11 @@ CONFIG_FEATURE_BEEP_LENGTH_MS=0 # CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set # CONFIG_FEATURE_CHAT_CLR_ABORT is not set # CONFIG_CHRT is not set -# CONFIG_CROND is not set -# CONFIG_FEATURE_CROND_D is not set +CONFIG_CROND=y +CONFIG_FEATURE_CROND_D=y # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set -CONFIG_FEATURE_CROND_DIR="" -# CONFIG_CRONTAB is not set +CONFIG_FEATURE_CROND_DIR="/storage/.cache/cron" +CONFIG_CRONTAB=y # CONFIG_DC is not set # CONFIG_FEATURE_DC_LIBM is not set # CONFIG_DEVFSD is not set From 288080c3838e50e7e0a569389ff7aaa65ff13c8b Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 19 Jan 2013 20:57:06 +0200 Subject: [PATCH 3/7] add cron support --- .../config/default_settings.xml | 1 + .../resources/language/English/strings.xml | 4 ++ .../source/resources/settings.xml | 3 ++ .../sysutils/busybox/init.d.optional/09_crond | 40 +++++++++++++++++++ packages/sysutils/busybox/install | 9 +++++ projects/ATV/options | 3 ++ projects/Fusion/options | 3 ++ projects/Generic/options | 3 ++ projects/Generic_OSS/options | 3 ++ projects/ION/options | 3 ++ projects/Intel/options | 3 ++ projects/RPi/options | 3 ++ projects/Ultra/options | 3 ++ projects/Virtual/options | 3 ++ 14 files changed, 84 insertions(+) create mode 100644 packages/sysutils/busybox/init.d.optional/09_crond diff --git a/packages/mediacenter/xbmc-addon-settings/config/default_settings.xml b/packages/mediacenter/xbmc-addon-settings/config/default_settings.xml index 67d8b9c81a..7694941487 100644 --- a/packages/mediacenter/xbmc-addon-settings/config/default_settings.xml +++ b/packages/mediacenter/xbmc-addon-settings/config/default_settings.xml @@ -31,6 +31,7 @@ + diff --git a/packages/mediacenter/xbmc-addon-settings/source/resources/language/English/strings.xml b/packages/mediacenter/xbmc-addon-settings/source/resources/language/English/strings.xml index 2b5b78f4b8..b083744f13 100644 --- a/packages/mediacenter/xbmc-addon-settings/source/resources/language/English/strings.xml +++ b/packages/mediacenter/xbmc-addon-settings/source/resources/language/English/strings.xml @@ -46,4 +46,8 @@ SSH Start ssh server at boot Disable password authentication + + crond + Start cron daemon at boot + diff --git a/packages/mediacenter/xbmc-addon-settings/source/resources/settings.xml b/packages/mediacenter/xbmc-addon-settings/source/resources/settings.xml index dff77a8eee..ec117f030e 100644 --- a/packages/mediacenter/xbmc-addon-settings/source/resources/settings.xml +++ b/packages/mediacenter/xbmc-addon-settings/source/resources/settings.xml @@ -78,5 +78,8 @@ + + + diff --git a/packages/sysutils/busybox/init.d.optional/09_crond b/packages/sysutils/busybox/init.d.optional/09_crond new file mode 100644 index 0000000000..6f5bb573f0 --- /dev/null +++ b/packages/sysutils/busybox/init.d.optional/09_crond @@ -0,0 +1,40 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +# +# start syslog daemon +# +# runlevels: openelec, installer, textmode + +( + + if [ -f /var/config/settings.conf ]; then + . /var/config/settings.conf + fi + + if [ "$CROND_START" == "true" ]; then + progress "Starting cront daemon" + if [ ! -d "/storage/.cache/cron/crontabs" ] ; then + mkdir -p /storage/.cache/cron/crontabs + fi + crond -b + fi + +)& diff --git a/packages/sysutils/busybox/install b/packages/sysutils/busybox/install index 135928b0b7..37f376de70 100755 --- a/packages/sysutils/busybox/install +++ b/packages/sysutils/busybox/install @@ -68,3 +68,12 @@ USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw -m sha512 $USER_PASSWORD`" mkdir -p $INSTALL/usr/www/error echo "404" > $INSTALL/usr/www/error/404.html + + # cron support + if [ "$CRON_SUPPORT" = "yes" ] ; then + mkdir -p $INSTALL/etc/init.d + cp $PKG_DIR/init.d.optional/09_crond $INSTALL/etc/init.d/ + else + rm -f $INSTALL/sbin/crond + rm -f $INSTALL/bin/crontab + fi diff --git a/projects/ATV/options b/projects/ATV/options index defd4d1ef6..2207844b46 100755 --- a/projects/ATV/options +++ b/projects/ATV/options @@ -330,6 +330,9 @@ # build and install nano text editor (yes / no) NANO_EDITOR="yes" +# cron support (yes / no) + CRON_SUPPORT="yes" + # Coreboot support (yes / no) COREBOOT="no" diff --git a/projects/Fusion/options b/projects/Fusion/options index c8e6438fb9..c1f4fc7609 100755 --- a/projects/Fusion/options +++ b/projects/Fusion/options @@ -329,6 +329,9 @@ # build and install nano text editor (yes / no) NANO_EDITOR="yes" +# cron support (yes / no) + CRON_SUPPORT="yes" + # Coreboot support (yes / no) COREBOOT="no" diff --git a/projects/Generic/options b/projects/Generic/options index c8485db8a8..8ae8c8e38c 100755 --- a/projects/Generic/options +++ b/projects/Generic/options @@ -329,6 +329,9 @@ # build and install nano text editor (yes / no) NANO_EDITOR="yes" +# cron support (yes / no) + CRON_SUPPORT="yes" + # Coreboot support (yes / no) COREBOOT="no" diff --git a/projects/Generic_OSS/options b/projects/Generic_OSS/options index a33339f4fc..558fba5607 100755 --- a/projects/Generic_OSS/options +++ b/projects/Generic_OSS/options @@ -329,6 +329,9 @@ # build and install nano text editor (yes / no) NANO_EDITOR="yes" +# cron support (yes / no) + CRON_SUPPORT="yes" + # Coreboot support (yes / no) COREBOOT="no" diff --git a/projects/ION/options b/projects/ION/options index e98fcb3151..bc4f0d5a73 100755 --- a/projects/ION/options +++ b/projects/ION/options @@ -329,6 +329,9 @@ # build and install nano text editor (yes / no) NANO_EDITOR="yes" +# cron support (yes / no) + CRON_SUPPORT="yes" + # Coreboot support (yes / no) COREBOOT="no" diff --git a/projects/Intel/options b/projects/Intel/options index 6df76b5a8d..725f470d8f 100755 --- a/projects/Intel/options +++ b/projects/Intel/options @@ -329,6 +329,9 @@ # build and install nano text editor (yes / no) NANO_EDITOR="yes" +# cron support (yes / no) + CRON_SUPPORT="yes" + # Coreboot support (yes / no) COREBOOT="no" diff --git a/projects/RPi/options b/projects/RPi/options index 30bbec3559..d74ede72a4 100755 --- a/projects/RPi/options +++ b/projects/RPi/options @@ -329,6 +329,9 @@ # build and install nano text editor (yes / no) NANO_EDITOR="yes" +# cron support (yes / no) + CRON_SUPPORT="yes" + # Coreboot support (yes / no) COREBOOT="no" diff --git a/projects/Ultra/options b/projects/Ultra/options index 9b56844c06..fccf6f61ec 100755 --- a/projects/Ultra/options +++ b/projects/Ultra/options @@ -329,6 +329,9 @@ # build and install nano text editor (yes / no) NANO_EDITOR="yes" +# cron support (yes / no) + CRON_SUPPORT="yes" + # Coreboot support (yes / no) COREBOOT="no" diff --git a/projects/Virtual/options b/projects/Virtual/options index f94a18ba91..e3c6238c9b 100755 --- a/projects/Virtual/options +++ b/projects/Virtual/options @@ -324,6 +324,9 @@ # build and install nano text editor (yes / no) NANO_EDITOR="yes" +# cron support (yes / no) + CRON_SUPPORT="yes" + # Coreboot support (yes / no) COREBOOT="no" From 102b46dbedf9d9fc563aa9c821c8a35ea874b445 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 19 Jan 2013 20:58:42 +0200 Subject: [PATCH 4/7] remove package: dcron --- packages/addons/service/system/dcron/addon | 33 --------- packages/addons/service/system/dcron/build | 35 ---------- .../addons/service/system/dcron/changelog.txt | 11 --- .../system/dcron/config/prune-cronstamps | 13 ---- .../service/system/dcron/config/root.crond | 12 ---- .../addons/service/system/dcron/icon/icon.png | Bin 50737 -> 0 bytes packages/addons/service/system/dcron/meta | 37 ---------- .../system/dcron/source/bin/dcron.start | 63 ------------------ .../system/dcron/source/bin/dcron.stop | 33 --------- .../service/system/dcron/source/default.py | 44 ------------ 10 files changed, 281 deletions(-) delete mode 100755 packages/addons/service/system/dcron/addon delete mode 100755 packages/addons/service/system/dcron/build delete mode 100644 packages/addons/service/system/dcron/changelog.txt delete mode 100644 packages/addons/service/system/dcron/config/prune-cronstamps delete mode 100644 packages/addons/service/system/dcron/config/root.crond delete mode 100644 packages/addons/service/system/dcron/icon/icon.png delete mode 100755 packages/addons/service/system/dcron/meta delete mode 100755 packages/addons/service/system/dcron/source/bin/dcron.start delete mode 100755 packages/addons/service/system/dcron/source/bin/dcron.stop delete mode 100755 packages/addons/service/system/dcron/source/default.py diff --git a/packages/addons/service/system/dcron/addon b/packages/addons/service/system/dcron/addon deleted file mode 100755 index 773bd0da0e..0000000000 --- a/packages/addons/service/system/dcron/addon +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# Copyright (C) 2011-2011 Gregor Fuis (gujs@openelec.tv) -# -# This Program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This Program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -. config/options $1 - - mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin/ - cp -Pa $PKG_BUILD/crond $ADDON_BUILD/$PKG_ADDON_ID/bin/ - cp -Pa $PKG_BUILD/crontab $ADDON_BUILD/$PKG_ADDON_ID/bin/ - cp -Pa $PKG_BUILD/extra/run-cron $ADDON_BUILD/$PKG_ADDON_ID/bin/ - cp -Pa $BUILD/nano-*/src/nano $ADDON_BUILD/$PKG_ADDON_ID/bin/ - - mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/ - cp -Pa $PKG_DIR/config/* $ADDON_BUILD/$PKG_ADDON_ID/config/ diff --git a/packages/addons/service/system/dcron/build b/packages/addons/service/system/dcron/build deleted file mode 100755 index d661c64673..0000000000 --- a/packages/addons/service/system/dcron/build +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh - -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# -# This Program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This Program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -. config/options $1 - -cd $PKG_BUILD - -ADDON_DIR="/storage/.xbmc/addons/service.system.dcron/" -ADDON_HOME="/storage/.xbmc/userdata/addon_data/service.system.dcron" - -sed -i "s|/usr/bin/vi|$ADDON_DIR/bin/nano|g" defs.h - -$MAKE \ - CRONTABS=$ADDON_HOME/crontabs \ - CRONSTAMPS=$ADDON_HOME/cronstamps \ - SCRONTABS=$ADDON_HOME/cron.d diff --git a/packages/addons/service/system/dcron/changelog.txt b/packages/addons/service/system/dcron/changelog.txt deleted file mode 100644 index a3dd47b752..0000000000 --- a/packages/addons/service/system/dcron/changelog.txt +++ /dev/null @@ -1,11 +0,0 @@ -3.0.1 -- bump addon version - -2.1.1 -- update to addon version 2.1 - -2.0.2 -- add possibilty to start / stop addon from addon manager with enable / disable - -2.0 -- initial version for dcron 4.5 diff --git a/packages/addons/service/system/dcron/config/prune-cronstamps b/packages/addons/service/system/dcron/config/prune-cronstamps deleted file mode 100644 index e256580360..0000000000 --- a/packages/addons/service/system/dcron/config/prune-cronstamps +++ /dev/null @@ -1,13 +0,0 @@ -# /etc/cron.d/prune-cronstamps - -# Prunes any files in /var/spool/cron/cronstamps that haven't been used in ninety -# days. We check that both mtime and atime are greater than this: -# -# atime because the cronstamp may be in use (crond is reading it) but the -# job keeps failing. So the cronstamp hasn't yet been updated. -# -# mtime because the volume the cronstamp is located on may be mounted noatime -# and so its atime won't be updated. At least its mtime will be updated when -# it's modified. - -@weekly ID=prune-cronstamps find /storage/.xbmc/userdata/addon_data/service.system.dcron/cronstamps -type f -mtime +90 -atime +90 -delete diff --git a/packages/addons/service/system/dcron/config/root.crond b/packages/addons/service/system/dcron/config/root.crond deleted file mode 100644 index 56c0808348..0000000000 --- a/packages/addons/service/system/dcron/config/root.crond +++ /dev/null @@ -1,12 +0,0 @@ -# root crontab -# DO NOT EDIT THIS FILE MANUALLY! USE crontab -e INSTEAD - -# man 1 crontab for acceptable formats: -# -# <@freq> - -# SYSTEM DAILY/WEEKLY/... FOLDERS -@hourly ID=sys-hourly /storage/.xbmc/addons/service.system.dcron/bin/run-cron /storage/.xbmc/userdata/addon_data/service.system.dcron/cron.hourly -@daily ID=sys-daily /storage/.xbmc/addons/service.system.dcron/bin/run-cron /storage/.xbmc/userdata/addon_data/service.system.dcron/cron.daily -@weekly ID=sys-weekly /storage/.xbmc/addons/service.system.dcron/bin/run-cron /storage/.xbmc/userdata/addon_data/service.system.dcron/cron.weekly -@monthly ID=sys-monthly /storage/.xbmc/addons/service.system.dcron/bin/run-cron /storage/.xbmc/userdata/addon_data/service.system.dcron/cron.monthly diff --git a/packages/addons/service/system/dcron/icon/icon.png b/packages/addons/service/system/dcron/icon/icon.png deleted file mode 100644 index 5d2f49cd8106d9bb721db8e01ad77ebd95ce88b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50737 zcmeFY`8$+v_&+>KHHD0b$xcF=7?LGh_MOO{CHubbyDVehL&yjrgpjc>@5Inx5}FuG zg~q-w*}qqx@AG;7h3A*YaddPvVdlQ?^E%JhcE&%^Ql`4bcnt!9P^qdY=t3YDTp$oK zS?C4uisF5nE8wrI9xBG(5C{eBzdvM)s(7qWrCo8ADT(D&$~za0a_v~znQx8dlZ@(!^WIa zm;FKH-g}PTaq_EaTpDl?snpUh;Cmfz z`zI$CW=+YPP|TZf^!Jta@zp1EiaKNVH>q^~y)? zMqs7jhu*msbExTn7l;b-FTwX0W8zV~;QJL_Y5)IU@c+#{IJzGrICEsN-D5Vh@~3da z<3U1kSd{EhQ^C<%v>*x=mccZ&;M%>Xai^&r*Y<>NFZZ$h%Oh81U00@web1-aeLRY% ze~PAC#@s80YEz%l`lxsDe-dlop>fmtJY+rNu~~f|R7O~)N8vv0o3O-?WzD*0(l4s7 zs)ap9+VTX^+nH6;kFH9DwOR@W(y>)eMoz9FUPR3tz z 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 diff --git a/packages/addons/service/system/dcron/meta b/packages/addons/service/system/dcron/meta deleted file mode 100755 index 6d6c13304f..0000000000 --- a/packages/addons/service/system/dcron/meta +++ /dev/null @@ -1,37 +0,0 @@ -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# Copyright (C) 2011-2011 Gregor Fuis (gujs@openelec.tv) -# -# This Program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This Program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -PKG_NAME="dcron" -PKG_VERSION="4.5" -PKG_REV="1" -PKG_ARCH="any" -PKG_LICENSE="GPL" -PKG_SITE="http://www.jimpryor.net/linux/dcron.html" -PKG_URL="http://www.jimpryor.net/linux/releases/${PKG_NAME}-${PKG_VERSION}.tar.gz" -PKG_DEPENDS="" -PKG_BUILD_DEPENDS="toolchain nano" -PKG_PRIORITY="optional" -PKG_SECTION="service/system" -PKG_SHORTDESC="This lightweight cron daemon aims to be simple and secure, with just enough features to stay useful." -PKG_LONGDESC="This lightweight cron daemon aims to be simple and secure, with just enough features to stay useful." -PKG_IS_ADDON="yes" -PKG_ADDON_TYPE="xbmc.service" -PKG_AUTORECONF="no" diff --git a/packages/addons/service/system/dcron/source/bin/dcron.start b/packages/addons/service/system/dcron/source/bin/dcron.start deleted file mode 100755 index ba22a14825..0000000000 --- a/packages/addons/service/system/dcron/source/bin/dcron.start +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh - -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# -# This Program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This Program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -. /etc/profile - -LOCKDIR="/var/lock/" -LOCKFILE="dcron.disabled" - -ADDON_NAME="service.system.dcron" -ADDON_DIR="$HOME/.xbmc/addons/$ADDON_NAME" -ADDON_HOME="$HOME/.xbmc/userdata/addon_data/$ADDON_NAME" - -if [ ! "$(pidof crond)" ]; then - mkdir -p $ADDON_HOME - - if [ ! -d $ADDON_HOME/crontabs ]; then - mkdir -p $ADDON_HOME/cron.hourly - mkdir -p $ADDON_HOME/cron.daily - mkdir -p $ADDON_HOME/cron.weekly - mkdir -p $ADDON_HOME/cron.monthly - - mkdir -p $ADDON_HOME/crontabs - mkdir -p $ADDON_HOME/cronstamps - mkdir -p $ADDON_HOME/cron.d - - cp $ADDON_DIR/config/root.crond $ADDON_HOME/cron.d/root - cp $ADDON_DIR/config/prune-cronstamps $ADDON_HOME/cron.d/ - cp $ADDON_DIR/config/root.crontabs $ADDON_HOME/crontabs/root - fi - - export PATH=$ADDON_DIR/bin:$PATH - -# Restart process if it terminates. - if [ -f "$LOCKDIR/$LOCKFILE" ] ; then - rm -rf "$LOCKDIR/$LOCKFILE" - fi - while [ true ] ; do - if [ -f "$LOCKDIR/$LOCKFILE" ] ; then - break - fi - crond -f -l info - sleep 1 - done & -fi diff --git a/packages/addons/service/system/dcron/source/bin/dcron.stop b/packages/addons/service/system/dcron/source/bin/dcron.stop deleted file mode 100755 index f93d82434a..0000000000 --- a/packages/addons/service/system/dcron/source/bin/dcron.stop +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# -# This Program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This Program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -. /etc/profile - -LOCKDIR="/var/lock/" -LOCKFILE="dcron.disabled" - -mkdir -p "$LOCKDIR" -touch "$LOCKDIR/$LOCKFILE" - -if [ "$(pidof crond)" ]; then - killall -9 crond -fi diff --git a/packages/addons/service/system/dcron/source/default.py b/packages/addons/service/system/dcron/source/default.py deleted file mode 100755 index 55136ed296..0000000000 --- a/packages/addons/service/system/dcron/source/default.py +++ /dev/null @@ -1,44 +0,0 @@ -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# Copyright (C) 2011-2011 Gregor Fuis (gujs@openelec.tv) -# -# This Program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This Program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -import os -import sys -import xbmcaddon -import time -import subprocess - -__scriptname__ = "Lightweight cron daemon" -__author__ = "OpenELEC" -__url__ = "http://www.openelec.tv" -__settings__ = xbmcaddon.Addon(id='service.system.dcron') -__cwd__ = __settings__.getAddonInfo('path') -__start__ = xbmc.translatePath( os.path.join( __cwd__, 'bin', "dcron.start") ) -__stop__ = xbmc.translatePath( os.path.join( __cwd__, 'bin', "dcron.stop") ) - -#make binary files executable in adson bin folder -subprocess.Popen("chmod -R +x " + __cwd__ + "/bin/*" , shell=True, close_fds=True) - -subprocess.Popen(__start__, shell=True, close_fds=True) - -while (not xbmc.abortRequested): - time.sleep(0.250) - -subprocess.Popen(__stop__, shell=True, close_fds=True) From e4e03507842a28f5f1462f115e21469a89c12cec Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 19 Jan 2013 21:31:14 +0100 Subject: [PATCH 5/7] busybox: move crond init script to scripts folder, cleanups Signed-off-by: Stephan Raue --- packages/sysutils/busybox/install | 2 +- .../busybox/{init.d.optional => scripts}/09_crond | 12 ++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) rename packages/sysutils/busybox/{init.d.optional => scripts}/09_crond (84%) diff --git a/packages/sysutils/busybox/install b/packages/sysutils/busybox/install index 37f376de70..64b61ca2e2 100755 --- a/packages/sysutils/busybox/install +++ b/packages/sysutils/busybox/install @@ -72,7 +72,7 @@ USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw -m sha512 $USER_PASSWORD`" # cron support if [ "$CRON_SUPPORT" = "yes" ] ; then mkdir -p $INSTALL/etc/init.d - cp $PKG_DIR/init.d.optional/09_crond $INSTALL/etc/init.d/ + cp $PKG_DIR/scripts/09_crond $INSTALL/etc/init.d/ else rm -f $INSTALL/sbin/crond rm -f $INSTALL/bin/crontab diff --git a/packages/sysutils/busybox/init.d.optional/09_crond b/packages/sysutils/busybox/scripts/09_crond similarity index 84% rename from packages/sysutils/busybox/init.d.optional/09_crond rename to packages/sysutils/busybox/scripts/09_crond index 6f5bb573f0..cae21e563b 100644 --- a/packages/sysutils/busybox/init.d.optional/09_crond +++ b/packages/sysutils/busybox/scripts/09_crond @@ -19,22 +19,18 @@ ################################################################################ # -# start syslog daemon +# start cron daemon # -# runlevels: openelec, installer, textmode +# runlevels: openelec, textmode ( - if [ -f /var/config/settings.conf ]; then . /var/config/settings.conf fi if [ "$CROND_START" == "true" ]; then - progress "Starting cront daemon" - if [ ! -d "/storage/.cache/cron/crontabs" ] ; then - mkdir -p /storage/.cache/cron/crontabs - fi + progress "Starting cron daemon" + mkdir -p /storage/.cache/cron/crontabs crond -b fi - )& From cb4f8c3bdb213e195833100ffa5c73f66fec5f66 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 19 Jan 2013 23:03:52 +0200 Subject: [PATCH 6/7] xbmc: do not depend on 'bc' --- packages/mediacenter/xbmc/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc/meta b/packages/mediacenter/xbmc/meta index b4baa6a820..cf6be861fe 100644 --- a/packages/mediacenter/xbmc/meta +++ b/packages/mediacenter/xbmc/meta @@ -25,7 +25,7 @@ PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.xbmc.org" PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" -PKG_DEPENDS="boost Python zlib bzip2 systemd pcre ffmpeg libass curl libssh rtmpdump fontconfig tinyxml freetype libmad libogg libmodplug faad2 flac libmpeg2 taglib yajl sqlite bc xbmc-addon-settings" +PKG_DEPENDS="boost Python zlib bzip2 systemd pcre ffmpeg libass curl libssh rtmpdump fontconfig tinyxml freetype libmad libogg libmodplug faad2 flac libmpeg2 taglib yajl sqlite xbmc-addon-settings" PKG_BUILD_DEPENDS="toolchain boost Python zlib bzip2 systemd lzo pcre swig ffmpeg libass enca curl libssh rtmpdump fontconfig fribidi tinyxml libjpeg-turbo libpng tiff freetype jasper libmad libsamplerate libogg libcdio libmodplug faad2 flac libmpeg2 taglib yajl sqlite" PKG_PRIORITY="optional" PKG_SECTION="mediacenter" From adf4ab8ba4c042e99c2bdccc10424e67263b28cc Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 19 Jan 2013 23:04:09 +0200 Subject: [PATCH 7/7] remove package: 'bc' --- packages/tools/bc/build | 32 ----------------- packages/tools/bc/install | 26 -------------- packages/tools/bc/meta | 36 ------------------- .../bc/patches/bc-1.06-automake-1.13.patch | 12 ------- 4 files changed, 106 deletions(-) delete mode 100755 packages/tools/bc/build delete mode 100755 packages/tools/bc/install delete mode 100644 packages/tools/bc/meta delete mode 100644 packages/tools/bc/patches/bc-1.06-automake-1.13.patch diff --git a/packages/tools/bc/build b/packages/tools/bc/build deleted file mode 100755 index 0eb068f21b..0000000000 --- a/packages/tools/bc/build +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh - -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# -# This Program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This Program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -. config/options $1 - -cd $PKG_BUILD - -./configure --host=$TARGET_NAME \ - --build=$HOST_NAME \ - --prefix=/usr \ - --disable-nls \ - -make diff --git a/packages/tools/bc/install b/packages/tools/bc/install deleted file mode 100755 index 072f41d6a0..0000000000 --- a/packages/tools/bc/install +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# -# This Program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This Program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -. config/options $1 - -mkdir -p $INSTALL/usr/bin - cp $PKG_BUILD/bc/bc $INSTALL/usr/bin diff --git a/packages/tools/bc/meta b/packages/tools/bc/meta deleted file mode 100644 index e69763a798..0000000000 --- a/packages/tools/bc/meta +++ /dev/null @@ -1,36 +0,0 @@ -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# -# This Program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This Program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -PKG_NAME="bc" -PKG_VERSION="1.06" -PKG_REV="1" -PKG_ARCH="any" -PKG_LICENSE="GPL" -PKG_SITE="http://www.gnu.org/software/bc/bc.html" -PKG_URL="ftp://ftp.gnu.org/gnu/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.gz" -PKG_DEPENDS="" -PKG_BUILD_DEPENDS="toolchain" -PKG_PRIORITY="optional" -PKG_SECTION="tools" -PKG_SHORTDESC="bc: GNU's numeric processing language and a calculator" -PKG_LONGDESC="Bc is an arbitrary precision numeric processing language. Syntax is similar to C, but differs in many substantial areas. It supports interactive execution of statements. Bc is a utility included in the POSIX P1003.2/D11 draft standard. Since the POSIX document does not specify how bc must be implemented, this version does not use the historical method of having bc be a compiler for the dc calculator. This version has a single executable that both compiles the language and runs the resulting 'byte code'. The byte code is not the dc language." -PKG_IS_ADDON="no" - -PKG_AUTORECONF="yes" diff --git a/packages/tools/bc/patches/bc-1.06-automake-1.13.patch b/packages/tools/bc/patches/bc-1.06-automake-1.13.patch deleted file mode 100644 index a6eeba8d09..0000000000 --- a/packages/tools/bc/patches/bc-1.06-automake-1.13.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur bc-1.06/configure.in bc-1.06.patch/configure.in ---- bc-1.06/configure.in 2000-07-08 01:34:09.000000000 +0200 -+++ bc-1.06.patch/configure.in 2013-01-12 09:17:40.085444318 +0100 -@@ -1,7 +1,7 @@ - dnl Process this file with autoconf to produce a configure script. - AC_INIT(doc/bc.1) - AM_INIT_AUTOMAKE("bc", "1.06") --AM_CONFIG_HEADER(config.h) -+AC_CONFIG_HEADERS(config.h) - - AC_DEFINE(DC_VERSION,"1.3") - AC_DEFINE_UNQUOTED(BC_COPYRIGHT, dnl