rpki-client / rpki-client-portable

Portability shim for OpenBSD's rpki-client
https://rpki-client.org
ISC License
52 stars 17 forks source link

Nightly GitHub Action failure #34

Closed robert-scheck closed 3 years ago

robert-scheck commented 3 years ago

Our nightly GitHub Action for the container image failed with:

#37 110.1 libtool: link: cc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wpointer-arith -Wsign-compare -Werror-implicit-function-declaration -Wno-pointer-sign "-DRPKI_PATH_TAL_DIR=\"/etc/tals\"" "-DRPKI_PATH_BASE_DIR=\"/var/cache/rpki-client\"" "-DRPKI_PATH_OUT_DIR=\"/var/lib/rpki-client\"" -g -O2 -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE -o rpki-client rpki_client-as.o rpki_client-cert.o rpki_client-cms.o rpki_client-crl.o rpki_client-gbr.o rpki_client-io.o rpki_client-ip.o rpki_client-log.o rpki_client-main.o rpki_client-mft.o rpki_client-mkdir.o rpki_client-output.o rpki_client-output-bgpd.o rpki_client-output-bird.o rpki_client-output-csv.o rpki_client-output-json.o rpki_client-parser.o rpki_client-roa.o rpki_client-rsync.o rpki_client-tal.o rpki_client-validate.o rpki_client-x509.o  ../compat/.libs/libcompat.a ../compat/.libs/libcompatnoopt.a -lcrypto -lfts
#37 110.4 /usr/lib/gcc/x86_64-alpine-linux-musl/10.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: rpki_client-main.o: in function `main':
#37 110.4 /tmp/rpki-client-portable/src/main.c:1064: undefined reference to `proc_http'
#37 110.5 collect2: error: ld returned 1 exit status
cjeker commented 3 years ago

Some of this was fixed in 1b4605f7e3e80d207678bdc64948a04f94517d06 but now libtls is required (either via libressl libtls or libretls). This is an external dependency and not included in the build compat.

robert-scheck commented 3 years ago

Yes, confirming that the following conditions lead to successful builds on Fedora 32, 33, 34, 35 as well as on EPEL 7 and 8 (for all supported hardware architectures):

Until LibreTLS lands in an Alpine stable release, adding the package libtls-standalone-dev lets the build succeed as well. Output from a (random) test run:

[…]
rpki-client: all files parsed: generating output
rpki-client: Route Origin Authorizations: 44489 (6 failed parse, 0 invalid)
rpki-client: Certificates: 22153 (0 failed parse, 0 invalid)
rpki-client: Trust Anchor Locators: 4
rpki-client: Manifests: 22153 (6 failed parse, 2 stale)
rpki-client: Certificate revocation lists: 22145
rpki-client: Ghostbuster records: 3
rpki-client: Repositories: 30
rpki-client: Files removed: 2443
rpki-client: VRP Entries: 205462 (203793 unique)

And thus https://github.com/rpki-client/rpki-client-container/commit/99690d30d8aa99457f3caa58758445255feffe20 let's the build succeed again (also on all architectures). To maybe improve the libtls handling, I've opened #38 additionally.

Thank you!