Skip to content

Commit 641ea36

Browse files
author
marcofilho
committed
base: add actual sha256 checking
base/lnls-get-n-unpack.sh: - add shacheck function to compare expected sha256sum with actual sha256sum from file. - modify download function to iterate over each pair of arguments (arg1: url, arg2: expected sha256sum) and pass the downloaded file and expected sha256sum to shacheck. - Add description about usage in help function. Add possibility of exiting from help() with error code 1. base/install_epics.sh, base/install_opcua.sh, base/install_area_detector.sh, base/install_modules.sh, base/install_motor.sh: - Add EPICS_BASE_SHA256, $OPCUA_SHA256, etc... as arguments to be passed to lnls-get-n-unpack and install_from_github. base/install_functions.sh: - Add sha as argument to install_from_github and download_from_github. install_from_github passes sha as argument to download_from_github. base/.env: - Add all needed SHA256SUM hashes to be used by lnls-get-n-unpack. base/Dockerfile, base/musl/Dockerfile: - Add all needed SHA256SUM ARGS from .env. Add right before needed to optimize cache usage. base/docker-compose.yml, base/musl/docker-compose.yml: - Add all needed SHA256SUM arguments.
1 parent dab5ce4 commit 641ea36

12 files changed

+195
-31
lines changed

base/.env

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ ALPINE_VERSION=3.18.6
33

44
EPICS7_BASE_VERSION=7.0.7
55
PVXS_VERSION=1.3.1
6+
EPICS7_BASE_SHA256=44d6980e19c7ad097b9e3d20c3401fb20699ed346afc307c8d1b44cf7109d475
7+
PVXS_SHA256=14936dda59e81a2252e1da3cf147a038cc420e4510df30c3aeb2bf1113641555
68

79
SEQUENCER_VERSION=R2-2-9
810
CALC_VERSION=R3-7-5
@@ -22,13 +24,35 @@ PYDEVSUP_VERSION=1.2
2224
SNMP_VERSION=1.1.0.4
2325
SCALER_VERSION=4.1
2426
MCA_VERSION=R7-10
27+
SEQUENCER_SHA256=f5ebecdb231e106bb83db9a5fc877adb03bfd119e879a3668fdfc33d0aacb397
28+
CALC_SHA256=5cf1a7b3d444e763eb96ca5b9cdbcb9c29f5a6f9ac2b8d9cdb17a007d3fa8347
29+
ASYN_SHA256=47e993aeb300c597fcb0c3df6d3c88b9dd9e9fb90600da84cb2d2dc5b59a31aa
30+
STREAMDEVICE_SHA256=e0640f00cd23ddd6015091d4b4e8e43a21d9e9e31d9639a5d0da6b187f42eb79
31+
BUSY_SHA256=1a09675bb69cdb09157b06d7276c4e4a9db8ca7e257108529e380c55452e4a53
32+
AUTOSAVE_SHA256=766dd7a8f71529f48d8122a3655f7986004b62ba589342153fa5a47f59119903
33+
SSCAN_SHA256=6911e114b07b3c200db781750035237d7dd494130f360e278df950a8358d6d78
34+
RECCASTER_SHA256=7108963bfa6c74d9571fe808ffa4312c1d562b30f575fb6b102fb20bc910aeb8
35+
IPAC_SHA256=4bd404eb9a205a32e6e25730115f6a1ab201dac69454136d4b570f880843f726
36+
CAPUTLOG_SHA256=6b85137906ed44a1f15358ab32fa9b4c450b37c495c65410606ea660ef4feb4c
37+
RETOOLS_SHA256=55a3a1bfabe3898636cfa55b15df3bb80b2c526b53de7d35c8105dc7a45e1b2e
38+
ETHER_IP_SHA256=ccf441ab842c8d24cea5b912b210852a4dc2fc005391a64f14de2ed586644155
39+
IOCSTATS_SHA256=13fbca066bdb34f1d84641a1b3f9fc505729866963f1e7d6d66dbc55b32a2cc8
40+
IPMICOMM_SHA256=7e526601461d7222834219a0f081a0550932b340eb945e515ffae94febe429f8
41+
PYDEVSUP_SHA256=3280cf3c4e9355f34841bc5ec38d0e5337783ea1678f31f7559b723ba8f4489b
42+
SNMP_SHA256=f190b807aecd7d319e58263bca2ff883f891496793b68c871ada48a192d695a3
43+
SCALER_SHA256=faad6df4a71922ad6dcbd2d73020fad301ecd32e6e4e31ca0b0e4fd013c3bbce
44+
MCA_SHA256=dddee716247e97e61f2e5a4bad07966ee00a7c107aed6f2d697b27337a44b9bc
2545

