[Bug 920518] Review Request: metis - Serial Graph Partitioning and Fill-reducing Matrix Ordering

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Fedora Legacy]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]