From 5bfe33f608b495d97c72773433933c1642e421a5 Mon Sep 17 00:00:00 2001 From: David Schweikert Date: Thu, 25 Dec 2025 11:50:37 +0100 Subject: [PATCH] Implement GPG verification of autotools tarballs --- CHANGELOG.md | 1 + ci/build-1-autotools.sh | 40 +++++++++++++++++++++++---------- ci/fping-deps.gpg | Bin 0 -> 15373 bytes ci/update-keyring.sh | 48 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 77 insertions(+), 12 deletions(-) create mode 100644 ci/fping-deps.gpg create mode 100755 ci/update-keyring.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 7560f01..5b78c4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,7 @@ fping 5.5-rc1 (2025-12-21) - Updated autoconf from 2.71 to 2.72 - Updated automake from 1.16.5 to 1.18.1 - Updated libtool from 2.4.6 to 2.5.4 +- Implemented verification of autotools tarballs in Github actions. fping 5.4 (2025-04-19) ====================== diff --git a/ci/build-1-autotools.sh b/ci/build-1-autotools.sh index c72d923..1a4c028 100755 --- a/ci/build-1-autotools.sh +++ b/ci/build-1-autotools.sh @@ -10,8 +10,8 @@ fi # We keep our own list of mirrors because https://ftpmirror.gnu.org is # unreliable (frequent errors from selected mirror). MIRRORS=( - https://mirror.cs.odu.edu/gnu https://mirrors.ocf.berkeley.edu/gnu + https://mirror.cs.odu.edu/gnu https://ftp.gnu.org/gnu ) @@ -21,6 +21,7 @@ LIBTOOL_REL=libtool/libtool-2.5.4.tar.gz PREFIX=$(pwd)/ci/build PATH=$(pwd)/ci/build/bin:$PATH +KEYRING=$(pwd)/ci/fping-deps.gpg if [ ! -d ci ]; then echo "you must run this in the root fping directory" >&2 @@ -30,38 +31,53 @@ fi # remove standard versions sudo apt-get remove -qq autoconf automake autotools-dev libtool +# install dependencies +sudo apt-get install -y gpgv + # prepare build environment cd ci rm -rf build mkdir -p build/src cd build/src -install_release() { - local relpath=$1 - local file=$(basename "$relpath") - local dir="${file%%.tar.*}" - - local success=0 +mirror_fetch() { + local relpath="$1" for mirror in "${MIRRORS[@]}"; do local url="$mirror/$relpath" - if wget -t 3 -O "$file" "$url"; then - success=1 - break + if wget -t 3 "$url"; then + return 0 fi done + return 1 +} + +install_release() { + local relpath="$1" + local file=$(basename "$relpath") + local dir="${file%%.tar.*}" - if [ $success -eq 0 ]; then + if ! mirror_fetch "$relpath"; then echo "Failed to download $relpath from any mirror" >&2 exit 1 fi + if ! mirror_fetch "$relpath.sig"; then + echo "Failed to download $relpath.sig from any mirror" >&2 + exit 1 + fi + + if ! gpgv --keyring "$KEYRING" "$file.sig" "$file"; then + echo "GPG verification failed for $file" + exit 1 + fi + tar xf "$file" ( cd "$dir" ./configure --prefix=$PREFIX make install ) - rm "$file" + rm "$file" "$file.sig" } # autoconf diff --git a/ci/fping-deps.gpg b/ci/fping-deps.gpg new file mode 100644 index 0000000000000000000000000000000000000000..d0b657df99f4ab61c66b6a5ef7f6deaac202bc15 GIT binary patch literal 15373 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

