On 2025/01/17 14:57, Johannes Thyssen Tishman wrote:
> 2025-01-16T15:07:37+0000 Stuart Henderson <s...@spacehopper.org>:
> > On 2025/01/15 21:49, Johannes Thyssen Tishman wrote:
> > > 2025-01-15T19:10:23Z Ian Darwin <i...@darwinsys.com>:
> > > 
> > > > On 1/7/25 12:46 PM, Johannes Thyssen Tishman wrote:
> > > > > Please find attached a port for cad/netgen-mesher and one of its test
> > > > > dependencies devel/py-test-check. This port is required by
> > > > > cad/freecad,
> > > > > a port I intend to submit once it's dependencies have been comitted.
> > 
> > $ head -1 pkg/PLIST
> > @conflict netgen-*
> > 
> > This is likely to be a problem. As it provides a library I guess freecad
> > will need it at build time, not just install time. We can't have two
> > ports which are in-conflict as BUILD or LIB_DEPENDS of other ports (the
> > existing netgen is a BDEP of qflow) because it will cause bulk builds
> > to fail sometimes.
> > 
> > Currently only the file /usr/local/bin/netgen conflicts. It would be
> > preferable to rename in one or other port to avoid the conflict.
> > cad/netgen got there first, so I think it would be preferable to
> > rename this one.
> 
> I see, thank you for the explanation Stuart. I have renamed the binary.
> 
> > > > > $ portcheck
> > > > > Python module without compiled version, consider using
> > > > > ${MODPY_COMPILEALL}: share/netgen/py_tutorials/exportNeutral.py
> > > > > 
> > > > > Python module without compiled version, consider using
> > > > > ${MODPY_COMPILEALL}: share/netgen/py_tutorials/mesh.py
> > > > > cad/netgen-mesher
> > > > 
> > > > Dunno if these matter, since it builds. Otherwise ok ian@
> > > 
> > > I ignored these as they are tutorials/examples. I'm indifferent about 
> > > their
> > > installation, so we can also leave them out if it's preferred. Thanks Ian.
> > 
> > portcheck is annoying. It whines about this non-problem (only modules
> > that get imported by other Python code should be bytecode-compiled -
> > despite missing #! these are just standalone example scripts), but
> > not about hardcoding python3.12/tcl86/tk86 in WANTLIB.
> > 
> > Here's an updated set of WANTLIB lines.
> > 
> > WANTLIB += ${COMPILER_LIBCXX} ${MODPY_WANTLIB} ${MODTK_WANTLIB}
> > WANTLIB += GL GLU TKBO TKBRep TKBool TKCAF TKCDF TKDE TKDEIGES
> > WANTLIB += TKDESTEP TKDESTL TKFillet TKG2d TKG3d TKGeomAlgo TKGeomBase
> > WANTLIB += TKHLR TKLCAF TKMath TKMesh TKOffset TKPrim TKService
> > WANTLIB += TKShHealing TKTopAlgo TKV3d TKVCAF TKXCAF TKXSBase
> > WANTLIB += TKernel X11 Xmu c execinfo fontconfig freetype jpeg
> > WANTLIB += m z
> 
> It seems that after moving the tutorials/examples under
> ${LOCALBASE}/share/examples, portcheck does not complain anymore.
> 
> > Other small things, the doc should be renamed to the ports-standard
> > location:
> > 
> > share/netgen/doc/ng4.pdf -> share/doc/netgen-mesher/ng4.pdf
> > 
> > and also perhaps share/netgen/py_tutorials -> share/examples/netgen-mesher?
> 
> For the sake of consistency, I opted for leaving out the '-mesher'
> suffix for these directories and only renamed the binary. I tried
> renaming all installed directories to include the '-mesher' suffix (this
> can be done easily with NG_INSTALL_SUFFIX and NG_INSTALL_DIR_INCLUDE),
> but then tests failed as python wouldn't find the netgen-mesher module.
> I suppose this could be patched as well somehow, but I'm not sure this
> is worth the trouble. Otherwise, please let me know and I'll revise the
> port again.

Definitely best to avoid renaming the python module, that will be
much harder to handle in another port that wants to use it.

For files which are user-focussed (docs etc), I would prefer if they
do match up with the base of the pkgname (especially having files
from both netgen and netgen-mesher in share/doc/netgen seems a bit
confusing).

> Please find an updated tarball attached and, for convenience, a diff
> with the changes.
> 
> diff /usr/ports/mystuff
> path + /usr/ports/mystuff
> commit - 2d26a6b1039aff6acec39167a2f00f817aaf43fc
> blob - 9c49c80997992953f1e67bf8b8941f794dbd4621
> file + cad/netgen-mesher/Makefile
> --- cad/netgen-mesher/Makefile
> +++ cad/netgen-mesher/Makefile
> @@ -12,12 +12,13 @@ MAINTAINER =              Johannes Thyssen Tishman 
> <ports@thyssent
>  # LGPLv2.1
>  PERMIT_PACKAGE =     Yes
>  
> -WANTLIB += ${COMPILER_LIBCXX} GL GLU TKBO TKBRep TKBool TKCAF
> -WANTLIB += TKCDF TKDE TKDEIGES TKDESTEP TKDESTL TKFillet TKG2d
> -WANTLIB += TKG3d TKGeomAlgo TKGeomBase TKHLR TKLCAF TKMath TKMesh
> -WANTLIB += TKOffset TKPrim TKService TKShHealing TKTopAlgo TKV3d
> -WANTLIB += TKVCAF TKXCAF TKXSBase TKernel X11 Xmu c execinfo fontconfig
> -WANTLIB += freetype jpeg m python3.12 tcl86 tk86 z
> +WANTLIB += ${COMPILER_LIBCXX} ${MODPY_WANTLIB} ${MODTK_WANTLIB}
> +WANTLIB += GL GLU TKBO TKBRep TKBool TKCAF TKCDF TKDE TKDEIGES
> +WANTLIB += TKDESTEP TKDESTL TKFillet TKG2d TKG3d TKGeomAlgo TKGeomBase
> +WANTLIB += TKHLR TKLCAF TKMath TKMesh TKOffset TKPrim TKService
> +WANTLIB += TKShHealing TKTopAlgo TKV3d TKVCAF TKXCAF TKXSBase
> +WANTLIB += TKernel X11 Xmu c execinfo fontconfig freetype jpeg
> +WANTLIB += m z
>  
>  COMPILER =           base-clang ports-gcc
>  MODULES =            devel/cmake \
> @@ -62,6 +63,7 @@ CONFIGURE_ARGS +=   -DCMAKE_INSTALL_PREFIX=${PREFIX} \
>                       
> -DTK_STUB_LIBRARY=${LOCALBASE}/lib/libtkstub${MODTK_VERSION:S/.//}.a
>  
>  post-install:
> +     mv ${PREFIX}/bin/netgen ${PREFIX}/bin/netgen-mesher
>       ${MODPY_COMPILEALL} \
>               ${WRKINST}${MODPY_SITEPKG}/netgen \
>               ${WRKINST}${MODPY_SITEPKG}/pyngcore
> commit - 779aeeae035e742ff7ebc02e27af1cfa156fac1e
> blob - /dev/null
> file + cad/netgen-mesher/patches/patch-doc_CMakeLists_txt (mode 644)
> --- /dev/null
> +++ cad/netgen-mesher/patches/patch-doc_CMakeLists_txt
> @@ -0,0 +1,6 @@
> +Index: doc/CMakeLists.txt
> +--- doc/CMakeLists.txt.orig
> ++++ doc/CMakeLists.txt
> +@@ -1 +1 @@
> +-INSTALL(FILES ng4.pdf DESTINATION 
> ${NG_INSTALL_DIR_RES}/${NG_INSTALL_SUFFIX}/doc COMPONENT netgen_doc)
> ++INSTALL(FILES ng4.pdf DESTINATION 
> ${NG_INSTALL_DIR_RES}/doc/${NG_INSTALL_SUFFIX} COMPONENT netgen_doc)
> commit - 779aeeae035e742ff7ebc02e27af1cfa156fac1e
> blob - /dev/null
> file + cad/netgen-mesher/patches/patch-py_tutorials_CMakeLists_txt (mode 644)
> --- /dev/null
> +++ cad/netgen-mesher/patches/patch-py_tutorials_CMakeLists_txt
> @@ -0,0 +1,10 @@
> +Index: py_tutorials/CMakeLists.txt
> +--- py_tutorials/CMakeLists.txt.orig
> ++++ py_tutorials/CMakeLists.txt
> +@@ -1,5 +1,5 @@
> + install( FILES 
> +         shaft.geo mesh.py exportNeutral.py
> +-        DESTINATION ${NG_INSTALL_DIR_RES}/${NG_INSTALL_SUFFIX}/py_tutorials
> ++        DESTINATION 
> ${NG_INSTALL_DIR_RES}/examples/${NG_INSTALL_SUFFIX}/py_tutorials
> +         COMPONENT netgen_tutorial
> +        )
> commit - 779aeeae035e742ff7ebc02e27af1cfa156fac1e
> blob - /dev/null
> file + cad/netgen-mesher/patches/patch-tutorials_CMakeLists_txt (mode 644)
> --- /dev/null
> +++ cad/netgen-mesher/patches/patch-tutorials_CMakeLists_txt
> @@ -0,0 +1,11 @@
> +Index: tutorials/CMakeLists.txt
> +--- tutorials/CMakeLists.txt.orig
> ++++ tutorials/CMakeLists.txt
> +@@ -7,6 +7,6 @@ install( FILES 
> +         twobricks.geo twocubes.geo twocyl.geo boundarycondition.geo         
>            
> +         hinge.stl  part1.stl frame.step  screw.step                         
>            
> +         squarehole.in2d squarecircle.in2d square.in2d
> +-        DESTINATION ${NG_INSTALL_DIR_RES}/${NG_INSTALL_SUFFIX}
> ++        DESTINATION ${NG_INSTALL_DIR_RES}/examples/${NG_INSTALL_SUFFIX}
> +         COMPONENT netgen_tutorial
> +        )
> commit - 47b88306af46c79c7fe1239d3706e681c6bc2343
> blob - 565424c1d57635c38899e6e1af18ba3ae7b25354
> file + cad/netgen-mesher/pkg/PLIST
> --- cad/netgen-mesher/pkg/PLIST
> +++ cad/netgen-mesher/pkg/PLIST
> @@ -1,5 +1,4 @@
> -@conflict netgen-*
> -@bin bin/netgen
> +@bin bin/netgen-mesher
>  include/netgen/
>  include/netgen/core/
>  include/netgen/core/archive.hpp
> @@ -275,49 +274,49 @@ ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packag
>  
> lib/python${MODPY_VERSION}/site-packages/pyngcore/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  
> lib/python${MODPY_VERSION}/site-packages/pyngcore/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
>  @so 
> lib/python${MODPY_VERSION}/site-packages/pyngcore/pyngcore.${MODPY_PYC_MAGIC_TAG}so
> -share/netgen/
> -share/netgen/boundarycondition.geo
> -share/netgen/boxcyl.geo
> -share/netgen/circle_on_cube.geo
> -share/netgen/cone.geo
> -share/netgen/cube.geo
> -share/netgen/cubeandring.geo
> -share/netgen/cubeandspheres.geo
> -share/netgen/cubemcyl.geo
> -share/netgen/cubemsphere.geo
> -share/netgen/cylinder.geo
> -share/netgen/cylsphere.geo
> -share/netgen/doc/
> -share/netgen/doc/ng4.pdf
> -share/netgen/ellipsoid.geo
> -share/netgen/ellipticcyl.geo
> -share/netgen/extrusion.geo
> -share/netgen/fichera.geo
> -share/netgen/frame.step
> -share/netgen/hinge.stl
> -share/netgen/lshape3d.geo
> -share/netgen/manyholes.geo
> -share/netgen/manyholes2.geo
> -share/netgen/matrix.geo
> -share/netgen/ortho.geo
> -share/netgen/part1.stl
> -share/netgen/period.geo
> -share/netgen/py_tutorials/
> -share/netgen/py_tutorials/exportNeutral.py
> -share/netgen/py_tutorials/mesh.py
> -share/netgen/py_tutorials/shaft.geo
> -share/netgen/revolution.geo
> -share/netgen/screw.step
> -share/netgen/sculpture.geo
> -share/netgen/shaft.geo
> -share/netgen/shell.geo
> -share/netgen/sphere.geo
> -share/netgen/sphereincube.geo
> -share/netgen/square.in2d
> -share/netgen/squarecircle.in2d
> -share/netgen/squarehole.in2d
> -share/netgen/torus.geo
> -share/netgen/trafo.geo
> -share/netgen/twobricks.geo
> -share/netgen/twocubes.geo
> -share/netgen/twocyl.geo
> +share/doc/netgen/
> +share/doc/netgen/ng4.pdf
> +share/examples/netgen/
> +share/examples/netgen/boundarycondition.geo
> +share/examples/netgen/boxcyl.geo
> +share/examples/netgen/circle_on_cube.geo
> +share/examples/netgen/cone.geo
> +share/examples/netgen/cube.geo
> +share/examples/netgen/cubeandring.geo
> +share/examples/netgen/cubeandspheres.geo
> +share/examples/netgen/cubemcyl.geo
> +share/examples/netgen/cubemsphere.geo
> +share/examples/netgen/cylinder.geo
> +share/examples/netgen/cylsphere.geo
> +share/examples/netgen/ellipsoid.geo
> +share/examples/netgen/ellipticcyl.geo
> +share/examples/netgen/extrusion.geo
> +share/examples/netgen/fichera.geo
> +share/examples/netgen/frame.step
> +share/examples/netgen/hinge.stl
> +share/examples/netgen/lshape3d.geo
> +share/examples/netgen/manyholes.geo
> +share/examples/netgen/manyholes2.geo
> +share/examples/netgen/matrix.geo
> +share/examples/netgen/ortho.geo
> +share/examples/netgen/part1.stl
> +share/examples/netgen/period.geo
> +share/examples/netgen/py_tutorials/
> +share/examples/netgen/py_tutorials/exportNeutral.py
> +share/examples/netgen/py_tutorials/mesh.py
> +share/examples/netgen/py_tutorials/shaft.geo
> +share/examples/netgen/revolution.geo
> +share/examples/netgen/screw.step
> +share/examples/netgen/sculpture.geo
> +share/examples/netgen/shaft.geo
> +share/examples/netgen/shell.geo
> +share/examples/netgen/sphere.geo
> +share/examples/netgen/sphereincube.geo
> +share/examples/netgen/square.in2d
> +share/examples/netgen/squarecircle.in2d
> +share/examples/netgen/squarehole.in2d
> +share/examples/netgen/torus.geo
> +share/examples/netgen/trafo.geo
> +share/examples/netgen/twobricks.geo
> +share/examples/netgen/twocubes.geo
> +share/examples/netgen/twocyl.geo


Reply via email to