[MacPorts] #63328: kerberos5 @1.19.2 needs corrected configure options

MacPorts noreply at macports.org
Sat Jul 31 19:44:22 UTC 2021


#63328: kerberos5 @1.19.2 needs corrected configure options
-------------------------+-----------------------
 Reporter:  ballapete    |      Owner:  (none)
     Type:  enhancement  |     Status:  new
 Priority:  Normal       |  Milestone:
Component:  ports        |    Version:  2.7.1
 Keywords:  tiger        |       Port:  kerberos5
-------------------------+-----------------------
 While trying to see whether `kerberos5` can work with `Python 3.8` I saw
 this report:

 {{{
 configure: WARNING: unrecognized options: --with-pkinit-crypto-impl
 }}}

 This `configure` option is gone.

 Another `configure` option is obsolete: `--mandir=/opt/local/share/man`.
 Form help (a bit edited):

 {{{
 Installation directories:
   --prefix=PREFIX         install architecture-independent files in PREFIX
                           [/usr/local]
 Fine tuning of the installation directories:

   --datarootdir=DIR       read-only arch.-independent data root
 [PREFIX/share]

   --mandir=DIR            man documentation [DATAROOTDIR/man]
 }}}

 `--prefix` is set to `/opt/local` so `datarootdir` becomes
 `/opt/local/share` and `mandir` automatically `/opt/local/share/man` which
 the option `--mandir=/opt/local/share/man` dictates uselessly.


 ----

 From a first failed try to run `make check` it seems that `src/Makefile`
 needs to be patched. It contains explicitly:

 {{{
   335   COM_ERR_LIB = -L/opt/local/lib -lcom_err
   379   RL_LIBS         = -L/opt/local/lib -ledit
 }}}

 while this line only has

 {{{
   179   LIBS = -lcrypto -lintl -lresolv
 }}}

 without any other occurrence of `-L/opt/local/lib`. These lines also look
 suspicious:

 {{{
   442   # TLS implementation selection
   443   TLS_IMPL        = openssl
   444   TLS_IMPL_CFLAGS =
   445   TLS_IMPL_LIBS   = -lssl -lcrypto
 }}}

 The only other occurrence that the `LIBS` macros is used is:

 {{{
   406   KRB5_BASE_LIBS  = $(KRB5_LIB) $(K5CRYPTO_LIB) $(COM_ERR_LIB)
 $(SUPPORT_LIB) $(GEN_LIB) $(LIBS) $(DL_LIB)
 }}}

 So when the `port` is built it inherits from `$(COM_ERR_LIB)` the path
 argument `-L/opt/local/lib` and all is fine. For the `test/check` target
 something similar needs to be constructed for cases when `libcom_err` is
 not used with `$(LIBS)`. For example here:

 {{{
 making check in util/profile/testmod...
 [...]
 building dynamic proftest object
 set -x; objlist=`set -x && perl -p -e 'BEGIN { $SIG{__WARN__} = sub {die
 @_} }; $e=$ARGV; $e =~ s/OBJS\...$//; s/^/ /; s/ $//; s/ / $e/g;' OBJS.SH`
 && /opt/local/bin/gcc-apple-4.2 -std=gnu99 -bundle -pipe -Os -arch ppc
 -fno-common -Wl,-headerpad_max_install_names -arch ppc
 -Wl,-search_paths_first -o proftest.so $objlist -L../../../lib
 -lkrb5support -lcrypto -lintl -lresolv  -Wl,-headerpad_max_install_names
 -arch ppc -Wl,-search_paths_first -exported_symbols_list darwin.exports
 ++ set -x
 ++ perl -p -e 'BEGIN { $SIG{__WARN__} = sub {die @_} }; $e=$ARGV; $e =~
 s/OBJS\...$//; s/^/ /; s/ $//; s/ / $e/g;' OBJS.SH
 + objlist= testmod_main.so
 + /opt/local/bin/gcc-apple-4.2 -std=gnu99 -bundle -pipe -Os -arch ppc
 -fno-common -Wl,-headerpad_max_install_names -arch ppc
 -Wl,-search_paths_first -o proftest.so testmod_main.so -L../../../lib
 -lkrb5support -lcrypto -lintl -lresolv -Wl,-headerpad_max_install_names
 -arch ppc -Wl,-search_paths_first -exported_symbols_list darwin.exports
 ld: library not found for -lintl
 collect2: ld returned 1 exit status
 make[3]: *** [proftest.so] Error 1
 make[3]: Target `check' not remade because of errors.
 make[2]: *** [check-recurse] Error 1
 }}}

 {{{
 making check in util/verto...
 make[1]: *** [check-recurse] Error 1
 make[1]: Target `check' not remade because of errors.
 making check in include...
 making check in lib...
 making check in lib/crypto...
 making check in lib/crypto/krb...
 /opt/local/bin/gcc-apple-4.2 -std=gnu99 -DHAVE_CONFIG_H
 -I../../../include -I../../../include -I./../openssl -DKRB5_DEPRECATED=1
 -DKRB5_PRIVATE -I/opt/local/include -pipe -Os -arch ppc -fno-common -Wall
 -Wcast-align -Wshadow -Wmissing-prototypes -Wno-format-zero-length
 -Woverflow -Wstrict-overflow -Wmissing-format-attribute -Wmissing-
 prototypes -Wreturn-type -Wmissing-braces -Wparentheses -Wswitch -Wunused-
 function -Wunused-label -Wunused-variable -Wunused-value -Wunknown-pragmas
 -Wsign-compare -Wnewline-eof -Wdeclaration-after-statement -pthread  -c
 t_fortuna.c
 /opt/local/bin/gcc-apple-4.2 -std=gnu99 -L../../../lib -dynamic -pipe -Os
 -arch ppc -fno-common -Wl,-headerpad_max_install_names -arch ppc
 -Wl,-search_paths_first  -o t_fortuna t_fortuna.o -lk5crypto -lkrb5support
 -lcrypto -lintl -lresolv
 ld: library not found for -lintl
 collect2: ld returned 1 exit status
 make[3]: *** [t_fortuna] Error 1
 make[3]: Target `check' not remade because of errors.
 }}}

 {{{
 making check in tests/misc...
 /opt/local/bin/g++-apple-4.2 -DHAVE_CONFIG_H  -I../../include
 -I../../include  -DKRB5_DEPRECATED=1 -DKRB5_PRIVATE -I/opt/local/include
 -pipe -Os -arch ppc -Wall -Wcast-align -Wshadow -pthread  -c
 test_cxx_krb5.cpp
 /opt/local/bin/g++-apple-4.2 -L../../lib -dynamic -pipe -Os -arch ppc
 -Wl,-headerpad_max_install_names -arch ppc -Wl,-search_paths_first
 -DHAVE_CONFIG_H  -I../../include -I../../include  -DKRB5_DEPRECATED=1
 -DKRB5_PRIVATE -I/opt/local/include -pipe -Os -arch ppc -Wall -Wcast-align
 -Wshadow -pthread  -o test_cxx_krb5 test_cxx_krb5.o -lkrb5 -lk5crypto
 -L/opt/local/lib -lcom_err -lkrb5support  -lcrypto -lintl -lresolv
 -lcrypto -lintl -lresolv
 ld: warning: object file compiled with -mlong-branch which is no longer
 needed. To remove this warning, recompile without -mlong-branch:
 /opt/local/lib/apple-gcc42/gcc/powerpc-apple-darwin8/4.2.4/crt3.o
 /opt/local/bin/g++-apple-4.2 -DHAVE_CONFIG_H  -I../../include
 -I../../include  -DKRB5_DEPRECATED=1 -DKRB5_PRIVATE -I/opt/local/include
 -pipe -Os -arch ppc -Wall -Wcast-align -Wshadow -pthread  -c
 test_cxx_gss.cpp
 /opt/local/bin/g++-apple-4.2 -L../../lib -dynamic -pipe -Os -arch ppc
 -Wl,-headerpad_max_install_names -arch ppc -Wl,-search_paths_first
 -DHAVE_CONFIG_H  -I../../include -I../../include  -DKRB5_DEPRECATED=1
 -DKRB5_PRIVATE -I/opt/local/include -pipe -Os -arch ppc -Wall -Wcast-align
 -Wshadow -pthread  -o test_cxx_gss test_cxx_gss.o -lcrypto -lintl -lresolv
 ld: library not found for -lintl
 collect2: ld returned 1 exit status
 make[2]: *** [test_cxx_gss] Error 1
 }}}

 Actually `src/util/profile/testmod/Makefile`, `src/util/verto/Makefile`,
 and `src/tests/misc/Makefile` seem to be the candidates, which I'll check
 when `kerberos5` will be built again. Possibly `src/build-
 tools/krb5-config` is the cause, it contains

 {{{
    45   LIBS='-lcrypto -lintl -lresolv '
 }}}

 because `src/build-tools/krb5-config.in` has

 {{{
    45   LIBS='@LIBS@'
 }}}

 So there must be some tool invocation to create `krb5-config` from
 `krb5-config.in`…

-- 
Ticket URL: <https://trac.macports.org/ticket/63328>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list