New Port OpenEMM2013 with some questions before
horst leitenmueller
horst.leitenmueller at liwest.at
Sun Jan 4 18:29:18 UTC 2015
hi all,
i have ported OpenEMM2013 R2 to freebsd but i have some questions before i can add it to the bug/new port reporting system
0) do-install
copytree_share to exclude documentation directory (USR_SHARE/...) not working (i needed to move doc one level up in do-build: )
do-build:
${MV} ${WRKSRC}/target/USR_SHARE ${WRKSRC}/USR_SHARE
do-install
${MKDIR} ${STAGEDIR}${PREFIX}/${PORTNAME}
(cd ${WRKSRC}/target/ && ${COPYTREE_SHARE} \* ${STAGEDIR}${PREFIX}/${PORTNAME} "! -name USR_SHARE*")
post-install
# update also /usr/local/share with the docs
${MKDIR} ${STAGEDIR}${DOCSDIR}
(cd ${WRKSRC}/USR_SHARE/ && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR})
is there a better solution for this ?
1) pkg-plist
documentation with
i added for all entries in the Docsdir
%%PORTDOCS%%%%DOCSDIR%%/CHANGELOG.txt
and NO dirrm for the %%PORTDOCS%%%%DOCSDIR%%
but i get a warning that
portlint -A
WARN: /usr/ports/mail/openemm2013/pkg-plist: Both ``%%PORTDOCS%%@dirrm %%DOCSDIR%%'' and ``%%PORTDOCS%%@unexec %D/%%DOCSDIR%% 2>/dev/null || true'' are missing. At least one should be used.
and in portershandbook https://www.freebsd.org/doc/en/books/porters-handbook/plist-keywords.html <https://www.freebsd.org/doc/en/books/porters-handbook/plist-keywords.html> 7.6.7.10. @dirrm directory (Deprecated)
so now what i have to add :-)
2) License if not defined in freebsd.lic db mk
and building with poudriere will fail if the license must be accepted, how can this be solved ? (as i have it now it’s not correct!)
LICENSE= MPL
#LICENSE= CPAL
#LICENSE_COMB= multi
#LICENSE_NAME= Common Public Attribution License Version 1.0 (CPAL)
#LICENSE_FILE= ${DOCSDIR}/LICENSE.txt
#LICENSE_PERMS_OpenEMM= auto-accept # dist-mirror pkg-mirror auto-accept
is there a best practice to transfer all lic to the correct place of freebsd
post-install:
# TODO LEI
# move the licenses to the correct place
# /usr/local/share/doc/openemm2013/LICENSE.txt
# /usr/local/share/doc/openemm2013/ThirdPartyLicences/*
3) devel/libslang2 name for lib dependency (LIB_DEPENDS)
but libslang.so is the one which must be declared otherwise it will be never found is it normal in this way ?
LIB_DEPENDS= libslang.so:${PORTSDIR}/devel/libslang2
4) USES python best way to define dynamically RUN_DEPENDS for db (py27-MySQLdb56 )
RUN_DEPENDS= ${TOMCATHOME}/bin/bootstrap.jar:${PORTSDIR}/www/tomcat8 py27-MySQLdb56>=1.2.3:${PORTSDIR}/databases/py-MySQLdb56
....
USES= python:2.7,run
....
5) best way to reinplace_cmd for paths in the target system
example
@${REINPLACE_CMD} -e 's|$$HOME|\${PREFIX}\/\${PORTNAME}|g' -e 's|-L INFO|-L INFO -s /var/run/openemm/bav.sock|' ${WRKSRC}/src/script/control/bounce.sh
to hardcode /var/run will not be the best or ?
also portlint is complaining
root at openemm:/usr/ports/mail/openemm2013 # portlint
WARN: Makefile: possible use of absolute pathname "/var".
6) not able to replace
i have a few problems with the REINPLACE_CMD
i thougt special character escaping is working as normal example \$ would escapce $ but it's not $$ escapes it
problem here a can't escape the single quote only in this way it's working...
another problem i wanted to use grouping but this was also not working
LHS |(base=) os.environ.*| and on RHS |\1 {PREFIX}...|
@${REINPLACE_CMD} -e "s|base = os.environ\['HOME'\]| base = '${PREFIX}\/${PORTNAME}'|g" -e "s|lockpath = os.environ\['LOCK_HOME'\]|lockpath = '/var/run/openemm'|g" ${WRKSRC}/src/script/lib/agn.py
7) symlink for pyhton
the application refers to the /usr/local/bin/python path installation of pyhton is only with version Nr
# TODO LEI
#${LN} -sf /usr/local/bin/python2.7 /usr/local/bin/python
how can this be done ?, (btw.: app has no variable for current pyhton path)
8) portlint and position of LIB_DEPENDS / BUILD_DEPENDS / RUN_DEPENDS
portlint complains about position of following
WARN: Makefile: "BUILD_DEPENDS" has to appear earlier.
WARN: Makefile: "RUN_DEPENDS" has to appear earlier.
i have tried now all positions before ... but without success, where should it be placed (i would love to have a xsd for that to know WHAT is wrong and where it should be...)
9) portlint -A was complaing about not using PREFIX in pkg-message
i thougt it will be replaced ? but this is not working as expected; is there a other way to get this solved
or is the only way to hardcode it and to live with warnings?
hopefully not too long and i get some help :-)
attached the Makefile (port.shar and the pourdriere -t log; i can send when needed)
thnx in advance
horst
More information about the freebsd-ports
mailing list