aboutsummaryrefslogtreecommitdiff
path: root/update.sh
diff options
context:
space:
mode:
authorBrent Cook <bcook@openbsd.org>2014-12-06 17:11:59 -0600
committerBrent Cook <bcook@openbsd.org>2014-12-06 17:48:03 -0600
commit29804a73ccfb2508e6a31106cdbe4cc495341163 (patch)
treebdfd049c1914d6ced1b65d450979f2b4b97d4210 /update.sh
parent605acdcef269ddf0ae1e00218eb19f60b54042a9 (diff)
downloadportable-29804a73ccfb2508e6a31106cdbe4cc495341163.tar.gz
portable-29804a73ccfb2508e6a31106cdbe4cc495341163.tar.bz2
portable-29804a73ccfb2508e6a31106cdbe4cc495341163.zip
simplify packaging for libcrypto.
Remove a lot of complex shell code. Upstream churn has slowed down, so it is now easier to maintain this directly as automake files. This is also needed to start integrating CPU-specific acceleration support. Since we are deriving the copy list from the Makefile.am files, we can now get rid of copy_src/copy_crypto.
Diffstat (limited to 'update.sh')
-rwxr-xr-xupdate.sh272
1 files changed, 27 insertions, 245 deletions
diff --git a/update.sh b/update.sh
index 21ede4c..8eeef4f 100755
--- a/update.sh
+++ b/update.sh
@@ -25,7 +25,7 @@ libcrypto_regress=$dir/openbsd/src/regress/lib/libcrypto
25libssl_src=$dir/openbsd/src/lib/libssl 25libssl_src=$dir/openbsd/src/lib/libssl
26libssl_regress=$dir/openbsd/src/regress/lib/libssl 26libssl_regress=$dir/openbsd/src/regress/lib/libssl
27libtls_src=$dir/openbsd/src/lib/libtls 27libtls_src=$dir/openbsd/src/lib/libtls
28openssl_cmd_src=$dir/openbsd/src/usr.bin/openssl 28openssl_app_src=$dir/openbsd/src/usr.bin/openssl
29 29
30# load library versions 30# load library versions
31source $libcrypto_src/crypto/shlib_version 31source $libcrypto_src/crypto/shlib_version
@@ -42,29 +42,6 @@ echo "libtls version $libtls_version"
42 42
43CP='cp -p' 43CP='cp -p'
44 44
45copy_src() {
46 mkdir -p $1
47 rm -f $1/*.c
48 for file in $3; do
49 if [ -e $2/src/$1/$file ]; then
50 $CP $2/src/$1/$file $1
51 else
52 $CP crypto/compat/$file $1
53 fi
54 done
55}
56
57copy_hdrs() {
58 for file in $2; do
59 $CP $libssl_src/src/$1/$file include/openssl
60 done
61}
62
63copy_crypto() {
64 copy_src crypto/$1 $libssl_src "$2"
65 crypto_subdirs="$crypto_subdirs $1"
66}
67
68$CP $libssl_src/src/LICENSE COPYING 45$CP $libssl_src/src/LICENSE COPYING
69 46
70$CP $libcrypto_src/crypto/arch/amd64/opensslconf.h include/openssl 47$CP $libcrypto_src/crypto/arch/amd64/opensslconf.h include/openssl
@@ -90,6 +67,12 @@ mkdir -p include/openssl crypto/objects
90mv $libssl_src/src/crypto/objects/obj_mac.h ./include/openssl/obj_mac.h 67mv $libssl_src/src/crypto/objects/obj_mac.h ./include/openssl/obj_mac.h
91mv $libssl_src/src/crypto/objects/obj_dat.h ./crypto/objects/obj_dat.h 68mv $libssl_src/src/crypto/objects/obj_dat.h ./crypto/objects/obj_dat.h
92 69
70copy_hdrs() {
71 for file in $2; do
72 $CP $libssl_src/src/$1/$file include/openssl
73 done
74}
75
93copy_hdrs crypto "stack/stack.h lhash/lhash.h stack/safestack.h opensslv.h 76copy_hdrs crypto "stack/stack.h lhash/lhash.h stack/safestack.h opensslv.h
94 ossl_typ.h err/err.h crypto.h comp/comp.h x509/x509.h buffer/buffer.h 77 ossl_typ.h err/err.h crypto.h comp/comp.h x509/x509.h buffer/buffer.h
95 objects/objects.h asn1/asn1.h bn/bn.h ec/ec.h ecdsa/ecdsa.h 78 objects/objects.h asn1/asn1.h bn/bn.h ec/ec.h ecdsa/ecdsa.h
@@ -106,175 +89,21 @@ copy_hdrs crypto "stack/stack.h lhash/lhash.h stack/safestack.h opensslv.h
106 89
107copy_hdrs ssl "srtp.h ssl.h ssl2.h ssl3.h ssl23.h tls1.h dtls1.h" 90copy_hdrs ssl "srtp.h ssl.h ssl2.h ssl3.h ssl23.h tls1.h dtls1.h"
108 91
109copy_src crypto $libssl_src \ 92# copy libcrypto source
110 "cryptlib.h cryptlib.c malloc-wrapper.c mem_clr.c mem_dbg.c cversion.c 93rm -f crypto/*.c crypto/*.h
111 ex_data.c cpt_err.c o_time.c o_time.h o_str.c o_init.c md32_common.h" 94sed -e "s/libcrypto-version/${libcrypto_version}/" \
112 95 crypto/Makefile.am.tpl > crypto/Makefile.am
113copy_crypto aes "aes_cbc.c aes_core.c aes_misc.c aes_ecb.c aes_cfb.c aes_ofb.c aes_ctr.c 96for i in `awk '/SOURCES|HEADERS/ { print $3 }' crypto/Makefile.am` ; do
114 aes_ige.c aes_wrap.c aes_locl.h" 97 dir=`dirname $i`
115 98 mkdir -p crypto/$dir
116copy_crypto asn1 "a_object.c a_bitstr.c a_utctm.c a_gentm.c a_time.c 99 if [ $dir != "compat" ]; then
117 a_int.c a_octet.c a_print.c a_type.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_enum.c 100 if [ -e $libssl_src/src/crypto/$i ]; then
118 a_utf8.c a_sign.c a_digest.c a_verify.c a_mbstr.c a_strex.c x_algor.c 101 cp $libssl_src/src/crypto/$i crypto/$i
119 x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_bignum.c x_long.c x_name.c 102 fi
120 x_x509.c x_x509a.c x_crl.c x_info.c x_spki.c nsseq.c x_nx509.c d2i_pu.c 103 fi
121 d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_x509a.c t_crl.c t_pkey.c 104done
122 t_spki.c t_bitst.c tasn_new.c tasn_fre.c tasn_enc.c tasn_dec.c tasn_utl.c 105$CP crypto/compat/b_win.c crypto/bio
123 tasn_typ.c tasn_prn.c ameth_lib.c f_int.c f_string.c n_pkey.c f_enum.c 106$CP crypto/compat/ui_openssl_win.c crypto/ui
124 x_pkey.c a_bool.c x_exten.c bio_asn1.c bio_ndef.c asn_mime.c asn1_gen.c
125 asn1_par.c asn1_lib.c asn1_err.c a_bytes.c a_strnid.c evp_asn1.c asn_pack.c
126 p5_pbe.c p5_pbev2.c p8_pkey.c asn_moid.c a_set.c asn1_locl.h charmap.h"
127
128copy_crypto bf "bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c bf_locl.h bf_pi.h"
129
130copy_crypto bio "bio_lib.c bio_cb.c bio_err.c bss_mem.c bss_null.c bss_fd.c
131 bss_file.c bss_sock.c bss_conn.c bf_null.c bf_buff.c b_dump.c
132 b_sock.c bss_acpt.c bf_nbio.c bss_log.c bss_bio.c bss_dgram.c b_print.c
133 b_posix.c b_win.c"
134
135copy_crypto bn "bn_add.c bn_asm.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c
136 bn_mod.c bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c bn_kron.c
137 bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_recp.c bn_mont.c
138 bn_mpi.c bn_exp2.c bn_gf2m.c bn_nist.c bn_depr.c bn_const.c bn_x931p.c
139 bn_lcl.h bn_prime.h"
140
141copy_crypto buffer "buffer.c buf_err.c buf_str.c"
142
143copy_crypto camellia "cmll_cfb.c cmll_ctr.c cmll_ecb.c cmll_ofb.c camellia.c
144 cmll_cbc.c cmll_misc.c cmll_locl.h"
145
146copy_crypto cast "c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c cast_lcl.h
147 cast_s.h"
148
149copy_crypto chacha "chacha.c chacha-merged.c"
150
151copy_crypto cmac "cmac.c cm_ameth.c cm_pmeth.c"
152
153copy_crypto comp "comp_lib.c comp_err.c c_rle.c c_zlib.c"
154
155copy_crypto conf "conf_err.c conf_lib.c conf_api.c conf_def.c conf_mod.c
156 conf_mall.c conf_sap.c conf_def.h"
157
158copy_crypto des "cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c ecb3_enc.c
159 ecb_enc.c enc_read.c enc_writ.c fcrypt.c fcrypt_b.c ofb64enc.c ofb_enc.c
160 pcbc_enc.c qud_cksm.c rand_key.c set_key.c xcbc_enc.c str2key.c
161 cfb64ede.c ofb64ede.c ede_cbcm_enc.c des_enc.c des_locl.h ncbc_enc.c
162 spr.h"
163
164copy_crypto dh "dh_asn1.c dh_gen.c dh_key.c dh_lib.c dh_check.c dh_err.c
165 dh_depr.c dh_ameth.c dh_pmeth.c dh_prn.c"
166
167copy_crypto dsa "dsa_gen.c dsa_key.c dsa_lib.c dsa_asn1.c dsa_vrf.c
168 dsa_sign.c dsa_err.c dsa_ossl.c dsa_depr.c dsa_ameth.c dsa_pmeth.c
169 dsa_prn.c dsa_locl.h"
170
171copy_crypto dso "dso_dlfcn.c dso_err.c dso_lib.c dso_null.c dso_openssl.c"
172
173copy_crypto ec "ec_lib.c ecp_smpl.c ecp_mont.c ecp_nist.c ec_cvt.c ec_mult.c
174 ec_err.c ec_curve.c ec_check.c ec_print.c ec_asn1.c ec_key.c ec2_smpl.c
175 ec2_mult.c ec_ameth.c ec_pmeth.c eck_prn.c ecp_oct.c ec2_oct.c ec_oct.c
176 ec_lcl.h"
177
178copy_crypto ecdh "ech_lib.c ech_ossl.c ech_key.c ech_err.c ech_locl.h"
179
180copy_crypto ecdsa "ecs_lib.c ecs_asn1.c ecs_ossl.c ecs_sign.c ecs_vrf.c
181 ecs_err.c ecs_locl.h"
182
183copy_crypto engine "eng_err.c eng_lib.c eng_list.c eng_init.c eng_ctrl.c
184 eng_table.c eng_pkey.c eng_fat.c eng_all.c tb_rsa.c tb_dsa.c tb_ecdsa.c
185 tb_dh.c tb_ecdh.c tb_rand.c tb_store.c tb_cipher.c tb_digest.c tb_pkmeth.c
186 tb_asnmth.c eng_openssl.c eng_cnf.c eng_dyn.c eng_rsax.c eng_int.h"
187
188copy_crypto err "err.c err_all.c err_prn.c"
189
190copy_crypto evp "encode.c digest.c evp_enc.c evp_key.c e_des.c e_bf.c
191 e_idea.c e_des3.c e_rc4.c e_aes.c names.c e_xcbc_d.c e_rc2.c e_cast.c
192 m_null.c m_md4.c m_md5.c m_sha.c m_sha1.c m_wp.c m_dss.c m_dss1.c m_mdc2.c
193 m_ripemd.c m_ecdsa.c p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c
194 p_dec.c bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c c_all.c c_allc.c
195 c_alld.c evp_lib.c evp_pkey.c evp_pbe.c p5_crpt.c p5_crpt2.c
196 e_old.c pmeth_lib.c pmeth_fn.c pmeth_gn.c m_sigver.c e_aes_cbc_hmac_sha1.c
197 e_rc4_hmac_md5.c evp_locl.h e_chacha.c evp_aead.c e_chacha20poly1305.c
198 e_camellia.c e_gost2814789.c m_gost2814789.c m_gostr341194.c m_streebog.c"
199
200copy_crypto gost "gost2814789.c gost89_keywrap.c gost89_params.c
201 gost89imit_ameth.c gost89imit_pmeth.c gost_asn1.c gost_err.c gostr341001.c
202 gostr341001_ameth.c gostr341001_key.c gostr341001_params.c
203 gostr341001_pmeth.c gostr341194.c streebog.c gost.h gost_asn1.h
204 gost_locl.h"
205
206copy_crypto hmac "hmac.c hm_ameth.c hm_pmeth.c"
207
208copy_crypto idea "i_cbc.c i_cfb64.c i_ofb64.c i_ecb.c i_skey.c idea_lcl.h"
209
210copy_crypto krb5 "krb5_asn.c"
211
212copy_crypto lhash "lhash.c lh_stats.c"
213
214copy_crypto md4 "md4_dgst.c md4_one.c md4_locl.h"
215
216copy_crypto md5 "md5_dgst.c md5_one.c md5_locl.h"
217
218copy_crypto mdc2 "mdc2dgst.c mdc2_one.c"
219
220copy_crypto modes "cbc128.c ctr128.c cts128.c cfb128.c ofb128.c gcm128.c
221 ccm128.c xts128.c modes_lcl.h"
222
223copy_crypto objects "o_names.c obj_dat.c obj_lib.c obj_err.c obj_xref.c obj_xref.h"
224
225copy_crypto ocsp "ocsp_asn.c ocsp_ext.c ocsp_ht.c ocsp_lib.c ocsp_cl.c
226 ocsp_srv.c ocsp_prn.c ocsp_vfy.c ocsp_err.c"
227
228copy_crypto pem "pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c
229 pem_x509.c pem_xaux.c pem_oth.c pem_pk8.c pem_pkey.c pvkfmt.c"
230
231copy_crypto pkcs12 "p12_add.c p12_asn.c p12_attr.c p12_crpt.c p12_crt.c
232 p12_decr.c p12_init.c p12_key.c p12_kiss.c p12_mutl.c p12_utl.c p12_npas.c
233 pk12err.c p12_p8d.c p12_p8e.c"
234
235copy_crypto pkcs7 "pk7_asn1.c pk7_lib.c pkcs7err.c pk7_doit.c pk7_smime.c
236 pk7_attr.c pk7_mime.c bio_pk7.c"
237
238copy_crypto poly1305 "poly1305-donna.c poly1305.c"
239
240copy_crypto rand "randfile.c rand_err.c rand_lib.c"
241
242copy_crypto rc2 "rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c rc2_locl.h"
243
244copy_crypto rc4 "rc4_enc.c rc4_skey.c rc4_locl.h"
245
246copy_crypto ripemd "rmd_dgst.c rmd_one.c rmd_locl.h rmdconst.h"
247
248copy_crypto rsa "rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c
249 rsa_pk1.c rsa_ssl.c rsa_none.c rsa_oaep.c rsa_chk.c rsa_pss.c
250 rsa_x931.c rsa_asn1.c rsa_depr.c rsa_ameth.c rsa_prn.c rsa_pmeth.c
251 rsa_crpt.c rsa_locl.h"
252
253copy_crypto sha "sha_dgst.c sha1dgst.c sha_one.c sha1_one.c sha256.c sha512.c sha_locl.h"
254
255copy_crypto stack "stack.c"
256
257copy_crypto ts "ts_err.c ts_req_utils.c ts_req_print.c ts_rsp_utils.c
258 ts_rsp_print.c ts_rsp_sign.c ts_rsp_verify.c ts_verify_ctx.c ts_lib.c
259 ts_conf.c ts_asn1.c"
260
261copy_crypto txt_db "txt_db.c"
262
263copy_crypto ui "ui_err.c ui_lib.c ui_openssl.c ui_openssl_win.c ui_util.c ui_locl.h"
264
265copy_crypto whrlpool "wp_block.c wp_dgst.c wp_locl.h"
266
267copy_crypto x509 "x509_def.c x509_d2.c x509_r2x.c x509_cmp.c x509_obj.c
268 x509_req.c x509spki.c x509_vfy.c x509_set.c x509cset.c x509rset.c
269 x509_err.c x509name.c x509_v3.c x509_ext.c x509_att.c x509type.c x509_lu.c
270 x_all.c x509_txt.c x509_trs.c by_file.c by_dir.c x509_vpm.c x509_lcl.h"
271
272copy_crypto x509v3 "v3_bcons.c v3_bitst.c v3_conf.c v3_extku.c v3_ia5.c v3_lib.c
273 v3_prn.c v3_utl.c v3err.c v3_genn.c v3_alt.c v3_skey.c v3_akey.c v3_pku.c
274 v3_int.c v3_enum.c v3_sxnet.c v3_cpols.c v3_crld.c v3_purp.c v3_info.c
275 v3_ocsp.c v3_akeya.c v3_pmaps.c v3_pcons.c v3_ncons.c v3_pcia.c v3_pci.c
276 pcy_cache.c pcy_node.c pcy_data.c pcy_map.c pcy_tree.c pcy_lib.c
277 pcy_int.h ext_dat.h"
278 107
279# copy libtls source 108# copy libtls source
280rm -f tls/*.c tls/*.h 109rm -f tls/*.c tls/*.h
@@ -285,6 +114,7 @@ done
285 114
286# copy openssl(1) source 115# copy openssl(1) source
287$CP $libc_src/stdlib/strtonum.c apps 116$CP $libc_src/stdlib/strtonum.c apps
117$CP $libcrypto_src/openssl.cnf apps
288for i in `awk '/SOURCES|HEADERS/ { print $3 }' apps/Makefile.am` ; do 118for i in `awk '/SOURCES|HEADERS/ { print $3 }' apps/Makefile.am` ; do
289 if [ -e $openssl_app_src/$i ]; then 119 if [ -e $openssl_app_src/$i ]; then
290 cp $openssl_app_src/$i apps 120 cp $openssl_app_src/$i apps
@@ -321,9 +151,11 @@ $CP $libc_regress/timingsafe/timingsafe.c tests
321# copy libssl tests 151# copy libssl tests
322$CP $libssl_regress/asn1/asn1test.c tests 152$CP $libssl_regress/asn1/asn1test.c tests
323$CP $libssl_regress/ssl/testssl tests 153$CP $libssl_regress/ssl/testssl tests
154$CP $libssl_regress/ssl/ssltest.c tests
324$CP $libssl_regress/certs/ca.pem tests 155$CP $libssl_regress/certs/ca.pem tests
325$CP $libssl_regress/certs/server.pem tests 156$CP $libssl_regress/certs/server.pem tests
326 157
158# setup test drivers
327# do not directly run all test programs 159# do not directly run all test programs
328test_drivers=( 160test_drivers=(
329 aeadtest 161 aeadtest
@@ -392,57 +224,7 @@ echo "EXTRA_DIST += testssl ca.pem server.pem" >> tests/Makefile.am
392 done 224 done
393) 225)
394 226
395# copy libcrypto 227# copy manpages
396
397# do not directly compile C files that are included in other C files
398crypto_excludes=(
399 des/ncbc_enc.c
400 chacha/chacha-merged.c
401 poly1305/poly1305-donna.c
402 )
403crypto_posix_only=(
404 bio/b_posix.c
405 ui/ui_openssl.c
406 )
407crypto_win32_only=(
408 bio/b_win.c
409 ui/ui_openssl_win.c
410 )
411(cd crypto
412 sed -e "s/libcrypto-version/${libcrypto_version}/" Makefile.am.tpl > Makefile.am
413 for i in `ls -1 *.c|sort`; do
414 echo "libcrypto_la_SOURCES += $i" >> Makefile.am
415 done
416 for i in `ls -1 *.h|sort`; do
417 echo "noinst_HEADERS += $i" >> Makefile.am
418 done
419 for subdir in $crypto_subdirs; do
420 echo >> Makefile.am
421 echo "# ${subdir}" >> Makefile.am
422 for i in `ls -1 $subdir/*.c|sort`; do
423 if [[ ${crypto_excludes[*]} =~ $i ]]; then
424 echo "EXTRA_libcrypto_la_SOURCES += $i" >> Makefile.am
425 elif [[ ${crypto_posix_only[*]} =~ $i ]]; then
426 echo "if !HOST_WIN" >> Makefile.am
427 echo "libcrypto_la_SOURCES += ${i}" >> Makefile.am
428 echo "endif" >> Makefile.am
429 elif [[ ${crypto_win32_only[*]} =~ $i ]]; then
430 echo "if HOST_WIN" >> Makefile.am
431 echo "libcrypto_la_SOURCES += ${i}" >> Makefile.am
432 echo "endif" >> Makefile.am
433 else
434 echo "libcrypto_la_SOURCES += $i" >> Makefile.am
435 fi
436 done
437 headers=`ls -1 $subdir/*.h 2>/dev/null |sort`
438 if [ "$headers" != "" ]; then
439 for i in $headers; do
440 echo "noinst_HEADERS += $i" >> Makefile.am
441 done
442 fi
443 done
444)
445
446(cd man 228(cd man
447 $CP Makefile.am.tpl Makefile.am 229 $CP Makefile.am.tpl Makefile.am
448 230
@@ -452,7 +234,7 @@ crypto_win32_only=(
452 cp $i . 234 cp $i .
453 echo "dist_man_MANS += $NAME" >> Makefile.am 235 echo "dist_man_MANS += $NAME" >> Makefile.am
454 done 236 done
455 $CP $openssl_cmd_src/openssl.1 . 237 $CP $openssl_app_src/openssl.1 .
456 echo "dist_man_MANS += openssl.1" >> Makefile.am 238 echo "dist_man_MANS += openssl.1" >> Makefile.am
457 $CP $libtls_src/tls_init.3 . 239 $CP $libtls_src/tls_init.3 .
458 echo "if ENABLE_LIBTLS" >> Makefile.am 240 echo "if ENABLE_LIBTLS" >> Makefile.am