2646
AREA_DETECTOR_VERSION=R3-12-1
2747
NDSSCPIMEGA_VERSION=1.0.0
2848
LIBSSCPIMEGA_VERSION=fb8acf533a7c01b5266bf32d60d1a5f923e19523
49+
LIBSSCPIMEGA_SHA256=8bb043b63a1b7bf81b3d27b8f947a134b26c9280607f3bf32f1f2ecf8e58d384
50+
NDSSCPIMEGA_SHA256=a688e1f54ce184fad4b0ea0d781fd69f744636fff6bddcbe477bf22087f907b0
2951

3052
MOTOR_VERSION=R7-3-1
3153
PIGCS2_VERSION=60af8bdb17c1717e4545d8170f820e358ce31458
3254
PMAC_VERSION=2-6-4b3
55+
PMAC_SHA256=baac82f617ddd7fb10e8967799b95353bdca4c0fefbe784636766229c1872408
3356

3457
OPCUA_VERSION=0.9.4
58+
OPCUA_SHA256=d0a947894f81c3f6a6de1adc332f19f45d50ec8c005c62f9ad0b8cacb12141af

base/Dockerfile

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ WORKDIR /opt/epics
3939
COPY install-functions.sh .
4040

4141
ARG EPICS_BASE_VERSION
42+
ARG EPICS_BASE_SHA256
4243
ENV EPICS_BASE_PATH /opt/epics/base
4344
ENV EPICS_MODULES_PATH /opt/epics/modules
4445
ENV EPICS_RELEASE_FILE /opt/epics/RELEASE
@@ -68,6 +69,25 @@ ARG PYDEVSUP_VERSION
6869
ARG SNMP_VERSION
6970
ARG SCALER_VERSION
7071
ARG MCA_VERSION
72+
ARG PVXS_SHA256
73+
ARG SEQUENCER_SHA256
74+
ARG CALC_SHA256
75+
ARG ASYN_SHA256
76+
ARG STREAMDEVICE_SHA256
77+
ARG BUSY_SHA256
78+
ARG AUTOSAVE_SHA256
79+
ARG SSCAN_SHA256
80+
ARG RECCASTER_SHA256
81+
ARG IPAC_SHA256
82+
ARG CAPUTLOG_SHA256
83+
ARG RETOOLS_SHA256
84+
ARG ETHER_IP_SHA256
85+
ARG IOCSTATS_SHA256
86+
ARG IPMICOMM_SHA256
87+
ARG PYDEVSUP_SHA256
88+
ARG SNMP_SHA256
89+
ARG SCALER_SHA256
90+
ARG MCA_SHA256
7191

7292
COPY backport-ipmicomm.patch .
7393
COPY caputlog-waveform-fix.patch .
@@ -77,6 +97,8 @@ RUN ./install_modules.sh
7797
ARG AREA_DETECTOR_VERSION
7898
ARG NDSSCPIMEGA_VERSION
7999
ARG LIBSSCPIMEGA_VERSION
100+
ARG NDSSCPIMEGA_SHA256
101+
ARG LIBSSCPIMEGA_SHA256
80102

81103
COPY backport-adsupport-nanohttp.patch .
82104
COPY install_area_detector.sh .
@@ -85,12 +107,14 @@ RUN ./install_area_detector.sh
85107
ARG MOTOR_VERSION
86108
ARG PIGCS2_VERSION
87109
ARG PMAC_VERSION
110+
ARG PMAC_SHA256
88111

89112
COPY install_motor.sh .
90113
RUN ./install_motor.sh
91114

92115
ARG DEBIAN_VERSION
93116
ARG OPCUA_VERSION
117+
ARG OPCUA_SHA256
94118

95119
COPY install_opcua.sh .
96120
RUN ./install_opcua.sh

