Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build 1.7.2 fails on alpine Linux on Arm64 #525

Open
kometchtech opened this issue Aug 20, 2022 · 3 comments
Open

Build 1.7.2 fails on alpine Linux on Arm64 #525

kometchtech opened this issue Aug 20, 2022 · 3 comments

Comments

@kometchtech
Copy link

As reported in #457, I have noticed that the build fails when using build on arm64 Alpine Linux.

  • Alpine Linux 3.16.2 aarch64
  • getdns 1.7.2
  • gnutls 3.16.16
#0 19.09 [ 37%] Building C object CMakeFiles/getdns_objects.dir/src/tls/val_secalgo.c.o
#0 19.63 /usr/src/src/tls/val_secalgo.c: In function '_verify_nettle_dsa':
#0 19.63 /usr/src/src/tls/val_secalgo.c:1723:31: error: storage size of 'pubkey' isn't known
#0 19.63  1723 |         struct dsa_public_key pubkey;
#0 19.63       |                               ^~~~~~
#0 19.67 /usr/src/src/tls/val_secalgo.c:1779:9: warning: implicit declaration of function 'nettle_dsa_public_key_init'; did you mean 'nettle_rsa_public_key_init'? [-Wimplicit-function-declaration]
#0 19.67  1779 |         nettle_dsa_public_key_init(&pubkey);
#0 19.67       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~
#0 19.67       |         nettle_rsa_public_key_init
#0 19.70 /usr/src/src/tls/val_secalgo.c:1792:16: warning: implicit declaration of function 'dsa_sha1_verify_digest'; did you mean 'rsa_sha1_verify_digest'? [-Wimplicit-function-declaration]
#0 19.70  1792 |         res &= dsa_sha1_verify_digest(&pubkey, digest, &signature);
#0 19.70       |                ^~~~~~~~~~~~~~~~~~~~~~
#0 19.70       |                rsa_sha1_verify_digest
#0 19.71 /usr/src/src/tls/val_secalgo.c:1796:9: warning: implicit declaration of function 'nettle_dsa_public_key_clear'; did you mean 'nettle_rsa_public_key_clear'? [-Wimplicit-function-declaration]
#0 19.71  1796 |         nettle_dsa_public_key_clear(&pubkey);
#0 19.71       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
#0 19.71       |         nettle_rsa_public_key_clear
#0 19.71 /usr/src/src/tls/val_secalgo.c:1723:31: warning: unused variable 'pubkey' [-Wunused-variable]
#0 19.71  1723 |         struct dsa_public_key pubkey;
#0 19.71       |                               ^~~~~~
#0 19.74 /usr/src/src/tls/val_secalgo.c: In function '_verify_nettle_ecdsa':
#0 19.75 /usr/src/src/tls/val_secalgo.c:1907:57: error: 'nettle_secp_256r1' undeclared (first use in this function); did you mean 'nettle_get_secp_256r1'?
#0 19.75  1907 |                         nettle_ecc_point_init(&pubkey, &nettle_secp_256r1);
#0 19.75       |                                                         ^~~~~~~~~~~~~~~~~
#0 19.75       |                                                         nettle_get_secp_256r1
#0 19.75 /usr/src/src/tls/val_secalgo.c:1907:57: note: each undeclared identifier is reported only once for each function it appears in
#0 19.77 /usr/src/src/tls/val_secalgo.c:1929:57: error: 'nettle_secp_384r1' undeclared (first use in this function); did you mean 'nettle_get_secp_384r1'?
#0 19.77  1929 |                         nettle_ecc_point_init(&pubkey, &nettle_secp_384r1);
#0 19.77       |                                                         ^~~~~~~~~~~~~~~~~
#0 19.77       |                                                         nettle_get_secp_384r1
#0 19.83 make[2]: *** [CMakeFiles/getdns_objects.dir/build.make:538: CMakeFiles/getdns_objects.dir/src/tls/val_secalgo.c.o] Error 1
#0 19.83 make[2]: *** Waiting for unfinished jobs....
#0 22.66 make[1]: *** [CMakeFiles/Makefile2:892: CMakeFiles/getdns_objects.dir/all] Error 2
#0 22.66 make: *** [Makefile:146: all] Error 2

This problem does not occur in 1.7.0.
Is there any way to resolve this issue? Also, would I need to provide any additional information?

@kometchtech
Copy link
Author

Sorry again and again.
We have been able to reproduce the issue and have reopened it.

@wtoorop
Copy link
Contributor

wtoorop commented Aug 22, 2022

Thanks @kometchtech . I've installed an alpine linux container to reproduce, but it looks the build failed with be because gnutls-dane cannot be found. Did you manually compile gnutls for your installation?

@kometchtech
Copy link
Author

@wtoorop

Thank you very much.

I manually built gnutls by giving the following configure option.

ARG BUILD_BASE="alpine-sdk lld gawk autoconf automake libtool xz"
ARG BUILD_PKGS="${BUILD_BASE} openssl-dev gmp-dev libgmpxx libtasn1-dev p11-kit-dev libidn2-dev \
                zlib-dev unbound-dev unbound-libs libunistring-dev libc6-compat libgcc nettle-dev "
ENV LD="ld.lld"

# build dependencies install
RUN --mount=type=cache,target=/var/cache/apk \
    apk add --no-cache --update ${BUILD_PKGS}
    && ./configure \
       --disable-doc \
       --disable-tests \
       --enable-shared \
       --disable-tools \
       --disable-guile \
       --disable-srp-authentication \
       --disable-psk-authentication \
       --disable-anon-authentication \
       --enable-openssl-compatibility \
       --disable-dtls-srtp-support \
       --disable-alpn-support \
       --disable-heartbeat-support \
       --without-p11-kit \
       --without-tpm

Is this information sufficient?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants