#60243 closed defect (fixed)

cpabe @0.11 configure failure

Reported by: aviralx10 (Aviral Yadav) Owned by: ryandesign (Ryan Schmidt)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: cpabe

Description (last modified by ryandesign (Ryan Schmidt))

When I run sudo port install cpabe, I encounter the below mentioned problems.

Attachments (2)

main.log (29.6 KB) - added by ryandesign (Ryan Schmidt) 14 months ago.
config.log (26.5 KB) - added by ryandesign (Ryan Schmidt) 14 months ago.

Download all attachments as: .zip

Change History (6)

comment:1 Changed 14 months ago by jmroot (Joshua Root)

Port: cpabe added
Summary: Unable to install Cpabe toolkitcpabe @0.11 configure failure

A screenshot doesn't help very much. Please attach the main.log file mentioned in the error message.

comment:2 Changed 14 months ago by ryandesign (Ryan Schmidt)

Description: modified (diff)

True, however according to the port health indicators the buildbot also failed to build this port on all macOS versions; hopefully that means it should be easy for us to reproduce the issue.

Changed 14 months ago by ryandesign (Ryan Schmidt)

Attachment: main.log added

Changed 14 months ago by ryandesign (Ryan Schmidt)

Attachment: config.log added

comment:3 Changed 14 months ago by ryandesign (Ryan Schmidt)

Here are my logs.

main.log says:

checking for libbswabe... not found
configure: error:

The library libbswabe was not found on your system! Please obtain it
from

  http://acsc.csl.sri.com/cpabe/

and install it before trying again. If libbswabe is already
installed in a non-standard location, try again with

  ./configure --with-bswabe-include=<path> --with-bswabe-lib=<path>

If you already specified those arguments, double check that bswabe.h
can be found in the first path and libbswabe.a can be found in the
second.

See ./configure --help for more information.

config.log says:

configure:4524: checking for libbswabe
configure:4574: ccache /usr/bin/clang -o conftest -O3 -Wall  -I/opt/local/include/pbc  -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -O3 -Wall conftest.c -lcrypto -lcrypto  -lbswabe -Wl,-rpath /usr/local/lib -lpbc -Wl,-rpath /usr/local/lib -lgmp -L/opt/local/lib -lglib-2.0 -lintl -Wl,-framework -Wl,CoreFoundation >&5
conftest.c:40:20: warning: variable 'p' is uninitialized when used here [-Wuninitialized]
   bswabe_pub_free(p);
                   ^
conftest.c:39:16: note: initialize the variable 'p' to silence this warning
bswabe_pub_t* p;
               ^
                = NULL
1 warning generated.
Undefined symbols for architecture x86_64:
  "_bswabe_pub_free", referenced from:
      _main in conftest-944aac.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
configure:4574: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "cpabe"
| #define PACKAGE_TARNAME "cpabe"
| #define PACKAGE_VERSION "0.11"
| #define PACKAGE_STRING "cpabe 0.11"
| #define PACKAGE_BUGREPORT "bethenco@cs.berkeley.edu"
| #define PACKAGE_URL ""
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_FCNTL_H 1
| #define HAVE_STDDEF_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_MALLOC 1
| #define HAVE_VPRINTF 1
| #define HAVE_LIBCRYPTO 1
| #define HAVE_LIBCRYPTO 1
| #define HAVE_STRCHR 1
| #define HAVE_STRDUP 1
| #define HAVE_MEMSET 1
| #define HAVE_GMP 1
| #define HAVE_PBC 1
| /* end confdefs.h.  */
| #include <glib.h>
|    #include <pbc.h>
|    #include <bswabe.h>
| int
| main ()
| {
| bswabe_pub_t* p;
|    bswabe_pub_free(p);
|   ;
|   return 0;
| }
configure:4586: result: not found

Adding the --with-bswabe-include=<path> and --with-bswabe-lib=<path> flags does not help because the problem is not an inability to locate the library or headers; the problem is that the library that was found appears to be missing something essential.

I appear to have caused this in [ad587304cb98daa6850bace3d2809f0cfe8fa380/macports-ports] when I resolved #28925 by adding a dynamic libbswabe library. If I revert that, cpabe configures successfully and finds the static libbswabe library. So either the dynamic library needs something added to it or else the test for the library in cpabe needs to be adjusted.

comment:4 Changed 14 months ago by ryandesign (Ryan Schmidt)

Owner: set to ryandesign
Resolution: fixed
Status: newclosed

In 3349810d86aeb0462ad691ed1545b2e576e4e49f/macports-ports (master):

libbswabe: Include all prerequisites in dylib

Include all prerequisites in the dylib, not just the first prerequisite.

Closes: #60243
See: #28925

Note: See TracTickets for help on using tickets.