git: 494841d7216b - main - cad/scotch-edf: repocopy from cad/scotch

From: Thierry Thomas <thierry_at_FreeBSD.org>
Date: Wed, 07 Oct 2026 10:26:11 UTC
The branch main has been updated by thierry:

URL: https://cgit.FreeBSD.org/ports/commit/?id=494841d7216bf41d02f2770eee27d57e13592e52

commit 494841d7216bf41d02f2770eee27d57e13592e52
Author:     Thierry Thomas <thierry@FreeBSD.org>
AuthorDate: 2026-10-04 12:50:22 +0000
Commit:     Thierry Thomas <thierry@FreeBSD.org>
CommitDate: 2026-10-07 10:26:01 +0000

    cad/scotch-edf: repocopy from cad/scotch
    
    PR:             299097
---
 cad/Makefile                                       |   1 +
 cad/scotch-edf/Makefile                            |  96 ++++++++++++
 ...tch-src_Make.inc_Makefile.inc.i686__pc__freebsd |  33 +++++
 ...h-src_Make.inc_Makefile.inc.x86-64__pc__freebsd |  32 ++++
 cad/scotch-edf/files/patch-src_libscotch_library.h |  16 ++
 cad/scotch-edf/pkg-descr                           |  14 ++
 cad/scotch-edf/pkg-plist                           | 163 +++++++++++++++++++++
 7 files changed, 355 insertions(+)

diff --git a/cad/Makefile b/cad/Makefile
index 83fb879f5e67..eb81dda7a00b 100644
--- a/cad/Makefile
+++ b/cad/Makefile
@@ -141,6 +141,7 @@
     SUBDIR += rubygem-gdsii
     SUBDIR += sch-rnd
     SUBDIR += scotch
+    SUBDIR += scotch-edf
     SUBDIR += silice
     SUBDIR += solvespace
     SUBDIR += sp2sp
