From b5873a1b87212c10c3ad9dbbaf48910b5ac752cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Hyl=C3=A9n?= Date: Tue, 16 Mar 2021 09:22:05 +1100 Subject: [PATCH 01/18] ripgrep: initial package v. 11.0.2 This also adds support for building rust packages. --- Dockerfile | 9 +++++++- cross/ripgrep/Makefile | 45 ++++++++++++++++++++++++++++++++++++ cross/ripgrep/PLIST | 1 + cross/ripgrep/digests | 3 +++ spk/ripgrep/Makefile | 19 +++++++++++++++ spk/ripgrep/PLIST | 1 + spk/ripgrep/src/ripgrep.png | Bin 0 -> 6903 bytes 7 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 cross/ripgrep/Makefile create mode 100644 cross/ripgrep/PLIST create mode 100644 cross/ripgrep/digests create mode 100644 spk/ripgrep/Makefile create mode 100644 spk/ripgrep/PLIST create mode 100644 spk/ripgrep/src/ripgrep.png diff --git a/Dockerfile b/Dockerfile index 61bb0c84cf9..b719f927124 100644 --- a/Dockerfile +++ b/Dockerfile @@ -59,7 +59,9 @@ RUN apt-get update && apt-get install --no-install-recommends -y \ texinfo \ unzip \ xmlto \ - zlib1g-dev && \ + zlib1g-dev \ + clang \ + libclang-dev && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* @@ -71,6 +73,11 @@ RUN pip3 install meson==0.56.0 RUN wget https://bootstrap.pypa.io/pip/2.7/get-pip.py -O - | python RUN pip install virtualenv httpie +# Install rustup and add the required toolchains +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \ + CARGO_HOME=/spksrc/.cargo/ sh -s -- -y && . /spksrc/.cargo/env && \ + rustup target add armv7-unknown-linux-gnueabihf aarch64-unknown-linux-gnu + # Volume pointing to spksrc sources VOLUME /spksrc diff --git a/cross/ripgrep/Makefile b/cross/ripgrep/Makefile new file mode 100644 index 00000000000..b4812b4ffab --- /dev/null +++ b/cross/ripgrep/Makefile @@ -0,0 +1,45 @@ +PKG_NAME = ripgrep +PKG_VERS = 11.0.2 +PKG_EXT = tar.gz +PKG_DIST_SITE = https://github.com/BurntSushi/ripgrep +PKG_DOWNLOAD_METHOD = git +PKG_GIT_HASH = 3de31f752729525d85a3d1575ac1978733b3f7e7 +PKG_DIST_NAME = $(PKG_NAME)-git$(PKG_GIT_HASH).$(PKG_EXT) + +CONFIGURE_TARGET=ripgrep_configure +COMPILE_TARGET=ripgrep_compile +INSTALL_TARGET=ripgrep_install + +PKG_CARGO_DIR = $(WORK_DIR)/$(PKG_NAME)-git$(PKG_GIT_HASH) + +ifneq ($(ARCH),) +ifeq ($(ARCH),x64) +RUST_TRIPLE=x86_64-unknown-linux-gnu +else ifeq ($(ARCH),armada38x) +RUST_TRIPLE=armv7-unknown-linux-gnueabihf +else ifeq ($(ARCH),aarch64) +RUST_TRIPLE=aarch64-unknown-linux-gnu +else +# $(error Arch $(ARCH) not yet supported) +endif +endif + +# Set linker environment variable +RUST_LINKER_ENV=CARGO_TARGET_$(shell echo $(RUST_TRIPLE) | tr - _ | tr a-z A-Z)_LINKER +CARGO_ENV=$(RUST_LINKER_ENV)=$(TC_PATH)$(TC_PREFIX)gcc + +# Set the cargo target +CARGO_TARGET=--target=$(RUST_TRIPLE) + +include ../../mk/spksrc.cross-cc.mk + +ripgrep_configure: + @echo "No configuration for ripgrep." + +ripgrep_compile: + @echo "No compiling for ripgrep (done in install)" + +ripgrep_install: + @echo "Installing ripgrep" + $(CARGO_ENV) cargo install $(CARGO_TARGET) \ + --path $(PKG_CARGO_DIR) --root $(STAGING_INSTALL_PREFIX) diff --git a/cross/ripgrep/PLIST b/cross/ripgrep/PLIST new file mode 100644 index 00000000000..070601f448f --- /dev/null +++ b/cross/ripgrep/PLIST @@ -0,0 +1 @@ +bin:bin/rg diff --git a/cross/ripgrep/digests b/cross/ripgrep/digests new file mode 100644 index 00000000000..9128370f8f1 --- /dev/null +++ b/cross/ripgrep/digests @@ -0,0 +1,3 @@ +ripgrep-git3de31f752729525d85a3d1575ac1978733b3f7e7.tar.gz SHA1 d25b4ede65e13b44b2c146e62ca4a09c3d8c3651 +ripgrep-git3de31f752729525d85a3d1575ac1978733b3f7e7.tar.gz SHA256 d65ec131aa7667684675b08349425b3bc88672fa1ec3200274f3b31185f8c68a +ripgrep-git3de31f752729525d85a3d1575ac1978733b3f7e7.tar.gz MD5 1d2c5192aecbdecc036107a398792241 diff --git a/spk/ripgrep/Makefile b/spk/ripgrep/Makefile new file mode 100644 index 00000000000..b329b89acec --- /dev/null +++ b/spk/ripgrep/Makefile @@ -0,0 +1,19 @@ +SPK_NAME = ripgrep +SPK_VERS = 11.0.2 +SPK_REV = 0 +SPK_ICON = src/ripgrep.png + +DEPENDS = cross/$(SPK_NAME) + +MAINTAINER = Hylen +DESCRIPTION = ripgrep is a line-oriented search tool that recursively searches your current directory for a regex pattern. +STARTABLE = no +RELOAD_UI = no +DISPLAY_NAME = ripgrep + +SPK_COMMANDS = bin/rg + +HOMEPAGE = https://github.com/BurntSushi/ripgrep +LICENSE = MIT/UNLICENSE + +include ../../mk/spksrc.spk.mk diff --git a/spk/ripgrep/PLIST b/spk/ripgrep/PLIST new file mode 100644 index 00000000000..22ded55aa2c --- /dev/null +++ b/spk/ripgrep/PLIST @@ -0,0 +1 @@ +: \ No newline at end of file diff --git a/spk/ripgrep/src/ripgrep.png b/spk/ripgrep/src/ripgrep.png new file mode 100644 index 0000000000000000000000000000000000000000..971ffdc1ca8dac6c532fd754fe9f3ed36e6918d8 GIT binary patch literal 6903 zcmX9@2Uru&(@sK1Y63=zh@nKPAX20%5KRCTco!dR)9m8Afto*DX5QrUv*2RKAUAGTtK0r zp|baUJOiDb{9I&x1Kgf$s`GV4TH|D|{1zqxccedEAE^?u9kPpzwIBC4F z+7&SB@q6|={%=bK>3g^Z-BJmuiCug*$FD8DRDeYA_%VR_Zk&UB5Pu@fjD~=m0f^^wH&GP5D|)%v#MFd7ga6GeOo--?2^4>r8T0 z_jEx~0_2JLpFu{dcy`eOs1-kjw}{KduSmseS{xrg(vu#F^6hg*jM!&N#`-WAJSTVb zfCbF|ETmIk_6_Odv$KmFUj1qZSy~bqsJ1jd+C4|5ZPyo(qiD(nEdp`gvMStqvZLIh5XC( zuf1>$JjYsoMuoWEO_zpmB?lw>=bZ zEy?c!koMeWl=TA&`|H$vs@Cu+N`HRPQ@B@Jr_~>o&aY=1yd|JZk?4up&``(Ba2*M5 zi=Hgi65dleu@`!|L~CB6TaR{S(Oj8x z6rm`ZaNbk^5|wz#Fc+fcId-qj(5H(%Zj9i66VB~CA}!loBpiP=DtEp<^n698ksran z$Bt@5s5dBlX_AosL%(tEQTOy!n<-|RG>*Dz6|}n2A`+U|?A9sRoO_Ns^-;Bky%(l2 ze|o96#!D?(EW$LDYw1K)ue^{3LPBD}nk2*Sf{?4*ayvijOd<(Zs(I&91C-A1ecsGF z4_0ETWvB%y!B#TL4c)tLVG_h2`;k!vY=T8BOoZ>u8Qt9 zuL~x~QKwYlh_ZwV*gdlmqixv|&q$eLigZB+V&QBd+bkx=p)B`P*kVd*!vwLhd z`voJ!0{QC{{UCJ)PxVa_L+oErx>&}>1d`?6ToWTg9 zemzo=yP0Lk{tk~Dq{tLGQk0c69!`~C6J-@{LMUd0P1cvHa(nhY5>@T@tVFHR(*%Q| z4Cz>b5bnUx^DlvARDw1q()$jXL^&$)9Z7uO=fY->`kzSpWvCL_YCzA#%rl-DRj=-< z${&Vx{MY@1W5TSOENcEns7U|Cg9hH6&uZ~`t;#GFycJH=AwttuwS2`MDHS|uh8(#W zNW^z>LejVzyxOm?Uzi{1j+to_lxIx;risJNR+}2vtt;AlFGjkC6Emn{N4fGij zf8kwdavYi@6X380}FKUzM)S3Ol*GVBljT+yNbDuILnB>nETfH zrgVC+_wrD=!k0lP4%hmn395`ZtE9oG!tuMBYeAfnA8q@zcj1yn$4fhzZ^DjEDn%!G zsJ$P9qBCW!x1dA*gNU;ayj;z)U8@Wogd#iOBv$`)e}@#TSfj|HlHJ@ovGSMO$v(lPn)e|by1)!%f@3Ja>ptJA&<=kTU)7@Y9uIAAFHUHSM z%7J{rFt|Pq#3|3za{DJF;k|Z(iB}|)Gu$lj!C(4~mNEC)>rvN6F!9hK%z|){^Rxx0 z=FnrGs2iy>5$Sn_a!tNhZOSga+0u@jzY6u`8ak`?`3<#ZH7$7ZqLJ{rB|}sKPBQ^L z!d#+U=`)32)Wlip^09#_=%*`dOV7+cz&>0N>K_Yv#*^;KcKsCc7r1vvXMGPU|Fg8U3-0j68-)P zj+yx0FS~7oj8W5hc3sVxvGDM=q2vMble}?%T&P>~0_rM%GhOsdqtsWHMybtrW8<#h zL-xFFFZ9QWG|Ya72;8n7EcGc3d8m#L>1HRXS+~OklPD?cr21J41>Cijyj;&oXH=4h z`v7wn_bHzK=??!$9wCP+ejDWryiv9owdegM9kmubTC~|@l8kVzHzkKFstZ+i+yony z_)eutVat_9m?sO;N_@9GY>Rd%ITPutGjB>0$BWQz(Jfcm+fk=alW26ro$n+#v@I3=@}EZ6r(@X@TwL2{uIIq4o&iHRqeOZ zM?ZnTM%UVk4gy?Z1AKr_??Ac$`6` z3^Ac&!0C0YiY^4ne+j3kvYb94`5a>JSfu-!I%E6A z!MBsaX{z{2)5LKF>Q6xXrAPVVn`TJI=+*>X`#r-l^s(+lUbSJ|Lmw$GnKO8+HBsS0 zgrZL2bxheEQbtQnU9hM>7*mG+1gOQXA)1oIDkes=x}W;UVwV*kT1x1Cmsp(9&>w@X z(F>;_nhI2`WE^HdBJZz>?hJIDEF;WzuGU{kUiP#JhBTwgHmw|6REa!^S-$&M-xwp~ zif)zFKB0HjMHizrY7C!~u$EC{8WnpVeUGu1u$QY~mnwK7u(H_inPg*DRG&$ZyO-Gf z9~{(9`{N{{a|~0AZb6pG-)R3GzPMrI{BLurDwJNbN=-8LXgiX zLLxYQ_tzwU*ZBW8oxE+iNAhc1L6`}aZDR6ovTkfn6(@FSNc7vWl0QrAeXEx5$`%Ms zmn`RrkROFD6kO46@rPFg=oOFkUCL##Af^gfU5wa>5)jKu zCWRmXzTovSUFeZ3Coq{!r~ielB+;G+Fl)}hF<&L&BLQjFpeYu(0}Mf)pgO$276d*e z2G#|)AYDEJ+Yt~;v@jb1{Pgr?=F5Qe*IHFDP^u}?(KG+1wti|0`m-It8dV48Yob4V zHJ=+k&q>Pq1Uj1-xC%*ytvD8+Q86#nm4QpFgE!5Q;C7?JIB=a7ao@v^#70Y7qmS#_ zsqB#m>r}-@$YL4&s#L*_=eB)&W^*qMJSmS*-cGWH5yHV~nHf_yV}CDswe0DQlv&;M{CQ2v1#= zDiM0zu8PM4VPCTncRGRLT3ODWz+`pXi>fG90+XFM%~r)HW^QL#gdeHyQ0zw|9{$@$ z4HYPWEr|#1FMD|ZrJeKFqe`oMR=_~CS1Dg;wlCCuPo!R46IC^ZZ=Yu!P68ZDu`Mxt z-b3CAFL;z0_h15ZwT~QW?t4xym%jBRTSaDOPNwivT<$Qr%J%$NS)nDSSJ z6b7$a!xFwtjFp2pq#r}mvnEzG%*~C4DKmsw+6w^nvER}s$(|QLhQ>%^za`>I%115f zS1Zr5_T3~|Y%!iVc_B4LOFOFK>ddf)gl82KUI54z=h%O7oGUdX#SLEENnfV(H|k>y z5N5Hxy}l^P8rF{p60NsxYMo;gkj1{SS1#2uUSG1w-}GOZW)EYJj%-0&z2LYJTXMkb z=GroL-qDlBu($CQ;nITMDPHG?7UrsfVffx*aykH8*DK%K!+vNh*0BT`;sHmz_{H^` zWyYacRk>|WHftjeIZP%dWnm0NHxlapqFUho)4As!R{1c&B{EMU_mCUc{iTcz`oAqv zv3tD>sJ^f9pjhqLMGl@o!j7Fw-Nl_N%_n(nXe;c&#our7RrsIy|M<>7;1RsOq7e&> z_U2gpB$J#T#-<`&>iqn*#I^=budq7JLHXouyDV1el1SXGVR-S)r2xlXgH+v^ct||U(Udkc?~FZ_b&uiYh$VxqLDX#rQ5_=Fl2OLiP61Q$dsH9mrv7S@ zQA2$}80PrSXpC{Vx}Q?LP|2c7q3uV2!C1YS>symsx7n1Q(NpwP$@fbMEPrB>-sDEm zbui2V?Y@HB(kJ)FJO+fnnP}b5Ym?-(>(1CMhXuNn$xVLeoqT3uZ%vBl`1Z13!iqWS zTyr5VcDd72jDntpYMK&n#dSiAU{$Ntd|$T~==11*Kn%bK!tvbgW!WSJKmPh6j9>ce zkQVrn^tMPa!uv{A*r&S-t+AaMd4In0mZ)^Hwp$(hCK2Ce3z*`(#Co_jGVAl*=30v~ zrc2_tbSq{@>?Pp5pB7IaIvz42;Nrrdb1bJ(rjF)t7Q%>m$^N|Jf-ettpVVEM`@FK)oboAxn`tiL=cTG7 z;(r%Y4xU%ubbYK}n$wE5nm30OK`8HN3;2d_)feOWo(|GdTavP}M~|s(1S@eFHGRTN z+nIB}bOPWKQZ+V2c-R&eIa=%rKBb##Jc?R1*!-)eIQkI#l}TA;UyX6l=0Lp57gN@9rX#UBWX;0-guukN zg()_;g#Mu3;-s$|&27;(5qDO;amo4aPt?PJ&nFDPR4U8Hs}P!iX~VOY!+`@Uwh8}<ayGWUY?KnBAH2~i`ir=ldP7-`%?Xg7^s(VudQdBplaGZLxZ-%_cmGIH4L3C9 zWK>{t^5HD)r0n3FT!QlN%i@!rYESe0wzy~;rnP-U%iGC}ohe~GAp-S24jx(hp&dZ7 zn{1gEjWC@u`x7pL(>>+EQJ3tgGXz{tQ!a5L&5euf&k2QrloZM{`-I+kcQPB3vVIy3 z!F*==TqOK%iFw=>eRgU9c>@vWlH#x^Rs9md*1=h8F>>1X5sC}?1;H5%z3Uqa#Jdp| z8yn};GE3(k&BWYn_EwOJBf1xj6@u*r#|KWz+b8J4pthue>ew}e;+g-ww6Tyok^$Mr!whUGGm9K);t2~d z>KpKgPR`S}cae}!Ny-1L8qYOWdMVO)UHa4Vv#flx^O%9EvaID3ysNq2RPhFCpG%>< zAiu`hVy|kW-QdDdS5%vuE673Hfzt<(n4SOGIz;@Nx5dKR`J(;Q0xNktJmtEKnE9T( zf=z$SDwFR4$ik(g)YV*FCoXaX{!)lWN)GWOe zt=Mp%4>B81Q88QEHaMIdU|n$-hQII_xS^%lKL8EjIZ0n`^7nZW>FN6DHLQ*++NrW9 z!11TS;q(Bjv-&pu$vaa4txrK|pQ`1Qz?-)mveukmNdreoiB4>OoG159FOcuHjJeX~ zGd^WW=2~%*<7noLzOg3t!i7BJN~eZbVJTu7gxvHPlc?E<%U?}0cGyW^JDl0|r`+-<(Nxi% zo?@VWx&Gku{j1+DUASZpZgUF;4e&Qn5N0W5)JIg=f~#tMw=kZMU1N8CS98Q!De%i+ zCoJh~jik%JhBg;8sO@lB+ePsMhso1k91pAl3uLfOJL=n8&7n=2HryS+y@CMsNHUq<2bQJ?&zrpyj7v>(W7MqpULY+9Be^REKj z{?p2O!lhc*kM5!Al_@?nA6!ba;olthGdPvE&Z}o`OZi*3aVA?;y_UxA%RdQI`pM#W zsvaWitOokaJd3do)MQtxb>I3=-ZM=-$uxR^p_X3LNO~e`SL&J$0d>s?A`5wT)4}u$ zpAq!3GI@Zrp?b~`6jN$gQt~8BW<}od=IsGdAWZQ}a#4#dzI9Y!)n*I+<=GZn zk(8C+)D;9AJBPfg`G-q0W!TU!^Se9!c0hrb3}f&JHy7|rztZrwl}{z-Xi`A|0IbqE zEv8iQc(=QKsJ?-MVDQf4C^I2}pDGdxp5pH4FN4|E%kJlYpPB z+?n4@W88FCF4KjafBtDe&r^%0P8;g>jz6KZd67pKmAzYQ=RVm;1|gvq`%}ZQ1T}ec zI%TueK&K+D$fk4pZ{=uQj{JU?>a^3@EwJi5&ZX$ zqnfc@LH<{9rVz(v*?UeSa Date: Fri, 14 Feb 2020 21:31:11 +0100 Subject: [PATCH 02/18] enhance rust build - install cargo to /opt/cargo - download additional rust targets - use officially released version of ripgrep - make square icon --- Dockerfile | 10 ++++-- cross/ripgrep/Makefile | 64 ++++++++++++++++++++++-------------- cross/ripgrep/digests | 6 ++-- spk/ripgrep/Makefile | 9 ++++- spk/ripgrep/src/ripgrep.png | Bin 6903 -> 7497 bytes 5 files changed, 59 insertions(+), 30 deletions(-) diff --git a/Dockerfile b/Dockerfile index b719f927124..53b8fe1ad24 100644 --- a/Dockerfile +++ b/Dockerfile @@ -75,8 +75,14 @@ RUN pip install virtualenv httpie # Install rustup and add the required toolchains RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \ - CARGO_HOME=/spksrc/.cargo/ sh -s -- -y && . /spksrc/.cargo/env && \ - rustup target add armv7-unknown-linux-gnueabihf aarch64-unknown-linux-gnu + CARGO_HOME=/opt/cargo/ sh -s -- -y && . /opt/cargo/env && \ + rustup target add \ + x86_64-unknown-linux-gnu i686-unknown-linux-gnu \ + aarch64-unknown-linux-gnu \ + armv7-unknown-linux-gnueabihf arm-unknown-linux-gnueabi arm-unknown-linux-gnueabihf \ + powerpc-unknown-linux-gnu + +ENV PATH="${PATH}:/opt/cargo/bin" # Volume pointing to spksrc sources VOLUME /spksrc diff --git a/cross/ripgrep/Makefile b/cross/ripgrep/Makefile index b4812b4ffab..e57129b58ef 100644 --- a/cross/ripgrep/Makefile +++ b/cross/ripgrep/Makefile @@ -1,45 +1,61 @@ PKG_NAME = ripgrep PKG_VERS = 11.0.2 PKG_EXT = tar.gz -PKG_DIST_SITE = https://github.com/BurntSushi/ripgrep -PKG_DOWNLOAD_METHOD = git -PKG_GIT_HASH = 3de31f752729525d85a3d1575ac1978733b3f7e7 -PKG_DIST_NAME = $(PKG_NAME)-git$(PKG_GIT_HASH).$(PKG_EXT) +PKG_DIST_NAME = $(PKG_VERS).$(PKG_EXT) +PKG_DIST_SITE = https://github.com/BurntSushi/ripgrep/archive +PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) +PKG_DIR = $(PKG_NAME)-$(PKG_VERS) -CONFIGURE_TARGET=ripgrep_configure -COMPILE_TARGET=ripgrep_compile -INSTALL_TARGET=ripgrep_install +CONFIGURE_TARGET = nop +COMPILE_TARGET = nop +INSTALL_TARGET = ripgrep_install -PKG_CARGO_DIR = $(WORK_DIR)/$(PKG_NAME)-git$(PKG_GIT_HASH) +# armv7 without hardfloat is not supported +UNSUPPORTED_ARCHS = hi3535 +# powerpc archs (except qoriq) are not supported +UNSUPPORTED_ARCHS += powerpc ppc824x ppc853x ppc854x -ifneq ($(ARCH),) -ifeq ($(ARCH),x64) + +include ../../mk/spksrc.cross-cc.mk + + +RUST_TRIPLE = + +ifeq ($(findstring $(ARCH), $(x64_ARCHES)),$(ARCH)) RUST_TRIPLE=x86_64-unknown-linux-gnu -else ifeq ($(ARCH),armada38x) +endif +ifeq ($(findstring $(ARCH), $(x86_ARCHES)),$(ARCH)) +RUST_TRIPLE=i686-unknown-linux-gnu +endif +ifeq ($(findstring $(ARCH), $(ARM5_ARCHES)),$(ARCH)) +# may be not supported for cargo +RUST_TRIPLE=armv5te-unknown-linux-gnueabi +endif +ifeq ($(findstring $(ARCH), $(ARM7_ARCHES)),$(ARCH)) RUST_TRIPLE=armv7-unknown-linux-gnueabihf -else ifeq ($(ARCH),aarch64) +endif +ifeq ($(findstring $(ARCH), $(ARM8_ARCHES)),$(ARCH)) RUST_TRIPLE=aarch64-unknown-linux-gnu -else -# $(error Arch $(ARCH) not yet supported) endif +ifeq ($(findstring $(ARCH), $(PPC_ARCHES)),$(ARCH)) +RUST_TRIPLE=powerpc-unknown-linux-gnu +endif + +ifeq ($(RUST_TRIPLE),) +$(error Arch $(ARCH) not supported) endif # Set linker environment variable RUST_LINKER_ENV=CARGO_TARGET_$(shell echo $(RUST_TRIPLE) | tr - _ | tr a-z A-Z)_LINKER CARGO_ENV=$(RUST_LINKER_ENV)=$(TC_PATH)$(TC_PREFIX)gcc +# Use distrib folder as cargo download cache +ENV = CARGO_HOME=/spksrc/distrib/cargo + # Set the cargo target CARGO_TARGET=--target=$(RUST_TRIPLE) -include ../../mk/spksrc.cross-cc.mk - -ripgrep_configure: - @echo "No configuration for ripgrep." - -ripgrep_compile: - @echo "No compiling for ripgrep (done in install)" - ripgrep_install: - @echo "Installing ripgrep" + @$(MSG) "Installing ripgrep" $(CARGO_ENV) cargo install $(CARGO_TARGET) \ - --path $(PKG_CARGO_DIR) --root $(STAGING_INSTALL_PREFIX) + --path $(WORK_DIR)/$(PKG_DIR) --root $(STAGING_INSTALL_PREFIX) diff --git a/cross/ripgrep/digests b/cross/ripgrep/digests index 9128370f8f1..3fc05961986 100644 --- a/cross/ripgrep/digests +++ b/cross/ripgrep/digests @@ -1,3 +1,3 @@ -ripgrep-git3de31f752729525d85a3d1575ac1978733b3f7e7.tar.gz SHA1 d25b4ede65e13b44b2c146e62ca4a09c3d8c3651 -ripgrep-git3de31f752729525d85a3d1575ac1978733b3f7e7.tar.gz SHA256 d65ec131aa7667684675b08349425b3bc88672fa1ec3200274f3b31185f8c68a -ripgrep-git3de31f752729525d85a3d1575ac1978733b3f7e7.tar.gz MD5 1d2c5192aecbdecc036107a398792241 +ripgrep-11.0.2.tar.gz SHA1 610859eac19a978cb4938e1ad787069f9dde2333 +ripgrep-11.0.2.tar.gz SHA256 0983861279936ada8bc7a6d5d663d590ad34eb44a44c75c2d6ccd0ab33490055 +ripgrep-11.0.2.tar.gz MD5 d0cbdf8e072494e5bd6918423b18068a diff --git a/spk/ripgrep/Makefile b/spk/ripgrep/Makefile index b329b89acec..92be600c2ca 100644 --- a/spk/ripgrep/Makefile +++ b/spk/ripgrep/Makefile @@ -1,10 +1,17 @@ SPK_NAME = ripgrep SPK_VERS = 11.0.2 -SPK_REV = 0 +SPK_REV = 1 SPK_ICON = src/ripgrep.png DEPENDS = cross/$(SPK_NAME) +# armv7 without hardfloat is not supported +UNSUPPORTED_ARCHS = hi3535 +# powerpc archs (except qoriq) are not supported +UNSUPPORTED_ARCHS += powerpc ppc824x ppc853x ppc854x + +GENERIC_ARCHS = ARM7 + MAINTAINER = Hylen DESCRIPTION = ripgrep is a line-oriented search tool that recursively searches your current directory for a regex pattern. STARTABLE = no diff --git a/spk/ripgrep/src/ripgrep.png b/spk/ripgrep/src/ripgrep.png index 971ffdc1ca8dac6c532fd754fe9f3ed36e6918d8..304bf9360c0c91c060176eee87b340cbb6fba84b 100644 GIT binary patch literal 7497 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 literal 6903 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 Date: Sat, 15 Feb 2020 23:31:17 +0100 Subject: [PATCH 03/18] Add rust build to framework - add common Makefile for rust build and installation - install rust targets on demand - remove rust target installation from Dockerfile --- Dockerfile | 9 +- cross/ripgrep/Makefile | 46 +------- mk/spksrc.cross-rust.mk | 237 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 240 insertions(+), 52 deletions(-) create mode 100644 mk/spksrc.cross-rust.mk diff --git a/Dockerfile b/Dockerfile index 53b8fe1ad24..c4a5263cf57 100644 --- a/Dockerfile +++ b/Dockerfile @@ -73,14 +73,9 @@ RUN pip3 install meson==0.56.0 RUN wget https://bootstrap.pypa.io/pip/2.7/get-pip.py -O - | python RUN pip install virtualenv httpie -# Install rustup and add the required toolchains +# Install rustup RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \ - CARGO_HOME=/opt/cargo/ sh -s -- -y && . /opt/cargo/env && \ - rustup target add \ - x86_64-unknown-linux-gnu i686-unknown-linux-gnu \ - aarch64-unknown-linux-gnu \ - armv7-unknown-linux-gnueabihf arm-unknown-linux-gnueabi arm-unknown-linux-gnueabihf \ - powerpc-unknown-linux-gnu + CARGO_HOME=/opt/cargo/ sh -s -- -y && . /opt/cargo/env ENV PATH="${PATH}:/opt/cargo/bin" diff --git a/cross/ripgrep/Makefile b/cross/ripgrep/Makefile index e57129b58ef..7cfffa9602c 100644 --- a/cross/ripgrep/Makefile +++ b/cross/ripgrep/Makefile @@ -6,56 +6,12 @@ PKG_DIST_SITE = https://github.com/BurntSushi/ripgrep/archive PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIR = $(PKG_NAME)-$(PKG_VERS) -CONFIGURE_TARGET = nop -COMPILE_TARGET = nop -INSTALL_TARGET = ripgrep_install - # armv7 without hardfloat is not supported UNSUPPORTED_ARCHS = hi3535 # powerpc archs (except qoriq) are not supported UNSUPPORTED_ARCHS += powerpc ppc824x ppc853x ppc854x -include ../../mk/spksrc.cross-cc.mk - - -RUST_TRIPLE = - -ifeq ($(findstring $(ARCH), $(x64_ARCHES)),$(ARCH)) -RUST_TRIPLE=x86_64-unknown-linux-gnu -endif -ifeq ($(findstring $(ARCH), $(x86_ARCHES)),$(ARCH)) -RUST_TRIPLE=i686-unknown-linux-gnu -endif -ifeq ($(findstring $(ARCH), $(ARM5_ARCHES)),$(ARCH)) -# may be not supported for cargo -RUST_TRIPLE=armv5te-unknown-linux-gnueabi -endif -ifeq ($(findstring $(ARCH), $(ARM7_ARCHES)),$(ARCH)) -RUST_TRIPLE=armv7-unknown-linux-gnueabihf -endif -ifeq ($(findstring $(ARCH), $(ARM8_ARCHES)),$(ARCH)) -RUST_TRIPLE=aarch64-unknown-linux-gnu -endif -ifeq ($(findstring $(ARCH), $(PPC_ARCHES)),$(ARCH)) -RUST_TRIPLE=powerpc-unknown-linux-gnu -endif - -ifeq ($(RUST_TRIPLE),) -$(error Arch $(ARCH) not supported) -endif - -# Set linker environment variable -RUST_LINKER_ENV=CARGO_TARGET_$(shell echo $(RUST_TRIPLE) | tr - _ | tr a-z A-Z)_LINKER -CARGO_ENV=$(RUST_LINKER_ENV)=$(TC_PATH)$(TC_PREFIX)gcc - -# Use distrib folder as cargo download cache -ENV = CARGO_HOME=/spksrc/distrib/cargo +include ../../mk/spksrc.cross-rust.mk -# Set the cargo target -CARGO_TARGET=--target=$(RUST_TRIPLE) -ripgrep_install: - @$(MSG) "Installing ripgrep" - $(CARGO_ENV) cargo install $(CARGO_TARGET) \ - --path $(WORK_DIR)/$(PKG_DIR) --root $(STAGING_INSTALL_PREFIX) diff --git a/mk/spksrc.cross-rust.mk b/mk/spksrc.cross-rust.mk new file mode 100644 index 00000000000..bb180e665a7 --- /dev/null +++ b/mk/spksrc.cross-rust.mk @@ -0,0 +1,237 @@ +# Build rust programs +# +# prerequisites: +# - module does not require kernel (REQ_KERNEL) +# +# remarks: +# - most content is taken from spksrc.cc.mk and modified for rust +# - CONFIGURE_TARGET is not supported (used for rust target installation) +# - build and install is done in one step +# + +# Common makefiles +include ../../mk/spksrc.common.mk +include ../../mk/spksrc.directories.mk + +# Configure the included makefiles +URLS = $(PKG_DIST_SITE)/$(PKG_DIST_NAME) +NAME = $(PKG_NAME) +COOKIE_PREFIX = $(PKG_NAME)- +ifneq ($(PKG_DIST_FILE),) +LOCAL_FILE = $(PKG_DIST_FILE) +else +LOCAL_FILE = $(PKG_DIST_NAME) +endif +DIST_FILE = $(DISTRIB_DIR)/$(LOCAL_FILE) +DIST_EXT = $(PKG_EXT) + +ifneq ($(ARCH),) +ARCH_SUFFIX = -$(ARCH)-$(TCVERSION) +TC = syno$(ARCH_SUFFIX) +endif + +##### rust specific configurations + +# configure is used to install rust targets +CONFIGURE_TARGET = install_rust_target + +# skip compile_target if not used by module +ifeq ($(strip $(COMPILE_TARGET)),) +COMPILE_TARGET = nop +endif + +RUST_TARGET = +# map archs to rust targets +ifeq ($(findstring $(ARCH), $(x64_ARCHES)),$(ARCH)) +RUST_TARGET=x86_64-unknown-linux-gnu +endif +ifeq ($(findstring $(ARCH), $(x86_ARCHES)),$(ARCH)) +RUST_TARGET=i686-unknown-linux-gnu +endif +ifeq ($(findstring $(ARCH), $(ARM5_ARCHES)),$(ARCH)) +# may be not supported for cargo +RUST_TARGET=armv5te-unknown-linux-gnueabi +endif +ifeq ($(findstring $(ARCH), $(ARM7_ARCHES)),$(ARCH)) +RUST_TARGET=armv7-unknown-linux-gnueabihf +endif +ifeq ($(findstring $(ARCH), $(ARM8_ARCHES)),$(ARCH)) +RUST_TARGET=aarch64-unknown-linux-gnu +endif +ifeq ($(findstring $(ARCH), $(PPC_ARCHES)),$(ARCH)) +RUST_TARGET=powerpc-unknown-linux-gnu +endif +ifeq ($(RUST_TARGET),) +$(error Arch $(ARCH) not supported) +endif + +# install rust target on demand: +INSTALLED_RUST_TARGETS := $(shell rustup target list --installed) +ifneq ($(findstring $(RUST_TARGET),${INSTALLED_RUST_TARGETS}),$(RUST_TARGET)) +install_rust_target: + @echo " ==> install rust target [$(RUST_TARGET)]" ; \ + rustup target install $(RUST_TARGET) ; + +else +install_rust_target: + @echo " ==> rust target [$(RUST_TARGET)] is already installed" ; + +endif + + +# set default RUST_SRC_DIR +ifeq ($(strip $(RUST_SRC_DIR)),) +RUST_SRC_DIR = $(WORK_DIR)/$(PKG_DIR) +endif + +# Set linker environment variable +RUST_LINKER_ENV=CARGO_TARGET_$(shell echo $(RUST_TARGET) | tr - _ | tr a-z A-Z)_LINKER +CARGO_ENV=$(RUST_LINKER_ENV)=$(TC_PATH)$(TC_PREFIX)gcc + +# Use distrib folder as cargo download cache +ENV += CARGO_HOME=/spksrc/distrib/cargo + +# Set the cargo parameters +CARGO_TARGET = --target=$(RUST_TARGET) +CARGO_PATH = --path $(RUST_SRC_DIR) +CARGO_ROOT = --root $(STAGING_INSTALL_PREFIX) + + +ifeq ($(strip $(INSTALL_TARGET)),) +INSTALL_TARGET = rust_build_and_install_target +endif + +# Default rust build and installation with cargo +rust_build_and_install_target: + @echo " ==> Cargo install rust package $(PKG_NAME)" + $(CARGO_ENV) cargo install $(CARGO_TARGET) $(CARGO_PATH) $(CARGO_ROOT) + + +##### + +ifneq ($(REQ_KERNEL),) + @$(error rust modules cannot build when REQ_KERNEL is set) +endif + +# Check if package supports ARCH +ifneq ($(UNSUPPORTED_ARCHS),) + ifneq (,$(findstring $(ARCH),$(UNSUPPORTED_ARCHS))) + @$(error Arch '$(ARCH)' is not a supported architecture ) + endif +endif + +# Check minimum DSM requirements of package +ifneq ($(REQUIRED_DSM),) + ifeq (,$(findstring $(ARCH),$(SRM_ARCHS))) + ifneq ($(REQUIRED_DSM),$(firstword $(sort $(TCVERSION) $(REQUIRED_DSM)))) + @$(error DSM Toolchain $(TCVERSION) is lower than required version in Makefile $(REQUIRED_DSM)) + endif + endif +endif +# Check minimum SRM requirements of package +ifneq ($(REQUIRED_SRM),) + ifeq ($(ARCH),$(findstring $(ARCH),$(SRM_ARCHS))) + ifneq ($(REQUIRED_SRM),$(firstword $(sort $(TCVERSION) $(REQUIRED_SRM)))) + @$(error SRM Toolchain $(TCVERSION) is lower than required version in Makefile $(REQUIRED_SRM)) + endif + endif +endif + +##### + +include ../../mk/spksrc.cross-env.mk + +include ../../mk/spksrc.download.mk + +include ../../mk/spksrc.depend.mk + +checksum: download +include ../../mk/spksrc.checksum.mk + +extract: checksum depend +include ../../mk/spksrc.extract.mk + +patch: extract +include ../../mk/spksrc.patch.mk + +configure: patch +include ../../mk/spksrc.configure.mk + +compile: configure +include ../../mk/spksrc.compile.mk + +install: compile +include ../../mk/spksrc.install.mk + +ifeq ($(strip $(PLIST_TRANSFORM)),) +PLIST_TRANSFORM= cat +endif + +.PHONY: cat_PLIST +cat_PLIST: + @for depend in $(DEPENDS) ; \ + do \ + $(MAKE) WORK_DIR=$(WORK_DIR) --no-print-directory -C ../../$$depend cat_PLIST ; \ + done + @if [ -f PLIST ] ; \ + then \ + $(PLIST_TRANSFORM) PLIST ; \ + else \ + $(MSG) "No PLIST for $(NAME)" >&2; \ + fi + +### Clean rules +smart-clean: + rm -rf $(WORK_DIR)/$(PKG_DIR) + rm -f $(WORK_DIR)/.$(COOKIE_PREFIX)* + +clean: + rm -fr work work-* + + +all: install + +sha1sum := $(shell which sha1sum 2>/dev/null || which gsha1sum 2>/dev/null) +sha256sum := $(shell which sha256sum 2>/dev/null || which gsha256sum 2>/dev/null) +md5sum := $(shell which md5sum 2>/dev/null || which gmd5sum 2>/dev/null || which md5 2>/dev/null) + +.PHONY: $(DIGESTS_FILE) +$(DIGESTS_FILE): download + @$(MSG) "Generating digests for $(PKG_NAME)" + @rm -f $@ && touch -f $@ + @for type in SHA1 SHA256 MD5; do \ + case $$type in \ + SHA1) tool=${sha1sum} ;; \ + SHA256) tool=${sha256sum} ;; \ + MD5) tool=${md5sum} ;; \ + esac ; \ + echo "$(LOCAL_FILE) $$type `$$tool $(DIST_FILE) | cut -d\" \" -f1`" >> $@ ; \ + done + +dependency-tree: + @echo `perl -e 'print "\\\t" x $(MAKELEVEL),"\n"'`+ $(NAME) $(PKG_VERS) + @for depend in $(BUILD_DEPENDS) $(DEPENDS) ; \ + do \ + $(MAKE) --no-print-directory -C ../../$$depend dependency-tree ; \ + done + +.PHONY: all-archs +all-archs: $(addprefix arch-,$(AVAILABLE_ARCHS)) + +arch-%: + @$(MSG) Building package for arch $* + -@MAKEFLAGS= $(MAKE) ARCH=$(basename $(subst -,.,$(basename $(subst .,,$*)))) TCVERSION=$(if $(findstring $*,$(basename $(subst -,.,$(basename $(subst .,,$*))))),$(DEFAULT_TC),$(notdir $(subst -,/,$*))) + +.PHONY: kernel-required +kernel-required: + @if [ -n "$(REQ_KERNEL)" ]; then \ + exit 1 ; \ + fi + @for depend in $(BUILD_DEPENDS) $(DEPENDS) ; do \ + if $(MAKE) --no-print-directory -C ../../$$depend kernel-required >/dev/null 2>&1 ; then \ + exit 0 ; \ + else \ + exit 1 ; \ + fi ; \ + done + From f97bb0d767d0e8566cf2f185171d78e02ea06cf5 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Sun, 16 Feb 2020 15:07:21 +0100 Subject: [PATCH 04/18] Add ripgrep to synocli-file - add ripgrep to synocli-file - move spk/ripgrep to diyspk/ripgrep --- {spk => diyspk}/ripgrep/Makefile | 0 {spk => diyspk}/ripgrep/PLIST | 0 {spk => diyspk}/ripgrep/src/ripgrep.png | Bin spk/synocli-file/Makefile | 10 ++++++++++ 4 files changed, 10 insertions(+) rename {spk => diyspk}/ripgrep/Makefile (100%) rename {spk => diyspk}/ripgrep/PLIST (100%) rename {spk => diyspk}/ripgrep/src/ripgrep.png (100%) diff --git a/spk/ripgrep/Makefile b/diyspk/ripgrep/Makefile similarity index 100% rename from spk/ripgrep/Makefile rename to diyspk/ripgrep/Makefile diff --git a/spk/ripgrep/PLIST b/diyspk/ripgrep/PLIST similarity index 100% rename from spk/ripgrep/PLIST rename to diyspk/ripgrep/PLIST diff --git a/spk/ripgrep/src/ripgrep.png b/diyspk/ripgrep/src/ripgrep.png similarity index 100% rename from spk/ripgrep/src/ripgrep.png rename to diyspk/ripgrep/src/ripgrep.png diff --git a/spk/synocli-file/Makefile b/spk/synocli-file/Makefile index 4a3ad118b70..574a79b618d 100644 --- a/spk/synocli-file/Makefile +++ b/spk/synocli-file/Makefile @@ -34,6 +34,15 @@ DEPENDS += cross/micro cross/fzf OPTIONAL_DESC := $(OPTIONAL_DESC)", micro (editor), fzf (fuzzy finder)" endif +ifneq ($(findstring $(ARCH), powerpc ppc824x ppc853x ppc854x hi3535),$(ARCH)) +DEPENDS += cross/ripgrep +OPTIONAL_DESC += "rg \(ripgrep\), " +endif + +ifeq ($(OPTIONAL_DESC),) +OPTIONAL_DESC = " " +endif + # activate additional features for pcre2grep and pcre2test PCRE2_CLI_FULL=1 export PCRE2_CLI_FULL @@ -61,6 +70,7 @@ SPK_COMMANDS += bin/lzip bin/plzip SPK_COMMANDS += bin/fdupes SPK_COMMANDS += bin/micro SPK_COMMANDS += bin/fzf +SPK_COMMANDS += bin/rg SPK_COMMANDS += bin/rhash SPK_COMMANDS += bin/ed2k-link From f0a209850205013af98fb2a1af7a7bb3d0837327 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Sun, 16 Feb 2020 16:09:17 +0100 Subject: [PATCH 05/18] fix synocli-file optional descriptions --- spk/synocli-file/Makefile | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/spk/synocli-file/Makefile b/spk/synocli-file/Makefile index 574a79b618d..03c7435089c 100644 --- a/spk/synocli-file/Makefile +++ b/spk/synocli-file/Makefile @@ -36,18 +36,15 @@ endif ifneq ($(findstring $(ARCH), powerpc ppc824x ppc853x ppc854x hi3535),$(ARCH)) DEPENDS += cross/ripgrep -OPTIONAL_DESC += "rg \(ripgrep\), " +OPTIONAL_DESC := $(OPTIONAL_DESC)", rg \(ripgrep\)" endif -ifeq ($(OPTIONAL_DESC),) -OPTIONAL_DESC = " " -endif # activate additional features for pcre2grep and pcre2test PCRE2_CLI_FULL=1 export PCRE2_CLI_FULL -DESCRIPTION = "SynoCli File Tools provides a set of small command-line utilities: less, tree, ncdu, jdupes, fdupes, rhash, mc \(midnight commander\), nano, file, detox, pcre2, zstd, lzip, plzip$(OPTIONAL_DESC)." +DESCRIPTION = "SynoCli File Tools provides a set of small command-line utilities: less, tree, ncdu, jdupes, fdupes, rhash, mc \(midnight commander\), nano, file, detox, pcre2, zstd, lzip, plzip, detox$(OPTIONAL_DESC)." STARTABLE = no CHANGELOG = "1. Add micro (editor)
2. Add Lzip and Plzip
3. Add fzf (fuzzy finder)
4. Update mc to version 4.8.26
Fix rmlint and zstd." From 14784b97020f89b04de55315ef18afd2a78b7f46 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Mon, 17 Feb 2020 22:52:52 +0100 Subject: [PATCH 06/18] enhance rust Makefile - allow to define other release channel than 'stable' - allow to define additional cargo build args --- cross/ripgrep/Makefile | 6 ++++-- mk/spksrc.cross-rust.mk | 24 ++++++++++++++++++------ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/cross/ripgrep/Makefile b/cross/ripgrep/Makefile index 7cfffa9602c..ea9056bf067 100644 --- a/cross/ripgrep/Makefile +++ b/cross/ripgrep/Makefile @@ -11,7 +11,9 @@ UNSUPPORTED_ARCHS = hi3535 # powerpc archs (except qoriq) are not supported UNSUPPORTED_ARCHS += powerpc ppc824x ppc853x ppc854x - -include ../../mk/spksrc.cross-rust.mk +HOMEPAGE = https://github.com/BurntSushi/ripgrep +COMMENT = ripgrep recursively searches directories for a regex pattern +LICENSE = MIT/UNLICENSE +include ../../mk/spksrc.cross-rust.mk diff --git a/mk/spksrc.cross-rust.mk b/mk/spksrc.cross-rust.mk index bb180e665a7..3a9c8680946 100644 --- a/mk/spksrc.cross-rust.mk +++ b/mk/spksrc.cross-rust.mk @@ -65,7 +65,19 @@ ifeq ($(RUST_TARGET),) $(error Arch $(ARCH) not supported) endif -# install rust target on demand: + +# Default use release channel 'stable' +ifeq ($(strip $(RUST_RELEASE_CHANNEL)),) +RUST_RELEASE_CHANNEL = stable +endif + +install_rust_toolchain: + @echo " ==> install rust toolchain [$(RUST_RELEASE_CHANNEL)]" ; \ + rustup toolchain install $(RUST_RELEASE_CHANNEL) ; \ + rustup default $(RUST_RELEASE_CHANNEL) ; + + +# Install rust target on demand: INSTALLED_RUST_TARGETS := $(shell rustup target list --installed) ifneq ($(findstring $(RUST_TARGET),${INSTALLED_RUST_TARGETS}),$(RUST_TARGET)) install_rust_target: @@ -79,7 +91,7 @@ install_rust_target: endif -# set default RUST_SRC_DIR +# Set default RUST_SRC_DIR ifeq ($(strip $(RUST_SRC_DIR)),) RUST_SRC_DIR = $(WORK_DIR)/$(PKG_DIR) endif @@ -92,9 +104,9 @@ CARGO_ENV=$(RUST_LINKER_ENV)=$(TC_PATH)$(TC_PREFIX)gcc ENV += CARGO_HOME=/spksrc/distrib/cargo # Set the cargo parameters -CARGO_TARGET = --target=$(RUST_TARGET) -CARGO_PATH = --path $(RUST_SRC_DIR) -CARGO_ROOT = --root $(STAGING_INSTALL_PREFIX) +CARCO_BUILD_ARGS += --target=$(RUST_TARGET) +CARCO_BUILD_ARGS += --path $(RUST_SRC_DIR) +CARCO_BUILD_ARGS += --root $(STAGING_INSTALL_PREFIX) ifeq ($(strip $(INSTALL_TARGET)),) @@ -104,7 +116,7 @@ endif # Default rust build and installation with cargo rust_build_and_install_target: @echo " ==> Cargo install rust package $(PKG_NAME)" - $(CARGO_ENV) cargo install $(CARGO_TARGET) $(CARGO_PATH) $(CARGO_ROOT) + $(CARGO_ENV) cargo install $(CARCO_BUILD_ARGS) ##### From ff98c640ba0d873a22ef4c814c5e1e9b9112f556 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Hyl=C3=A9n?= Date: Tue, 16 Mar 2021 09:28:33 +1100 Subject: [PATCH 07/18] Fix alphabetical ordering of required packages --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index c4a5263cf57..16304fa919b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,6 +15,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y \ bison \ build-essential \ check \ + clang \ cmake \ curl \ cython \ @@ -33,6 +34,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y \ jq \ libbz2-dev \ libc6-i386 \ + libclang-dev \ libcppunit-dev \ libffi-dev \ libgc-dev \ @@ -59,9 +61,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y \ texinfo \ unzip \ xmlto \ - zlib1g-dev \ - clang \ - libclang-dev && \ + zlib1g-dev && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* From 6cbb97d300f3270b78445f171c2037d03f5bc953 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Fri, 10 Apr 2020 15:47:52 +0200 Subject: [PATCH 08/18] Update ripgrep to v12.0.1 --- cross/ripgrep/Makefile | 6 +++--- cross/ripgrep/digests | 6 +++--- diyspk/ripgrep/Makefile | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/cross/ripgrep/Makefile b/cross/ripgrep/Makefile index ea9056bf067..7dc3b1c0898 100644 --- a/cross/ripgrep/Makefile +++ b/cross/ripgrep/Makefile @@ -1,5 +1,5 @@ PKG_NAME = ripgrep -PKG_VERS = 11.0.2 +PKG_VERS = 12.0.1 PKG_EXT = tar.gz PKG_DIST_NAME = $(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://github.com/BurntSushi/ripgrep/archive @@ -12,8 +12,8 @@ UNSUPPORTED_ARCHS = hi3535 UNSUPPORTED_ARCHS += powerpc ppc824x ppc853x ppc854x HOMEPAGE = https://github.com/BurntSushi/ripgrep -COMMENT = ripgrep recursively searches directories for a regex pattern -LICENSE = MIT/UNLICENSE +COMMENT = ripgrep recursively searches directories for a regex pattern +LICENSE = public domain/Unlicense include ../../mk/spksrc.cross-rust.mk diff --git a/cross/ripgrep/digests b/cross/ripgrep/digests index 3fc05961986..25e0d998b70 100644 --- a/cross/ripgrep/digests +++ b/cross/ripgrep/digests @@ -1,3 +1,3 @@ -ripgrep-11.0.2.tar.gz SHA1 610859eac19a978cb4938e1ad787069f9dde2333 -ripgrep-11.0.2.tar.gz SHA256 0983861279936ada8bc7a6d5d663d590ad34eb44a44c75c2d6ccd0ab33490055 -ripgrep-11.0.2.tar.gz MD5 d0cbdf8e072494e5bd6918423b18068a +ripgrep-12.0.1.tar.gz SHA1 95093ceece1b955da0dca096860b5a39a8520a2e +ripgrep-12.0.1.tar.gz SHA256 5be34aa77a36ac9d8f1297a0d97069e4653e03f61c67d192cee32944cd2b6329 +ripgrep-12.0.1.tar.gz MD5 d2a2dd964b67551876ecc11b1a8015ff diff --git a/diyspk/ripgrep/Makefile b/diyspk/ripgrep/Makefile index 92be600c2ca..0c710bf36a7 100644 --- a/diyspk/ripgrep/Makefile +++ b/diyspk/ripgrep/Makefile @@ -1,5 +1,5 @@ SPK_NAME = ripgrep -SPK_VERS = 11.0.2 +SPK_VERS = 12.0.1 SPK_REV = 1 SPK_ICON = src/ripgrep.png @@ -21,6 +21,6 @@ DISPLAY_NAME = ripgrep SPK_COMMANDS = bin/rg HOMEPAGE = https://github.com/BurntSushi/ripgrep -LICENSE = MIT/UNLICENSE +LICENSE = public domain/Unlicense include ../../mk/spksrc.spk.mk From a931b2ae91c36feeb1aef7d7a8abbd159ec63158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Hyl=C3=A9n?= Date: Sun, 9 Aug 2020 15:34:36 +0200 Subject: [PATCH 09/18] Install rustup when compiling package. --- Dockerfile | 6 ------ mk/spksrc.cross-rust.mk | 45 +++++++++++++++++++---------------------- 2 files changed, 21 insertions(+), 30 deletions(-) diff --git a/Dockerfile b/Dockerfile index 16304fa919b..fc8ff28ba9c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -73,12 +73,6 @@ RUN pip3 install meson==0.56.0 RUN wget https://bootstrap.pypa.io/pip/2.7/get-pip.py -O - | python RUN pip install virtualenv httpie -# Install rustup -RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \ - CARGO_HOME=/opt/cargo/ sh -s -- -y && . /opt/cargo/env - -ENV PATH="${PATH}:/opt/cargo/bin" - # Volume pointing to spksrc sources VOLUME /spksrc diff --git a/mk/spksrc.cross-rust.mk b/mk/spksrc.cross-rust.mk index 3a9c8680946..2b7a06f78ac 100644 --- a/mk/spksrc.cross-rust.mk +++ b/mk/spksrc.cross-rust.mk @@ -40,6 +40,8 @@ ifeq ($(strip $(COMPILE_TARGET)),) COMPILE_TARGET = nop endif +RUST_TOOLCHAIN ?= stable + RUST_TARGET = # map archs to rust targets ifeq ($(findstring $(ARCH), $(x64_ARCHES)),$(ARCH)) @@ -65,31 +67,29 @@ ifeq ($(RUST_TARGET),) $(error Arch $(ARCH) not supported) endif - -# Default use release channel 'stable' -ifeq ($(strip $(RUST_RELEASE_CHANNEL)),) -RUST_RELEASE_CHANNEL = stable +# Use distrib folder as cargo download cache +CARGO_HOME_PATH=/spksrc/distrib/cargo +ENV += CARGO_HOME=$(CARGO_HOME_PATH) +ENV += PATH=:$(CARGO_HOME_PATH)/bin/:$(PATH) + +ifeq (,$(shell $(ENV) which rustup)) +install_rustup: + @echo " ==> install rustup" ; \ + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \ + CARGO_HOME=$(CARGO_HOME_PATH) sh -s -- -y +else +install_rustup: + @echo " ==> rustup alredy installed" ; endif -install_rust_toolchain: - @echo " ==> install rust toolchain [$(RUST_RELEASE_CHANNEL)]" ; \ - rustup toolchain install $(RUST_RELEASE_CHANNEL) ; \ - rustup default $(RUST_RELEASE_CHANNEL) ; - +install_rust_toolchain: install_rustup + @echo " ==> install rust toolchain [$(RUST_TOOLCHAIN)]" ; \ + env $(ENV) rustup toolchain install $(RUST_TOOLCHAIN) ; # Install rust target on demand: -INSTALLED_RUST_TARGETS := $(shell rustup target list --installed) -ifneq ($(findstring $(RUST_TARGET),${INSTALLED_RUST_TARGETS}),$(RUST_TARGET)) -install_rust_target: +install_rust_target: install_rust_toolchain @echo " ==> install rust target [$(RUST_TARGET)]" ; \ - rustup target install $(RUST_TARGET) ; - -else -install_rust_target: - @echo " ==> rust target [$(RUST_TARGET)] is already installed" ; - -endif - + env $(ENV) rustup target install $(RUST_TARGET) ; # Set default RUST_SRC_DIR ifeq ($(strip $(RUST_SRC_DIR)),) @@ -100,9 +100,6 @@ endif RUST_LINKER_ENV=CARGO_TARGET_$(shell echo $(RUST_TARGET) | tr - _ | tr a-z A-Z)_LINKER CARGO_ENV=$(RUST_LINKER_ENV)=$(TC_PATH)$(TC_PREFIX)gcc -# Use distrib folder as cargo download cache -ENV += CARGO_HOME=/spksrc/distrib/cargo - # Set the cargo parameters CARCO_BUILD_ARGS += --target=$(RUST_TARGET) CARCO_BUILD_ARGS += --path $(RUST_SRC_DIR) @@ -116,7 +113,7 @@ endif # Default rust build and installation with cargo rust_build_and_install_target: @echo " ==> Cargo install rust package $(PKG_NAME)" - $(CARGO_ENV) cargo install $(CARCO_BUILD_ARGS) + $(ENV) $(CARGO_ENV) cargo install $(CARCO_BUILD_ARGS) ##### From 12e1c6aff248673f3e5467f18aee196bbf58f12b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Hyl=C3=A9n?= Date: Sun, 9 Aug 2020 15:34:51 +0200 Subject: [PATCH 10/18] Use generic makefiles. --- mk/spksrc.cross-rust.mk | 89 ++++------------------------------------- 1 file changed, 7 insertions(+), 82 deletions(-) diff --git a/mk/spksrc.cross-rust.mk b/mk/spksrc.cross-rust.mk index 2b7a06f78ac..40a93f68b2d 100644 --- a/mk/spksrc.cross-rust.mk +++ b/mk/spksrc.cross-rust.mk @@ -118,35 +118,7 @@ rust_build_and_install_target: ##### -ifneq ($(REQ_KERNEL),) - @$(error rust modules cannot build when REQ_KERNEL is set) -endif - -# Check if package supports ARCH -ifneq ($(UNSUPPORTED_ARCHS),) - ifneq (,$(findstring $(ARCH),$(UNSUPPORTED_ARCHS))) - @$(error Arch '$(ARCH)' is not a supported architecture ) - endif -endif - -# Check minimum DSM requirements of package -ifneq ($(REQUIRED_DSM),) - ifeq (,$(findstring $(ARCH),$(SRM_ARCHS))) - ifneq ($(REQUIRED_DSM),$(firstword $(sort $(TCVERSION) $(REQUIRED_DSM)))) - @$(error DSM Toolchain $(TCVERSION) is lower than required version in Makefile $(REQUIRED_DSM)) - endif - endif -endif -# Check minimum SRM requirements of package -ifneq ($(REQUIRED_SRM),) - ifeq ($(ARCH),$(findstring $(ARCH),$(SRM_ARCHS))) - ifneq ($(REQUIRED_SRM),$(firstword $(sort $(TCVERSION) $(REQUIRED_SRM)))) - @$(error SRM Toolchain $(TCVERSION) is lower than required version in Makefile $(REQUIRED_SRM)) - endif - endif -endif - -##### +include ../../mk/spksrc.pre-check.mk include ../../mk/spksrc.cross-env.mk @@ -172,22 +144,8 @@ include ../../mk/spksrc.compile.mk install: compile include ../../mk/spksrc.install.mk -ifeq ($(strip $(PLIST_TRANSFORM)),) -PLIST_TRANSFORM= cat -endif - -.PHONY: cat_PLIST -cat_PLIST: - @for depend in $(DEPENDS) ; \ - do \ - $(MAKE) WORK_DIR=$(WORK_DIR) --no-print-directory -C ../../$$depend cat_PLIST ; \ - done - @if [ -f PLIST ] ; \ - then \ - $(PLIST_TRANSFORM) PLIST ; \ - else \ - $(MSG) "No PLIST for $(NAME)" >&2; \ - fi +plist: install +include ../../mk/spksrc.plist.mk ### Clean rules smart-clean: @@ -197,32 +155,11 @@ smart-clean: clean: rm -fr work work-* - all: install -sha1sum := $(shell which sha1sum 2>/dev/null || which gsha1sum 2>/dev/null) -sha256sum := $(shell which sha256sum 2>/dev/null || which gsha256sum 2>/dev/null) -md5sum := $(shell which md5sum 2>/dev/null || which gmd5sum 2>/dev/null || which md5 2>/dev/null) - -.PHONY: $(DIGESTS_FILE) -$(DIGESTS_FILE): download - @$(MSG) "Generating digests for $(PKG_NAME)" - @rm -f $@ && touch -f $@ - @for type in SHA1 SHA256 MD5; do \ - case $$type in \ - SHA1) tool=${sha1sum} ;; \ - SHA256) tool=${sha256sum} ;; \ - MD5) tool=${md5sum} ;; \ - esac ; \ - echo "$(LOCAL_FILE) $$type `$$tool $(DIST_FILE) | cut -d\" \" -f1`" >> $@ ; \ - done - -dependency-tree: - @echo `perl -e 'print "\\\t" x $(MAKELEVEL),"\n"'`+ $(NAME) $(PKG_VERS) - @for depend in $(BUILD_DEPENDS) $(DEPENDS) ; \ - do \ - $(MAKE) --no-print-directory -C ../../$$depend dependency-tree ; \ - done +include ../../mk/spksrc.generate-digests.mk + +include ../../mk/spksrc.dependency-tree.mk .PHONY: all-archs all-archs: $(addprefix arch-,$(AVAILABLE_ARCHS)) @@ -231,16 +168,4 @@ arch-%: @$(MSG) Building package for arch $* -@MAKEFLAGS= $(MAKE) ARCH=$(basename $(subst -,.,$(basename $(subst .,,$*)))) TCVERSION=$(if $(findstring $*,$(basename $(subst -,.,$(basename $(subst .,,$*))))),$(DEFAULT_TC),$(notdir $(subst -,/,$*))) -.PHONY: kernel-required -kernel-required: - @if [ -n "$(REQ_KERNEL)" ]; then \ - exit 1 ; \ - fi - @for depend in $(BUILD_DEPENDS) $(DEPENDS) ; do \ - if $(MAKE) --no-print-directory -C ../../$$depend kernel-required >/dev/null 2>&1 ; then \ - exit 0 ; \ - else \ - exit 1 ; \ - fi ; \ - done - +include ../../mk/spksrc.kernel-required.mk From 665bba3b9ce891e6ccaf13113f97922e8650106f Mon Sep 17 00:00:00 2001 From: etcusrvar Date: Thu, 4 Mar 2021 09:29:25 -0600 Subject: [PATCH 11/18] fixes --- mk/spksrc.cross-rust.mk | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/mk/spksrc.cross-rust.mk b/mk/spksrc.cross-rust.mk index 40a93f68b2d..da2d8ffdeed 100644 --- a/mk/spksrc.cross-rust.mk +++ b/mk/spksrc.cross-rust.mk @@ -44,23 +44,23 @@ RUST_TOOLCHAIN ?= stable RUST_TARGET = # map archs to rust targets -ifeq ($(findstring $(ARCH), $(x64_ARCHES)),$(ARCH)) +ifeq ($(findstring $(ARCH), $(x64_ARCHS)),$(ARCH)) RUST_TARGET=x86_64-unknown-linux-gnu endif -ifeq ($(findstring $(ARCH), $(x86_ARCHES)),$(ARCH)) +ifeq ($(findstring $(ARCH), $(x86_ARCHS)),$(ARCH)) RUST_TARGET=i686-unknown-linux-gnu endif -ifeq ($(findstring $(ARCH), $(ARM5_ARCHES)),$(ARCH)) +ifeq ($(findstring $(ARCH), $(ARM5_ARCHS)),$(ARCH)) # may be not supported for cargo RUST_TARGET=armv5te-unknown-linux-gnueabi endif -ifeq ($(findstring $(ARCH), $(ARM7_ARCHES)),$(ARCH)) +ifeq ($(findstring $(ARCH), $(ARM7_ARCHS)),$(ARCH)) RUST_TARGET=armv7-unknown-linux-gnueabihf endif -ifeq ($(findstring $(ARCH), $(ARM8_ARCHES)),$(ARCH)) +ifeq ($(findstring $(ARCH), $(ARM8_ARCHS)),$(ARCH)) RUST_TARGET=aarch64-unknown-linux-gnu endif -ifeq ($(findstring $(ARCH), $(PPC_ARCHES)),$(ARCH)) +ifeq ($(findstring $(ARCH), $(PPC_ARCHS)),$(ARCH)) RUST_TARGET=powerpc-unknown-linux-gnu endif ifeq ($(RUST_TARGET),) @@ -101,9 +101,9 @@ RUST_LINKER_ENV=CARGO_TARGET_$(shell echo $(RUST_TARGET) | tr - _ | tr a-z A-Z)_ CARGO_ENV=$(RUST_LINKER_ENV)=$(TC_PATH)$(TC_PREFIX)gcc # Set the cargo parameters -CARCO_BUILD_ARGS += --target=$(RUST_TARGET) -CARCO_BUILD_ARGS += --path $(RUST_SRC_DIR) -CARCO_BUILD_ARGS += --root $(STAGING_INSTALL_PREFIX) +CARGO_BUILD_ARGS += --target=$(RUST_TARGET) +CARGO_BUILD_ARGS += --path $(RUST_SRC_DIR) +CARGO_BUILD_ARGS += --root $(STAGING_INSTALL_PREFIX) ifeq ($(strip $(INSTALL_TARGET)),) @@ -113,7 +113,7 @@ endif # Default rust build and installation with cargo rust_build_and_install_target: @echo " ==> Cargo install rust package $(PKG_NAME)" - $(ENV) $(CARGO_ENV) cargo install $(CARCO_BUILD_ARGS) + $(ENV) $(CARGO_ENV) cargo install $(CARGO_BUILD_ARGS) ##### From 6c8f4a83e61258800e678b4d1ea5887257898de4 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Sat, 26 Jun 2021 20:29:42 +0200 Subject: [PATCH 12/18] update for current master - adjust spksrc.cross-rust.mk - adjust UNSUPPORTED_ARCHS --- cross/ripgrep/Makefile | 5 +---- mk/spksrc.cross-rust.mk | 26 ++++++++++++++++++-------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/cross/ripgrep/Makefile b/cross/ripgrep/Makefile index 7dc3b1c0898..5ebc3474ed6 100644 --- a/cross/ripgrep/Makefile +++ b/cross/ripgrep/Makefile @@ -6,14 +6,11 @@ PKG_DIST_SITE = https://github.com/BurntSushi/ripgrep/archive PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIR = $(PKG_NAME)-$(PKG_VERS) -# armv7 without hardfloat is not supported -UNSUPPORTED_ARCHS = hi3535 # powerpc archs (except qoriq) are not supported -UNSUPPORTED_ARCHS += powerpc ppc824x ppc853x ppc854x +UNSUPPORTED_ARCHS += $(OLD_PPC_ARCHS) HOMEPAGE = https://github.com/BurntSushi/ripgrep COMMENT = ripgrep recursively searches directories for a regex pattern LICENSE = public domain/Unlicense - include ../../mk/spksrc.cross-rust.mk diff --git a/mk/spksrc.cross-rust.mk b/mk/spksrc.cross-rust.mk index da2d8ffdeed..1cec9cdd1bc 100644 --- a/mk/spksrc.cross-rust.mk +++ b/mk/spksrc.cross-rust.mk @@ -1,7 +1,7 @@ # Build rust programs # # prerequisites: -# - module does not require kernel (REQ_KERNEL) +# - module does not require kernel (REQUIRE_KERNEL) # # remarks: # - most content is taken from spksrc.cc.mk and modified for rust @@ -47,17 +47,20 @@ RUST_TARGET = ifeq ($(findstring $(ARCH), $(x64_ARCHS)),$(ARCH)) RUST_TARGET=x86_64-unknown-linux-gnu endif -ifeq ($(findstring $(ARCH), $(x86_ARCHS)),$(ARCH)) +ifeq ($(findstring $(ARCH), $(i686_ARCHS)),$(ARCH)) RUST_TARGET=i686-unknown-linux-gnu endif -ifeq ($(findstring $(ARCH), $(ARM5_ARCHS)),$(ARCH)) +ifeq ($(findstring $(ARCH), $(ARMv5_ARCHS)),$(ARCH)) # may be not supported for cargo RUST_TARGET=armv5te-unknown-linux-gnueabi endif -ifeq ($(findstring $(ARCH), $(ARM7_ARCHS)),$(ARCH)) +ifeq ($(findstring $(ARCH), $(ARMv7_ARCHS) $(ARMv7L_ARCHS)),$(ARCH)) RUST_TARGET=armv7-unknown-linux-gnueabihf endif -ifeq ($(findstring $(ARCH), $(ARM8_ARCHS)),$(ARCH)) +ifeq ($(findstring $(ARCH), $(ARMv7L_ARCHS)),$(ARCH)) +RUST_TARGET=armv7-unknown-linux-gnueabi +endif +ifeq ($(findstring $(ARCH), $(ARMv8_ARCHS)),$(ARCH)) RUST_TARGET=aarch64-unknown-linux-gnu endif ifeq ($(findstring $(ARCH), $(PPC_ARCHS)),$(ARCH)) @@ -155,17 +158,24 @@ smart-clean: clean: rm -fr work work-* -all: install +all: install plist + +### For make kernel-required (used by spksrc.spk.mk) +include ../../mk/spksrc.kernel-required.mk +### For make digests include ../../mk/spksrc.generate-digests.mk +### For make dependency-tree include ../../mk/spksrc.dependency-tree.mk .PHONY: all-archs -all-archs: $(addprefix arch-,$(AVAILABLE_ARCHS)) +all-archs: $(addprefix arch-,$(AVAILABLE_TOOLCHAINS)) + +#### arch-%: @$(MSG) Building package for arch $* -@MAKEFLAGS= $(MAKE) ARCH=$(basename $(subst -,.,$(basename $(subst .,,$*)))) TCVERSION=$(if $(findstring $*,$(basename $(subst -,.,$(basename $(subst .,,$*))))),$(DEFAULT_TC),$(notdir $(subst -,/,$*))) -include ../../mk/spksrc.kernel-required.mk +#### From d1a9394464d46e92f11ae51eaa92ae36146ab530 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Sat, 26 Jun 2021 21:25:41 +0200 Subject: [PATCH 13/18] ripgrep: include build for ARMv7L --- diyspk/ripgrep/Makefile | 9 ++------- diyspk/ripgrep/PLIST | 1 - diyspk/ripgrep/src/ripgrep.png | Bin 7497 -> 23083 bytes 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/diyspk/ripgrep/Makefile b/diyspk/ripgrep/Makefile index 0c710bf36a7..05689cfdf6f 100644 --- a/diyspk/ripgrep/Makefile +++ b/diyspk/ripgrep/Makefile @@ -5,18 +5,13 @@ SPK_ICON = src/ripgrep.png DEPENDS = cross/$(SPK_NAME) -# armv7 without hardfloat is not supported -UNSUPPORTED_ARCHS = hi3535 # powerpc archs (except qoriq) are not supported -UNSUPPORTED_ARCHS += powerpc ppc824x ppc853x ppc854x - -GENERIC_ARCHS = ARM7 +UNSUPPORTED_ARCHS += $(OLD_PPC_ARCHS) MAINTAINER = Hylen DESCRIPTION = ripgrep is a line-oriented search tool that recursively searches your current directory for a regex pattern. -STARTABLE = no -RELOAD_UI = no DISPLAY_NAME = ripgrep +STARTABLE = no SPK_COMMANDS = bin/rg diff --git a/diyspk/ripgrep/PLIST b/diyspk/ripgrep/PLIST index 22ded55aa2c..e69de29bb2d 100644 --- a/diyspk/ripgrep/PLIST +++ b/diyspk/ripgrep/PLIST @@ -1 +0,0 @@ -: \ No newline at end of file diff --git a/diyspk/ripgrep/src/ripgrep.png b/diyspk/ripgrep/src/ripgrep.png index 304bf9360c0c91c060176eee87b340cbb6fba84b..123802f27302b13cf7d2634fc7d24ec49f805c8c 100644 GIT binary patch literal 23083 zcmbSR^;^^5``%!5j1-WXq;yE