5+H4Afc)#iY~N94=l7 z)%|lM`>Q_kT#bC6IKY~84kN`G618IWtP;ME4b=iwT8BCG(G|_FA0EK^qKy4Fa9dC7oI_zXz71ff#>Rel;LfR)H`K zdHPOe8&GY?WCUeNDIqQq6$%%z)=@bWoOF^{FeT(I#;T)e+v)-HaSpZMAnvXg{-tyV zJlk)1oOc+YkVUk}@N3HcD|ixtip{rTnn}RPC=B8@^;n~p*du%F{Ld_5g(=x#pscE{ z_WeO-rifW=l`UnB1&(wNwyBlXIEOfH84?~y3CTmlDRnRhF5RUYOv?kdr}CC~)~7eT zr1;s1FS$vgP^hW-jY90zaVvXAd-Ct5tvsB;F@rn_&9sbegpyZ&aEvVmunHAaF4kCszXx;!5(MK&m1-EyUW0jV!ayKDR`G8=4w_TkV zzKU((1_HCK4huh?$L;{B7|MQxH|V+?Z_5&qz&F*vDdCCf7EItMW}8I(BuCCUi*KbL3|8(vAb0Te8Ra-+-3u;PitJ-tcFW@ z6c`~4jA$C@{T8*;XekEu4;*g(txp^qL}lFFp)4#DV?Z{i5w31;<4`jDGr!;=sz>vp z$iWUEM`e22KS?WfIK`b@9NbOj!i`%A;~zLYi|U^^I1t|KT7{ig*|dP%#w^gM5CXMu zFQKTU7u_85!g)aqKsJ5yjY_9rtPj|u%QCFC(!_63gxxUU|1v0K40-H7fhtldquJ(o zA+SRc0oA~_xGVC(og%ZZq=LWvIpWDV^7-(Tt_Ur*ca|9aKuQtz2wt5xjMBIPF9Pi`Ckg!#1 zaOH5sOwR@?suYh&SmlJ=xCOm-b9C1F)|6!B(qg2FT)v#{=2ouB6j*qQl+s}D`^&S@ zWc9T^Xl0|6BEQVtscT*_s#StewPzTXVrMCuY&}Sm9~R!8`_O}88^_EiUO0|rjPi}o>k=1P7!0??WGI4cUL{*(81;SA&MM4 z!)Xx46^yL^b{YBhI1n`ss{-V_>W7rMAvn0(tL`gk`;Tu^UF&k>HFlsBR_8ahozefG z85{n|Cp$0^EVcMHo$2s70J$+iW4jZa#n4t`Q5ayGJdgET?rwl=8d*c41~sZL%<#mW zf0_rN8d6yJKRBO;-Ji`(ewY;h6NjptQi++*i-bB8kcC3~FxT`uh14nO{=5s<`=4-WF*n}7nW#LFkn=C>N##GXuFAs9f89>3_J zCCZ3t`OquV&PZc*t?Bh1AU6Y56(Xx5C5~!Pf zGz?xmtjh@RWQxNx*qLYX+SHw8nkM(eX*!k36QGAzAzJj)?ioj`&;qVew6+@Hlo2qPlY|TLo9=ENAHz;LeJaD$Iywn{R;x`E_wz#8o`-My-amACK zs}$nrh1_h?bAfmOzSxy8Zv+4J{d$=|ErUpG+0Jkx=&1^Aen(TZg95cBE#>McF;R4N#;Qdx~r<9Z- zoD5T)k{Scgr;n5o^M@G4b1u}&)&>+e3_R~3U3O}HWIDEx=ciOf6^@Kbhn*IoYGjpL zB(aIH*pPP$6P)qh;Q>$VgBUqGu^y!ZZ<`xz>q>WS@NkS@vmC(h8GA>Wyo>t2o{eVF z!e5Qb$(u|AWfb+wlk^qaX7AF4y!FJw%`~U$ck@My4Bnr*wRV~U``fJqD+mrt-@Q@v z7ygI#3N}-tpX|`7xj6Rbo+1GP1!QyM300D0&uDOyc1#cdvH})oBz*Z}PNvVocb3Fw zrd7W;zDN+G^xwMd|I_|`9P9oBdcsFIbpy6g-5P;-r_;ZsL%)5%Px9$B7P+tjJ{}Tu zz@}jS_RWfVXFHN+wYQ=2b0=my)LDKlB-B2~yKEjA%;u`Gns_vD7sk$;$9xM|ZFTzbSM>Tj}`uE=q^g`i=~p*gsaGlD6!?XL;b()kN7NIZvuV5k4$% z>n`%DnCj`DH2l-K=5Op;g>p!47+hpnUMY>PTesNUdL5m-k(d*-4%sk~mItuX-!i1@ zeot*wrwvCGWMrr7mC2D&7ibcEN1X}NDW{pBebAJE3?CmUcO>DXwMcU^{kq3+eUGQa zLtz0sREU0bB0nrV_GZ0lKEU!kH)|4C6XbUFosh;kyo$$%-i&|7T^hEO+owzTAmLyM z2>XoKkvh+ZoPWY7^2gm1ZLK*=Pu`*E;1uW6d#xf9&(rq2F82`<{cn#sz|*t;vpIXv zT#>_6rI^=gH;$~vVH`pr18tC9T2-ZX1n8i}F@SsJm=dbo=mjD+o7Fncw{cXd|D@%) zX6y{hm6H(f_t1__HWHb~0VLQ8Rr`>t+=Nm$bKi{7QbaLbhf)F>HZ+Fqp0fB8WqgqQ zB7~&{p|75ce85!;{;1JnbfckkBCAj9v|kjrb0pNM4px9^-ui;_@A4qpNUKBr*T;I# z9mWI_pKj1&#`JtVNXpE9PZxenHn_mk;`vd6CKk;?}$iyYxB~9ppERX^Mab zB&>c9|GAs<;2+O?mR&GbE0(K4shfJ{>3A2)F$j|Iso=BtY8Nn!jU9c();g>9Qb<67 zYlE~JW&UrI_9yK3ps_=ZZSr^!%&1!Pu>%5nqooZF3{KG2$gNRID8e~*LQ^+7chhB0 z$SyFGm*N|eB|^L}&2h@pcqIsrUzT=ONc!YthiPwC>hu~z>$4mBiq`Znb5Ck6DGy|7 z`eW^b())DmAG0<;R#X?2BJ?Ls5LS)T_qx+GphWj#WwjBgXEml%!uDU(F6x+(UnDE1 zN+CM{1HRhUe4~Xq|7hKmjD3H7mWT8UALu1!Ngp^g!aJdVJGT>|(Xet_bcnQPiYI$R zaT|(`JAG=Sm`hUZ>s2?phP^6^DhSSSpmxynQU}1)G^+2FHPd85+)|Pqj2q#8?MFT~ zjS1{mPMZV%Yi)<9Y_~%fE$}z;hGCAHsf|RrK+72BoPKZehR7(c zOv~NqtRi%6>68_SYZP!1I zH6r|b0&ygyo5#jc<>k0&9L8Tnagd&Xo$ZZV=%dcyZ_-X2D0VW#NRO1@R5piSt+ zo?N_|70)`tu8LOzjNGA=-e5$hlydOv5}sjoVZqwsndlh3!~D9JpDM|H4Jgv2E$}=e z6-h3SUxQptpZQ(5=x?~Pmo7S|n%~$jXH^sq3VZO!HyG}S`i33zOE<=Y%E)*Jv7%-J zrtVcNJ|3~t?<+kuwRsPb_|sE`f3JX{VKqQp`bGYj4og-3hs*Rv1HAwesZFYDp`6b%e%p1#ZP z@Uufb0zpt#U>f8_qDn~4j!1c|5%s1r@dJxbu5C;L|3XoNTwG^x|}v z{oi2PhCF_ZV*C=077%PzSCyR+CkCdK+OC9s-XY)A54eTG)EDZBP6cwC{z8I0*wnQe zgRdI!K8#^Dy(E&k4RZp;%UFW}7{0I;JPE?!iO#AJhY;=J?+Go=!Lc={K#M7!G=6od zFHTevs7@y#UNBA1O}WSw$mh3OFW~*MxU<%?HLf*`e(W~JpW`3B81cx6Wps|Z1?KE_ z>}q(U{y+kk4vMycUA7Cc?UDoul?=2qUE@=b4l#29rJy69uv`M0=Q4>Jb?>wF;FBgY z{3G>A0AWg$5pz(I@@K#p?xplTl2)J^MbaFrt_sr$2mVO_JB>w^nr>0c4_rZVw~pU< zhO&};X?V&zG20`k?Q2ci`vtZJZFS4EO{|Y9Gs!sBA)rN<>_}3fT9`3nIykKOJ(h}# z^N$>Tr?RxSw6A#~1A-}pCRlHEX?NcqGiQxH>O88%u&aZlk`5;Lc+8qRaY_B_7oE3g zvpsTOYUmcw*jWIHkLV5B7yH*2WZwH9fu~J%5iwVdiaqr>9}p}jGkjx5cE1vZ&at>n z1VYuSyAN|HN{EEht@?d1yb2`2S(2D5{xZ8T*~k#1H51h?r`|?lA+a z3{=-)izvT0CfwB`*+>aJ2P(D2F)=M)7>r^tQDBdizEV$;8u!Q-;J$$J7-oD=&JW5w zzco%l?aTuoYHC;7BuntVh9#F~Ych2)P<%z@hwx^*sn*z@s02YZ+FW*Nz27E?^%>R= zoY^oMv)u!$NW@5v=x=Hp@{ZgCYa+^vZsjq(uK3^TAaCy`{ZA#5CG3NH<8( zh`D`0$uc!9AKTd7+Muto;VQ{`Ag`owYTcRHz>WB!viFB2l;sn$cZ;+pza8r#q^#=+ zz!=AOapTUPqjtC_RzB)S?!xVorv|DMvW>=vbJ3tW$O9{)TxSVCZOw0&I_(W%+|hc5 z4nDLf`H;vj^F<&@%fH=RTSV7Ewzw2ua-(=_hsPbr*mU4OfKI#4IpJNizlA3LU|big z>V}ElN%qGSdxwLNzF%MST>W-*T2EtWyN1PeYUUQdQZM`fjh44x(3O zqp;U~P)9Q#kLEXeS}CuiIU3>($`MWK72&url##!O1y8ERnGi3N`}`Sp7|688{s}wE z&>Q-wQ%+^6-0Pq79~4i0hryd>YqORyO8ZCHa@7!H1NtZv`J8{;fT&uWyGuoJOeo;$ zoPs$|JmXM*#X9z|#nA6;k}_wg2%6Uc{_gx0w$@)>2$m3g^8;T;q$1IhBH=YRvK}^D zI6g9vtRbdhTDh!i$c1Pa7nGG#I(HVJH)}V}Ypqj{(DEdjKXGyqL@L}2p3~7C9zZGz zK1ruQS~R30G8o2DF_eY>C5&O(6Q5Q&pFEg_6;*${=6Eh9<#jC@@U)T<--5aGHMQ*f z=|q+DumKj|e5B4&XcTNeg&1+e`~t6>^QD>YdwLW)GaWEiieM$yFY|*uO>|=$mh<0` z=H2_Ah8+{Coj+2DpelhaO)t03k^0wLKN?@!Sqp@Oo+c@*JrqXoz$BCOZ4&v?sGhN$ zXny4`MoZ+X{LkI$HPj5I>WVXdUKmd`mMr+Oh^A4~EQ*y0>4=$s>f%+axlr2sR^6 z-80vO{di1*DB)FY%Zp9k5{R&3Peti9ten12G{+)aL3AaCU58!`< z+vr4~&*Y=-(!WCEeTmz0Oze+=Q0<()f&m*tMwo#?LF!qmeYP_Her}wH2#8HU5frih zatp&OHk*-20sZ^ZQ?}OY6$S}o52q&g`N*t|O@o9kE3NgLEQEB+6sMZPbI?te&0wmm z2?OkQCuo3)DF(R9u51XC>YV3qiRh5nY#Q4EAT~ul1TCmvWk?8m4g6ZhTxXug`<*9+ zWW`oqw3!MK?b8LALzE)?g=q?-uVp$X4x9(&E}{*mn8f{?SqeEV$y)@Kel>;!XYf92 z-8EHmFTY*JdDb!y$-5LuFUWG&_8{S)Eys5yH>$2ZKV~g4Rwtt|di-`$8CvPDR}!Ki z=s-f4ZoJdyg&0zx(hIqD%sTHYG(mgoD6!je28|)_1a2yVhQUW@#m&NKnS0od>}4r9 ziN^IS&^HJI@9K>ad1Mnywuwsv0-Bbh);hhBzy~B-qUuc$%8n`JuWhU(r;(7C8H$;x zEvjvO9LSQx;A#Bx1-+wEhd^X7lz0VQMuDRkHD7j733hFhUa~1LhmOxgb;-MNexQ)2 zNl^4qGgI=FNXwrY^9O@Z==S~e{SYF#2{UIBCZjossR_0f2Wq>*to_~E{X^6A$=;;D zrgP>Dhnx3OfVMD`zow0;-aBai?D&*{q7%*Kj<>)Cl-MEKd!^ULjB|L#xOul@M5w^8 zwO{VBk;VHA!pd*sjr!d5LQ4fbSIy*?Cn-pmwbX7gZ3Y{=3lh>KXS+LbsyoA zb5J0CW`MsExBrHD|D;u>Bf>i$`h2K__bT*RIs&)3$d}m0&Ymz#{PbB9`AxXXL$M-C z<1ZkAueP&+tji~+1Tdp0#Gx-CjTOT`z5V3vBN=2%+Vb zuv@d*m)B&vDjT{$RCKsC#+V}C2i{YBV#U5{snV$orl=(A-dd?}8{t%TGuWW*SGY83 zoL^#Yid5*et3~C&#q_i&k&HM~(($12q4TUaloC+1Z9Bjz;I|&e_6lOjQ_%KaQ@2(u zbQU#bv3c7i#GQ$#lE!LB3|!T4a+Q&(AqS#gh!n*UE~=W}1jAv)juf?7NH&^zLjwt; zA4p}>?YJl=1Q&t8S>W98|-#plDjc?ie#&NVVS|CLAa3 zA`={Fef8WuS<~H&rTSu^riy|q7qj!qI=y}2~E!}g}W`; z&;0Bu@k=^NOO{e52`9B+M9vSQgnIvDS}02{Y-=;7xa7D(;>h?b#`iGFU){H-rI6Xy zhmt5-RsHI*g$~SAaU~g11SgI95@3YX*EEE{AhF^$4 z)|1fVgNQ}J3Q|zdzb~?itnw6Wv|UOfkPcO6RNqJF=;{so#hj92ZLe`C3QzD3WoQup~^w1lTw+DJT_M!R3bt>h2tR%!fufj~FK(;{O%6^tx( zI4_WFU7xY%i}UYrzQbWV1GRR23k?$}w-}Wc)zLAkBQfDa_VJ4hK?2TS!OpOI5Z2!E z$no4vjjPrHGc(=^?M7YeCU^96NJKCca5P6i5DY%eq{<~FCHWW(5V_NFRJFGkAQJT5%9FrDsP_lVJ$1e@rHHVQwN~hYdjW8b zR!(Egl7D?ia)w>r2rci1UX9*;I?w0|+TTfyDo6fvkpG|L?XxTU|0Hjabbs3UI0c?P zWIIrewL#(OLdC!y4p6J5b(Y;-pPQl;YEROtO=?+uY_Vg4c=Ho`elBJ1 z5^Q}V5}gpYLXYe1_LfU@zH^jn!uwK?i!Flm$)p+Q2=o*4T^w}hf?cDac#t<;Z`lIB zsprG}fC{4|h7ei!Zj_atjaVfw4ti?$a=+IvX;BfI?j>CJDkjkEXH*8X#o7Io&V__=f@@r zlHQ49O+dp<9C&&2TIo$N2TofVhCC_55@5H~BKB-V9>8L}eTLYF)Q}E%&BSN|Bpsua znjTg~7P%JKU3$M?gRy}q+~#A;&EkI-Y_0*j6G9(tvOv9kPTzc~O*CvDYrPp;kptDOF-Fe z5y`ruv4YlqX=%>0fH!l&d$NLxkz_wKh17}e!r`pFc@owHCV04cwU#mC9V|Lt2#_s# z_@UscC%k@~HbP>bBsnevDwMo;(5)N}TFMiZ`QcFu;hLzmBW82vv*S{yYW|_5By-o> zSyD#tqJdT8vI2bSbi&EPaFV^IVeyDs>`p_4U;)oGlS6 z6fKrvM31(S{ofaiC>^kb^P0pIYbJu?p7``0g3@CI(~s{-i2k@abhRlTOyY~Cgml8B ztgn*&mN5@Km$$_Y{(*SBM|Coqo_9ooTR1-6s$NzvgWQ<;&uA{;5wQ4!9A52OU z^$7Bs-|*Do&_kL}7UH9>ruR{*<<*7g;OzRrZ;Tw1>PjyTX@WBxNZ)bo$!zGTx)U% z)0#i4WafY}=3vfmOT*ha`Q5x&W``tt&XQ7YSnt9Ua12bMWN#{9xk56{kG!fbC8(Rm z;|$eAxR{S)FsioR$+jI~k*b+fdl-4ig;Pi&fMoaK_r7i5zJ-%hC9?m}S=bGUzsAa+ z*pFhid>pc0AggI@9@vy=OxEyuo3eeDDy$QF2={R`m?`6_khUa+;0k-PQ(}VDO5wJk zSpT6{ee!`k!}pjexCM?a7zNb{DqY;7h3xH+%H1`lb5yO*TIOkW3wlO!fM{J8Hu8=J zq6^#n)BvT&MMPc<8b!nFKi^+3@I18WQpb4SOoiJ2$PtLED2H^P@|_5*tFRq{_5pX( zfw!Aidnumt>=_pE@M>d(wP5aJ%$PV#wW6ri=3tC45>QV8F68XSgF)$yhIfHrxZ%|( z_#Ip*QFUBU8&UVu9WVz^f%)SO9Cu3wS%M*Hh1M-Nh%BFk5eLXt?ln~1CHkFBY8K z^p>Uia=nrOu4K;L-&3se#W|s+r#)Z1s&Y`9?BKQ)hJjJ?VoW=RCf^q$o>v=qw;;e6rrLq$+!8I_%{>cj@0qWw8bYWzOFBBiDcC54gf zEW(-^8yBm$npQ$IW~Wsgzt?;b5#Fq-U>($TV7OqrBUQ$TX5PXQ`tCJ5rAXFz(gOV3 zCuv>ZwQzDRTD-Et?s&fZjx(FVn0uYg678n-;ecC&7T#k-m*izTUHuI*@2<0Ba_K%n z(m0tjByIpz)qcch0X}~~^+23@uSp^foqddgbX^48kMyYAca`pYLM&lp+mPZt&2 zPu_bXO=WAxIf>iDN~gcwf&ck4oiJdfzb-@a{E?f{wQ!Ab^!s=-GCnz zDXV1!sWu|r=^^7ab20b*bb4Xtu%qrRTWuMv>F_RPTQiB*BEah@xQmRwId}l1)n7`{<(bCMNmG=c_viQp^H?&RziBMN&XLXh?T&L+gi@$hvbtotz zR0+{uu#5M-m{LDa%p$2c!91)AX9ASNLSnM?r3ypCL!7_*`px3k0$9JuE5Av$Q^RC_FWN)vb0XetiBl9>NGZl9BNeUUu_NBU%3Y1{~$7d#U1|^5-wasz)~4eq0m+yn7GIe z^)Nwl?bo5SA2@jo`e@$D`Cvk|W-RLP-h(=ru*;1&3PegUV)Lh@@o%qz!F&W|%xidF zYQH8$6jHbH)n|b^nAkmK+IVFdvilVK2NVa@AKoW*+`_c=v=cElO(5|LVob9&< zlI(b*FBtpem6EO<6nA6t9DWjyF7^Rw{zxd)#dqt}g6PxkNn7Bqk$Ysv$^e;s&R76cKc0Y-g~769Es`r8-}^AUkzZwD>7 z--wm9`rZg2VmHVI@^Mvv3r#k1TNW#hE#y@C8jm^7xsQs8SfMKWJ)%3JjN za^|io?b*`3Vp6k^b5^?~*Y5dnK#$bKJk4o#uFB(3WGSugJB /dev/null 2>&1; then + echo "Error: No key found for $EMAIL in GNU Keyring!" + exit 1 + fi + echo "Found key(s) for $EMAIL" +done + +# Export specific keys to our project keyring. +gpg --no-default-keyring --keyring "./$TMP_KEYRING" --export \ + "${MAINTAINER_EMAILS[@]}" \ + > "$OUTPUT_KEYRING" + +echo "Success! Updated $OUTPUT_KEYRING with keys from the official GNU Keyring." -- 2.43.0