diff --git a/cad/scotch-edf/Makefile b/cad/scotch-edf/Makefile
new file mode 100644
index 000000000000..aba2628b5c4e
--- /dev/null
+++ b/cad/scotch-edf/Makefile
@@ -0,0 +1,96 @@
+PORTNAME=	scotch
+DISTVERSION=	6.0.4-aster7
+PORTREVISION=	7
+CATEGORIES=	cad science
+PKGNAMESUFFIX=	-edf
+
+MAINTAINER=	thierry@FreeBSD.org
+COMMENT=	Package for graph and mesh partitioning and sparse matrix ordering
+WWW=		https://www.labri.fr/perso/pelegrin/scotch/
+
+LICENSE=	CeCILL_C
+LICENSE_NAME=	CeCILL-C
+LICENSE_FILE=	${WRKSRC}/doc/CeCILL-C_V1-en.txt
+LICENSE_PERMS=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
+
+USES=		bison:alias gmake localbase
+
+CONFLICTS_BUILD=	scotch-7.*
+CONFLICTS_INSTALL=	gbase gmap scotch-7.* # bin/gbase bin/gmap
+
+MAKE_JOBS_UNSAFE=yes
+
+OPTIONS_DEFINE=	DOCS EXAMPLES MPICH
+OPTIONS_DEFAULT=MPICH
+OPTIONS_SUB=	yes
+
+WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION:R}
+BUILD_WRKSRC=	${WRKSRC}/src
+INSTALL_WRKSRC=	${BUILD_WRKSRC}
+TEST_WRKSRC=	${BUILD_WRKSRC}
+ALL_TARGET=	esmumps
+TEST_TARGET=	check
+CFLAGS=		-Wno-implicit-function-declaration
+MAKE_ENV=	prefix=${STAGEDIR}${PREFIX} mandir=${STAGEDIR}${PREFIX}/share/man	\
+		-DSCOTCH_PTHREAD_NUMBER=2
+USE_LDCONFIG=	yes
+
+DOCVER=		${PORTVERSION:R:R}
+PORTDOCS=	ptscotch_user${DOCVER}.pdf scotch_user${DOCVER}.pdf scotch_example.f
+LIBS=		esmumps scotch scotcherr scotcherrexit scotchmetis
+
+MPICH_USES=		mpi:mpich
+MPICH_ALL_TARGET=	ptesmumps
+MPICH_TEST_TARGET=	ptcheck
+MPICH_LIBS+=	ptesmumps ptscotch ptscotcherr ptscotcherrexit ptscotchparmetis
+
+.include <bsd.port.options.mk>
+
+.if ${ARCH} == "i386"
+MF=	i686
+.else
+MF=	x86-64
+.endif
+
+pre-everything::
+.if !defined(WITHOUT_MPICH)
+	@${ECHO_MSG}
+	@${ECHO_MSG} "Define WITHOUT_MPI if PT-Scotch is not wanted."
+	@${ECHO_MSG}
+.endif
+
+pre-configure:
+	${REINPLACE_CMD} -e 's/-lthread/-pthread/;s/-lpthread/-pthread/'\
+		${WRKSRC}/src/Make.inc/Makefile.inc.${MF}_pc_freebsd
+	${LN} -sf ${WRKSRC}/src/Make.inc/Makefile.inc.${MF}_pc_freebsd	\
+		${WRKSRC}/src/Makefile.inc
+	${REINPLACE_CMD} -E -e 's|cd (.*) ; * \$$\(MAKE\)|\$$(MAKE) -C \1|'	\
+		-e 's|\&\& \$$\(MAKE\)||' ${WRKSRC}/src/Makefile
+
+post-stage:
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/* ${STAGEDIR}${PREFIX}/lib/lib*
+.for l in ${LIBS}
+	${MV} ${STAGEDIR}${PREFIX}/lib/lib${l}.so ${STAGEDIR}${PREFIX}/lib/lib${l}.so.0
+	${LN} -sf lib${l}.so.0 ${STAGEDIR}${PREFIX}/lib/lib${l}.so
+.endfor
+
+do-install-DOCS-on:
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/doc/|} ${STAGEDIR}${DOCSDIR}
+
+do-install-EXAMPLES-on:
+	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/grf ${STAGEDIR}${EXAMPLESDIR}/tgt
+	${INSTALL_DATA} ${WRKSRC}/grf/* ${STAGEDIR}${EXAMPLESDIR}/grf
+	${INSTALL_DATA} ${WRKSRC}/tgt/* ${STAGEDIR}${EXAMPLESDIR}/tgt
+
+.if !defined(WITHOUT_MPI)
+pre-test:
+. if !exists(${HOME}/.mpd.conf)
+	@${ECHO_CMD} "MPD_SECRETWORD=change_on_install" > ${HOME}/.mpd.conf
+	${CHMOD} go-r ${HOME}/.mpd.conf
+	@${ECHO_MSG} "${HOME}/.mpd.conf has been generated - please change the secret word!"
+. endif
+.endif
+
+.include "${.CURDIR}/../../french/aster/bsd.aster.mk"
+.include <bsd.port.mk>
diff --git a/cad/scotch-edf/files/patch-src_Make.inc_Makefile.inc.i686__pc__freebsd b/cad/scotch-edf/files/patch-src_Make.inc_Makefile.inc.i686__pc__freebsd
new file mode 100644
index 000000000000..53ddec35d372
--- /dev/null
+++ b/cad/scotch-edf/files/patch-src_Make.inc_Makefile.inc.i686__pc__freebsd
@@ -0,0 +1,33 @@
+--- src/Make.inc/Makefile.inc.i686_pc_freebsd.orig	2017-02-22 07:20:57 UTC
++++ src/Make.inc/Makefile.inc.i686_pc_freebsd
+@@ -1,21 +1,21 @@
+ EXE		=
+-LIB		= .a
++LIB		= .so
+ OBJ		= .o
+ 
+ MAKE		= gmake
+-AR		= ar
+-ARFLAGS		= -ruv
++AR		= $(CC)
++ARFLAGS		= -shared -Wl,-soname,$@ -o
+ CAT		= cat
+-CCS		= cc
++CCS		= $(CC)
+ CCP		= mpicc
+-CCD		= mpicc
+-CFLAGS		+= -std=c99 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER
+-CLIBFLAGS	=
+-LDFLAGS		+= -lz -lm -lpthread
++CCD		= $(CC)
++CFLAGS		+= -std=c99 -fPIC -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER -DIDXSIZE64 -DINTSIZE64
++CLIBFLAGS	= -fPIC
++LDFLAGS		+= -lz -lm -lthread
+ CP		= cp
+ LEX		= flex -Pscotchyy -olex.yy.c
+ LN		= ln
+ MKDIR		= mkdir
+ MV		= mv
+-RANLIB		= ranlib
++RANLIB		= echo
+ YACC		= bison -pscotchyy -y -b y
diff --git a/cad/scotch-edf/files/patch-src_Make.inc_Makefile.inc.x86-64__pc__freebsd b/cad/scotch-edf/files/patch-src_Make.inc_Makefile.inc.x86-64__pc__freebsd
new file mode 100644
index 000000000000..578e412980de
--- /dev/null
+++ b/cad/scotch-edf/files/patch-src_Make.inc_Makefile.inc.x86-64__pc__freebsd
@@ -0,0 +1,32 @@
+--- src/Make.inc/Makefile.inc.x86-64_pc_freebsd.orig	2017-02-22 07:20:57 UTC
++++ src/Make.inc/Makefile.inc.x86-64_pc_freebsd
+@@ -1,21 +1,21 @@
+ EXE		=
+-LIB		= .a
++LIB		= .so
+ OBJ		= .o
+ 
+ MAKE		= gmake
+-AR		= ar
+-ARFLAGS		= -ruv
++AR		= $(CC)
++ARFLAGS		= -shared -Wl,-soname,$@ -o
+ CAT		= cat
+-CCS		= cc
++CCS		= $(CC)
+ CCP		= mpicc
+-CCD		= cc
+-CFLAGS		+= -std -fPIC -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER -DSCOTCH_PTHREAD -Drestrict=__restrict -DIDXSIZE64
+-CLIBFLAGS	=
++CCD		= $(CC)
++CFLAGS		+= -std=c99 -fPIC -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER -DSCOTCH_PTHREAD -Drestrict=__restrict -DIDXSIZE64 -DINTSIZE64
++CLIBFLAGS	= -fPIC
+ LDFLAGS		+= -lz -lm -lthread
+ CP		= cp
+ LEX		= flex -Pscotchyy -olex.yy.c
+ LN		= ln
+ MKDIR		= mkdir
+ MV		= mv
+-RANLIB		= ranlib
++RANLIB		= echo
+ YACC		= bison -pscotchyy -y -b y
diff --git a/cad/scotch-edf/files/patch-src_libscotch_library.h b/cad/scotch-edf/files/patch-src_libscotch_library.h
new file mode 100644
index 000000000000..9af926eebfad
--- /dev/null
+++ b/cad/scotch-edf/files/patch-src_libscotch_library.h
@@ -0,0 +1,16 @@
+- workaround for:
+- - https://gitlab.inria.fr/scotch/scotch/-/issues/35
+- - https://github.com/FreeFem/FreeFem-sources/issues/296
+
+--- src/libscotch/library.h.orig	2017-02-22 07:20:57 UTC
++++ src/libscotch/library.h
+@@ -61,6 +61,9 @@
+ #ifndef SCOTCH_H
+ #define SCOTCH_H
+ 
++#include <sys/types.h>
++#include <stdio.h>
++
+ /*
+ **  The type and structure definitions.
+ */
diff --git a/cad/scotch-edf/pkg-descr b/cad/scotch-edf/pkg-descr
new file mode 100644
index 000000000000..6c8cc4b99e96
--- /dev/null
+++ b/cad/scotch-edf/pkg-descr
@@ -0,0 +1,14 @@
+SCOTCH is a software package and libraries for graph, mesh and hypergraph
+partitioning, static mapping, and sparse matrix block ordering.
+
+Its purpose of Scotch is to apply graph theory, with a divide and conquer
+approach, to scientific computing problems such as graph and mesh partitioning,
+static mapping, and sparse matrix ordering, in application domains ranging from
+structural mechanics to operating systems or bio-chemistry.
+
+The SCOTCH distribution is a set of programs and libraries which implement the
+static mapping and sparse matrix reordering algorithms developed within the
+SCOTCH project.
+
+Note: this port does not follow upstream releases, it is indented to be used for
+Code_Aster.
diff --git a/cad/scotch-edf/pkg-plist b/cad/scotch-edf/pkg-plist
new file mode 100644
index 000000000000..3aa73ad1fb13
--- /dev/null
+++ b/cad/scotch-edf/pkg-plist
@@ -0,0 +1,163 @@
+bin/acpl
+bin/amk_ccc
+bin/amk_fft2
+bin/amk_grf
+bin/amk_hy
+bin/amk_m2
+bin/amk_p2
+bin/atst
+%%MPICH%%bin/dggath
+%%MPICH%%bin/dgmap
+%%MPICH%%bin/dgord
+%%MPICH%%bin/dgpart
+%%MPICH%%bin/dgscat
+%%MPICH%%bin/dgtst
+bin/gbase
+bin/gcv
+bin/gmap
+bin/gmk_hy
+bin/gmk_m2
+bin/gmk_m3
+bin/gmk_msh
+bin/gmk_ub2
+bin/gmtst
+bin/gord
+bin/gotst
+bin/gout
+bin/gpart
+bin/gscat
+bin/gtst
+bin/mcv
+bin/mmk_m2
+bin/mmk_m3
+bin/mord
+bin/mtst
+%%MPICH%%include/ptscotch.h
+%%MPICH%%include/ptscotchf.h
+include/scotch.h
+include/scotchf.h
+lib/libesmumps.so
+lib/libesmumps.so.0
+%%MPICH%%lib/libptesmumps.so
+%%MPICH%%lib/libptesmumps.so.0
+%%MPICH%%lib/libptscotch.so
+%%MPICH%%lib/libptscotch.so.0
+%%MPICH%%lib/libptscotcherr.so
+%%MPICH%%lib/libptscotcherr.so.0
+%%MPICH%%lib/libptscotcherrexit.so
+%%MPICH%%lib/libptscotcherrexit.so.0
+%%MPICH%%lib/libptscotchparmetis.so
+%%MPICH%%lib/libptscotchparmetis.so.0
+lib/libscotch.so
+lib/libscotch.so.0
+lib/libscotcherr.so
+lib/libscotcherr.so.0
+lib/libscotcherrexit.so
+lib/libscotcherrexit.so.0
+lib/libscotchmetis.so
+lib/libscotchmetis.so.0
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grf/3elt.grf.gz
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grf/3elt.xyz.gz
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grf/4elt.grf.gz
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grf/4elt.xyz.gz
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grf/4elt2.grf.gz
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grf/4elt2.xyz.gz
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grf/bump.grf.gz
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grf/bump.xyz.gz
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/SP2_16.txt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/T3D_64.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/h1.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/h10.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/h2.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/h3.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/h4.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/h5.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/h6.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/h7.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/h8.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/h9.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k1.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k12.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k128.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k16.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k2.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k24.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k256.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k32.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k4.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k48.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k512.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k6.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k64.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k7.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k8.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/k96.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m10x10.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m10x20.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m11x13.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m16x16.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m16x32.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m17x19.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m19x21.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m19x31.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m21x23.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m23x25.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m24x24.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m25x27.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m27x29.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m29x31.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m2x2.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m2x4x8.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m32x32.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m3x3.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m4x4.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m4x8.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m5x5.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m5x7.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m64x64.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m8x16.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m8x8.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m9x11.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/m9x7.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/p128.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/p16.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/p2.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/p256.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/p32.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/p4.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/p512.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/p64.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/p8.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/t2x4x8.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/t4x4x4.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/vcmplt.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/vhcub.tgt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tgt/void.tgt
+share/man/man1/amk_ccc.1.gz
+share/man/man1/amk_fft2.1.gz
+share/man/man1/amk_hy.1.gz
+share/man/man1/amk_m2.1.gz
+share/man/man1/amk_p2.1.gz
+share/man/man1/atst.1.gz
+share/man/man1/dgmap.1.gz
+share/man/man1/dgord.1.gz
+share/man/man1/dgpart.1.gz
+share/man/man1/dgscat.1.gz
+share/man/man1/dgtst.1.gz
+share/man/man1/gcv.1.gz
+share/man/man1/gmap.1.gz
+share/man/man1/gmk_hy.1.gz
+share/man/man1/gmk_m2.1.gz
+share/man/man1/gmk_m3.1.gz
+share/man/man1/gmk_msh.1.gz
+share/man/man1/gmk_ub2.1.gz
+share/man/man1/gmtst.1.gz
+share/man/man1/gord.1.gz
+share/man/man1/gotst.1.gz
+share/man/man1/gout.1.gz
+share/man/man1/gpart.1.gz
+share/man/man1/gtst.1.gz
+share/man/man1/mmk_m2.1.gz
+share/man/man1/mmk_m3.1.gz
+share/man/man1/mord.1.gz
+share/man/man1/mtst.1.gz