diff --git a/metis/.footprint b/metis/.footprint index c99567152..5d4b1ae54 100644 --- a/metis/.footprint +++ b/metis/.footprint @@ -1,8 +1,14 @@ drwxr-xr-x root/root usr/ +drwxr-xr-x root/root usr/bin/ +-rwxr-xr-x root/root usr/bin/cmpfillin +-rwxr-xr-x root/root usr/bin/gpmetis +-rwxr-xr-x root/root usr/bin/graphchk +-rwxr-xr-x root/root usr/bin/m2gmetis +-rwxr-xr-x root/root usr/bin/mpmetis +-rwxr-xr-x root/root usr/bin/ndmetis drwxr-xr-x root/root usr/include/ --rw-r--r-- root/root usr/include/gklib_defs.h --rw-r--r-- root/root usr/include/gklib_rename.h --rw-r--r-- root/root usr/include/gklib_tls.h -rw-r--r-- root/root usr/include/metis.h drwxr-xr-x root/root usr/lib/ -rwxr-xr-x root/root usr/lib/libmetis.so +drwxr-xr-x root/root usr/lib/pkgconfig/ +-rw-r--r-- root/root usr/lib/pkgconfig/metis.pc diff --git a/metis/.signature b/metis/.signature index 0d42c02b5..e5c02f628 100644 --- a/metis/.signature +++ b/metis/.signature @@ -1,5 +1,8 @@ untrusted comment: verify with /etc/ports/contrib.pub -RWSagIOpLGJF39K89j+7Zn3BSoo/I+qg4cRWmskcSUkl1+sn9TK+8PyjVln4T0j942xeJCSsqDnO+UyMXN4ymE6ohaiRe8cucAI= -SHA256 (Pkgfile) = 16e30720149d23bb6ace77defa6baae22a5f64ddba2ebb1c172a67243ccd83cf -SHA256 (.footprint) = 3d34f65fbf731ab9f4581d194fe4015af60b645c43ce3f8f31e5b67b29cec71c -SHA256 (v5.1.0-p11.tar.bz2) = c2d5eb5a731335a2d7168eedcf2b683b990492b5ffceab1eedc2acbb7a422ff0 +RWSagIOpLGJF362DvvU3NKk1j9L9bJzDp5BSO/DRGVlLkPgrTRr5i/ToFY8h1c3WW/guAGUiVMPWIABB4ZMLpBDUieL7a/HLpgM= +SHA256 (Pkgfile) = 7ea916b7f47b0411dabc98a026e77efb2080f7f19057272be0386a2734777fae +SHA256 (.footprint) = a0fa80e349853d608a391c5e7f6e646f054e2dabde363461c7e81617f8f2ddcb +SHA256 (metis-5.2.1.tar.gz) = 1a4665b2cd07edc2f734e30d7460afb19c1217c2547c2ac7bf6e1848d50aff7a +SHA256 (metis-5.2.1-add-gklib-as-required.patch) = d3d013c95a9824eeba932a0382a648e92044072fefa0742a30b6f5f9a9e5b31a +SHA256 (metis-5.2.1-multilib.patch) = 2fbd8d32acb230fe85492c2891a8687e57eb18f9e941a9f904679e4dc6b17dab +SHA256 (metis-5.2.1-respect-user-flags.patch) = 4b0881df80d0e1a15bb827bfd277f0be68e09f2f88462e014678e0320e4d0147 diff --git a/metis/Pkgfile b/metis/Pkgfile index 684929a68..fcd2f8782 100644 --- a/metis/Pkgfile +++ b/metis/Pkgfile @@ -1,15 +1,36 @@ -# Description: A set of serial programs for partitioning graphs, partitioning finite element meshes, and producing fill reducing orderings for sparse matrices -# URL: http://glaros.dtc.umn.edu/gkhome/metis/metis/overview +# Description: Serial Graph Partitioning and Fill-reducing Matrix Ordering +# URL: https://github.com/KarypisLab/METIS # Maintainer: Tim Biermann, tbier at posteo dot de -# Depends on: +# Depends on: gklib name=metis -version=5.1.0-p11 +version=5.2.1 release=1 -source=(https://bitbucket.org/petsc/pkg-metis/get/v$version.tar.bz2) +source=(https://github.com/KarypisLab/METIS/archive/refs/tags/v$version.tar.gz + metis-5.2.1-add-gklib-as-required.patch + metis-5.2.1-multilib.patch + metis-5.2.1-respect-user-flags.patch) +renames=($name-$version.tar.gz SKIP SKIP SKIP) build() { - cmake -S petsc-pkg-metis-* -B build -G Ninja \ + #patch -Np1 -d METIS-$version -i $SRC/metis-5.2.1-multilib.patch + patch -Np1 -d METIS-$version -i $SRC/metis-5.2.1-add-gklib-as-required.patch + patch -Np1 -d METIS-$version -i $SRC/metis-5.2.1-respect-user-flags.patch + + if prt-get isinst double-conversion; then + realwidth="#define REALTYPEWIDTH 64" + else + realwidth="#define REALTYPEWIDTH 32" + fi + idxwidth="#define IDXTYPEWIDTH 64" + + mkdir -p METIS-$version/build/xinclude + echo ${idxwidth} > METIS-$version/build/xinclude/metis.h + echo ${realwidth} >> METIS-$version/build/xinclude/metis.h + cat METIS-$version/include/metis.h >> METIS-$version/build/xinclude/metis.h + cp METIS-$version/include/CMakeLists.txt METIS-$version/build/xinclude + + cmake -S METIS-$version -B build -G Ninja \ -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_CXX_FLAGS_RELEASE="$CXXFLAGS" \ @@ -18,4 +39,18 @@ build() { -Wno-dev cmake --build build DESTDIR=$PKG cmake --install build + + mkdir -p $PKG/usr/lib/pkgconfig + cat >> $PKG/usr/lib/pkgconfig/metis.pc <<- EOF +prefix=/usr +exec_prefix=\${prefix} +libdir=\${exec_prefix}/lib +includedir=\${prefix}/include + +Name: METIS +Description: Software for partioning unstructured graphes and meshes +Version: ${version} +Cflags: -I\${includedir} +Libs: -L\${libdir} -lmetis -lGKlib +EOF } diff --git a/metis/metis-5.2.1-add-gklib-as-required.patch b/metis/metis-5.2.1-add-gklib-as-required.patch new file mode 100644 index 000000000..5fedf17b8 --- /dev/null +++ b/metis/metis-5.2.1-add-gklib-as-required.patch @@ -0,0 +1,15 @@ +diff --git a/libmetis/CMakeLists.txt b/libmetis/CMakeLists.txt +index fc6cec6..758835f 100644 +--- a/libmetis/CMakeLists.txt ++++ b/libmetis/CMakeLists.txt +@@ -7,6 +7,10 @@ file(GLOB metis_sources *.c) + # Build libmetis. + add_library(metis ${METIS_LIBRARY_TYPE} ${metis_sources}) + ++if(SHARED) ++ target_link_libraries(metis GKlib) ++endif() ++ + if(METIS_INSTALL) + install(TARGETS metis + LIBRARY DESTINATION lib diff --git a/metis/metis-5.2.1-multilib.patch b/metis/metis-5.2.1-multilib.patch new file mode 100644 index 000000000..fc26f7556 --- /dev/null +++ b/metis/metis-5.2.1-multilib.patch @@ -0,0 +1,19 @@ +diff --git a/libmetis/CMakeLists.txt b/libmetis/CMakeLists.txt +index fc6cec6..e10a1a1 100644 +--- a/libmetis/CMakeLists.txt ++++ b/libmetis/CMakeLists.txt +@@ -6,10 +6,11 @@ file(GLOB metis_sources *.c) + + # Build libmetis. + add_library(metis ${METIS_LIBRARY_TYPE} ${metis_sources}) ++set_target_properties(metis PROPERTIES SOVERSION 0) + + if(METIS_INSTALL) + install(TARGETS metis +- LIBRARY DESTINATION lib +- RUNTIME DESTINATION lib +- ARCHIVE DESTINATION lib) ++ LIBRARY DESTINATION lib${LIB_SUFFIX} ++ RUNTIME DESTINATION lib${LIB_SUFFIX} ++ ARCHIVE DESTINATION lib${LIB_SUFFIX}) + endif() diff --git a/metis/metis-5.2.1-respect-user-flags.patch b/metis/metis-5.2.1-respect-user-flags.patch new file mode 100644 index 000000000..acdf17df5 --- /dev/null +++ b/metis/metis-5.2.1-respect-user-flags.patch @@ -0,0 +1,47 @@ +diff --git a/conf/gkbuild.cmake b/conf/gkbuild.cmake +index 0e70a8e..d005f84 100644 +--- a/conf/gkbuild.cmake ++++ b/conf/gkbuild.cmake +@@ -29,16 +29,7 @@ endif(CYGWIN) + if(CMAKE_COMPILER_IS_GNUCC) + # GCC opts. + set(GK_COPTIONS "${GK_COPTIONS} -std=c99 -fno-strict-aliasing") +-if(VALGRIND) +- set(GK_COPTIONS "${GK_COPTIONS} -march=x86-64 -mtune=generic") +-else() +- set(GK_COPTIONS "${GK_COPTIONS} -march=native") +-endif(VALGRIND) +- if(NOT MINGW) +- set(GK_COPTIONS "${GK_COPTIONS} -fPIC") +- endif(NOT MINGW) +-# GCC warnings. +- set(GK_COPTIONS "${GK_COPTIONS} -Werror -Wall -pedantic -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label") ++ + elseif(${CMAKE_C_COMPILER_ID} MATCHES "Sun") + # Sun insists on -xc99. + set(GK_COPTIONS "${GK_COPTIONS} -xc99") +@@ -65,24 +56,10 @@ if(OPENMP) + endif(OPENMP) + + +-# Add various definitions. +-if(GDB) +- set(GK_COPTS "${GK_COPTS} -g") +- set(GK_COPTIONS "${GK_COPTIONS} -Werror") +-else() +- set(GK_COPTS "-O3") +-endif(GDB) +- +- + if(DEBUG) +- set(GK_COPTS "-Og") + set(GK_COPTIONS "${GK_COPTIONS} -DDEBUG") + endif(DEBUG) + +-if(GPROF) +- set(GK_COPTS "-pg") +-endif(GPROF) +- + if(NOT ASSERT) + set(GK_COPTIONS "${GK_COPTIONS} -DNDEBUG") + endif(NOT ASSERT)