base/docker-compose.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,27 @@ services:
3838
PIGCS2_VERSION: ${PIGCS2_VERSION}
3939
PMAC_VERSION: ${PMAC_VERSION}
4040
OPCUA_VERSION: ${OPCUA_VERSION}
41+
EPICS_BASE_SHA256: ${EPICS7_BASE_SHA256}
42+
PVXS_SHA256: ${PVXS_SHA256}
43+
SEQUENCER_SHA256: ${SEQUENCER_SHA256}
44+
CALC_SHA256: ${CALC_SHA256}
45+
ASYN_SHA256: ${ASYN_SHA256}
46+
STREAMDEVICE_SHA256: ${STREAMDEVICE_SHA256}
47+
BUSY_SHA256: ${BUSY_SHA256}
48+
AUTOSAVE_SHA256: ${AUTOSAVE_SHA256}
49+
SSCAN_SHA256: ${SSCAN_SHA256}
50+
RECCASTER_SHA256: ${RECCASTER_SHA256}
51+
IPAC_SHA256: ${IPAC_SHA256}
52+
CAPUTLOG_SHA256: ${CAPUTLOG_SHA256}
53+
RETOOLS_SHA256: ${RETOOLS_SHA256}
54+
ETHER_IP_SHA256: ${ETHER_IP_SHA256}
55+
IOCSTATS_SHA256: ${IOCSTATS_SHA256}
56+
IPMICOMM_SHA256: ${IPMICOMM_SHA256}
57+
PYDEVSUP_SHA256: ${PYDEVSUP_SHA256}
58+
SNMP_SHA256: ${SNMP_SHA256}
59+
SCALER_SHA256: ${SCALER_SHA256}
60+
MCA_SHA256: ${MCA_SHA256}
61+
NDSSCPIMEGA_SHA256: ${NDSSCPIMEGA_SHA256}
62+
LIBSSCPIMEGA_SHA256: ${LIBSSCPIMEGA_SHA256}
63+
PMAC_SHA256: ${PMAC_SHA256}
64+
OPCUA_SHA256: ${OPCUA_SHA256}

base/install-functions.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ download_from_github() {
1010
github_org=$1
1111
module_name=$2
1212
commit=$3
13+
sha=$4
1314

14-
lnls-get-n-unpack -l https://github.com/$github_org/$module_name/archive/$commit.tar.gz
15+
lnls-get-n-unpack -l https://github.com/$github_org/$module_name/archive/$commit.tar.gz $sha
1516

1617
mv $module_name-$commit $module_name
1718
}
@@ -59,7 +60,8 @@ install_from_github() {
5960
dependency_name=$3
6061
tag=$4
6162
release_content="$5"
63+
sha=$6
6264

63-
download_from_github $github_org $module_name $tag
65+
download_from_github $github_org $module_name $tag $sha
6466
install_module $flag_ioc $module_name $dependency_name "$release_content"
6567
}

base/install_area_detector.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,13 @@ make clean
9999

100100
cd ..
101101

102-
download_from_github cnpem ssc-pimega $LIBSSCPIMEGA_VERSION
102+
download_from_github cnpem ssc-pimega $LIBSSCPIMEGA_VERSION $LIBSSCPIMEGA_SHA256
103103
make -C ssc-pimega/c install
104104

105105
install_from_github cnpem NDSSCPimega NDSSCPIMEGA $NDSSCPIMEGA_VERSION "
106106
EPICS_BASE
107107
ASYN
108108
AREA_DETECTOR
109109
ADCORE
110-
"
110+
" \
111+
$NDSSCPIMEGA_SHA256

base/install_epics.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ set -ex
44

55
. /opt/epics/install-functions.sh
66

7-
lnls-get-n-unpack -l https://epics-controls.org/download/base/base-${EPICS_BASE_VERSION}.tar.gz
7+
lnls-get-n-unpack -l https://epics-controls.org/download/base/base-${EPICS_BASE_VERSION}.tar.gz $EPICS_BASE_SHA256
88
mv base-${EPICS_BASE_VERSION} ${EPICS_BASE_PATH}
99

1010
patch -d ${EPICS_BASE_PATH} -Np1 < backport-epics-base-musl.patch

base/install_modules.sh

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,85 +6,98 @@ set -ex
66

77
install_from_github mdavidsaver pvxs PVXS $PVXS_VERSION "
88
EPICS_BASE
9-
"
9+
" \
10+
$PVXS_SHA256
1011

1112
install_from_github epics-modules sequencer SNCSEQ $SEQUENCER_VERSION "
1213
EPICS_BASE
13-
"
14+
" \
15+
$SEQUENCER_SHA256
1416

1517
install_from_github epics-modules calc CALC $CALC_VERSION "
1618
EPICS_BASE
17-
"
19+
" \
20+
$CALC_SHA256
1821

1922
# Build asyn without seq since it's only needed for testIPServer
2023
install_from_github epics-modules asyn ASYN $ASYN_VERSION "
2124
EPICS_BASE
2225
CALC
23-
"
26+
" \
27+
$ASYN_SHA256
2428

2529
install_from_github paulscherrerinstitute StreamDevice STREAM $STREAMDEVICE_VERSION "
2630
EPICS_BASE
2731
ASYN
2832
CALC
29-
"
33+
" \
34+
$STREAMDEVICE_SHA256
3035

3136
install_from_github epics-modules busy BUSY $BUSY_VERSION "
3237
EPICS_BASE
3338
ASYN
34-
"
39+
" \
40+
$BUSY_SHA256
3541

3642
install_from_github epics-modules autosave AUTOSAVE $AUTOSAVE_VERSION "
3743
EPICS_BASE
38-
"
44+
" \
45+
$AUTOSAVE_SHA256
3946

