Changeset View
Standalone View
math/frobby/Makefile
PORTNAME= frobby | PORTNAME= frobby | ||||
PORTVERSION= 0.9.5 | |||||
DISTVERSIONPREFIX= v | DISTVERSIONPREFIX= v | ||||
diizzy: PORTVERSION --> DISTVERSION and DISTVERSIONPREFIX should be placed before DISTVERSION
Ref… | |||||
DISTVERSION= 0.9.5 | |||||
PORTREVISION= 1 | |||||
CATEGORIES= math | CATEGORIES= math | ||||
MAINTAINER= ports@FreeBSD.org | PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ | ||||
PATCHFILES= 5b9e4ac4057f5693f53c321eeb5bfb387f6b69fb.patch:-p1 | |||||
Done Inline ActionsJust add :-p1 to the line above instead diizzy: Just add :-p1 to the line above instead | |||||
MAINTAINER= salvadore@FreeBSD.org | |||||
COMMENT= Software system and project for computations with monomial ideals | COMMENT= Software system and project for computations with monomial ideals | ||||
LICENSE= GPLv2+ | LICENSE= GPLv2+ | ||||
Done Inline ActionsIf there's a license file included, add it (it's not a hard requirement but that's what Porters Handbook says) ;-) diizzy: If there's a license file included, add it (it's not a hard requirement but that's what Porters… | |||||
Done Inline ActionsActually, I did include a LICENSE_FILE right when I created the port: It was later removed when I had dropped frobby's maintainership: @thierry: Do you remember why the line was removed? According to GitHub the file still existed in the repository at v0.9.1. salvadore: Actually, I did include a LICENSE_FILE right when I created the port:
https://svnweb.freebsd. | |||||
Not Done Inline Actions@salvadore : when the license is GPLv2+ (or any standard license), I think that we do not have to store one more. How many does return the command find /usr/local/share/licenses -name COPYING | wc -l on your machine? thierry: @salvadore : when the license is GPLv2+ (or any standard license), I think that we do not have… | |||||
Not Done Inline ActionsI see what you mean. Actually, the command returned me 0, but find /usr/local/share/licenses -name GPLv2+ | wc -l returned 32. I don't know what to do about it. The porter's handbook is inconsistent about it: in https://docs.freebsd.org/en/books/porters-handbook/porting-dads/#dads-misc it asks to avoid to include more copies of the GPL license, but examples from https://docs.freebsd.org/en/books/porters-handbook/makefiles/#licenses do the opposite. I think I prefer to keep it. I don't think GPL copies are so much of a problem with the disk sizes that we have today. But this is not a strong preference, if you have a strong preference for removing it I can remove it. salvadore: I see what you mean. Actually, the command returned me 0, but `find /usr/local/share/licenses… | |||||
LIB_DEPENDS= libgmp.so:math/gmp | LIB_DEPENDS= libgmp.so:math/gmp | ||||
USES= gmake shebangfix | USES= gmake localbase:ldflags shebangfix | ||||
USE_GITHUB= yes | USE_GITHUB= yes | ||||
GH_ACCOUNT= Macaulay2 | GH_ACCOUNT= Macaulay2 | ||||
BINARY_ALIAS= make=gmake | |||||
USE_LDCONFIG= yes | USE_LDCONFIG= yes | ||||
SHEBANG_FILES= test/testScripts/* test/runTests test/runSplitTests \ | SHEBANG_FILES= test/latticeFormats/runtest* test/runSplitTests test/runTests \ | ||||
test/latticeFormats/runtest* | test/testScripts/* | ||||
OPTIONS_DEFINE= EXEDOCS LIBDOCS TEST | MAKE_ENV= RANLIB=${RANLIB} | ||||
Done Inline ActionsThis might not be needed by using USES= localbase:ldflags otherwise fix Makefile and submit upstream diizzy: This might not be needed by using USES= localbase:ldflags otherwise fix Makefile and submit… | |||||
Done Inline ActionsAgree, USES= localbase is cleaner. thierry: Agree, USES= localbase is cleaner. | |||||
OPTIONS_DEFAULT= STATIC SHARED | |||||
OPTIONS_MULTI= INSTALL | ALL_TARGET= # Empty | ||||
OPTIONS_MULTI_INSTALL= EXECUTABLE \ | |||||
Done Inline ActionsPlease use USES= localbase:ldflags instead diizzy: Please use USES= localbase:ldflags instead | |||||
SHARED \ | OPTIONS_DEFINE= DOCS LIBDOCS STATIC TEST | ||||
Done Inline ActionsThis option makes little sense as the port is called frobby and not libfrobby, just make it hardcoded diizzy: This option makes little sense as the port is called frobby and not libfrobby, just make it… | |||||
Done Inline ActionsI think you were refering to the option to not install frobby's executable, isn't it? I removed it and renamed the EXEDOCS option to DOCS. salvadore: I think you were refering to the option to not install frobby's executable, isn't it? I removed… | |||||
STATIC | OPTIONS_DEFAULT= STATIC | ||||
Done Inline ActionsI would argue that we should fix the Makefile instead of trying to hack around it diizzy: I would argue that we should fix the Makefile instead of trying to hack around it | |||||
EXEDOCS_DESC= Build and install documentation for frobby executable | OPTIONS_SUB= yes | ||||
LIBDOCS_DESC= Build and install documentation for frobby library | LIBDOCS_DESC= Build and install documentation for frobby library | ||||
EXECUTABLE_DESC= Build and install frobby executable | DOCS_BUILD_DEPENDS= dvips:print/tex-dvipsk \ | ||||
Not Done Inline ActionsThere's no need to override Mk/bsd.options.desc.mk ? diizzy: There's no need to override Mk/bsd.options.desc.mk ? | |||||
Done Inline ActionsI could not find a SHARED_DESC option in Mk/bsd.options.desc.mk, so I had to keep it. salvadore: I could not find a SHARED_DESC option in Mk/bsd.options.desc.mk, so I had to keep it. | |||||
Done Inline ActionsAh yes, we "always" ship on shared libraries, static ones however are optional (usually left up to the maintainer to decide) but this can be fixed later (next update) diizzy: Ah yes, we "always" ship on shared libraries, static ones however are optional (usually left up… | |||||
Done Inline ActionsSame as above diizzy: Same as above | |||||
SHARED_DESC= Build and install libfrobby.so | latex:print/tex-formats | ||||
STATIC_DESC= Build and install libfrobby.a | |||||
EXEDOCS_BUILD_DEPENDS= latex:print/tex-formats \ | |||||
dvips:print/tex-dvipsk | |||||
LIBDOCS_BUILD_DEPENDS= doxygen:devel/doxygen \ | LIBDOCS_BUILD_DEPENDS= doxygen:devel/doxygen \ | ||||
epstopdf:print/texlive-base | dvips:print/tex-dvipsk \ | ||||
epstopdf:print/texlive-base \ | |||||
latex:print/tex-formats | |||||
TEST_BUILD_DEPENDS= bash:shells/bash | TEST_BUILD_DEPENDS= bash:shells/bash | ||||
OPTIONS_SUB= yes | |||||
MAKE_ARGS+= GMP_INC_DIR=${LOCALBASE}/include | |||||
MAKE_ENV= RANLIB=${RANLIB} | |||||
LDFLAGS+= -L${LOCALBASE}/lib | |||||
.include <bsd.port.options.mk> | .include <bsd.port.options.mk> | ||||
.if ${PORT_OPTIONS:MSHARED} || ${PORT_OPTIONS:MSTATIC} | .if ${PORT_OPTIONS:MSTATIC} | ||||
PLIST_SUB+= LIBRARY="" NO_LIBRARY="@comment " | PLIST_SUB+= LIBRARY="" \ | ||||
NO_LIBRARY="@comment " | |||||
.else | .else | ||||
PLIST_SUB+= LIBRARY="@comment " NO_LIBRARY="" | PLIST_SUB+= LIBRARY="@comment " \ | ||||
NO_LIBRARY="" | |||||
.endif | .endif | ||||
do-build: | # The following variables should be defined to the same values | ||||
# that can be found in ${WRKSRC}/Makefile | |||||
Done Inline Actionstypo, ben --> be diizzy: typo, ben --> be | |||||
Done Inline ActionsYou can probably set ALL_TARGET= # Empty to avoid defining do-build (you can look into this next update) diizzy: You can probably set `ALL_TARGET= # Empty` to avoid defining do-build (you can look into this… | |||||
FROBBY_SOVERSION= 1 | |||||
FROBBY_AGE= 0 | |||||
FROBBY_REVISION= 0 | |||||
FROBBY_VERSION= ${FROBBY_SOVERSION}.${FROBBY_AGE}.${FROBBY_REVISION} | |||||
do-build-EXEDOCS-on: | do-build-DOCS-on: | ||||
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} doc | cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} doc | ||||
do-build-EXECUTABLE-on: | |||||
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} | |||||
do-build-LIBDOCS-on: | do-build-LIBDOCS-on: | ||||
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} develDoc | cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} develDoc | ||||
do-build-STATIC-on: | do-build-STATIC-on: | ||||
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} library | cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} library | ||||
post-build-SHARED-on: | post-build: | ||||
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} MODE=shared library | cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} MODE=shared library | ||||
post-build-TEST-on: do-build-EXECUTABLE-on | post-build-TEST-on: | ||||
cd ${WRKSRC} && test/runTests _full | cd ${WRKSRC} && test/runTests _full | ||||
cd ${WRKSRC} && test/runSplitTests _full | cd ${WRKSRC} && test/runSplitTests _full | ||||
do-install: | do-install: | ||||
do-install-EXECUTABLE-on: | |||||
${INSTALL_PROGRAM} ${WRKSRC}/bin/release/frobby ${STAGEDIR}${PREFIX}/bin | ${INSTALL_PROGRAM} ${WRKSRC}/bin/release/frobby ${STAGEDIR}${PREFIX}/bin | ||||
do-install-SHARED-on: | |||||
${INSTALL_DATA} ${WRKSRC}/src/frobby.h ${STAGEDIR}${PREFIX}/include | ${INSTALL_DATA} ${WRKSRC}/src/frobby.h ${STAGEDIR}${PREFIX}/include | ||||
${INSTALL_DATA} ${WRKSRC}/bin/libfrobby.so ${STAGEDIR}${PREFIX}/lib/libfrobby.so.0 | ${INSTALL_LIB} ${WRKSRC}/bin/libfrobby.so.${FROBBY_VERSION} ${STAGEDIR}${PREFIX}/lib/libfrobby.so.${FROBBY_VERSION} | ||||
cd ${STAGEDIR}${PREFIX}/lib && \ | cd ${STAGEDIR}${PREFIX}/lib && \ | ||||
${LN} -sf libfrobby.so.0 ${STAGEDIR}${PREFIX}/lib/libfrobby.so | ${RLN} libfrobby.so.${FROBBY_VERSION} ${STAGEDIR}${PREFIX}/lib/libfrobby.so && \ | ||||
Done Inline ActionsDoes this now essentially installed two (identical) copies of that library, where previously only once copy was present and the other was a symlink? Maybe I am missing something, but that would not be ideal. gerald: Does this now essentially installed two (identical) copies of that library, where previously… | |||||
Done Inline ActionsI have checked using poudriere: this strategy brings in three identical copies of the same library instead of one library and two soft links. I am going to fix that. salvadore: I have checked using poudriere: this strategy brings in three identical copies of the same… | |||||
Done Inline ActionsYou probably want to use ${RLN} here? Debian also takes a slightly different approach, https://salsa.debian.org/math-team/frobby/-/blob/master/debian/rules#L20 diizzy: You probably want to use ${RLN} here? Debian also takes a slightly different approach, https… | |||||
${RLN} libfrobby.so.${FROBBY_VERSION} ${STAGEDIR}${PREFIX}/lib/libfrobby.so.${FROBBY_SOVERSION} | |||||
do-install-STATIC-on: | do-install-STATIC-on: | ||||
${INSTALL_DATA} ${WRKSRC}/src/frobby.h ${STAGEDIR}${PREFIX}/include | ${INSTALL_DATA} ${WRKSRC}/src/frobby.h ${STAGEDIR}${PREFIX}/include | ||||
${INSTALL_LIB} ${WRKSRC}/bin/libfrobby.a ${STAGEDIR}${PREFIX}/lib | ${INSTALL_DATA} ${WRKSRC}/bin/libfrobby.a ${STAGEDIR}${PREFIX}/lib | ||||
do-install-EXEDOCS-on: | do-install-DOCS-on: | ||||
${MKDIR} ${STAGEDIR}${DOCSDIR} | ${MKDIR} ${STAGEDIR}${DOCSDIR} | ||||
${INSTALL_MAN} ${WRKSRC}/bin/manual.ps ${STAGEDIR}${DOCSDIR} | ${INSTALL_MAN} ${WRKSRC}/bin/manual.ps ${STAGEDIR}${DOCSDIR} | ||||
${INSTALL_MAN} ${WRKSRC}/bin/manual.pdf ${STAGEDIR}${DOCSDIR} | ${INSTALL_MAN} ${WRKSRC}/bin/manual.pdf ${STAGEDIR}${DOCSDIR} | ||||
do-install-LIBDOCS-on: | do-install-LIBDOCS-on: | ||||
${MKDIR} ${STAGEDIR}${DOCSDIR} | ${MKDIR} ${STAGEDIR}${DOCSDIR} | ||||
${INSTALL_MAN} ${WRKSRC}/bin/develDoc/develDoc.ps ${STAGEDIR}${DOCSDIR} | ${INSTALL_MAN} ${WRKSRC}/bin/develDoc/develDoc.ps ${STAGEDIR}${DOCSDIR} | ||||
${INSTALL_MAN} ${WRKSRC}/bin/develDoc/develDoc.pdf ${STAGEDIR}${DOCSDIR} | ${INSTALL_MAN} ${WRKSRC}/bin/develDoc/develDoc.pdf ${STAGEDIR}${DOCSDIR} | ||||
cd ${WRKSRC}/bin/develDoc && ${COPYTREE_SHARE} html ${STAGEDIR}${DOCSDIR} | cd ${WRKSRC}/bin/develDoc && ${COPYTREE_SHARE} html ${STAGEDIR}${DOCSDIR} | ||||
.include <bsd.port.mk> | .include <bsd.port.mk> |
PORTVERSION --> DISTVERSION and DISTVERSIONPREFIX should be placed before DISTVERSION
Ref: "Example 17. Use of USE_GITHUB with DISTVERSIONPREFIX" in Porters Handbook