From 168a9ec0fb1b47c3602804b8af26f28b207a953d Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Thu, 7 Jan 2021 12:35:54 -0500 Subject: [PATCH] Moved the appimage project into the main tree --- appimage/.gitignore | 2 + appimage/build_appimage.sh | 26 +++++++++ appimage/citadel.AppDir/.DirIcon | 1 + appimage/citadel.AppDir/AppRun | 5 ++ appimage/citadel.AppDir/citadel.desktop | 8 +++ appimage/citadel.AppDir/citadel.png | Bin 0 -> 926 bytes appimage/citadel.AppDir/ctdlvisor | Bin 0 -> 8996 bytes appimage/citadel.AppDir/ctdlvisor.c | 73 ++++++++++++++++++++++++ 8 files changed, 115 insertions(+) create mode 100644 appimage/.gitignore create mode 100755 appimage/build_appimage.sh create mode 120000 appimage/citadel.AppDir/.DirIcon create mode 100755 appimage/citadel.AppDir/AppRun create mode 100644 appimage/citadel.AppDir/citadel.desktop create mode 100644 appimage/citadel.AppDir/citadel.png create mode 100755 appimage/citadel.AppDir/ctdlvisor create mode 100644 appimage/citadel.AppDir/ctdlvisor.c diff --git a/appimage/.gitignore b/appimage/.gitignore new file mode 100644 index 000000000..8a7f3512c --- /dev/null +++ b/appimage/.gitignore @@ -0,0 +1,2 @@ +citadel.AppDir/usr +Citadel-x86_64.AppImage diff --git a/appimage/build_appimage.sh b/appimage/build_appimage.sh new file mode 100755 index 000000000..1fcc7cea7 --- /dev/null +++ b/appimage/build_appimage.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +CTDLROOT=../citadel + +rm -frv citadel.AppDir/usr +mkdir -p citadel.AppDir/usr/bin +mkdir -p citadel.AppDir/usr/lib + +pushd citadel.AppDir +cc ctdlvisor.c -o ctdlvisor || exit 1 +popd + +for bin in $CTDLROOT/citadel/citserver $CTDLROOT/webcit/webcit +do + cp -v $bin citadel.AppDir/usr/bin/ + for x in `ldd $bin | awk ' { print $3 } ' | grep -v -e '^$' | grep -v 'libc.so' | grep -v 'libpthread.so' | grep -v 'libresolv.so'` + do + cp -v -L $x citadel.AppDir/usr/lib/ + done +done +ldconfig -v citadel.AppDir/usr/lib + +ARCH=x86_64 appimagetool citadel.AppDir/ + +# Hint: do this on your build server first! +# apt-get install make build-essential autoconf zlib1g-dev libldap2-dev libssl-dev gettext libical-dev libexpat1-dev libcurl4-openssl-dev diff --git a/appimage/citadel.AppDir/.DirIcon b/appimage/citadel.AppDir/.DirIcon new file mode 120000 index 000000000..98ba0b277 --- /dev/null +++ b/appimage/citadel.AppDir/.DirIcon @@ -0,0 +1 @@ +citadel.png \ No newline at end of file diff --git a/appimage/citadel.AppDir/AppRun b/appimage/citadel.AppDir/AppRun new file mode 100755 index 000000000..83c86a45b --- /dev/null +++ b/appimage/citadel.AppDir/AppRun @@ -0,0 +1,5 @@ +#!/bin/bash + +export LD_LIBRARY_PATH=$APPDIR/usr/lib +export PATH=$APPDIR/usr/bin +exec $APPDIR/ctdlvisor diff --git a/appimage/citadel.AppDir/citadel.desktop b/appimage/citadel.AppDir/citadel.desktop new file mode 100644 index 000000000..4560c31dc --- /dev/null +++ b/appimage/citadel.AppDir/citadel.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Categories=Network +Terminal=true +Exec=AppRun +Name=Citadel +Icon=citadel diff --git a/appimage/citadel.AppDir/citadel.png b/appimage/citadel.AppDir/citadel.png new file mode 100644 index 0000000000000000000000000000000000000000..dbabbb0fd0b71048efa81319f0ec611165a0e0fb GIT binary patch literal 926 zcmV;P17ZA$P)Dl|;;uO8=>MZ;0^<4K}d+)W@sWP)FvA4Hpu)DkaE2w^S zdP65YKR?^Y$A|s&A2q2hPbR?5&W>$wZ`=F(d*bcw&0bz!DuRA$tH0{$nEuCw(*u;t zWqW#hve(zwl=3?a4h~vtYipvpx!LCD=hG+j_V!v+QkK1FWyFr!O8KAOGPy0cvY&(`QXhO(Gu4w^b9T2UuHM zvxkQVCyI(ffdbUk)ukb(%_p}&?S_ViguVwkaC(51l@+_czjvZ228$>FS4SHf8ygd` z4GINv;Pe2?%gc6mcjrV=3>Kkq3=oBRVgNaCW&+&a-a1hfgGE%7drn)UP(%zMM<&4H z;-cN$+&EDbgGD&6(l>xtQVyIRfOq)%`r46%hw$?9(k?D8oEWsy0NheJaC(5bxjDPK zx^gJq)z$TBp_7x7RD`S0YxfmQLeYWK1I*6O`V}4@AAecw^z_sVO-xMq@%Xy&`o+0| ztB)gz(*w-R%-H$)d7`_!J9Xgw-rCwKoS0&v@$vDDR1YSfF#r#=9DvgUOixeS+1Xh_ z9auII#7;%T0Gjd2r9XuMU3%=;$aBJ0OUi z^5mCfq;Wln0YDDG=>bMZNA2+NFp*CjJLRdbudgV89DvgUjEs!f!NEZy20#)!<%t5q z6fH_|qLKq}dVt~KVcXx|Pvq0aPI=-8e6|q9ka7S{4=^+|{20)LJ<^XTBS(-8Tbl00H+7&@9($O)z!3J28y@0w|`oQm69Ut zdMgQ_`nYgr0xT>nq`4nrQXTtAaAg7v3=Eh?f&Kb#qN~U00e~M9eSLjtkyu(3x*!#W#dPgrl}GLjUPz-LR~d2=~_`uLs~)Gv@teSXrP1-trJ-lZ3XXn&poew zePc7EY1$u-<@=uZc|XoM?>!&)obyO1vcv6i2~KWtmmp4S&?IC%g?MGPWEIvURtQbp zEY^tzAocibQbN?qFc2rlNSF)fZGQ)I2)niIgwj-A8+Lc|qvSWHtRg5XOkJ?86sPY$eYv732h=_jq zEK|~@wC`OrLHWfMk_FXdhH1ot1yi=W8+KIB&zpQoaZr_4D=wE+`?_ ziH=k2LzH7|~p#ydM zGw#^cKy2{d=gF4;$bRnB4$U=Hw5dMT@EdF3+iT!^f&1}yrcMCW{8M+VhTl>HzoQ0z zZ4F%DJ;W*OTZA#4G{scj%!#o~cE6a)Ce!8^P$Qn2661zxqz{OLv7|YbOo&{{Fs6jA zleL~RV_8$5j3v`R#wRmrh3H~uWT3ZC-yGN+xE@!{W1D2(w&7~1N|O;A-po!w!!sW?g`cQD*6bJIV{>Nxd|ZO(o6gykkS*Sxg-UUQ ziD&D24LRZ`NNM3x5oyDN#8b!?E=qoscna0RoaDblJcVfC70C}0PoY^jCHY;%Q%Dw0 zNWPbN3dO<^$=^vlgMA^W#ul9BW0f#SwCiZ=oc>zFFXvB*7af`2TDHh zB7O5$J}njtp{q0Bzbf*9ptSs16zx8f#N!u}c+Ap63g%ye@+`fu`KOV4B6Rgv=Sq%V zuHxt*IeLT~JxY!qFF6`1Ioh$zQKE{YXKFdRzU1hWPaHL}s(cL^TL>-9J_ir;hoD1o zeW_HD$AQewl5AMX&X;8SN%k9(-A%INp+)QUzyX{V=N|@&&^)39xOU zrF@H3jVEQJmaO1qA*O)077X~AMLfm)UBJcyt?Q2xC&x?hzF?skymz2*B{(!t_+2m> zIliI2-j6PHyo2aHk=x$w`cwGqCmtG+^Tt)w@z_V^&Fmvmct29O(hncSwQq-K&bh){ zKghoyo;lz2-QnQ(g2TZFg8I3!a+x1v{K~Nn4I0WW%zYgbo%vk0GnI+QQl0Un8A})` z(J{SMAfGd`2aK#W|N8F`9dR)l%T0*R(PX+)=H$%m-zp;gIws%2;NboGzF;)$kDx!{Nyv_M z`tGLGrsQ($gJ=0aJ}qWQe$uTGDed{@JQmO2Zl~QA&)-@PLYLA?i-HFE9=mSY6 zd|puEF?d;W<#~<21+Q25be$%1jE^Xu>&@lyHzD(wHf4J>rH|=T@*L00ir=W@s<{6- z;eD*LpcmD9eO1xd6#c!T?y+RXdA13iK6 zj?H<=bsg^N4s7ZUbl+y-LIiS$Ce7F=sF}6s1n02DF|t!4kj|J!AlN(5VaCQ4H=fQ1 zM)OJRP_f?$5H~?9Z6I+d4SyCjvz7!)axR%kS1>wcStAuA1C^UfnIe!(W1AH)jcGi` zz(AHs#LSoo7!&$fHa2PK6A9QdXIbd6Y&Letvf%uKaj3z2Y%&=~(HS_zBOpt$JdWma zA`s6^P8w;GBlq7?8i&;9xWD(fHE`u~7#@cb#Dn`M^It)x5r4Lix;1d+a}K}c%8$Bo zR_40!wA-6*P2#3r9Nj10u7-iX>$MLy#bWpY@pT zhn(gT=6OERl)YcsJL|7t@enek%Jw{ejVOC=CztPR|51lM&xg~>p65@pr!~T9{}eEa z3Du7huOD(p3ZB;mDa1p$WmXiBv)i9g^Un!YVfpP?(k`D%_!Rc6!(MC9q(oB{a+ekc z%Yf}HPKX~NV=tfAyM8s{^Ssac&ibEH_8k9xYQ5a23}0YFMVtYZA3$KY7wY?i z56~vqP*JvHy6CWt7{aSNiU)#Otw6X?95FJ?PPMo@#ib;Pu6B z#7I@VS@1kx>1SnW{;tGV37(fL@s`rPQYG#cJdal5t%B#rO59hv7pcTo z3$0nRLo)Bd2|UkJcA-aHQ`&!2;%hOVjMyQW_lRq84^$1mu5`|AH}VMV8hCu$1Rm^4 zc--1x^oAQS4y*Zhu8P*UsuO>w;aHJq&2`~)!C8MA9&XVhrqp`JMgfJNa^OLQUvl90 z0e9Kz$>U>8;>+WCT=@}=8gk|I9I~z|@8vY`YVD$Os^RCQpVi{TN)5SkdK1}daUhLq ze*Pj&*DUJ~f0KTezxO4j@9bAAQBhZw_kIiTHHbf*j#J`krc2@ys(6He`zsKOiAj8U z|4G&Ga~QY}{mt30j!FF%aX`J70aexy6yD*$Pf2|FIDJv#%PV@O2L4CjR3B&me^2VS zh*?Lui@^QM-3t!_xZ2$&rX1tNM>xJPc;2W}w(EgY{OMYPk|Cc$bOQIGKOb@U=~nuh zqyKMH`p$UnRQhz^LFtTq;+$0Cim{OxaKDY`Y`%v6GVP>*9J(iyq*y~QEa8;QIY}wkg8J?>s>9p&%_Ru=^#o0r`+I1)Llaq&FV&in$ ztXHVU%|z-zGMCB9dhZwv?hfgpJ^iS-)e6p67$$_?fB&A~?twmN*(CDfROmY+dwYWs zeeaGP_k^N)G}s#nkvn;}8qeireboi5rrEDl^?~Say&SOU?mh}vG&Y(t1RVfa_ptI# z*I{VL^8xGP_MkC}iv?jZeBEFbYTW@lY@L_BPO+_IdjUB#sp4`NFDIALCt~RYs;dv| zMQszww4Toyh*!Dw6fc1n1yIFH$FYXW%S&fPda6ST2WdM0XhuEgeDQ c7f8|Mo>mb{>khoqQr@#vLh{wh%kxV7-{D=YB>(^b literal 0 HcmV?d00001 diff --git a/appimage/citadel.AppDir/ctdlvisor.c b/appimage/citadel.AppDir/ctdlvisor.c new file mode 100644 index 000000000..b2e6a184f --- /dev/null +++ b/appimage/citadel.AppDir/ctdlvisor.c @@ -0,0 +1,73 @@ +#include +#include +#include +#include + + + + +pid_t start_citadel() { + pid_t pid = fork(); + if (pid == 0) { + execlp("citserver", "citserver", "-x9", "-h/usr/local/citadel", NULL); + exit(1); + } + else { + return(pid); + } +} + + +pid_t start_webcit() { + pid_t pid = fork(); + if (pid == 0) { + execlp("/bin/bash", "bash", "-c", "sleep 7", NULL); + exit(1); + } + else { + return(pid); + } +} + + +pid_t start_webcits() { + pid_t pid = fork(); + if (pid == 0) { + execlp("/bin/bash", "bash", "-c", "sleep 9", NULL); + exit(1); + } + else { + return(pid); + } +} + + + + + +main() { + int status; + pid_t who_exited; + + pid_t citserver_pid = start_citadel(); + //pid_t webcit_pid = start_webcit(); + //pid_t webcits_pid = start_webcits(); + + do { + printf("LD_LIBRARY_PATH = %s\n", getenv("LD_LIBRARY_PATH")); + printf("PATH = %s\n", getenv("PATH")); + + + printf("waiting...\n"); + who_exited = waitpid(-1, &status, 0); + printf("pid=%d exited, status=%d\n", who_exited, status); + + if (who_exited == citserver_pid) citserver_pid = start_citadel(); + //if (who_exited == webcit_pid) webcit_pid = start_webcit(); + //if (who_exited == webcits_pid) webcits_pid = start_webcits(); + + sleep(1); // for sanity + + } while(who_exited >= 0); + exit(0); +} -- 2.30.2