From eee5ca8763bc2a3eb745a7c52a2fa58180d68846 Mon Sep 17 00:00:00 2001 From: Bindea Cristian Date: Mon, 1 Apr 2024 15:15:21 +0300 Subject: [PATCH] ci/kuiper: workflow that build Scopy for Kuiper Signed-off-by: Bindea Cristian --- .github/workflows/kuiperbuild.yml | 37 +++++++++++++++++++++++++ .gitignore | 2 ++ ci/kuiper/AppRun | 13 +++++++++ ci/kuiper/AppRun-armhf | Bin 0 -> 26760 bytes ci/kuiper/cmake_toolchain.cmake | 6 +++-- ci/kuiper/copy-deps.sh | 43 ++++++++++++++++++++++++++++++ ci/kuiper/create_docker_image.sh | 33 +++++++++++++++++++++++ ci/kuiper/create_sysroot.sh | 24 ++++++++++++----- ci/kuiper/docker/Dockerfile | 34 +++++++++++++++++++++++ ci/kuiper/kuiper_build_config.sh | 3 ++- ci/kuiper/kuiper_build_process.sh | 21 ++++----------- ci/kuiper/runtime-armhf | Bin 0 -> 147212 bytes ci/kuiper/scopy.desktop | 10 +++++++ common/src/scopyconfig.cpp | 9 ++++--- core/CMakeLists.txt | 6 ++++- core/src/scopymainwindow.cpp | 4 ++- gui/res/scopy.png | Bin 0 -> 8883 bytes 17 files changed, 215 insertions(+), 30 deletions(-) create mode 100644 .github/workflows/kuiperbuild.yml create mode 100755 ci/kuiper/AppRun create mode 100644 ci/kuiper/AppRun-armhf create mode 100755 ci/kuiper/copy-deps.sh create mode 100755 ci/kuiper/create_docker_image.sh create mode 100644 ci/kuiper/docker/Dockerfile create mode 100644 ci/kuiper/runtime-armhf create mode 100644 ci/kuiper/scopy.desktop create mode 100644 gui/res/scopy.png diff --git a/.github/workflows/kuiperbuild.yml b/.github/workflows/kuiperbuild.yml new file mode 100644 index 0000000000..0bb648fb3b --- /dev/null +++ b/.github/workflows/kuiperbuild.yml @@ -0,0 +1,37 @@ +name: Kuiper Scopy Build + +on: [push, pull_request] + +env: + BUILD_HOST: ubuntu-22.04 + USERNAME: github-actions + +jobs: + + build_scopy_on_ubuntu22: + runs-on: ubuntu-22.04 + container: + image: cristianbindea/scopy2-kuiper:latest + options: --user root + steps: + - uses: actions/checkout@v4 + + - name: Build Scopy + shell: bash + run: | + cd $GITHUB_WORKSPACE + ./ci/kuiper/kuiper_build_process.sh install_packages download_cmake download_crosscompiler move_sysroot build_scopy create_appdir create_appimage move_appimage + + - name: Set short git commit SHA + shell: bash + run: echo "commit_sha=$(git rev-parse --short ${{ github.sha }})" >> "$GITHUB_ENV" + + - name: Upload binaries to release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ github.workspace }}\Scopy.appimage + asset_name: scopy-linux-armhf-${{ env.commit_sha }} + tag: ${{ github.ref }} + overwrite: true + body: "Scopy armhf" \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7e72fec662..a64be503e1 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,8 @@ build/* .vscode/* ci/ubuntu/staging ci/macOS/staging +ci/kuiper/staging +ci/kuiper/docker/sysroot windows/* core/include/scopy-core_config.h core/include/scopy-core_export.h diff --git a/ci/kuiper/AppRun b/ci/kuiper/AppRun new file mode 100755 index 0000000000..b73d926f23 --- /dev/null +++ b/ci/kuiper/AppRun @@ -0,0 +1,13 @@ +#!/bin/bash +set -e +SELF=$(readlink -f "$0") +HERE=${SELF%/*} + +export QT_PLUGIN_PATH=$HERE/usr/plugins +export QT_QPA_PLATFORM_PLUGIN_PATH=$HERE/usr/plugins/platforms +export LD_LIBRARY_PATH=$HERE/usr/lib + +echo LD_LIBRARY_PATH: $LD_LIBRARY_PATH +echo PATH: $PATH +ldd $HERE/usr/bin/scopy +exec $HERE/usr/bin/scopy diff --git a/ci/kuiper/AppRun-armhf b/ci/kuiper/AppRun-armhf new file mode 100644 index 0000000000000000000000000000000000000000..dc56706aad4cb68da265ab98897c6ca46e5d41ad GIT binary patch literal 26760 zcmeHw3wTt;-S?c`&9b==!$k=94G9sEY!Zk_6*Pfm3HJa21EnsT?B)W=X5HODKq}#4 zMWq%gDzCMmmipONE4FG8wcxF_zS!cWeQE1ksF#WoAXt@D(Y(Lk%$d!}imlK0eb4ti z-}7|Bf9HRn|IC@0bDKG=pElcP7>3ZvE=CJd^ZN=>g8X1LejFmDM7TvNWTQkL<&m9( zgwWuE3c+E56FF@)xM4uhayw*|pf$jiAW#mr1Z0V{2SP%ML3QNH)Jt52*i{${_Yemi;T zONT!Bd;Y27`aY250;t;yVD!l<-8Op9O)iI+)0W~br7RDS4;T%&7%&#VQ~>Y*3P~Up zt4xeDbDbFvmmGipwbPj^*Wa~nRpq1|Pkj4K<{z)E8v5X@w+`-qYx}w-r|(>|GIi=7 zrcV2Pd++{l?)uZqZ|xdi{pXXtFTXSWmw&o?$WK~UeWra`^UbM>vWs+uxY-h{?*MU` z;>cfgKk;@F{j!A~3A{|1O0FBfP76)@5f++l_7FfP%H5hkPWqZ8`c4Z?`$sJ_^|vL_ zZAtWpN%V;%dRh{_-4d@GGP8xG7R$R*V(N$VoFqD!M6XGrqe*mj68%OJ{l}zuUPzKZ znMAW+>%{nU-y)CnjYP~udY2}Ula8Uh46{FEiGkt@(9ic%N_|D9;57A7nh?v->HCV_ z;v1k{7XAI8b^q#%)_XZgelO@l@W*k}M_eEdg0`0TLK1xgXgP5q%R>KL3A($y0iqc6 zGw{c;%Xl~sZ2(i<)|fz^;u%8^ZBgdJ&P9cqqI|)YddM$3mh>If{k?jgdgSUetx8G!_rS z6-y6WOhc`qnpF`|yE@ts4~bY!APn~tN@#?6kmc932K==R;Xq@<+K{Mij)cMxBTBPM z@YzhStTZbYjr*Gd4Pj9m4TZ${W>ahR>skWQpf;|FwXmQD;h#}C$B$q`bq%q2C|WsZ zYGZRaR2islWIWZem|2cr_(Q=!JYX_I;h^6yY8x710~RGp5ky^6bGX}T#ysG`hOoaS z7V1$vN{_>7m`vr)Ql5(IyirY`J!8sL|2Pj%oif?byV$>Mm?0J3^OusIe?2)oTmJJu zo{J2Tj=sn7>jw01Xz0xu`S0K{DSIU+t>m_Zoafve4*OQ-m|l<{?qrUM{ch$Mr}r>NxqF!7B>VvL3x#-)`2ZpIGDpQ8 zWsb>nA9GxnJjHx4u9cV%!JNf>m=G^A$92dd<|BkS%-k)+>&$b6IKmt!GFNHAdsA%U zgsbi8LU_ekb$TcaFI_e)-P93vm#B^_@5SytMVrgC9Nhj>h*{@VyrN0SkVQ z1>b4Gw^{Hl7QD@Zw_5Os1+TZ@%Pn}71+TE+Ok&aSrxfSADeeo(ZkqC#prxYgJDM zhSYyr({=VQr@PK>IgQJxj)|L&c5coWxxLO587aQC-mbI1l>GcnMv>?kzRAexa(A5_ zbNcd?M?07Mx^f4>@3P1H*01v#xA!_zlGbmW*kRjljO=x$)bXj;>FW%1oqhE5(auQ& zihOI}?dH=?A3a=ox+~Y)>6+YHGtQUetMGN5-F%uQ9N3sLa*3~XrHZHHl{Q}yWY?Tt zxANDW6WeNreOf)Tb@0!7kI6oeHb!)8+F0uAeeB7V#`q^|KEGt(k+myd&wh2;U5{va zY~#o=t^;iyhG;+R9`pVyV)XG>+!3w+?jO&supi59z2Xtq8N=m9IoXIIFZ-icTqjcP z`&ay9Me3QZuYFITMIOr>Z#&~~<#zP4AMI=%_0S1>?@ztG&lII)_>BCu-j_N>*8XaG z`1lk(WF5|JjXg5z64CL-hLQLky>Vt|ektXDJ7r9u#;I4HI3q4d{qM9B-?Gi}RdqUs z7*|Ze?>}Cd>lL}9eb6uJI(zuk(ax;U^FYFd*lLSm{rdC8K5C!y8Y5rs#KpkvZN632+dgRQ zbF|{PL{7E&c>F)zQ0jA>*zD{&yZzKv6O0_Em!8H!Z%2}+mpilDQf`0wJ^P}U-!m2= z5_mm$iji!EcD?lKGrb;y*LfXjsaumc;BS)O@ z3UQ{$$@aV%zJg!ymCJW z+tBBh^f=D8JB-`+p>KSAa^H%sv(KMADE(Y-`uU)($d~%Tj6q#zcfpURB=v-lp00$a zH=eb4dQZHNe#aM�Hf5(n%icJ5I7b>)^%VW&a)u4|hMC^MzP8LALiKqrF~QRKudp z%eHaABJ!;2(dWEnKK4>Z?|^LQN%{<)+##c1esaFA6Sc9Oq^$g;Q6f5?YvWw;VS8so z*V&HtiIARZZw3B-`$YU6Z||({I{S9}KK#Df-iqJ9v`@tE8|`eBBkiogAKIU6_++JU z52?RvN@>T|Ht%Im`<_1D@f{=gtz|zrwqnH{fDnU^y7C$PEO>%-s|nQ zdFPw?ZINy7%$R$sGu~H3X4e({8viyR>(mo!vfZ=J@g}R;-20$Z=OO?wh4_Rr}f%V`qu_*Q$ns zx2%2qOe5!0=!tDSeyvg`*j_mE5?^llTJOk#RHOxsf{e2zzr zM~`;q-Q)VfU0$^E!KIxU2j_G;UUtq}+G#IxmM`rTqU-FT6J2NX+K*%yVjard!Eyop zi*~=$-@W@Cd(n4}+1%fK7f)T@8s1fCy!lzz`}?5Fdv9lXuUW0$UNf)rZkn>zYd@Sa z>$NKTBiYj<)5QUAZ$p#q4Hj#?Lt0lpkqYm*kGN)C=gr2EoPwwibU9}kBd_xgj<}wF6E+h8ZLs?-@@E0h zzbg*79_v@+$-!)JqUaI(44&tQpV<3JTSsZC>uEl3D0r`PYA;{L+%3M0Ik)+)hrILs zZ+ce^c|0rauw$~wGfEb9I%>ELzC>y~e^=eIObtyj*e=PI)BSTvHeeHP#m5?oEhkyaT)3J+--| zG3X9A$K8RNnoum}?x~li_2xFab!l$gEQMn3+UAyUFd^^u!@EH@ZU;j(@#g3n_o!H! z7!@lV6+;YBfLZP|+(EX)d2=QUm(Iqzn*u9C?pRAS}FYc_^nt{Sw3%W z`Mf#PCMy#>kgF)GEQd(unp@ovF1*~-h*^m`+|`od|ImFQ>-{R^j-Pn#pl{4#z|$91S>!8lJ*VXUS;)D)1%6VHq){S~tpO`kDW z9lj)5dte)08!su0G`7?=gjH9N1OAJL^2^k|a0tFc5r^bUBsfH0A_4!>uNK?+)y@;! zc@<@B=atCVdPwB4N;K}mB?~L3&5>WN z$?@%-H@EWY1v4tAO<7VoZR$Mlw8?xXs^>dSw{Fb5nDsb~T{J3o(dBx6*w@*$-hBMR zuJrHp?-uxX3;eqU{=aE~Z{RuVFaYN;4SdF&0h;e<@K{#9+ri^g`3@J4P33zTJVuqz zk@479(jR@^)y#Lhc-$-Q#t+}YF2j8WugyLKpYO={+!~K*Wx{QVSdQnaP!Y!fc#Mm8 zJwiT@-h=xW;=DKFYnkN$gec!#<1wwwKke#jhFjO?$Q{t@LQY>D$nV0v&L_wj!&go6 z{j;gO4fXzi34AwozQlJ_e2=CRpUY35I`wk*=tb2n;do2oY`mq3HoGtLTcFD;5r!MohX{qQ^mIB7KJF}$9LD1~78!qr)f^oAHf1eEwi`e=jue5g zJ9-76W;a~7!OU*!<$x}j%OunJUCB(zMCNd$;2K=mT`7yuPwcKni{ zNBpErtS9<3{HNTsmgt8tP1*WApms;fQfS-mLDZ6F*TWPWuDhV?A|rJR zu$|72eDIU@BQTsFFU7A&ONRsJr&M>O8PIW_BkoH3E)<=g5zj~~pw8#Sv(kP@oi5`2 z)7RtIDGUPhUlwp~eqEl&80m7-ifCg^KjOv?(wi0#TLz3lbhlEKC0-i9$&%Pk(_# zktBlYhe(VwM!}{&{SyW{UdGm#elNqh)c6T_5nutq2D+aWccBSoJ2>d0H;*Z6kjX9w9mjkSlKZ6QUL-E4hpQ|f zBfQEWKdXj#slsn$d}R`MI-Y?O*V|C(#h*U+bh zoEKr*Pq@|~lZ|r(h-|Vh(SIQ7Z%krIddM4h{{j>8h4;dZ5l_9293OraawZRG>r2HTiTUA~MTSSyUV&q2g_C%cQ9^C+|3 zHhWN57!{)=UNI2Y;KI0?k`gEmn8fmzvVnM#<+D7shurT5z-ywM%KSm2{Rtd8KVb<(!MsW|xHj>|GL4PHAFA!r7Nxm!{ za1jgoA(d|-IhE4;*>^HSrYXMDph( zA0uhU8E?QE#=MW@Sdz<0K1H&cBp+HC2S~0a`9l`;49TC6{4uNWEXkuJe@^9>SpCmH z4lV~W8PN{;HGQ`32RU>F&cs*Zs$dIMZygTlup7V{hI8fcwLnJf!Rh@4AZ}y6Q7l9b z4Q9h&9}RAi%9m}SBj#gtyQ>I|F5Uh^yX}KhpmduDWW+IOYPV~o+gALVZd2)2u(%%H`LJBD@qcuq z_CAG98T3-^y@}rYwTxSyTV!3{%Skga_w5q6PsAR~ri-GOfHe-T`w>OR;kr}xMB zgkLs#t@eJs_I?|^*ZyyK-wvBrdf#_Idw*Da|F!o1CwhPMt9v&OX`%|pV7iTkJT-#H zieso#7m|gpDjSIN$%u2^g*aAs3MV@x8|u70hvx%1n8sY7mRuSKp3?qv>6YF73hjR` zkP(ZasSkkamtX4rpY_YH&^r>rHKNFato$>BS!Y(hQ3tnK2X`lf+hPe$^^W+ztokn4 z9HIATTebJcwD*^_cTOQA_FKHu?|gLNf7Y;^S;yc+)0THw7qccT-3NnV zJP}+2WJFuSsKO?z#8ZMihkOf?3YJyAP@7(>%TgM5L!+J=SG7W86rDTm8Mr~*t!kH> zk03t-H~&f?F5HFO3q8*5IQYhV`#1L*nAdTd$X@_?HsqYrDd()ulT-dy2=XBKttmj4 z$ln3pc<|m#D2x32!Mh4P8zQ8GwJbnZXaQzpk^ea4vmhTL<$6F|D)OI&U@-)RrXiKb zz%iE%PBnRP@YvtTyV}CrYVuZEc&q{S)|)(>t@00n$AG_U@-V3L{{~(Yc>l}ftpSgx z9JazilPAxBY=yyKtbyS5ZU?z}z;6IAe*zGec&1yJFV8aIrC}~$b0j=PphQo@O#zC{ zU8_B9H9cKn3K=KQ8jPtj+0!3PPxYqYI(Ry!J$+z$y20X!Q#?KGO7=7o494^`i>EQb zW$h*bVeNir3K%@)EUc1cRP91+v1mwFOL*E3 z0X_Ll0X;pdJ-u#vs!3Rhe9q7Gv@T&__Fx+r^t4?GqV0%Co=YfWnj?P8>WDrrW!aMbeKGLV9u9xkcy$ts_KEAe=7uZFw7L7TKPLn2gN3j z4mc&!!Az6KX-L{8{Cs_173laMvuR+Noc2wAnZVh>ypiuS?-q0d&M0BtHHoGTaxJwl%?*t%kj z%IueJ&m5AuXkZ^B3#)5w1B5;E^7JdxXW)3+^F(_3m5}3J&O~w1m~sKQIM&Rl)$20B z%#|;*)P9CNGd-Oy3~QMyT{%;-llLzjjFU>Gy{(IPVkehMMHpdU;p4MMF- zln)qPHHeHpCIiJQM&BINub(VAMVH*)V_Y>z)#ai=Gy3&0`Z`Oq@0>D-W#E=x*V2Yc z59szsav(^TY6Ftl7HKw42^J~H!Rf}Lf%G|~TMZXQ!;Ip73m~aVUn1LKSc)j_M{mQ4 z;DFw=(LnPPb>F-ZPt3D#n*wh+Ry*8Jm!K_52GK4T20|I+QHk}@&hhjR&S9Rfy)vMS zWJ3ZOjoMo3b8*jxai^EaHW}01CKz>a#$lrEFf=@ZZ5_^34TnC~lMzNIDeS>YA*-k- z3)@n<87Sfh7=t#k2|e0oe45!Cn@qUPL;#G!)v>}@v_`F?X$aRewgf|k*v{3x4ua3W z>uU?E8{#o@wGCdr*VWXVSL?Du)5lkHSQuXu37KxSp(u+)7PN#tHH;5C53mNnQ_qK6 z+=b9QE`bL_wZJjNqz}c0ZbP#|eKTfH1BM|g?SP^YVrydDBGQPh5=yHj3^b^O*u~Kt ziTi7sqah{aYM!vEIH|e?dnF1Q!h9&mO)GVwurf<%(Z3E?;@ERir*u$em~nxPk!|A{ z!G5VRa+a_;45!=KVzYDOPl}Dt4DDAKafi(wcRLJwhKJZpV(tV_V&wJq6qaqjvTT;a zZjVv>!kNHUdVpnZ8*g9j1{Eij>1mmKMc(F3lk>)mFRDbDw!$T|zp+#n?r|2{TiliQ z3*BZcg#|0d+pFF7VeT=ozm|S4@Qk{cIDK8c9-BuUjuoRXu$GufUx3G|)o zYeBy!c1fJF_k`z46yUhcfo&rWhkeKT2OSvVz}m$J2_7^}o`-o4i`&-!!IYjBE;OE0 zyp17A>@;=}CY#*4ewQizKjcn{0RyQbHz@e#79+%-fuLgX>$pZgg%*xyf;}{T67IW$rYlWb~@H-(gG3%q#2N zdrG>wx6L1`$I`#*mRd|#<|aGr@xmI)mHxO$Y=pCHUgH)!%xsv%u%#{96zJZi=Z7I2 z$xUG4&}#p+alcxs<(Hf3FrDHbwuhZ|n0%ni)i}xdnAV@Ug(Ekc=IbVq=(l2eIF-&Mkjh!m)oKD`rf?uiSB2fQ7ShxtJ9iQB*Op%aSM2uOp|5$vFL@`{?tvyG4jzgQ#`4kxu;R39;tJ zRoF*~F4Q1*PMZBz?=!U=deklw2o|esoXWjqWMnk5wYh0i&H`MotLiKVh8(pxmUV0ZZUMFKyhVlJ3=I|&=DtyL4=uNU zu4+IZ!BIsBvKU@|aV|i6ab^+zW{hn!J~j&FA~9ZS(07GD#yN>X)$TkrJRGgTI<-F) zwTS8MyPQ#Y8HXa#FZ7^A(0T&%VF<4qBEw;4@=y3nkKcme06V8Oguv9(3>h_Yw*? z(;Bphw&CM!pR!>#7ho5W^}GLua6be<^;JBZ`aJ+Bvm+9%WLAQr?ION@H_PC2AxRLK ztxDk|qDIYU$Xg`=|J#6U2UtQ`hqBkJP?+5+(Z$TnM!Z`#;$hjMtJ`JiY%Vl`gAK*{ z64zCuW0g4s2)HjBFt@?vddh{f9G5ETC+Z5A>!3x3dA@HuP2{gVxCqG&fQZK~}u zk!34XYmyuau#0a#Xb>4I<(14l0H=s!iOR^`#Fr^i5E;7+`V_OU;xdZ>v;pyLO2llt zMMV5pO2lKvHZVkGazu=s0hLS5DlJ|Lk`^|xRt^s~8*v`=3KQpn=J6$8Cmpp-6w86O zQMz5s>{ftXtTJ{JxkvFC*g6^5VrI7jlnRi?75@-26?@`- z^0lDbSE5~cKwgx-Dww&|xMH>wU>B`3cYh2AY;GJZjw-gc<+!~8tE0*Rvml;?Vj>y| zC1tau+a^(gu~1qk6{|KPdsCsuk&VUk5PUOd9I{mkU5D%?g)+;K0WR)~jCIGTIfu+9 zW2(|K0Jyp@SccUk_`gFIwRk78QwseU*+l7oaVfIr75XP+wX&$MGh2P3aMl+^bq7$@9YCV3+tEI(x>ML&FT`6t;;cXD9i)k~5kS99nmAhm^xgrWiL*IC zA1AGw1~i{b?q>V2VL&e=dA7{dH@BmgVav)3hGLS!joT08G=&@+Dfu ztP)@stKXKz&^4xBZqk#f7D9d}0%pv%NOTFay#SaUlhHCN%c=7aWWSTD70mcq1{`Bu zHK5vkHY7u&w1U}krKsD)qF4<{NGUS=sZz9|SSni-_d@b>rO1qZ5K?9z01)tD+2v?y zu{zc*@6@r01vs>e0H`}N)oJB*1BWB3tJ~UA^UYAaQQ0t4Hec5V2_<&hBpTsyC_bTV zn7t~|#GKBTRDS{3a4w;7J%G4QoR3~r9nQ@Tuld`++oAYx;N+Iz7hwRE0Gy&#tijod zIG1K&nq{o=35*kjYe8o9B~M8RS_J?DNj4ne2b%`(Ml_eBaX^*%8{IlwIj{9sB)}w z5fI9h)3jFA{3KP&u%?yexNrb(QI6#Nt{rK<<*c1F)@fxahNGHma}bf7n6)F#w{$A9 zEE52&EX8n2<`pp690Q?dwUtcSLUuEs<5$Lul{W#B5Iv~xr6v+!fx`&HO zt7|@o3j#1BGHU?f9;0bDkv4$3m(q^4HdOlU*7`h=K$GuzoxE4e?YEnF3;>Zf<&sX` z>SY1?0{R1Z6Q<`Jt;bcI%K*y(QGlLfw45{A6u@ji1%S5!ivhfaSPtM-U@d_2G$+wN z0R9BfN!x3?osiuH*af&B@LK@wbkgM{``->7PR2TMMb1IMA;1xUp3tpF268dsaKGwuM~0brlkiG6)0 zfOn}CfCYd`z+%8MfKKetHv@RrN?$tB*FAvy02R3X*NI)19hy%btb8p`$}9OY5eYA` zWFAS-cx#8WEkWaL9nzx-THWJvuM?A9$oFG%50s+0k^)^0t9_a5LLuCGfdISk=`$5H=poxFPD;I!eVl38kguu`g?qKxx-7cBB#FY zA6PgcNbBQ|RTAQU&^l@VTh0EX^CW#rUneL0*|Qsu9+(3I=`$MrFc&zqPk zd&~BUTWHE3P~8le(m$N=cY*jAT%A}xU-Un1)|d5Xc~4pDPk%=&H08%Fv>o>ES?sBw zktk1<&%Jdj4UqnaTI2&D;vPvR-Tvhk`B=!=zv+Qr&ZB=lUbxGKo4GV?fM$HlEcP{! za~~#?_OHhuPM(4r9W`x$rhh%2um(loby_0nc0tE*N6J2sBg|E)MtOz z^BsuJ<&psgnWU8c7wj0Q$CI_ zlN<4cA=mNp`={$H`t;A;Rywh@eq^C3e-3np>5ul@fY$AA06xmoJ%0H;)n}9Re+ybC z`r|&c0P5=o&ibB7l4E5?A~Bx+7FxDP5|)enH}~wCWF|L3g+R zKv9w;_kp&4&vsUl{2NJhB#GW+q1~v%_boK*zc-2I(mtIiKaxbhmqc^Rnx6mpJ>Ace zgUlgCr2{+(~#)WVu*yx7w$@`55S{(tNZ&Kl?}AZqa8TL0=$0H4JT|KD&MhTFv3 zQxp@6x75~R5mxu7W&QCcKR%ip<~vY-u-RYN*jycG^at_1qnJO?(uxYhYrb@Mf~@9$Ps*KLy-F@|8c> z%dZ0Wu(Z69l^+AP3f1ZbE9X4l`%QkQYgISj>B_YhRzBWy<29v~qgGv5IcjBzmDA&s z!fK&JPqA!Lc?9GqkgY7JJgV|~jp3boC>jwSd~qz~DVs8* zAReeQDXcT`sQ2UzLE#})ABffCgKlfW@TYRT^_P-WSn9)Xcv}fSWYJI~^%W9nj0=xE zdY(8JjCkZXu|3gd`KfD9*@8J9^owAt@Pz8s)S}eYtfJI44yS>ph8h&u3`fcV4yy2A zUTfm=3F$5nk4GD-@eOeZf}!e`I+zE-b=_n`xVAYVs;-WPR%uFpBiuBS)0`Hd;Fti@;;R$(K3Axtu z0{__jh6t}G2oHd#?&g&qb>{-`luDM%dwxPG&cD3NM<)I8R%fwEGd_L~g~0Ei=%i6@ z)7IZE;WGk4J$SlY+7ng+_^lJ-e0D%61=QG`SMbjJU&w(EC;Uru?}E~O#tdm z0qg;Ta11#0cn7cbwgP9YEQi+^gbd(1QIF|HfY#IBP6_HtLPkBpc8ebG83~6OkeRf< zouIWp-pdj!YSI@?cA0vtFRvjb=*ohp{qY_c{vsQZ^WL05f9h#Tx85U4PqrWLc?jAE zL<#&!;C!;eW6paS{y!thdZd31;1d_>@g8Z}m*~9)x$Z-}SK|MR!hp$RqA$k#27v8C zf4oOpj>j4I0N06ngueo`p1gN)pTGUyg&zIVAFqL3(4)Oh^ug2)AYMcQiFz6*O&Q@M z0DMJ|$u!Z8oj@keO#4d#qH*$9y47ZW;!IlBKS}SqZp4D)tdrJrC+V#(!Q)GI3NvXv zPm-Q-88%B=`is`PJW1~XeBxudc7|NH(R5Q!w}opmwm~KNqt69N{tjT^aXX_<)M4WP zm7#Ick5r(qo~Itvv9QJLh1jcy1DOl{H2}t!1;B8X#}=7Pla}F$K~j7a@V=0JK&OQP K91}|*8vP#' -f 2 | awk '{print $1}') + do + # check if the library exists at that path and if it was processed already + if [ -f "${library}" ] && ! [[ "${LIBS_ARRAY[*]}" =~ "${library}" ]]; then + LIBS_ARRAY+=("${library}") + echo "---NEW: ${library}" + if [ ! -f "${LOCATION}"/"${library##*/}" ]; then + cp --verbose "${library}" "${LOCATION}" + [ -L "${library}" ] && cp --verbose "$(realpath "${library}")" "${LOCATION}" + fi + run_ldd "${library}" + fi + done +} + +for arg in $BINARY; do + run_ldd "${arg}" +done diff --git a/ci/kuiper/create_docker_image.sh b/ci/kuiper/create_docker_image.sh new file mode 100755 index 0000000000..4cf3dc52bd --- /dev/null +++ b/ci/kuiper/create_docker_image.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +set -ex +SRC_DIR=$(git rev-parse --show-toplevel) +source $SRC_DIR/ci/kuiper/kuiper_build_config.sh + +install_packages(){ + sudo apt install docker ... +} + +create_sysroot(){ + $SRC_DIR/ci/kuiper/create_sysroot.sh \ + install_packages \ + download_kuiper \ + install_qemu \ + extract_sysroot \ + configure_sysroot +} + +move_sysroot(){ + sudo mv $SYSROOT $SYSROOT_DOCKER +} + +create_image(){ + pushd ${SRC_DIR}/ci/kuiper/docker + sudo DOCKER_BUILDKIT=0 docker build --tag cristianbindea/scopy2-kuiper . + popd +} + +# install_packages +# create_sysroot +# move_sysroot +create_image diff --git a/ci/kuiper/create_sysroot.sh b/ci/kuiper/create_sysroot.sh index 7bbe4452f1..cb7be3da5b 100755 --- a/ci/kuiper/create_sysroot.sh +++ b/ci/kuiper/create_sysroot.sh @@ -34,14 +34,17 @@ extract_sysroot(){ sudo cp /etc/resolv.conf ${SYSROOT}/etc/resolv.conf sudo umount /mnt/kuiper sudo rm -rf /mnt/kuiper - rm -rf ${STAGING_AREA:?}/${IMAGE_FILE} - rm ${STAGING_AREA}/image*.zip + # rm -rf ${STAGING_AREA:?}/${IMAGE_FILE} + rm -rf ${STAGING_AREA}/image*.zip } configure_sysroot(){ cat << EOF | sudo chroot ${SYSROOT} export DEBIAN_FRONTEND=noninteractive ln -snf /usr/share/zoneinfo/Europe/Bucharest /etc/localtime && echo "Europe/Bucharest" > /etc/timezone +echo "LC_ALL=en_US.UTF-8" | tee -a /etc/environment +echo "LANG=en_US.UTF-8" | tee -a /etc/locale.conf +locale-gen en_US.UTF-8 sed -i 's/#deb-src/deb-src/' /etc/apt/sources.list @@ -73,15 +76,15 @@ rm -rf /usr/lib/arm-linux-gnueabihf/libad9361.so* \ /usr/lib/libad9166.so* \ /usr/lib/pkgconfig/libad9166.pc -apt -y build-dep qt5-qmake libqt5gui5 libqt5webengine-data libqt5webkit5 +apt -y build-dep qtbase5-dev || true apt -y install build-essential gcc g++ gdb-multiarch cmake autoconf automake bison flex git wget pkg-config figlet gawk unzip libsndfile1-dev \ - libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0 gdbserver \ + libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0 gdbserver libspeechd-dev perl \ libgl1-mesa-dev libxcb-composite0-dev libxcb-cursor-dev libxcb-damage0-dev libxcb-xv0-dev \ libxcb-dpms0-dev libxcb-dri2-0-dev libxcb-ewmh-dev libxcb-imdkit-dev libxcb-xvmc0-dev \ libxcb-present-dev libxcb-record0-dev libxcb-res0-dev libxcb-xrm-dev libx11-xcb-dev libxcb-glx0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-xkb-dev libxkbcommon-x11-dev \ libxcb-screensaver0-dev libxcb-util0-dev libxcb-xf86dri0-dev libxcb-xtest0-dev -apt -y install libunwind-dev libsndfile1-dev mesa-utils* mesa-common-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev python libopenal-dev -apt install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev +apt -y install libunwind-dev libsndfile1-dev mesa-utils* mesa-common-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev python libopenal-dev || true +apt -y install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev || true wget https://raw.githubusercontent.com/abhiTronix/raspberry-pi-cross-compilers/master/utils/SSymlinker sed -i 's/sudo//g' SSymlinker @@ -94,7 +97,16 @@ chmod +x SSymlinker ./SSymlinker -s /usr/lib/arm-linux-gnueabihf/crt1.o -d /usr/lib/crt1.o ./SSymlinker -s /usr/lib/arm-linux-gnueabihf/crti.o -d /usr/lib/crti.o EOF +} + +move_sysroot(){ + if [ -d $HOME/sysroot ]; then + mkdir -p $STAGING_AREA + sudo mv $HOME/sysroot $SYSROOT + fi +} +fix_relativelinks(){ pushd ${STAGING_AREA} wget $SYSROOT_RELATIVE_LINKS chmod +x sysroot-relativelinks.py diff --git a/ci/kuiper/docker/Dockerfile b/ci/kuiper/docker/Dockerfile new file mode 100644 index 0000000000..8f8ebc3f42 --- /dev/null +++ b/ci/kuiper/docker/Dockerfile @@ -0,0 +1,34 @@ +# docker build -t cristianbindea/scopy-kuiper:latest + + +FROM --platform=linux/amd64 ubuntu:20.04 +SHELL ["/bin/bash", "-c"] + +ARG USER=runner +ENV DEBIAN_FRONTEND=noninteractive + +ENV TZ=Europe/Bucharest +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone +RUN apt-get update && \ + apt-get -y upgrade && \ + apt-get install -y apt-utils sudo git wget flex bison pkg-config make python3 pip vim + +RUN groupadd -g 1000 -r $USER && \ + useradd -u 1000 -g 1000 --create-home -r $USER + +#Change password +RUN echo "$USER:$USER" | chpasswd + +#Make sudo passwordless +RUN echo "${USER} ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/90-$USER && \ + usermod -aG sudo $USER && \ + usermod -aG plugdev $USER + +USER $USER +ENV SYSROOT_LOCATION=/home/${USER}/sysroot +RUN mkdir -p ${SYSROOT_LOCATION} +COPY sysroot/bin ${SYSROOT_LOCATION}/bin +COPY sysroot/lib ${SYSROOT_LOCATION}/lib +COPY sysroot/usr ${SYSROOT_LOCATION}/usr +COPY scopy2 scopy +WORKDIR /home/${USER}/scopy diff --git a/ci/kuiper/kuiper_build_config.sh b/ci/kuiper/kuiper_build_config.sh index dcc49eade6..7b73862b85 100644 --- a/ci/kuiper/kuiper_build_config.sh +++ b/ci/kuiper/kuiper_build_config.sh @@ -36,6 +36,7 @@ RUNTIME_ARMHF=$SRC_DIR/ci/kuiper/runtime-armhf CMAKE_OPTS=(\ -DCMAKE_SYSROOT="$SYSROOT" \ + -DQT_LOCATION="$QT_LOCATION" -DSTAGING_AREA="$STAGING_AREA" \ -DCMAKE_INSTALL_PREFIX="$SYSROOT" \ -DCMAKE_TOOLCHAIN_FILE="$TOOLCHAIN_FILE" \ @@ -45,7 +46,7 @@ CMAKE_OPTS=(\ CMAKE="$CMAKE_BIN ${CMAKE_OPTS[*]}" -QT_BUILD_LOCATION=$SYSROOT/usr/local/qt5.15 +QT_BUILD_LOCATION=$QT_LOCATION QT_SYSTEM_LOCATION=/usr/local/qt5.15 CROSS_COMPILER=$STAGING_AREA/cross-pi-gcc diff --git a/ci/kuiper/kuiper_build_process.sh b/ci/kuiper/kuiper_build_process.sh index 45ea02c1cb..89bd1b9992 100755 --- a/ci/kuiper/kuiper_build_process.sh +++ b/ci/kuiper/kuiper_build_process.sh @@ -278,13 +278,7 @@ create_appdir(){ EMU_BUILD_FOLDER=$STAGING_AREA/iio-emu/build - PLUGINBASE_DLL=$BUILD_FOLDER/pluginbase - CORE_DLL=$BUILD_FOLDER/core - GUI_DLL=$BUILD_FOLDER/gui - GR_UTIL_DLL=$BUILD_FOLDER/gr-util - IIOUTIL_DLL=$BUILD_FOLDER/iioutil - IIOWIDGETS_DLL=$BUILD_FOLDER/iio-widgets - COMMON_DLL=$BUILD_FOLDER/common + SCOPY_DLL=$(find $BUILD_FOLDER -maxdepth 2 -type f -name "libscopy*") PLUGINS=$BUILD_FOLDER/plugins/plugins REGMAP_XMLS=$BUILD_FOLDER/plugins/regmap/xmls @@ -306,15 +300,7 @@ create_appdir(){ cp $EMU_BUILD_FOLDER/iio-emu $APP_DIR/usr/bin cp $BUILD_FOLDER/scopy $APP_DIR/usr/bin - cp $PLUGINBASE_DLL/libscopy-pluginbase.so $APP_DIR/usr/lib - cp $CORE_DLL/libscopy-core.so $APP_DIR/usr/lib - cp $IIOUTIL_DLL/libscopy-iioutil.so $APP_DIR/usr/lib - cp $IIOWIDGETS_DLL/libscopy-iio-widgets.so $APP_DIR/usr/lib - cp $GUI_DLL/libscopy-gui.so $APP_DIR/usr/lib - cp $GUI_DLL/libscopy-gr-gui.so $APP_DIR/usr/lib - cp $GUI_DLL/libscopy-sigrok-gui.so $APP_DIR/usr/lib - cp $GR_UTIL_DLL/libscopy-gr-util.so $APP_DIR/usr/lib - cp $COMMON_DLL/libscopy-common.so $APP_DIR/usr/lib + cp $SCOPY_DLL $APP_DIR/usr/lib cp -r $PLUGINS $APP_DIR/usr/share mkdir $APP_DIR/usr/share/translations @@ -428,6 +414,9 @@ create_appimage(){ chmod a+x $APP_IMAGE } +move_appimage(){ + mv $APP_IMAGE $SRC_DIR/ +} for arg in $@; do $arg diff --git a/ci/kuiper/runtime-armhf b/ci/kuiper/runtime-armhf new file mode 100644 index 0000000000000000000000000000000000000000..d094f36552a6f89e07232a6f7b232e4a2512b7c0 GIT binary patch literal 147212 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Ϋ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 literal 0 HcmV?d00001 diff --git a/ci/kuiper/scopy.desktop b/ci/kuiper/scopy.desktop new file mode 100644 index 0000000000..705923d28c --- /dev/null +++ b/ci/kuiper/scopy.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Version=1.0 +Icon=scopy +Exec=scopy +Terminal=false +Type=Application +Categories=Science +Name=Scopy +GenericName=Oscilloscope +Comment=A software oscilloscope diff --git a/common/src/scopyconfig.cpp b/common/src/scopyconfig.cpp index bd058a0c66..321e30313a 100644 --- a/common/src/scopyconfig.cpp +++ b/common/src/scopyconfig.cpp @@ -26,8 +26,9 @@ QString scopy::config::localPluginFolderPath() #if defined __APPLE__ return QCoreApplication::applicationDirPath() + "/plugins/plugins"; #endif - - return SCOPY_PLUGIN_BUILD_PATH; + // TODO: a check for ARM + // Quickfix for testing purposes + return QCoreApplication::applicationDirPath() + "/../share/plugins"; } QString scopy::config::defaultTranslationFolderPath() { return SCOPY_TRANSLATION_INSTALL_PATH; } @@ -38,7 +39,9 @@ QString scopy::config::localTranslationFolderPath() return QCoreApplication::applicationDirPath() + "/translations"; #endif - return SCOPY_TRANSLATION_BUILD_PATH; + // TODO: a check for ARM + // Quickfix for testing purposes + return QCoreApplication::applicationDirPath() + "/../share/translations"; } QString scopy::config::preferencesFolderPath() diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 61a83be183..0bfc9ea582 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -34,7 +34,11 @@ endif() option(WITH_PYTHON "Enable Python" ON) if(${WITH_PYTHON}) set(Python_ADDITIONAL_VERSIONS 3) - find_package(Python3 REQUIRED COMPONENTS Interpreter Development) + if(CMAKE_SYSTEM_PROCESSOR MATCHES arm) + find_package(Python3 REQUIRED COMPONENTS Interpreter) + else() + find_package(Python3 REQUIRED COMPONENTS Interpreter Development) + endif() set(PYTHON_VERSION python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}) set(PYTHON_VERSION ${PYTHON_VERSION} PARENT_SCOPE) if(NOT Python3_FOUND) diff --git a/core/src/scopymainwindow.cpp b/core/src/scopymainwindow.cpp index 6404832a38..5d31b807c2 100644 --- a/core/src/scopymainwindow.cpp +++ b/core/src/scopymainwindow.cpp @@ -386,7 +386,9 @@ void ScopyMainWindow::loadDecoders() #if defined __APPLE__ QString path = QCoreApplication::applicationDirPath() + "/decoders"; #else - QString path = "decoders"; + // TODO: a check for ARM + // Quickfix for testing purposes + QString path = QCoreApplication::applicationDirPath() + "/../lib/decoders"; #endif bool success = true; diff --git a/gui/res/scopy.png b/gui/res/scopy.png new file mode 100644 index 0000000000000000000000000000000000000000..e1fdb0e4e845e2fd711c9c2e765dbe1434a5489d GIT binary patch literal 8883 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 literal 0 HcmV?d00001