Product: Fedora https://bugzilla.redhat.com/show_bug.cgi?id=920518 --- Comment #2 from Antonio Trande <trpost@xxxxxxxxxxxx> --- (In reply to comment #1) > Some comments after an initial look in the package: > > -------------------------------------------------- > 1. You should avoid as much as possible a manual install because that > easily does not do what upstream intend or end up installing > files that should not be installed. After running make > install setting DESTDIR I see: > $ find . > . > ./usr > ./usr/include > ./usr/include/metis.h > ./usr/lib > ./usr/lib/libmetis.so > ./usr/bin > ./usr/bin/gpmetis > ./usr/bin/cmpfillin > ./usr/bin/m2gmetis > ./usr/bin/mpmetis > ./usr/bin/ndmetis > ./usr/bin/graphchk > > That means at first that -DLIB_SUFFIX=64 is not being passed to > cmake, so, either should patch the Makefile that calls cmake, or, > since the cmake wrapper in the toplevel Makefile is not that > complex, call cmake explicitly, example: > mkdir build > pushd build > %cmake $CMAKE_OPTIONS .. > %make %{?_smp_mflags} > popd > > Also, after running make install it is not required to mess > with rpath: > $ chrpath -l usr/bin/cmpfillin > usr/bin/cmpfillin: no rpath or runpath tag found. > Some cmake option seem not be accepted by using both %cmake macro and cmake command. With %cmake: CMake Warning: Manually-specified variables were not used by the project: CMAKE_C_FLAGS_RELEASE INCLUDE_INSTALL_DIR LIB_INSTALL_DIR LIB_SUFFIX SHARE_INSTALL_PREFIX SYSCONF_INSTALL_DIR With cmake command: CMake Warning: Manually-specified variables were not used by the project: CMAKE_C_FLAGS_RELEASE LIB_SUFFIX so libmetis.so/libGKlib.a are always located in /usr/lib. I don't know what I must patch to fix this issue. Following there is a temporary version of src rpm. Spec URL: http://sagitter.fedorapeople.org/metis/metis.spec SRPM URL: http://sagitter.fedorapeople.org/metis/metis-5.0.3-2.fc18.src.rpm > > -------------------------------------------------- > 2. Several features appear to not be set/used. I believe another > strong reason to call cmake explicitly: > ---%<--- > $ cmake -LA > -- The C compiler identification is GNU 4.8.0 > -- The CXX compiler identification is GNU 4.8.0 > -- Check for working C compiler: /usr/lib64/ccache/cc > -- Check for working C compiler: /usr/lib64/ccache/cc -- works > -- Detecting C compiler ABI info > -- Detecting C compiler ABI info - done > -- Check for working CXX compiler: /usr/lib64/ccache/c++ > -- Check for working CXX compiler: /usr/lib64/ccache/c++ -- works > -- Detecting CXX compiler ABI info > -- Detecting CXX compiler ABI info - done > -- Looking for execinfo.h > -- Looking for execinfo.h - found > -- Looking for getline > -- Looking for getline - found > CMake Error at CMakeLists.txt:9 (ADD_EXECUTABLE): > Cannot find source file: > > GKlib/conf/check_thread_storage.c > > Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp > .hxx .in .txx > > > CMake Error: Internal CMake error, TryCompile generation of cmake failed > -- checking for thread-local storage - not found > -- Configuring incomplete, errors occurred! > -- Cache values > ASSERT:BOOL=OFF > ASSERT2:BOOL=OFF > CMAKE_AR:FILEPATH=/usr/bin/ar > CMAKE_BUILD_TYPE:STRING= > CMAKE_COLOR_MAKEFILE:BOOL=ON > CMAKE_CXX_COMPILER:FILEPATH=/usr/lib64/ccache/c++ > CMAKE_CXX_FLAGS:STRING= > CMAKE_CXX_FLAGS_DEBUG:STRING=-g > CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG > CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG > CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG > CMAKE_C_COMPILER:FILEPATH=/usr/lib64/ccache/cc > CMAKE_C_FLAGS:STRING= > CMAKE_C_FLAGS_DEBUG:STRING=-g > CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG > CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG > CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG > CMAKE_EXE_LINKER_FLAGS:STRING= > CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= > CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= > CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= > CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= > CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF > CMAKE_INSTALL_PREFIX:PATH=/usr/local > CMAKE_LINKER:FILEPATH=/usr/bin/ld > CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake > CMAKE_MODULE_LINKER_FLAGS:STRING= > CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= > CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= > CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= > CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= > CMAKE_NM:FILEPATH=/usr/bin/nm > CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy > CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump > CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib > CMAKE_SHARED_LINKER_FLAGS:STRING= > CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= > CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= > CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= > CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= > CMAKE_SKIP_INSTALL_RPATH:BOOL=NO > CMAKE_SKIP_RPATH:BOOL=NO > CMAKE_STRIP:FILEPATH=/usr/bin/strip > CMAKE_USE_RELATIVE_PATHS:BOOL=OFF > CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE > DEBUG:BOOL=OFF > GDB:BOOL=OFF > GKLIB_PATH:PATH=GKlib > GKRAND:BOOL=OFF > GKREGEX:BOOL=OFF > GPROF:BOOL=OFF > OPENMP:BOOL=OFF > PCRE:BOOL=OFF > SHARED:BOOL=FALSE > ---%<--- > > Yet another issue is: > ---%<--- > $ cd GKlib > $ make install DESTDIR=/tmp/gklib > Scanning dependencies of target GKlib > [ 3%] Building C object CMakeFiles/GKlib.dir/random.c.o > [ 6%] Building C object CMakeFiles/GKlib.dir/fs.c.o > [ 9%] Building C object CMakeFiles/GKlib.dir/b64.c.o > [ 12%] Building C object CMakeFiles/GKlib.dir/seq.c.o > [ 16%] Building C object CMakeFiles/GKlib.dir/mcore.c.o > [ 19%] Building C object CMakeFiles/GKlib.dir/graph.c.o > [ 22%] Building C object CMakeFiles/GKlib.dir/gkregex.c.o > [ 25%] Building C object CMakeFiles/GKlib.dir/util.c.o > [ 29%] Building C object CMakeFiles/GKlib.dir/io.c.o > [ 32%] Building C object CMakeFiles/GKlib.dir/fkvkselect.c.o > [ 35%] Building C object CMakeFiles/GKlib.dir/timers.c.o > [ 38%] Building C object CMakeFiles/GKlib.dir/pqueue.c.o > [ 41%] Building C object CMakeFiles/GKlib.dir/blas.c.o > [ 45%] Building C object CMakeFiles/GKlib.dir/rw.c.o > [ 48%] Building C object CMakeFiles/GKlib.dir/string.c.o > [ 51%] Building C object CMakeFiles/GKlib.dir/itemsets.c.o > [ 54%] Building C object CMakeFiles/GKlib.dir/csr.c.o > [ 58%] Building C object CMakeFiles/GKlib.dir/tokenizer.c.o > [ 61%] Building C object CMakeFiles/GKlib.dir/getopt.c.o > [ 64%] Building C object CMakeFiles/GKlib.dir/memory.c.o > [ 67%] Building C object CMakeFiles/GKlib.dir/htable.c.o > [ 70%] Building C object CMakeFiles/GKlib.dir/omp.c.o > [ 74%] Building C object CMakeFiles/GKlib.dir/sort.c.o > [ 77%] Building C object CMakeFiles/GKlib.dir/evaluate.c.o > [ 80%] Building C object CMakeFiles/GKlib.dir/pdb.c.o > [ 83%] Building C object CMakeFiles/GKlib.dir/error.c.o > Linking C static library libGKlib.a > [ 83%] Built target GKlib > Scanning dependencies of target fis > [ 87%] Building C object test/CMakeFiles/fis.dir/fis.c.o > Linking C executable fis > [ 87%] Built target fis > Scanning dependencies of target gkgraph > [ 90%] Building C object test/CMakeFiles/gkgraph.dir/gkgraph.c.o > Linking C executable gkgraph > [ 90%] Built target gkgraph > Scanning dependencies of target gksort > [ 93%] Building C object test/CMakeFiles/gksort.dir/gksort.c.o > Linking C executable gksort > [ 93%] Built target gksort > Scanning dependencies of target rw > [ 96%] Building C object test/CMakeFiles/rw.dir/rw.c.o > Linking C executable rw > [ 96%] Built target rw > Scanning dependencies of target strings > [100%] Building C object test/CMakeFiles/strings.dir/strings.c.o > Linking C executable strings > [100%] Built target strings > Install the project... > -- Install configuration: "" > -- Installing: /tmp/gklib/usr/local/lib/libGKlib.a > -- Installing: /tmp/gklib/usr/local/include/gk_mkrandom.h > -- Installing: /tmp/gklib/usr/local/include/ms_stat.h > -- Installing: /tmp/gklib/usr/local/include/ms_stdint.h > -- Installing: /tmp/gklib/usr/local/include/gk_mkutils.h > -- Installing: /tmp/gklib/usr/local/include/gk_struct.h > -- Installing: /tmp/gklib/usr/local/include/gk_getopt.h > -- Installing: /tmp/gklib/usr/local/include/ms_inttypes.h > -- Installing: /tmp/gklib/usr/local/include/GKlib.h > -- Installing: /tmp/gklib/usr/local/include/gk_types.h > -- Installing: /tmp/gklib/usr/local/include/gk_mkpqueue.h > -- Installing: /tmp/gklib/usr/local/include/gk_mkmemory.h > -- Installing: /tmp/gklib/usr/local/include/gk_proto.h > -- Installing: /tmp/gklib/usr/local/include/gk_externs.h > -- Installing: /tmp/gklib/usr/local/include/gkregex.h > -- Installing: /tmp/gklib/usr/local/include/gk_arch.h > -- Installing: /tmp/gklib/usr/local/include/gk_macros.h > -- Installing: /tmp/gklib/usr/local/include/gk_defs.h > -- Installing: /tmp/gklib/usr/local/include/gk_mkpqueue2.h > -- Installing: /tmp/gklib/usr/local/include/gk_mkblas.h > -- Installing: /tmp/gklib/usr/local/include/gk_mksort.h > ---%<--- > > As you can see, it installs only header files, possibly in a > wrong directory, and a static library. What I believe is not > correct in the metis-static package you are generating. > > Also, should check what is, if any, the reason to build a > static libGKlib.a, otherwise, I suggest experimenting with > a shared one, e.g. untested pseudo patch to > GKlib/CMakeLists.txt: > ---%<--- > -add_library(GKlib STATIC ${GKlib_sources}) > -add_library(GKlib SHARED ${GKlib_sources}) > ---%<--- > *But* it looks like the GKlib sources are already added > to libmetis.so; a quick check on a random symbol... > ---%<--- > $ objdump -T build/Linux-x86_64/libmetis/libmetis.so| grep > gk_find_frequent_itemsets > 000000000001dfa0 g DF .text 0000000000000208 Base > gk_find_frequent_itemsets > $ objdump -t GKlib/build/Linux-x86_64/libGKlib.a| grep > gk_find_frequent_itemsets > 00000000000003e0 g F .text 0000000000000208 gk_find_frequent_itemsets > ---%<--- > so, they are indeed duplicated, and if anything, I think > should only install GKlib headers, but are those really > supposed to be exported, instead of only stuff in metis.h? I've added two patches but they seem not work. -- You are receiving this mail because: You are on the CC list for the bug. Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=6DBw1DS4y9&a=cc_unsubscribe _______________________________________________ package-review mailing list package-review@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/package-review