Visa-Research / volepsi

Efficient Private Set Intersection base on VOLE
MIT License
104 stars 32 forks source link

build vole psi error: Missing components: no_asan;no_pic;sodium_montgomery #50

Closed jsuper closed 11 months ago

jsuper commented 1 year ago

Hello professor!

@ladnir I have locally install libOTE with the following build options:

 python build.py --all --boost --relic -D ENABLE_SILENTOT=ON -D ENABLE_ASAN=ON -D SODIUM_MONTGOMERY=ON -D OC_PIC=ON -D ENABLE_CIRCUITS=ON

python build.py --install=/usr/local/libOTe

And all unit case of the libOTe library were passed.

But when I build volepsi, the following error was produced. How can i fix it? Build command

python build.py -D FETCH_AUTO=false -D VOLE_PSI_NO_SYSTEM_PATH=true -D CMAKE_PREFIX_PATH=/usr/local/libOTe -DFETCH_LIBOTE=false

Error log:

====== build.py (vole-psi) ========
mkdir -p out/build/linux
cmake -S . -B out/build/linux  -D FETCH_AUTO=false -D VOLE_PSI_NO_SYSTEM_PATH=true -D CMAKE_PREFIX_PATH=/usr/local/libOTe -DFETCH_LIBOTE=false -DSUDO_FETCH=OFF -DFETCH_AUTO=ON -DVOLE_PSI_NO_SYSTEM_PATH=true -DPARALLEL_FETCH=40 -DCMAKE_BUILD_TYPE=Release
cmake --build out/build/linux   --parallel 40 
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

-- vole-psi options
=======================================================
-- Option: VOLE_PSI_NO_SYSTEM_PATH    = true
-- Option: CMAKE_BUILD_TYPE           = Release

-- Option: FETCH_AUTO                 = ON
-- Option: FETCH_SPARSEHASH           = 
-- Option: FETCH_LIBOTE               = false

-- Option: VOLE_PSI_ENABLE_SSE        = ON
-- Option: VOLE_PSI_ENABLE_PIC        = OFF
-- Option: VOLE_PSI_ENABLE_ASAN       = OFF
-- Option: VOLE_PSI_STD_VER           = 17
-- Option: VOLE_PSI_ENABLE_GMW        = ON
-- Option: VOLE_PSI_ENABLE_CPSI       = ON
-- Option: VOLE_PSI_ENABLE_OPPRF      = ON

-- Option: VOLE_PSI_ENABLE_BOOST      = ON
-- Option: VOLE_PSI_ENABLE_OPENSSL    = OFF
-- Option: VOLE_PSI_ENABLE_BITPOLYMUL = ON
-- Option: VOLE_PSI_ENABLE_SODIUM     = ON
-- Option: VOLE_PSI_SODIUM_MONTGOMERY = ON
-- Option: VOLE_PSI_ENABLE_RELIC      = OFF
-- VOLEPSI_THIRDPARTY_DIR=/projects/volepsi/out/install/linux
-- CLONE DIR: /projects/volepsi/thirdparty/sparsehash-c11
sparsehash-c11 already fetched.
SPARSEHASH_INCLUDE_DIRS=/projects/volepsi/out/install/linux/include

libOTe_options=silentot;silent_vole;circuits;sse;boost;bitpolymul;no_asan;no_pic;sodium;sodium_montgomery
Found incompatible libOTe at /usr/local/libOTe/lib64/cmake/libOTe. Missing components: no_asan;no_pic;sodium_montgomery
Found incompatible libOTe at /usr/local/libOTe/lib64/cmake/libOTe. Missing components: no_asan;no_pic;sodium_montgomery
CMake Error at cmake/findDependancies.cmake:104 (find_package):
  Could not find a configuration file for package "libOTe" that is compatible
  with requested version "".

  The following configuration files were considered but not accepted:

    /usr/local/libOTe/lib64/cmake/libOTe/libOTeConfig.cmake, version: 2.0.4

Call Stack (most recent call first):
  cmake/findDependancies.cmake:119 (FIND_LIBOTE)
  CMakeLists.txt:16 (include)

-- Configuring incomplete, errors occurred!
See also "/projects/volepsi/out/build/linux/CMakeFiles/CMakeOutput.log".
gmake: *** No targets specified and no makefile found.  Sto
ladnir commented 1 year ago

Why did you manually install libote

jsuper commented 1 year ago

Why did you manually install libote

Because the network limit, we couldn't diectly download dependency from github.

ladnir commented 1 year ago

The simplest solution is to delete your libote install and move your download of libote to volepsi/out/

Or you can manually build libote how volepsi wants it. The error message explaining most of what's required. Volepsi wants no asan, no Pic and I guess the sodium configuration it's not happy with.

See here https://github.com/Visa-Research/volepsi/blob/687ca2dd03fd663a216b6ede9d2707f6d5b10b00/thirdparty/getLibOTe.cmake#L25

jsuper commented 11 months ago

Thanks professor. Problem is solved.