planetbeing / libdmg-hfsplus

Portable libraries and utilities that manipulate HFS+ volumes and Apple's DMG images
GNU General Public License v3.0
161 stars 104 forks source link

Compilation error: field ‘hmacCTX’ has incomplete type #14

Open majenkotech opened 6 years ago

majenkotech commented 6 years ago

Complete build log:

matt@hp:~/libdmg-hfsplus$ mkdir build
matt@hp:~/libdmg-hfsplus$ cd build
matt@hp:~/libdmg-hfsplus/build$ cmake ..
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.1.0g") 
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/matt/libdmg-hfsplus/build
matt@hp:~/libdmg-hfsplus/build$ make
Scanning dependencies of target common
[  3%] Building C object common/CMakeFiles/common.dir/abstractfile.c.o
[  6%] Linking C static library libcommon.a
[  6%] Built target common
Scanning dependencies of target hfs
[  9%] Building C object hfs/CMakeFiles/hfs.dir/btree.c.o
[ 12%] Building C object hfs/CMakeFiles/hfs.dir/catalog.c.o
[ 16%] Building C object hfs/CMakeFiles/hfs.dir/extents.c.o
[ 19%] Building C object hfs/CMakeFiles/hfs.dir/xattr.c.o
[ 22%] Building C object hfs/CMakeFiles/hfs.dir/fastunicodecompare.c.o
[ 25%] Building C object hfs/CMakeFiles/hfs.dir/flatfile.c.o
[ 29%] Building C object hfs/CMakeFiles/hfs.dir/hfslib.c.o
[ 32%] Building C object hfs/CMakeFiles/hfs.dir/rawfile.c.o
[ 35%] Building C object hfs/CMakeFiles/hfs.dir/utility.c.o
[ 38%] Building C object hfs/CMakeFiles/hfs.dir/volume.c.o
[ 41%] Building C object hfs/CMakeFiles/hfs.dir/hfscompress.c.o
[ 45%] Linking C static library libhfs.a
[ 45%] Built target hfs
Scanning dependencies of target dmg
[ 48%] Building C object dmg/CMakeFiles/dmg.dir/adc.c.o
[ 51%] Building C object dmg/CMakeFiles/dmg.dir/base64.c.o
[ 54%] Building C object dmg/CMakeFiles/dmg.dir/checksum.c.o
[ 58%] Building C object dmg/CMakeFiles/dmg.dir/dmgfile.c.o
[ 61%] Building C object dmg/CMakeFiles/dmg.dir/dmglib.c.o
[ 64%] Building C object dmg/CMakeFiles/dmg.dir/filevault.c.o
In file included from /home/matt/libdmg-hfsplus/dmg/filevault.c:6:0:
/home/matt/libdmg-hfsplus/includes/dmg/filevault.h:82:11: error: field ‘hmacCTX’ has incomplete type
  HMAC_CTX hmacCTX;
           ^~~~~~~
/home/matt/libdmg-hfsplus/dmg/filevault.c: In function ‘fvClose’:
/home/matt/libdmg-hfsplus/dmg/filevault.c:180:2: warning: implicit declaration of function ‘HMAC_CTX_cleanup’; did you mean ‘HMAC_CTX_get_md’? [-Wimplicit-function-declaration]
  HMAC_CTX_cleanup(&(info->hmacCTX));
  ^~~~~~~~~~~~~~~~
  HMAC_CTX_get_md
/home/matt/libdmg-hfsplus/dmg/filevault.c: In function ‘createAbstractFileFromFileVault’:
/home/matt/libdmg-hfsplus/dmg/filevault.c:237:2: warning: implicit declaration of function ‘HMAC_CTX_init’; did you mean ‘HMAC_CTX_new’? [-Wimplicit-function-declaration]
  HMAC_CTX_init(&(info->hmacCTX));
  ^~~~~~~~~~~~~
  HMAC_CTX_new
dmg/CMakeFiles/dmg.dir/build.make:182: recipe for target 'dmg/CMakeFiles/dmg.dir/filevault.c.o' failed
make[2]: *** [dmg/CMakeFiles/dmg.dir/filevault.c.o] Error 1
CMakeFiles/Makefile2:182: recipe for target 'dmg/CMakeFiles/dmg.dir/all' failed
make[1]: *** [dmg/CMakeFiles/dmg.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

System: Ubuntu 64-bit bionic beaver.

ianmorty commented 5 years ago

suspect this is version 1.1 of libssl - try installing libssl1.0.2 - worked for me on a debian:9 install

nopara73 commented 5 years ago

On Ubuntu 18.04 @ianmorty's suggestion worked by installing the following package: sudo apt-get install libssl1.0-dev

Cattlesquat commented 4 years ago

Public service for anyone in e.g. 2020 who finds this and discovers it's hard to get libssl1.0 any more, head here and scroll down to the "Still facing this in 2020?" part of the thread. Got me running. https://github.com/rvm/rvm/issues/4764