>cKrP81vNF&WQQc9#lX{C|w25A97x`%{x_r~C} z_xDfu{&4oXuCu+)IeY5d&-2`o&!4GNklrT+000!48mce=00{kW5EJ5NM&j~Ia1X%` zYA-)Laer&|!QRCgVqov|7NBn>3=x-tXn8tA#6`u$a36A#kL1KeAp)XeqM~D*4sp2m zh(2iQsu67v-lvh2(ujME!A+64YP|9Q0Af4;8^Am$(-m$KWT&F50svISlHFJl006Io zHC0s%eCGGtNE!uSy%1u#T=pnzR~(mEB9GA-nG}CGkQ2y3NgVtQf=#kGGKQW3(IDo@ z!iN+xtC+CDZyYC_3Ti5#H(8*h7ofKeU%obN|GoHtp@fH@S{oi1GBGth64=cs`SnY# zs$HaAVRO<|{PK63yV~Atl^R|U6hcJ|`u{(cE6WaPU#gilAwKOp#NN8FrEf={lOQd; zm5078Oi%N|w~e|JE==|r;nMOTpfip0*j2XG!cvtzbi^Gp2lRNXg;%Q_>m)!~bg$YZ z1@V4Q#7-q59ZI#5G(eTbF0rsQDnC4WaqbJ|qJ+#Je_Zp4D?5SijJed0rWB)E%j^)~ z$BPg-&#We2sdGjBoH~4lrLJvs`oM4SeaZ~UQ_NR?A?Y+*$+#N`-XB)&{_oqHHvcx) ztOs0^3H9)|>(0{;E7~z-(R1Nn3}e0@ni?P}lR59}{UY~kuMoOd9T7d$SMzVG%lW95 zBCT%N&8|ECuqwps5C&yyoQ?B`13iLg7$BT zThHt6usNWMOQ^2`L5pcd+e3fO%I~rH@6)0{@|0}#U2Hb~OMfV{c-(8tr@qlch{z4t z2M%{W{FWcL3ox}$*NLb)i_t;3iB`u5b#0)_2LtZTr(BHM{OL!-nf5DXU&Ge_&~Rw} z4XyucpxPM4Qe`XriJ^gKLpLOSBkzsBI74GZ^eMx~XZgE*&r;9O&E`WrFV%-ujx(F( z>w=t!Tv(nv*6?g>68-sRt;wRm)%kwh_w=uw3nM?2{IklXt()U+*8L9#B^Yl#Osop&d)jdsg??rvOUR&YV@ zapO>3u`P*w^-JXgSLW_(hly^OXSj#-J}f8yu$8n5>lG!Y9c*5=Xcjb$$7MM7O)rpkARrYDxmPND_krOnz#vu}vhy;`;j0TAO zw{FZ#{qM1+z#w%Bz}IG9OPZ9BosgSwFD9QciMNof0r=O~f`v#F|H?SuW0A-660+O= z)|w&ds3qTktSM-XXlxK>435E9AN^bI7rG?GI;zK7BR^qlwh$MxXZz)%x?@cf5y>WE zgvpyPoHGCJbZpM&9B|ij;XDNE0m`4TYJz7xN@`fH=MblGX$O3#2F%X!Lf%%5i&0Ap z9VmIXP!n4}a}zM3qdbL}xx4e^L+^cexGTR9s~df967Xb4bs)&a?piaLOZl0P+xV{B zDcdevB5^|yh`YG!6Gq4TMBAz80(Z@OLl-m{L|`Lhl+xki`rwI4&O zQt`IOf3ajg_$<|d{U6(F1KzdStcxZ1*;Sjvr9OtT?k*02*}<1s>|AxKPUD# z_KVv%QGk~uW*&FEE>RsI2b4T6CGK~4ULrP=yh^MWD4+L%XH`^iOI zOC|pJUc1wfLfzK4akJGG*(D|-s=-l0pJIilA?hvzCYmb3VB;3msC3J(>(8To$+_B} zO4=>_B)m-hbw1LA-a7b)J|Oq5UGEQ1;r2gceoS=X6e?-G?c}vecIBRH8HwMoJ$Cd`#r-A8wjWyXJT8A#T#78anzQ z@-(I>=2kudoFrl$g^8XYL?#LE$=Q3M>eEO4H=xF;(gZfnpIVN2j)f;)9@{f7zK&7} zNk10YR&)v}c)u{57;xiwNqOpTod3wXk;&X&r20^1MZ>55@ONCojXS(SA9KLwcjH!f zm-LvafqJ?6jCrLWA5BhreC(hcQ!w!!W1{$TIoNyr{QSl_rR?Pf>N?Sii(hb5v#(GCPyL{uO5a9Z$>;@Z zByJ3j_DQP4QzzLB&`4uUQj%M74An9Rn&PF4Z+7g+w>IZ*7a%_3V|~AoJN?*-F{$1* z2i`~prW3o;r2RCxr1rbCU1nvBb3gYy`pY<2eI=kG+3R!B;^zAU?evpX_xd6h_FHz! zs0>WXqt@TQ)%z2#9?sYsDaPGAl@4CkNPFj#G@m%Bv~}N=T6o+xF1;shlh(KUokrzb zlv`zW_Lf6DVEY0#Sa~RFLM9pPv+P?fmcL+!qTZ!7Z@_-yv3s6wtxzOo)9I^6 zhwAF%Z@;wuNvgndl%y>wyZ<+~^Yh19> zTYSE8MD1(BFB$9fik2Q1=r<0HyEtu5K8@HrbSier@ng?kT#K$PQx-g*d?3%4lF60u z_!VoiU-Ea;c#;k!A9JVlHDaVW?GpuAg0z}_3S{<7ucvI`qF}DBbsg|EB}Cqb@$@@c zB`;rlcHCph#iu7x75fUQtlFNRKi)X{kxh}%%SVD`z4tmyQ9)O1ykY77<>c8{%^B}$ zndXVuHTHR@*z%puI24uC7qB(3J|hopAe@@GXX10-;c)L_`cEv!tOCpRbrNZb5)~Wf^ST|o=~j#U?s3D^ty&buG8t1&VHQbM@m=xm`M$bX zRU!PC&0b``Pb`edy1cl~o?Dh?FP+nUCR>expz#yr+6}NTiR@3L#3u;($1|9g|LlZW z_rn&&(IdZ`IJ%HhZJHx~%B(PsCy0!Vw;3rt-n4uqV||#d6OK#*xHnm3`{|6#pk&|i zt;6Aj*Nu?kt;jw@-Umrt$D;=X^ghEk=0hF(Ex>}_G2*d)tW01Iu~*@47bJJLN2SLz zinD=F=miGlaHrl}+}`Esi0@|@NU`3}~ir#VbEYk!D;v^;M)Rd z<0$@Y-bkOajd}%ivW6cW#?e?mnZS;w9Gbc{jN3N2lh8X)4U99cPltd^iK^fFZ}Pwd)$^QR$Nt!^f7)J1J$ zY)H}*qFmJGk;m1s7_!R;)A^9Wk;raZI_sUTG7%aS1OB#jr@3%FQ`dno+_~=5@gW3q z95dQP{N?hqSXjCgR{Z!l5Yd;qO;cFV;o%ik#g+cAT2KD`!Y`m{KK9qN5hYniIp5%6 z##sy8bxAAsPJ3U3+jMy(N0VayBDBcITr1W0>%|f`Ec*u@P@FfeRQm^MhL@p11tT7C zp76Yv@tEsze@2|c0sD-6@J+iK>4vNH7X>Hfh-V9+dpme~DhO#^_21J^dP8mw^7@em z{&6}8*D^oU2&t1p+-3i0NoMIj(q#Y1)r*#+Tn>-%iP(_igez;7-$7r82d z9suU#S6lA_l;WQ?&Qyv6)HHK%L@R@D?)kKRscTEQN!zjJRZzILD!3Ga#o3%K1^l_k z02;e}X?7~tV?A+?jM1h)f0(yc{@Bw@qf!DV(|^{1({DNowX|K3P`x7g&HcXFlWxtwKw3a)|nVLAqZ!kqiQB zwEY^B*xgJeeDa{vl=IQG@0s6xBL2F!dSu!Q+J6_JQahvNBlT{|CCcfW{d49I$%`)1 zHRCL@)94sfWp7c54!Qd6N(1doU*FUn=erd&Q$ik6&>>sXLDzLw!ZWA`2b(i*AB}<^ zop0436RcYXa}!YLV5h8i%<`3m@3M2n{q*^Ms8~gS-c3O$$eP*tRS=1yr&8}CF@MhM zcB?fJ28g1j2DVU@I4|eP*vEHf7f9rH(XflrG0fU5uDtAc z*bCY5c&mPh+4O4d^Hn^$@rp#mh-kllwGl2OWaJ$XE+~ENxxH}C7pq%Ii&zjxzJH%s zzYmrQuJ`kQew9YoWIrF{T*=4}{2XUQn!`2DF<2omSLU+v$SKVWu)ZukQSVw_F>*OX z|Gkd844N<+XB}SumaD_QzI6Q$GtI}2q6F|c3hjq5}X)jvKmnb?t%z;e=@ zGKzVFt~?d!uny4H)Ixsuy|hSmugwNudloyjgr^XG=NzHb!31i(rdL8A1bRyu{1HUXC#yR=sw zMo~RD>!y!30NuvU&_HYQ%L_mq96)v1UbcSO`K~49RsG>%7wv=xb~2#Zww;j+=n%r` ze0CrU$38XeL~2%f@(|*aY9pSxkUk7D(G=^x2G|<`WF?C6s7P&}z4&!!zU}XFu-xH{ zXuxkQ-Cc|t{!x*6b!1}fKJ*7(Ts^cf{$4kX;+`hLEE0_UhzEcu8qoVWy{30l=3_IR zDVT}e9Oc zTq~jUor-wWN;*-$_*(L`M4Nc;Y*!Ny)2W!td5TRe;nN7Pk_qYfLHbSenIwj!N?vFB zrm9}?K)$F#IWG7tXC=0gbFWBtTqDBt=|B1$?hZ3n$6EjNELx-Adp)6{blAH$#d?Bu zidVLO{yjg}`(olULLI^h?G1xDeoz$9`HttB*uAg9hi%}Z40wIw1e8MijGE%~lDXuo1?ru0z+q z=r*CY6i`aI2dxZQX}rGWIVxVtBmHrIR$!`2r4C?t1cp&PNH9WjV^J9#+mC-qT{M{O z?2OXnEOj|~J9L|9BNN#Y(di|Or02*jPmUB!=;X|nHqCO-r+8u^AX-V8f1(%Qu>hM_ zTDIGJV{@~x1@~h`7Q&G=AB08|9_NngQ#{^4`j}_RfXO2PRWEOcbrJnsQ|i{it1TM) z`F^x!CH<&)XZ}F^E*i*i^H1g%fh<(AYAeZ|N__OdrSCIq+Mc2c&%ho0=UsjVCk~a{ ztuiv$VUY%oO8-kGtyq_&+f{^_0m{&!WYifd9h7w8?xq7E{IKB@+uaws$3{fr?? z_I=UpMpc{rlpqek8;^Qw9Vkmv3!2R%Y_#aEuO+#Vgi*esTxMRpo|-Rx+a@x_K60@7 zaqbYT<Idd*3MxG%aVQNl1_HG9PIW-%h2=gT3=ii-MqYXIGWC> z;!Mz`v{Fyyv;Pq0Ij%aWpYPL%i4;dEg=pF?ljBa5uEIbcSSF5q>Oz+{qwp*$J;TA} zK7D7`3a^TkJlP(vin}xQ;AjcpV5U+r6Tf`3ohJTG>fDl8GFb|L9ZjqrGOa}YCFZ2jW#m? zMD`H16+Te@CPx3X#7%{n?2Jo;djNZ%alQZgd*ud#FER_i@oAutFY*JjSniqb9axxQ z+)RlB+t{8+N|%GI+-0J>1*hL~{mC^ePjJ8fYCJ-uYq81G=w7p@yP5o+*5X!Z=I%rE zHi4bB@&;Ao8=i|~^WSn}`$i|`Ii16{R#FY}-mAoJTjn9u|DvkG6U-1nAnuiX2 zL@LJgD?}mQ{w*|+*oDju+wgr$Mi+AK{QI21RTi*@;gYN2uQY&X;1#!l?78|$NX!~y zTd^bg7Wo-~c^)E#JawDjL_U}bXCVQ5y%nzqPbp1R$7V_?t~^zrNuiBrlW{CGCE(hn zKC*J^el(qY36g1+K1T*TEX(hIx;4x^d_JO;xWZ3s$$b6yshZpf=lRplYQbd*BZ4?c zxp>Dy(3l#5PP%o%lV|j`)VX@8vjQ6*B>{w85BP|b=vSzV3*YIyKDTOsu(q_zRaOe_ zDURzk)fFIkudzku6DSR)X(%%BtX$)%r_PBD5+jqHE%Q1%WzSs{RppEZR9*t?Qone; zeMGaTnn^KYz|&d@!l4DR(CC?*+<~ZdfKseHtC+J4XAQs2cwH?9uU`>BFrCb)GsG zL-xqSlQ&$-i)4sz5pLsJ7Ng&g3zj5eOGGy)ucl1yCp6Z=DlOt`u|guWB-VFtfABb@ zKQNd5!2x{6p`7=|G){c87;o#=RrDppK)=DgZ+Hs#4S>epD+=|69vo3inRA&Y%6h@q z+5IDmP*{EFJ50lVRdqsIoj#Q#HJ^%Jp#1#Mo)d4plAs&Y;dNC|(}! z3aXH%Ux~lX=6#Z|@cBa)d4@h;wc=I#>->a|v)QP{R$VMMNQRxs%h%+VQnnoUO^6U51>U zQuKl6)v@C1;moY6;mmj9Hd41Cm)AjKEu=@T_(5+p4ATT;9P}Sm&#dlX-KL1_5b2Zb z{0Xh*DeBlDka^KeaI5q)nw74P;Vc8-sZT0_AK-JF2I%Bl^N;Pnft$%u39mV7qsEl? z0(gEFRh-K!rChv4q|#xV$-&i4*2%<`Bj>%L{RB)W_?20Isd9w^ z0kc#nQ|xu6Nz+|ZH^vbV<}1^c<-hODCo{QPA33IervU)WQlF=C4<8+H>x z&&YE-gv1>x%T{AY#aO-|Ze!2=Z%v~ldjwd)ru2BGqc^`pXZj1G+A@xgj@e6;ck!-! zR=Oxa(G*!NLVYWC$S)T^<&Y4K$=qEN?5p$Bnqu+K*~e|BC6C$-5Yzjt!`;H+s=*v@ zANDjDmlNh@OZYd_5m=0-(sL-p8bUgy7`A54o?iL$>6%c1$*`%&A&1j^~f<%SH4@3yV&1~&v z81=D=Vr?!=IE%Qx`AX;T`=Ukn!^L{Pj7ZXL&Qv>5x%w|n>VHVI0VEqwf)x0G?P0I@ zpUC|2k5Rb-odqg^p93EAzwPB9G(d877NnsbE~h$Yl##YfaYqY32hM->XwmOwprbVV zh*cc3)0;xv{Ybh_*KuwrRdCF*Si8Sv2t0WE9Ry@Y)rCnm)@PK4XYs0KcF1d(ol}?- zlz+urhxk05|Bj#6H`lQ^@w)}8f;hjTT0$+Nt*N*!a%J>SN|pYFErz%xt(RkOjbVn^ zfTN88mmfE8dZ!RiN!%TM!W?P4!1TA8YYR0fypNau%EhKwDiZM;?RcZ#Q3`Zzg64cplY@Uo*YDocVVbe{*#D z?vC0?#Bnq-#v8r7iI2Ttm_K~Eri<4DsDIz`>Q6sIkeU64os|(-OmkjY@It$;?FS5D z>rj*IP?}3)nMigvBS*Z>U%^vgq^SFv8=n#p)JA*YObn_;3a3kUEYA<%j6PVcK3M1I?9 zh*@p8Lbd!XnHzd|ds}(NjtRj&d42qssA{Rb)9Ccoc2a7&>oK(X=UK)LeosA$jH{!p z8?xYm%g4J4XNPp>wSN=*`hE55o)PfgmpKdOyBcPfg_}xsjk`-Qn(DogSYVS!_ELXX zNb2$O)+K){X)Wozl4_rg`XPPNkYC3K)PimCpG%6?SCzEp5C7sh-OD6-zCfY&=Xe(wMQ-4@&DdP(7P#@rYutxewvM(XWNj)VD^XL`zq5V5h;{oDho4nIoO@;yf zPS>F32gcZ5njB*!N&q_@WrHiK5tRDLxb9!%x5qi1`4dvq{502$T?>TOa!=1#@OaX& zm@ZJp02H5wKu^Rzxds)4#N1tvB)fxVH)$Ro93RiX_WfIOeVsBZ$Xx@4iFL~>kvX5{ zA33pO#9slWeFi`gAJzLUUG&-UtqbSi3O@;cb@trxlz~~}v+I|1VvoS*|m;8Hg zA9!wzb~#+0zT>}Ue`s~7H^}FpoMJ90aP*vs=0B}WBM`5C6{g@cf#)>XGxPcASh?k| zoE@U+jH0SzA|FX`r&HHw8L9ybGCD^G1D95C-D_tm2;rM-gDk+lQA+$}s!BH~LMYaG ziru`W=8XC7$z858N^q)Ga^aFCCmt=%Z7NtfH2bshr&Ljh6DpS~hd_SY48{(UIK-p4 zAgKdfWp>@C&!O9KiLdFnx7U3s;Km93N*d<;bsrOj-mS1FBCEjr)5l_?R11NqreWqlmeLRV?@5Z=WT}KZF@l;0|0)YOi`Xwv82y2M2g|helB4B`GZ;KJpA%ZGms_i zFcFr?lH%^__m<`t5`Unv%jgY@RR4hoLXVDAto!8qHtAK(FKSRWO!>k^BV#hA*G zSTRiwJFyrs4`c*@uPZDX1G*X+N8W&sd6?6yL&hlwH2hEs0a`i-K~HjzyUyCXtcXGH zf}V9ve0+b;hRTt$iG+$DN&~SAA5FX^%Siw%pb@PH#^3IwL5Xzxyiba%1#E{$kskV{gC zQ_67RE-xr$8aI>@Ls8tX5x zOzqp4UyN;t9Rl<(yhibga*uT~XlDZEm?R0PLUO1VGWOq9?%R_r(*N_gkP*3>J+#w5 z);GAm0JmqLqY)?tLEtkQmT7{6Qx#eIj|G4~D;9A(XRUQMFtb~_5KHk^(ma9I?wkF4 zut|bFvaSA6ji&G#_|e9s#Tk~zDm276$oxa)k}@a0<7qAxg!$sM1h1WcgEmqx|2vGk z!xh;QvTmn2cK;Sp?(4!1wRmiGcfrf$01kUcr?}v6o7Q!gyK*t575up*i?HozmiY~lq(yrkCpojsK z&6z%86n`B=Oi_U{Ezul{HYW?n%&Hl=`!svFx-wzqh{04{Hnr<{y(SL>knlsjK1$0I zTSIEUN8SYBN$mY#8>Ph#AYx|^@#4Rb{3Zcoj+%4`r*EHdKqdH@Wz++60R;FuKAk-=$uyQSTohg74u4!)|h znX52)SNnYsuGsMM;*FUF>WZ4^E8BwH>>xZl&wwb|kSq6!A*7yh#C4|(}9hvV;>lbx3E!)72fewS%lEc9VjbRae#SK*hPg4D9D!_RP7I6dV5=- zcsbSDv(@xbPqRlEg&9N(@!;gQ5#$=7|1}C0DyfOH!R~JD@Pk8m4_@rq1Pc&fnQ673 z-Gbe~f+7--i-%jsXKxz=$}0!pN2@&}kc#QT^-+RIpL5~;jqVXQpaA2UQeIW1(6Zqg zB6vh9pq~uUZyVKv0jXf!HBn;MXGhE#>W~1j*||#+4XPFKoLwLJ`OC;>ArGi6bJzt# z$P^wLR`rS%wUgqJ>--d7KtdzZevA^3DXnCdV|MxolY{0b78NDQ1>lEP z(7hQdI6jATc4}EMjo%LjVAPx$x-tlWgoH7s)w}070dRdK0$zai5b}%h6-2msu(mr9 zT8XI`Tv86a?&SGX9WLQbede!mm{MZWI!TO24rtPnQ(()u-L?HZF~@YEYx(-=)PhijQsP9VPv{!<+X=D3zKGrBUXj-v zYxx;8*Y!-?_v94hV}##MtCJKvAu{);XSVv-<3QrnYIt#9{b%RJ4 zWGZjo&FxM#w|iC0RA?v}yDqOl<_b?FSD1;L*8wo#a{Xaq<~@}_69!!q z7W6C2Sz|v1J<84nO-aHu{XlA>3`O@Hm%{ZYRGXT2{u+8=IAxF3&M9b~3@K)_6VebG zI|B|9N=QF_S()qVzq|P_z_Gpo3-F0bD&d(RxK} zC5lt|I$h2PFjNJ|wsXuPR^%-5_E(r;U<>zZ;3IWg!nFNmI^_9rhYEz)b=Ugq6a+Q4 zwmH1H=VpG?3wADao}NoE4rIYq2Wr%uu`Y=x?QP_hOCf*;saAANsY)7HgZs*2{Lmpz z5%w%}Hb~=?UzF#u6p=DUzIf!22cJ_Jry8gtc#IZ8`%NU}miO@iXa4=FkSa|A!vB61 zUB8?-Tmr4Vgue}RVgohSS<&a1k+_E>acLM|Sr_v>5xLK3dYRIEzY2ex#xib&Fg~d! z7F$(zsg(?v`Mp^0Wv96Ol<;MWAhB!o&oV-LSl~3pt={$wfio-+htjGWJNy1FSu9M` z<0Y+jNoWW&t!on5eq4mf@Iy;*Aiz41C_kGbp-Au`rzhr(2|u(#qm^{=o?9nH7mqTg zUWt#@$pmFWCbOwxxI1f5sduBY z>|{{ON6T|~(qAbRkAg(xD1E?&tlsesmTc?l96grg(mwd22Nf~6TF55J(O;O$T34La zB8v&5J})Qez428I!UXt0I!?k0F;ffTWEM1=x}Ku z-*A|?OdgCwXrxpipO+>4RG@1S7;lGKOBYzjL{wZ!?cCd4JiCCJ-xY6hPsA9J<5XO( zm$CyQUOp9NszlS0;E~fEJ?g>%d}qF)H|IcdsknuZy!+pO0uxZe>utb@El^x!Hj zICj;}eXYfY?VNcTVo|`l=}LE>APEQkKlg2<)Kxr;8(IpGec47z{w9u%ynd_LaQdQ4 z+*#jn1y!uRH$g)xDrzdB6Z(?C=OOEHgH5r-^un8}nl3~($!z!e;%KV)v#>6|C<7t^ z!xbO6Yfcfz>uFjm8GjEcIBp|lNX!03Ch<@;@ zl;RO7zT6Db*&9`U{tU+}s5~4e8ZA5b37WJi4SA3HFD~Q(R04?dp9Q+4x(^L2b*f+< z$uW+``>|9?z2mkH(tY>!3Tl$YKUJUi?bfYs;!R-aCN+o=62LM>V;KfYhAQ!GIJ&Ys zi*~{vR*LuZ{m=*$J*-zV&k1^gTt4T%&g9_+&U*y}{~-4M(W3^EBBCYQQw@X_biUY{{lnJm5t(6QkwR7Qexp&4KV<}6$BrZA$oIPB9=?bH;iv6{;WLD!alP~i^Orl!5Bzdn7sg$b^T*ka%LelY z3$I=ubcx$%0x?#u{L}E_2*tIkSg3O-A$i>a&(WSC+wIuuBxg~2aw1W}ni#8?3G4b2 z(hv3`UNnP=?CcQEOJjBkaFYA}p;oOKm8B(Ulh8wr*eO60%oG?ysqLu5^@>^Ms-8Ym+kZ0bs*xJ_b1 zL9i|(+ z^j~iv(>Q3+Io{RWl|fN}rvNcDW&~Z?)>RZQaloCa@vYMhNK)`=Yr2%V^G#B<{}o`I zrQz)G)Px?A8k6Ocu6}ImNlR4{NXF>bJX^!WTK}6~Qwt6{O9)XmSVKAuq(Seas<~F` zcjGZA(5_Yro%PV~efOJq0r*?R*-m;tZ$RrG(T?QxV8n;!NB1zXF^l{e_pC`XD{^!V_oJ(~E6I6}d=ZG`{xAQ~ zRsmGAbh(9^@uv;dLfld|~JH7V)ZLgUH4tm8A z5VlbACqPnr#V9psdfYNZOAnDD2uiIZ|NJZ|u~9mv?0elELF5S4{W(};An&I#?M%^^ z;?agSj_1sKQPSu|acV1D5sQxO3Nw2AI`vg~UhK2;=tdO&+12l}>tr4OV_b}{?b7== zE3+~M6OkpTbBm{Az9$qy3W5^rO>|+SweF3k?3B>!AzBvQG7dO53ZC<(1QD|yi%r`_ ze?_OUn^`n>q})(lVvP8tTIKY=Vw^W{S-R+0L>?YIQm_cx2lU`S@GaKw1y6fS3&KxEf&GBS&=XFEori1jOZzuT0Vi$uM$_c1J zzXR`N4upTXgg{3!=YNq`ltk*@mR(4?!AeE3qADpp-kEN&frf|%*VV$o;RhzBM>Sr$ z=#~-xGXYJFkKgYUwZ$c9Ma_?WH+C-7{=VLNl+OiinRJpk%}nS+ajC^m2z|eaz#$fa zg6BbN4g%=g%k9lu7!r{{hwmA`^*DHR+T(_sPcxJ>jx1O4%!Cw%WwxHgNmguatr884yVNbPmUs1A4^v=Phs&6O zRT7axylZbj&&iU*;fu#tD%>hMc(Xn^DBIK5#XN!jl3Qyb(~|YV?!qq=q>KNk27LH) zsR?ILI0&=$?yc#$)b+bDt4sZQH#5mApof4`S?17+^Hbrofhng+k z9h@1$TYg@!KmiRe{0p--4|k7c2e~g2NgK;|GwR}V3`1lM-)UBkjBp=sSSK#4DI4yj z|2)*qwo=;!7cITu>BrQAu7Nnex3{GI?qm*G?8dIrh0hCfCpB!Z__yB%5abO1l(jc`;l%Me?gz^d-`-6p8sL0@ zYKx#tgTdgRcBN{A^M6$i*+wn-N#*BxURj3h3T6xcv=n2bZBcJepWrs*JbLuAF*XNp zTX?(=^pK!92lhy6rt827UJSKP&=!Ohe1pEoE&6HqA@DAU&7wF2i)%rz%kZB^g703Z zGUf>Vs+_>K+EN%g=RH(7W~>v*yEyoE#nUDwRG9!uw`uz@ohjjh^VEXA(5VMf=5I+{ zDIWbm&$&!zqbj@vww0ADqwm+2AG1y(wD({6u@(hm^&AeLV{*(F81lbfjK4{=4blv~ zkP*jbKeTl9ufu3l>-X9kVDi{dCUnO@<09;bW_H4GTxxH-LRNr&v#J%KWS&gJS5-mYG!#-o9W#jByN|ZVB_%8|<~( z_>b4<*L>D@$cfz)ayQT)&N<97%nZ+4wSv|+EVa~(PpxFE>rA%jZI4#*QDdZh)V&-! z>|2-xnIMd}r9A@d6M3;w`tJ(s@t^LyUCTvzRbR$U5bZlDka1nzB(V>C19ghWLH?-G zpS(laL{iWAVctxX6WkkAW@)bN|1tlgEU>$9vhsLxO+5S9UrGd*q2t#C3Vq#)_VBB5 z6G|F+{Oy1<&$q8ykH%3hyZ%yw+HQvC)kMOQ#9=z2)24s&Jb3%b-j3`IDh%gNm3(hZ zt>Peyt&6XXD)2gfWQWT=KA4BU_0=5vwyiMD+v;Mp*%9IOj#K&U7&+12@-jtlTUU{q z7Q{F!@kxNZlivCDvYL$_NqwfO!{9ag)MV;_zZ=rUl5)LR(1i}|P}awg*Pv1yQ#R&f zbumFW&FPF$fgOLjd}khZ;#L0gt2zX9DA>*2mHR#B#`4YtLmIhjc#vYBpM8@JDnTj*lziFI^w^+o)ej~3hs3m!8w-{J#+{I+Gkg&j62jM7!b$G=VzQB&^B%s(0IbLT`haZ;@BIPzL*uh4nkaT7LET< zZa1gsFQ8+Bn68dkB@9I?^~i1Y=hT0vOEeMO37q*8p0Zw^%|FRqu zp@Ce546$85|9*e(yB_p6&N^?cG~yn4IEBf;IgTT13kS;1?HtX|8qZ$GtvHT7MSQx( zewo*w5SO;VqTl%`8=%_HYRYUUjLE4sy-y_AaiC?GqWr@&1*?)Z5kv_i%jYHfnJO-S2vUU$JqtWz$&c=yXvl!$AoM|UMTB-fNHR!d>d0{$K z?>JPn1H5Q+|GZE}<|0PH8ZVqlxO3)r7Q^ljf7fmWb6x7sFC)3ttn{7n!oHwO$9Ex2 zXJkoi12imn3~8Q}-sy*CACz%XBL&Q=F-G|~WwyG14Sj7~z_fa25#|0oaW$AjCA1SA zI&(Fq@?c8+y?loWX|nnh(P|4!3r`_KX{eFi0CFi`1)3$oIm1xoJ({z1_0?0uB$Z(H zXD0GWW>F`*jE+wJW{#d5d#fkk+U`uFbXS!H3{x5GMIg$PH!b{FR(L~-5)n=9I?>+t zv0nww_Hbej%MAi~>{JwIC}>c5UQjWpUh_Hr#K&Ecq7kmuJ2w8D53rhp8)_<~&Nq~) z4C_RzHhdz@9ak(7;N#ivFdpR^C(S^3?YZFu0tdP(pTEH|L4i^SWx1$hFRU;fIsCQw z@a^2<&oV~#y~hEfwTGx8v!eY7vo)EaAs==_b|<7CE4HguXD=>Xsb*-!(%--J7H2{y zobfqk;%{wU$kO|SOr~0}>elr5!@j_iO8S=>KT+T%!kmr5$XjUGZQvadX(enOdZgoP z%fCNe#$Pp>QXk4@D2-~NQf_`^wsm@)Z|h?U9n*2(P1)5qScylCX8o)6LHoak+)z^4 zNX+Gqw{e6)5UN5 z8JFWdRYX~gCq}H|L)>HYT-@2SdA=Cd15jtK-o0#l+`)ix2AJU}cmfxjj1Obgk1s;OE86LqoFlX^qC0POa`}}E z*9PpVu-i~mJG`aCF}6Y*`(TH?oc_a$K(j1pP5V~4UR!4rWQxXAI+4?yWSrt3w1BLC zinLJMjDkbcI~KvKVO4k=YqEW81=C5%8NfTZlj7K`X4g1?n~j~bInTQe)>GH7^&B`N zD`wCxu)XKu7uKudhL0Aa_+vp4*%c|U2W&doHeaJ-FxMOnSpW7YMf`q`&peEeST*JKlUzJ(%WCiPg4jQn(5Vb#`rVy zgn26bwPOB-H1aQ;_fLq9-N(<$D4!cmT6oE~Ky=t5$667eaJ6*+J9i`Dcz+uyad>QP z6WEZo9V2RH^3AoIHSep6W#U#%`uHZD=nP_FGu#NY#yGz}3AMd)Bq6hs{nB+jmmuUNY^6ipN z=_JyW*D*4Mu_bVw{WU&Mf=HCIaBmy3E(wfJ!*17ybC2K}xP~e3)c;Dk>c6JG|1Tk- zl%zRx%5Yy?b!g zP$Az?NqucQ_oMjtPRU=ldrCJ*ac!KLcSHl(kNK%aNsMTp2)bC=iE+~fX3UFztt4mX zAgAVg6J!uOG+5EY#$JrbUaNlW!%pRR(wq@P1tmWIObnZ0{0eL}aq znc`-nE87gR_MqOQ@*6YLSCtUa3HPAXkD5H?7E^2QP|9&oP;tZTE%cL&=MkNv-X!iy z9jW}-f8y)PtDYHJ(??O@^BDKzD_~p+h(cr;D3GBwuW%hc6m?Wq{+p34*p7R#4f@3L z;!#ZNxG#d=los>Kh;d z)R}VZJHp!QekoJc2f?N$VRcrOc}GmjGjiA-G3$_tEEaCMx$(Fdf6L1D!r!r-gsj30 zV&QbF4hKO?WnBp|QshxnQnC+F?BcH7OD>J3@~loZixFr=q~iS0kEx-wf98~T91CZ^ zK^)}C*X?lv!f4KK!m&Ia_4og%;!~}jT0Pbl08{c@pyG^YjNtFVzx|-}SPN2*BJyXH z=0^z?mBL`WXI-{&pEd(Xiek+lRD_Tiw>Pn6_{|!XLN8yX5h{JNGAtDr(2w4SPj=0^ zzHB0-j){&XUx8n_q^PQkd-noG?wnTl)3Aomvji==M$+u>VjK5OJr-u%8U$f(`_xgfxW;*A z(UMP39P96a7tX3}E7AE0xY$P$*XAO+ipkpjVz51)I_c==irG%e_DNIodvc0w`xO!jv`_=5}XCR%pzSQ}u4 z8~o=(mg5_-MljUn{ZOq}i1w@uvCLPMQe$CXZt$VA$&s(Wx@Z@hOXX9?owG?wY~Oj+JvI@EkUh@Y@>`$ziq)Gf{SZy(CIWykvO;SzMn z^DR#(9hu)r^Y}suJsG!azQ>C?P(RG=M?$= zkB-+YUzK4VOASi>)-Xv#8oCYmRGHmrJ~=*S9jPj`5Y)WT#w)Q+B8rMm3(Bv!KqHsS z3d}kID)R8DNU3Z2NUyKCh5vdgsH|t$E@l4GngBS)0Gu`o z%KWM*NVkUC8Iae0*v^REweXz*BC`h@~ zAUP+M1gyhjHx?v;Rx1yqs-#Q_A%9UjyH}xBj2*gBqxJV_Wr59fsGw#50q}2q-*<+K z5)RXWis3Bw=WU@{CEXaPtg)oh+{h|8>7&u!`AVk z4ZEdCJwB1JBWxLZ#rcZX@slb9QsP>{tXOG0P#W5%eCi{V5IyF`|4EW3N#UlUk;tKO zk?|ALDyEY8sn&N_{A^fddU`&8Z*CONRgxqZ0Nbq4O?c;Sbv|I=l5Ox+Rsr+dBcl49`7sL z{V+@b{rdcISSJSVAhWucXt~2PhgE=BoJOq-;J`}McVw zA3kZm=F70yFT*`Ta$yr#mp=+0&IlQY;C+&?CTn_mjf4yLpi30F%VXOoyLtb{ z&k(H{qD{bi*}ir0zBz{TfJ)M&{_4y=VG4tETso@q}W_on$5RKlfi+EIew)^<=gs$8Il zqkL-pT+IsCQHCyaj@sO1Y&y|x^Wm_aHQg%W1IRcgK7TLR_#Dq?h2{K)T)$v@Pbkc$hb-{GqJqa^9a6Ag^_I#G-3tQMN)m{KwjGu{Y#ox~ZdXd+7jQa=3mD zJzLx@wXpGQQQp`uf*$^SE3Ed~E;6!oDzOO-D67F?HhabSiWmC-K5Vq*H!d=U;q>7c zH+!>CDX%9x8fg`6g6g*-TK0>D_-cBo9pi?i5l&hY&bRN)vTzsTnh@LqXv9yUHE&o) zsoVg8)i4o+Vyjj)NLCX*+vonYdr0Sj_vQl*(Lt1zvzx-?{+ZLw{EnX&&k?e%v@c?w zd@_tk`voA4s<~9STi;%bWwY>pNnNsc`z~3-1~(N6htXEbi#^UQ^i6 z(sG14;yf(DT8dfpd?AdglkGVVEEgTHu?7TK%_ox28XLE1(uMCIQoysg$IUL>yFN)} z`trp(PAj>-&~T&vrgpYLG}j(fSBzO~77vZ1@p*fnSF7T9`+k1~yAMBqZX=-H)(tPj zIksP)TbR<%+@5PB!N1iY4X?%AF87Cja8`#lUS+t~hUNoqy=Oi250w>9^j^`C3I4rs zGoB(j^-%5BqCCqR+Y&Iy;!XU|?ixJRh@0X|giuD7ue$?&_nxaGBB+*P3zu&E}e?)<21!FyQ#N0Wy zP+`IK`J&Y6@0C3QoHKZqfNlqNLcs;%I&P`mx>VYZ#^C1norB-8za7e4}jxIVM6-F7@WrER$qD z)I6o)l+p2E^Uw_*mLs*QES{vVta5_;X@Ppbm!jmxCp|Y1Rxov957SUy}Sdhk_7vJ+4!qhk4 zlf6!qZkhYqF;vX(;qx@jjVDW}GH2>>F=vjoS$oXq1nNqn_{NNcL__n5WN3H}v;MI8 zyyL4uZ`GqQ!0H(;2O(r$senfQ+sVGt5%uNs-%l%5b#Sllxm-R;mxA&2KA5(=lb|tn zb-!7F5i>Eq`yC%~W0K`qn@#-26BAv&nwtB$v~>4|5J*84j^)ykt?PQ`v(6C< z?hEvNL1wCI_i-^$p`w$j^Tc;Y-7Y_!-H_JeS2tut7ZBKY6G&YkaN43iwJhuf0nKu- zWyc1hLI%HCzi1P~xD=5&SvBIXW>oDZHY~2Lr{|KRR@)r>$n*Kp^H4Lm9LEK!c8~j{ zy9gtMeLEoh9uB=`*NEU8F^G70`mpL@R4%?&ufIIA!1TX8TaA&(z#O&<>d|cPKKx?c zgsvmw8EGX#aASJ$$gC_HiA)P$6oOa5VY~8|m3_yYn_XWf%{EP4(cIo}9jg+y}v-)M1M8CE8|OE%!@V}7>* z|A*n~$rH5Rzck`3TkOBqxNk*zeGCy%FTi}1JvjK9nyEN-cn@unE@E|raNEt@6z}jJ zX%5^WOD%n?ihM&j^oITke8F%6px{?YtR)0VjJh`Y6M%!xAe|=W5N*QHLnwQgFm94{ z+R6M>l+XG!g3E;`*KIhZXj?J&tV<#~lz-}{97&e)&fY*{DB1ou9_U3UtmUS;=@L+( zyBM#86N|H}3;@0tO&Ge#R%lkuHN+%bGmqO%CYRBkSIRpENWeUAgG z@>3tKD4R^TVf|%p!8;cgwrHE-TQ)!aw2umBE9b3nByRLspZl7y_UIOO4oODOS}9+Z z#b$nM2;k4M%A^q(oI_hqtkD9boixm&SDT`_0_$BBSc~ERxjT@h*9#(V3%@th=L-Kz z{mPsB_uwJtb0bhk2Sg({f3)Xg&*L#?UomfsB;&Foe93wQ-`M$`sdO(XY6i3oV!_=$ zvY>Vwz{t$6`U~DCb{2<#VN+ZPliZ#SP=`VKpi-<`ryP6409MBK%>%kJehN_vk?d>E zHpYh7$YdqHfU6EcvUkPxI~>o?#D)-ajj>Zlss|64&OTHehrZ3?F%8SWuOC|%r*5Xp zqGgi^H-LO#62o(7MfDv$-Z8GAA9#|xJGXsi#Mf5q&`eXN)0oM_Jcr7`XN(M$rxYGW zZStQ*Gk6ZYH(Vuz00+&KOG$H@N>m>1#l5Da_3;3p1S(t5CSk?5+%z%lHe%qd^B0^O z=P#}}oBomq&`y@`TAW)<3sb_2;<7U#27KUcS^TNoMz1CKJ-%kE;KQ-XdnQ^^8gf0F zB!^rU#321@ON7DD?scdMz~=YD;B)Dy?#FD(xEHvB%VeMtqDvu5%Sr-Vl{;sU-UoPx zq<(I}QIYH1IKW~sP5P6FfuXI|s^nV>SPZ-X13a z8#fTrd6TSDrpY1zX5jjnBAEjvjD@#7<@oP`2jBkuy<@?-l90RrMg$U2ArT-I2JBQh zEK+{89J=9XebE4X3esp-nW5FIt{NMJMn>#-6&#}XH)gnW6SdM(--^^8C8Z>dt~E#Q z-O9nTO>lqcO~6Ee}2Q{-Mpz_6{=DVWFE`1*IR z9Y5ebr1EY&SzT*sDJ+349lP{{ksY~N)*^yiq~ptx*p zBc)~Kg;}#9Z~i!^iU&ZdDmLG>HAG%#+-9>%Os}TzqhZ*($jCmzn-3S8SZy;ZJY7ik z+Wq|BJVviKmqew}TcGN~exS&t2cP?_>xHkQ>#7OWjM(dCB61^Lp`J32a~thy(j~ng zyI#a)^8C}{3VTSJ*J3^j_BY=#)`&kC5LhD1Pp1qzGX7Oux^luUs_>>IEZBTCs64wm zU9!$Fz+x~~hYpCrke+ICMkMwlBluur+`mRra6X2{ImI=Ro^a|bI&A)I_a!m|dUU3$ zvcCCbVt^C;bk26CO42itLqz)VdQXpPpJBwq!vmVT+5YG_=BE~)y^4u}@e8NZ%WNF% z&mJR{Avxq7JKo<{kJOVSnI285!|EP&=w7fDNct#0n%uYV97pg3`7Os%o!E0%wCSd= zPyzzvQ8H7)qSJt3x-i&EV0$6H%Ohw#Dl~>U2N6`!<vvqOSi&IX#u<% z$Jmrt*`>I8AmdNM_$4N_dVFU_pLFFor*LsqD$1fKS?ay=2kIdAgOO zH(pidD@378QHAf5v2Mv^RY4NH)026G~vR&eOY zpJgzhScDJh#tM9yAL`cgbI z(EO6%j$4x(-7@73D^434c2oMV7Bv6zFJ>MpUiWzXRBS`yqeJz-+#$`DZw^QgcBBV! zD-IR;$P-8r0Dm58nLmoNlV_fa4t&Y&{XUSbsY9;;ElCrJ?Dw>ew^*x{QMo_~t1+;e zy4W7G_MSY#an$q)ZdfcSiw8{T{6%e!SF64U0OXfR#<>rVEdE_ZD0E&Jq>)5NkLr2| zD*>ru9IvVq3ybS06ZkB{uGhAxn7AJS0jSIP zx3i~rr;`~rcnRfIE39VZZ%*16*cB4Vv@bD6V+uaGB>0Nl4WN z*KRC#kZv(^SK3!I$~#Ogi<M zdnQfDAy`55lhvP&z9tx3+`G7iW-(7Y!Wu!NFP6GO+)1`c+v zCCWss{Z2~%mv%Yhsk-irX1*~?6wrRp>UXVv!`V1l$z+;Yf4ks{>KWIF`ODLq5qIiu zv(HY59A!qKw>83nYeR{dKj^-`?qtrGXlEg2cEWeGt^e3NmntvrN>`XWWW4`OoaD*X z;9i2q{1eQhDpMT0vBzLC!#@$E`7MXRZv(U+G!J{%CD_PDXI@{ZT`G0=`|+|GMhPG- z!*^Z&1R1+1$mL(Y95$$hB^jH>odSBQ9_Z(cH@bJd)`f3}kA5u>ZslwXfpWbi1=MwZ z;ER*c90k+RkD6{${|c-h{F%JK{Ow)|3BIn|JVIEm*&1=+1lvqHUyAt7-eDq)hMq#Fc9cg=k5b8!=cvzBCoI62{RC= z_7;4T#0LV&vTQ8OPDhR}-V=CEu*^*{;E4x`9Y8|_bfx5lc(B$m@ehmP@%R+mQDM&G&)Ff40_r%8I;r&`#OKs6_ z+Wy|{m>=D#Uak3y`qJKd@`K4vb){2%V*wJ+k4gIf`gu;$A%oBfhuq)S2bF}><2yd)?nt*s&78nqdsxO z_QTIlOHDq_dqYlyO)eQRSH)T##fYBF>x4Z7SLg4oxdAadkJVS$ahC-}B*`%P3}O+8&jIXk0jJBNSEEH(C8 z@qHh?tx;7{+p*R9q2bFRub-yO$Le-698LBGRYAq^j%R!#L-XHwf32Q79t2IT;Io1^ zX4bU1k7vA1QU7W2CxA95@!V6eaACb7;9lWJ0@OKcUaxaM0p=2!Ft{!M*XbjZm7;Ft z;#_$(;cdH);K!ih=h|B}iDg1RWA*iqs}-9dYKbwvO@};Sr@L15CAhgqCb~^qoYcAX z;#03=pGgHiH5@>3H6+HkGNtNLa+9Celat$`PLx%Ayiaeq(cUAyc%DmC;EO(atAWmz zJ{qx9Bn>7~d1aD<8|eS)2lT2t&edw4>XW{Nc)t-xd2b~p;Bj(_m#iIFNH)*$KFWMR z*mwpJeZ+pH|DpT*C8uKzXA-FEEU}0xZ!Vs(k?E;iJ9>tIsW+34H;#ZkVAjqT%0uH2g>SwYaOJbXf!w#ODs&9 zGPR0}*c*83M$Y4#`SaTY^B;$^WSmdFw0Y{ujvuwrgr?2}%(_bbn7uq?o>dC=kbw=q zm?rgMO|~_3u&lLP(Yz<$-vN*?`3&yqt5<~vb|I8_PU&8&dNZ9CU_h2Hh~LTyXf<6Z z>_e0vKh=sEOxTLaKQyq(qe=zod}tf-ic_bbjVnlIJ9+xofjw@$UmdHe+SitS6C8AL zDlK3SFoW(uL~e3hBDJgn+EkGI9Oq&>zAs*UUB)H9Mt_x{E*}rg%ak@0vztm$ftTAy z7UnM8{*;v(%iBa<5J9;gSe)o`G*?orc$i~etv3V;opB4A>bmZnlP`?Cp-gXXu6W_9?x2f7P`PAL7#W*kP0p4iZz9(mK^u}t+_isjVU&rst zS%2w0%#$=n@E@Gc7ChFB@PUnJ6?#ytyVnHBNC9LKcv@X;EbkBzrf@u-`i|PK`H2_O z>oYXNGE>6aZ3*jI{dg(Iicfv_IcI3FgYHebHws z()tL`G)@PZU*a^IZ@QK(AIp>Bx^P9es$NkdFOvV=0)vJMX=CAIaZ?s*lP=JD%T z%XX2Rbz|?l%*mgZ(mGzx97J6_jkC5ieYzGLmi9nu{|krBm>yLAzdF=#mj^FpBAGRo z7*QvzkuHQ+FNZH;@+w2tKrd`EeCd0iYb(5Ts=HU+vMO5DL7WtdkaOT~wOf6*rFOHz ziJtXmtZ@Ayr+ao$5Z=u1Ie0vA1k+G{#3ryvwSlOed-_aMT`!TMO@R&6;-tE^7!gmB z9npKLlJ}BGd)5{ddp8X)-&IC;a0chE!XMskSy;&9gC=P;$yhJ0tSTVTM9Yil&sS1) zI^8tG7Xw16JkW&Xl^*q&gCZF_zk8c9KYYD3vr2H8D&ZqbmNhZbqxPL+PF&D(iPTnr zR9S1|s;<0Nd|^;t(1bo)(-OZSlqVPxGgm!r{(fIs9wg_KO|52Y9&j988o|2@7irb;I00qAQG_kk)Y|b8y zp@;`kT~6-lrR*)EY=_gaM_NlR@@(KbNK;|ML08a3ukHh99}O>Qv7Qe6U}l9^>TCBA zV8xqXxtik#`OXM#OjjcJA~)Z@bDvEU&QTy9q0c{mbIZp7S+GpoNasjmai#RWfSO7f z4X0t<}X!< zZbfQ*ajNDVOz>3gMx@H`kBO7oSv-3zBuvTs20#JGKT$8EZax&?UfML>t6udlHU(fO zhPz#n>8SCdNCs+_O5eOPB6C9R8Zu|*{YUMi|_?&=YurxVP_zR=Y;@@E3V)w(p%- zsuY(_;l*A}J`ECI)|5ndbin4FxKJC}BPw>G55phPwP;lt)h%Ydt?7+T z*zgChgECX-RO(%#fz__{2KfarPBh~zvHtwmKbC+D)h^Jy=`j_}SaL!WZA#uca8+Ly z@!YRcjK;RUaeWupv7NAeFK9C^7o7K&bjBbl@)m^3;b;&TLFp+8d-S;NxnQzNU@!I2 z_9X-{%&_$hrpnA7kd@dxx)!Sr2~?cmbv--DKW#GBz_)6}T1U6)NDsp_s1}vE-R(_e zqqcb{5+09tn(1mj|9MF* z+jlN@*#nbln>9I${8Ldq6qKHRcycXP6C$fL!8=pg9$Aa5wY&Dl+rYxdPA~4kD-di> z@{D_vbJE9j&eB^NH>E$bh{{>Qc7jjoH%6fYLd#xsaKgv0cXctAHrl0#d;Yw_@VzH+ z<*|^fJ09BiovKoTV{7?mo3^_VrTg@{KqpDCOpMOxSm)RsU6z@bAlc1}{f9fXNNfwN zTyiw9byiUx{IQ|S7S1xPpHHQQ@CQ zfc~sb#ux;5k2+VIh+I0*b)qmw7-`V;6+qynOa`IEwEe!kIR>@nea|@u$b*_{8PgL( z;`$J{7q3n;d${sZ7;ng^w8K_l&}QJPe$z13R!ncS(w28lC3xEZ&4=B2jsf%7V_y5f zFrO6X{6i|CsYV@d08E*eSm49w>L9=>jK3Ptw0v}t!mNe#=Tx)7hYkKCEA=|D%))Ie zp=$sZG8hx`CM)9^!&}Gdn@I?T!Nld;Y*@x{fi(HnQ?Vh=b(185ud5SqirIgk`GgND=Ft zs)ek7y;8M=ytpNYE2j%1=W5EI$(RY*W*ZuMQ%d*zG<10&+hdNp&y#leDn$-wQ07Bn zg{>d~Q7(P;dWI=V%zP{!>I~6UKTX-Qip`Lt41hdmMVT>Vq_@owNPp`q9bpW5zwXYJ zx3RojKsu${iROZ^`%}7Sq`{1nm*0OL75eE<1{H|)@H;@Ijt;CkUW7i;vzBFKbFR_! z%Y;08Y=Tnq3c(k7`$=bhZ5-_h0*#0ctU6tU=DR@*l0-5&?hiZktZ5It0Jvu{9UXb5 z@8p}~jt_uB1#vFL3ox1DJBodo6a5NKK4mdCFyi{OE#HwUpf4#EQbiN% zB4A?I34918gS!6wGOGnu^ydHoXR^r_AGR~xy0YdJ7IzQ)jjnDCa+2Q6iM%g|L!ZKS zenFf!NCJwV^wwkZQ;^&oA?=EkOGqrvF{Nx>Z9l}Wk|e`xEF$l~0obwoA>xb9333$w zl?P%rlaE!=#X&rXv}X|Q)!5_xpo92T`NQf1h)%KA3aoO4*3%pzhmcf~pgP3vdfEDM zsLHr#kFUis`S)guxDgc(=crVYxSEltxG@FW53)4&kc!dfo`|_ zH_<_KvEOweha5~rdp7tc8K{&tR5k1|sEV|u&`0U){|5cXdGQ+2smEg{0E`z8V}qS# z1<)40N~_+xxKm5Sy9Bu)i@vH}M6nPSH6Km;a|j`G`FJfEvGuzFj_A)Kdm?5P#S9{@{DG7+}_!5GZ> zvTg%aF^VT}jhbZ+I%O{?ql>>M_4O~^dUtnV(hXe)1auvstTN!JfxQUab8k;F$U6&s z(>^k1*YTWifKoTCD5Y{LuJpaessD{V(v9f!qSWes60=PL?K+7z&)t(5W>6`EffLu_ zcX6oom{??xAk1lQ3bIE5fb$LfYeRA5+X1c>vZqeMm=cr;h#<+xv$EtUQh7=nRshJa zrex4CVmH*Pd<0CvP(VXfCpI`=Nc(KI>=qaRE}jmW&GPKTN1qZf(8aK|4(!rKVeQvt zdpu~1EMW`^SjjBDD|HY$urWwU7<%)Op7`JTs$jRbdcOO`m>e3atejs53q76Dh93R+J z%*!05+%7Yeo%U4#r_BA@!wo%Ei{oi>7Adk_h+=nOWTRUrqPSScz*Au}H$az++yb1Y zRhy2+Vwt%WcO)z|itmd+nmTSAXYYTWAsisx?<{Ny%!Yr_7~TYiU??m(tDS6=W> z*y3wMX$f)kN~wOxiZVpJ?XrcRsXpVa-v?k z1mPsQ!(E>b<@hUQ0e}Qqi=RsmIr^_8AcBmnEfy`75)^0L58e#k$Qur|jH){5_q z@#9r_^4ZVL?j*_a@w5XOc_VTC)nix4zL=E+D~iYAhC|zpJGdeJMPV)~|C1$S$(#zZ z#7<1L+?DGE<%Mkx>!-+BC&>B=8!wM&>G6mw)+R0=10^Px2^TUV5c8TH{+n@6y?LDh z$MNes!{`uzE?nnY*(3?jW~m%^Y$rwuVh6d)AaZ!k=Tyi&7KqCSO@Tfm8;npy6ODSC zC>e{g)F+;fU=}01W_iOJdN{$0GDoj{d0WZsz+tSl--!6{+u)miYX!@}DN}YK*w#=5 z5`hU}EbT!PVcFnvzVb6VT2FQ!e@9f+*8$tPvgSI&K`PEk!>#VgxQDmB zvy6UJd>rsQEb-x1HKRk->YX}#Lo$qrhTk~Ix}*u=;<252Y{oRlIc=?dR{CX7m7tl` zY39&gu8BgbA(!YzI{FYjM9E$Ok}@K+qXa6d%ot{ zK~*5)J-<%O$hf+YVvzz8WT~F@EV*8OAe8G~lNaZr^5s&cvY)xRd%{Li z8VB2fr0wC6m#paf7dZ5Q$GzmjT2QMh_P^E|ydUHHSYOmKxU7`(d)ha1^M6#;z`thftHH+*zEg_ zsa@zfVYaX#OLfCaoLxiLKUZGz)j;XmJo=)}k?;`qxftl>ZB zK>L^_<(8|CE)cJ=fXI}!PYPNgE}OqldW^j1xqSjZW*r>14llp* zTLE2+EZs*J{@E3DK?x#`Ur7|`{mW>%cM>kn+(^+4r^hpAOUryl>RNXplRQZSX6DO20NZLqQ;nMLSVAqZt+=L5A>SekI+5{2aNE zz!Z1pAA#rkl7f1uZ7-a6KTm#ho3jJ`ZxHWX4SgrWkndB=9XL?h_(wEUs+*;jx3Uap zHOY#=ERaOyvSN>n?I_Kq3Q+*E%pZEDWR^|tDm5AD;hbqwM3C`TXcbLD{;RE6emY+g zj(f9ktB?nd83eLmbYCti-GLu-(Nhr~Vb6NciDe68lKOA`P7jV_ZP%%{0w?EJYws-^ zn3_w{W$^r2lFq+d*=yfma-Bg!7>f%rAJ!Pm!fnkryKkn&Qk!WEgQMT=$esW&uoEYM z8XTjs$Ou9L%*|)ZCu$zKFgVv#lKPWOsMn@Fiw``LvEa{w$+Ucv;;fu6TsnVmQU#y- zEm6T-1Ry}?^~ewTF@+)x`F1+(Q^I3;+!Rr~UXc#1C_R{*7@^-vN_vuDLwo3ETMH3w zs9QkI6iqr5_6EsfDnCC%nSQ?2oI%zYLZ~>=NB)`4$V@t{Ls~H|V{OcoHB$ zCZd-`nYs*vmZ|6P)_8!`1!cW6rzH{|vcQL=yqva=r71RYLQV~djQFMKcIMp=iG9_* zp7VWQfU~T=iIrITRb8^VfaCr}A^LtVkRiKX!1yyXr1)ih*VV&YNs|uv(fQSxk=lQxaFp7Gjt>s6i7(jF8C57mk^-AKu!B z4#_vTN)!fRM9mldY8|!X!P_Zv7GNt!T@5?M$HK_r{^6%O86z}dH`nF{&7{)~OTGpU zmc&W&G3LE=17?9Oh9}Kcd#~REvz_3EwSRm;d%Y)5^5#FF|3)sl)W7|6kbX+WO&1%Znk`9y?a#m8YPNl$pHe#=c6CCc?%?{c@G z0~e3Z0GA%t#y}^DU)ghak-`4@eMsa#CTPGe>rL=AW*C=fWa&i2Skw^HUXf@nT-;#k zZmhayip~<5Kk|zIQ>9eBrgggqZ`rQP?pjGG?@X`}pEa}WE7ts7MP~ z%3NqO8l3S#yv0kH+lGr2^+<3`qF?E!aDvP8utRU4rzPym7}>OYgxhYdO%06>HYajm z0)n&#hrKHbOj$B6LJ_EGx`V42c=?(r)1D^5HnV*F3}v@;nfWsBZ3R^gC|c$5ZPha8 z58pC!c=`;Y7_WG-(Yc?IeqOd({|pJJIwIPgH)tAeG7{aWy9YE@W-2spHlK``8uaE`}e0+mUHN6zM&&bdG<2|$j8X9HyBZwIekN#tE9Wbm^fwx;g z>lmFcg}+)G=Lz+zn2vBRa%)(Nt)1r7;|S^TkBJxPnVNeG7otYGM_2usT>MFiqrT1G lYGo|{A1?#>F?CZr;C&ONyuPba_klZ4kd39i1r1M3_&=Trn$G|L From 47877c5bc259f6202d31023f0b274898a33f5c25 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Sat, 26 Jun 2021 21:34:01 +0200 Subject: [PATCH 14/18] Dockerfile: revert clang installation --- Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index fc8ff28ba9c..61bb0c84cf9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,7 +15,6 @@ RUN apt-get update && apt-get install --no-install-recommends -y \ bison \ build-essential \ check \ - clang \ cmake \ curl \ cython \ @@ -34,7 +33,6 @@ RUN apt-get update && apt-get install --no-install-recommends -y \ jq \ libbz2-dev \ libc6-i386 \ - libclang-dev \ libcppunit-dev \ libffi-dev \ libgc-dev \ From 2d8d617e9a28fc514c4b4b5b2bbc4bd7665b32f7 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Sun, 27 Jun 2021 00:37:48 +0200 Subject: [PATCH 15/18] activate rust toolchain --- mk/spksrc.cross-rust.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mk/spksrc.cross-rust.mk b/mk/spksrc.cross-rust.mk index 1cec9cdd1bc..ee12f3f0cbf 100644 --- a/mk/spksrc.cross-rust.mk +++ b/mk/spksrc.cross-rust.mk @@ -82,12 +82,13 @@ install_rustup: CARGO_HOME=$(CARGO_HOME_PATH) sh -s -- -y else install_rustup: - @echo " ==> rustup alredy installed" ; + @echo " ==> rustup already installed" ; endif install_rust_toolchain: install_rustup @echo " ==> install rust toolchain [$(RUST_TOOLCHAIN)]" ; \ env $(ENV) rustup toolchain install $(RUST_TOOLCHAIN) ; + env $(ENV) rustup default $(RUST_TOOLCHAIN) ; # Install rust target on demand: install_rust_target: install_rust_toolchain From 04559ec2609d680f714b4cde0f9e962dd4d0df28 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Sun, 27 Jun 2021 02:01:15 +0200 Subject: [PATCH 16/18] update synocli-file --- spk/synocli-file/Makefile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/spk/synocli-file/Makefile b/spk/synocli-file/Makefile index 03c7435089c..2289cf85307 100644 --- a/spk/synocli-file/Makefile +++ b/spk/synocli-file/Makefile @@ -1,13 +1,13 @@ SPK_NAME = synocli-file -SPK_VERS = 2.2 -SPK_REV = 9 +SPK_VERS = 2.3 +SPK_REV = 10 SPK_ICON = src/synocli-file.png DEPENDS = cross/less cross/tree cross/ncdu cross/jdupes cross/rhash cross/mc cross/nano cross/file DEPENDS += cross/detox cross/pcre2 DEPENDS += cross/zstd cross/lzip cross/plzip DEPENDS += cross/fdupes -OPTIONAL_DEPENDS = cross/rmlint cross/rnm cross/micro cross/fzf +OPTIONAL_DEPENDS = cross/rmlint cross/rnm cross/micro cross/fzf cross/ripgrep MAINTAINER = SynoCommunity DISPLAY_NAME = SynoCli File Tools @@ -34,19 +34,19 @@ DEPENDS += cross/micro cross/fzf OPTIONAL_DESC := $(OPTIONAL_DESC)", micro (editor), fzf (fuzzy finder)" endif -ifneq ($(findstring $(ARCH), powerpc ppc824x ppc853x ppc854x hi3535),$(ARCH)) +ifneq ($(findstring $(ARCH), $(OLD_PPC_ARCHS)),$(ARCH)) DEPENDS += cross/ripgrep OPTIONAL_DESC := $(OPTIONAL_DESC)", rg \(ripgrep\)" endif # activate additional features for pcre2grep and pcre2test -PCRE2_CLI_FULL=1 +PCRE2_CLI_FULL = 1 export PCRE2_CLI_FULL DESCRIPTION = "SynoCli File Tools provides a set of small command-line utilities: less, tree, ncdu, jdupes, fdupes, rhash, mc \(midnight commander\), nano, file, detox, pcre2, zstd, lzip, plzip, detox$(OPTIONAL_DESC)." STARTABLE = no -CHANGELOG = "1. Add micro (editor)
2. Add Lzip and Plzip
3. Add fzf (fuzzy finder)
4. Update mc to version 4.8.26
Fix rmlint and zstd." +CHANGELOG = "1. Add rg (ripgrep)." HOMEPAGE = https://github.com/SynoCommunity/spksrc/wiki/FAQ-SynoCliFile LICENSE = Each tool is licensed under it's respective license. From 809a316316e7d1e31a0385fe1e2b90082639b8ac Mon Sep 17 00:00:00 2001 From: hgy59 Date: Mon, 28 Jun 2021 07:10:53 +0200 Subject: [PATCH 17/18] update ripgrep to v13.0.0 --- cross/ripgrep/Makefile | 2 +- cross/ripgrep/digests | 6 +++--- diyspk/ripgrep/Makefile | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cross/ripgrep/Makefile b/cross/ripgrep/Makefile index 5ebc3474ed6..dba8cd72e6c 100644 --- a/cross/ripgrep/Makefile +++ b/cross/ripgrep/Makefile @@ -1,5 +1,5 @@ PKG_NAME = ripgrep -PKG_VERS = 12.0.1 +PKG_VERS = 13.0.0 PKG_EXT = tar.gz PKG_DIST_NAME = $(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://github.com/BurntSushi/ripgrep/archive diff --git a/cross/ripgrep/digests b/cross/ripgrep/digests index 25e0d998b70..fa235d32fb2 100644 --- a/cross/ripgrep/digests +++ b/cross/ripgrep/digests @@ -1,3 +1,3 @@ -ripgrep-12.0.1.tar.gz SHA1 95093ceece1b955da0dca096860b5a39a8520a2e -ripgrep-12.0.1.tar.gz SHA256 5be34aa77a36ac9d8f1297a0d97069e4653e03f61c67d192cee32944cd2b6329 -ripgrep-12.0.1.tar.gz MD5 d2a2dd964b67551876ecc11b1a8015ff +ripgrep-13.0.0.tar.gz SHA1 1e67603fbc5dd955d0f65fb6ea3c380145fbcb01 +ripgrep-13.0.0.tar.gz SHA256 0fb17aaf285b3eee8ddab17b833af1e190d73de317ff9648751ab0660d763ed2 +ripgrep-13.0.0.tar.gz MD5 3080265a3ccc09bdc0c81527b09afa15 diff --git a/diyspk/ripgrep/Makefile b/diyspk/ripgrep/Makefile index 05689cfdf6f..15125af5151 100644 --- a/diyspk/ripgrep/Makefile +++ b/diyspk/ripgrep/Makefile @@ -1,5 +1,5 @@ SPK_NAME = ripgrep -SPK_VERS = 12.0.1 +SPK_VERS = 13.0.0 SPK_REV = 1 SPK_ICON = src/ripgrep.png From 3920949fc79f9a81279ce5fda8f813ae1897d2e8 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Mon, 28 Jun 2021 07:53:44 +0200 Subject: [PATCH 18/18] build with pcre2 feature --- cross/ripgrep/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cross/ripgrep/Makefile b/cross/ripgrep/Makefile index dba8cd72e6c..0d460626ae4 100644 --- a/cross/ripgrep/Makefile +++ b/cross/ripgrep/Makefile @@ -6,6 +6,8 @@ PKG_DIST_SITE = https://github.com/BurntSushi/ripgrep/archive PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIR = $(PKG_NAME)-$(PKG_VERS) +DEPENDS = + # powerpc archs (except qoriq) are not supported UNSUPPORTED_ARCHS += $(OLD_PPC_ARCHS) @@ -13,4 +15,6 @@ HOMEPAGE = https://github.com/BurntSushi/ripgrep COMMENT = ripgrep recursively searches directories for a regex pattern LICENSE = public domain/Unlicense +CARGO_BUILD_ARGS += --features 'pcre2' + include ../../mk/spksrc.cross-rust.mk