Having the exact same problems here as well. The CFLAGS option isn't causing a segfault for me but it's not working around the problem either. I'd be interested in exactly how it was spear installed the F19 version of openssl and then configured makemkv to use those libs instead. Using --prefix either isn't the right way to do it or that workaround isn't working for me either.
This is quick-and-dirty, but it worked for me. I pointed to the older version of openssl-libs but I don't think it was needed, just the older include files:
# extract older openssl files
mkdir -p /path/to/private/openssl
cd /path/to/private/openssl
rpm2cpio /path/to/openssl-devel-1.0.1e-4.fc19.x86_64.rpm | cpio -dumiv
rpm2cpio /path/to/openssl-libs-1.0.1e-4.fc19.x86_64.rpm | cpio -dumiv
# unpack makemkv-oss-1.8.7
cd /path/to
tar xzf /path/to/makemkv-oss-1.8.7.tar.gz
cd /path/to/makemkv-oss-1.8.7
./configure # I prefer to add --prefix=/usr/local
# edit Makefile
vi Makefile
# append this to CFLAGS:
# -L/path/to/private/openssl/usr/lib64 -I/path/to/private/openssl/usr/include
#
# I also prefer to change LIBDIR to lib64:
# LIBDIR=$(PREFIX)/lib64
make
make install
I upgraded to F20 just to test this, and can confirm, my earlier suggestion does result in a segmentation fault in F20 (it worked just fine in F19, I promise).
In F20, you can run './configure' as usual, then edit the Makefile, adding ' -DOPENSSL_NO_EC' to the line that starts with 'CFLAGS='. Build and install normally after that.
mike admin wrote:... UPDATE2: Kudos to nevergonnahappen4me for figuring out the bug and workaround. The workaround works for both F19 and F20.
nevergonnahappen4me wrote:In F20, you can run './configure' as usual, then edit the Makefile, adding ' -DOPENSSL_NO_EC' to the line that starts with 'CFLAGS='. Build and install normally after that.
Thank you for this awesome solution. It did work for me.
I'd suggest that the configure script detect if EC curves work with the selected openssl library and if not automatically append -DOPENSSL_NO_EC to CFLAGS. This is what the configure script is suppose to do anyways. It detects your system configuration and adjusts to it. If this change was made for future releases then no one would need any hacks.
I did some checks and found the following: the ec support was added to openssl-1.0.1e-27.fc20, but was then limited to only NIST Suite B in openssl-1.0.1e-28.fc20. -27 works with makemkv, -28 does not.
Which curves are needed by makemkv? With this information I could file a bug asking to have them re-enabled. Hopefully these are not the encumbered ones...
belegdol wrote:I did some checks and found the following: the ec support was added to openssl-1.0.1e-27.fc20, but was then limited to only NIST Suite B in openssl-1.0.1e-28.fc20. -27 works with makemkv, -28 does not.
Which curves are needed by makemkv? With this information I could file a bug asking to have them re-enabled. Hopefully these are not the encumbered ones...
This is not because of NIST curves. The openssl in fedora has an unique fips patch. The library can be in two modes - fips and non-fips. Several "insecure" ciphers are always disabled in fips mode. On fedora default is non-fips, and even then application can switch to non-fips mode, in order to use "old" ciphers. Now, the bug - most places where fips check is made, it is made properly - inside #ifdef OPENSSL_FIPS and by calling "is fips enabled" function. However for EC, whoever was making a patch made an unconditional decision: all EC curves smaller than 256 bits are always disabled if OPENSSL_FIPS is #defined. AACS uses 192-bit curves. The patch is fedora-specific and there is no way to detect the condition during configure/compile time. The proper fix is to allow any curve order in non-fips mode. Starting with next version MakeMKV will automatically use its own EC code if compiled on fedora.
Thanks for the following guys! This worked for me and I am actually running F18, just in case anyone with an older version of Fedora is coming across this problem too.
nevergonnahappen4me wrote:I upgraded to F20 just to test this, and can confirm, my earlier suggestion does result in a segmentation fault in F20 (it worked just fine in F19, I promise).
In F20, you can run './configure' as usual, then edit the Makefile, adding ' -DOPENSSL_NO_EC' to the line that starts with 'CFLAGS='. Build and install normally after that.