4047
install_from_github epics-modules sscan SSCAN $SSCAN_VERSION "
4148
EPICS_BASE
4249
SNCSEQ
43-
"
50+
" \
51+
$SSCAN_SHA256
4452

45-
download_from_github ChannelFinder recsync $RECCASTER_VERSION
53+
download_from_github ChannelFinder recsync $RECCASTER_VERSION $RECCASTER_SHA256
4654
install_module recsync/client RECCASTER "
4755
EPICS_BASE
4856
"
4957

5058
install_from_github epics-modules ipac IPAC $IPAC_VERSION "
5159
EPICS_BASE
52-
"
60+
" \
61+
$IPAC_SHA256
5362

54-
download_from_github epics-modules caPutLog $CAPUTLOG_VERSION
63+
download_from_github epics-modules caPutLog $CAPUTLOG_VERSION $CAPUTLOG_SHA256
5564
patch -d caPutLog -Np1 < caputlog-waveform-fix.patch
5665
install_module caPutLog CAPUTLOG "
5766
EPICS_BASE
5867
"
5968

6069
install_from_github brunoseivam retools RETOOLS $RETOOLS_VERSION "
6170
EPICS_BASE
62-
"
71+
" \
72+
$RETOOLS_SHA256
6373

6474
install_from_github -i epics-modules ether_ip ETHER_IP $ETHER_IP_VERSION "
6575
EPICS_BASE
66-
"
76+
" \
77+
$ETHER_IP_SHA256
6778

6879
install_from_github epics-modules iocStats DEVIOCSTATS $IOCSTATS_VERSION "
6980
EPICS_BASE
70-
"
81+
" \
82+
$IOCSTATS_SHA256
7183

72-
download_from_github slac-epics-modules ipmiComm $IPMICOMM_VERSION
84+
download_from_github slac-epics-modules ipmiComm $IPMICOMM_VERSION $IPMICOMM_SHA256
7385
patch -d ipmiComm -Np1 < backport-ipmicomm.patch
7486
JOBS=1 install_module ipmiComm IPMICOMM "
7587
EPICS_BASE
7688
ASYN
7789
"
7890

79-
download_from_github mdavidsaver pyDevSup $PYDEVSUP_VERSION
91+
download_from_github mdavidsaver pyDevSup $PYDEVSUP_VERSION $PYDEVSUP_SHA256
8092
echo PYTHON=python3 >> pyDevSup/configure/CONFIG_SITE
8193
install_module pyDevSup PYDEVSUP "
8294
EPICS_BASE
8395
"
8496

8597
mkdir snmp
8698
cd snmp
87-
lnls-get-n-unpack -l https://groups.nscl.msu.edu/controls/files/epics-snmp-$SNMP_VERSION.zip
99+
lnls-get-n-unpack -l https://groups.nscl.msu.edu/controls/files/epics-snmp-$SNMP_VERSION.zip \
100+
$SNMP_SHA256
88101
cd ..
89102
install_module -i snmp SNMP "
90103
EPICS_BASE
@@ -93,7 +106,8 @@ EPICS_BASE
93106
install_from_github epics-modules scaler SCALER $SCALER_VERSION "
94107
EPICS_BASE
95108
ASYN
96-
"
109+
" \
110+
$SCALER_SHA256
97111

98112
install_from_github -i epics-modules mca MCA $MCA_VERSION "
99113
EPICS_BASE
@@ -105,4 +119,5 @@ SNCSEQ
105119
AUTOSAVE
106120
ASYN
107121
MCA
108-
"
122+
" \
123+
$MCA_SHA256

base/install_motor.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ SNCSEQ
5252

5353
cd $EPICS_MODULES_PATH
5454

55-
download_from_github dls-controls pmac $PMAC_VERSION
55+
download_from_github dls-controls pmac $PMAC_VERSION $PMAC_SHA256
5656

5757
rm pmac/configure/RELEASE.local.linux-x86_64
5858
rm pmac/configure/RELEASE.linux-x86_64.Common

base/install_opcua.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set -ex
66

77
opcua_release_url=https://github.com/epics-modules/opcua/releases/download/v${OPCUA_VERSION}
88
opcua_release_file=IOC_opcua-${OPCUA_VERSION}_Base-${EPICS_BASE_VERSION}_debian${DEBIAN_VERSION%.*}.tar.gz
9-
lnls-get-n-unpack -l $opcua_release_url/$opcua_release_file
9+
lnls-get-n-unpack -l $opcua_release_url/$opcua_release_file $OPCUA_SHA256
1010

1111
mv binaryOpcuaIoc opcua
1212
install_module -i opcua OPCUA "

0 commit comments

Comments
 (0)