Re: New port with USES=gmake will not stage

Euan Thoms euan at potensol.com
Thu Jun 11 05:44:27 UTC 2015


 
On Thursday, June 11, 2015 13:33 SGT, "Euan Thoms" <euan at potensol.com> wrote: 
 
>  
> On Thursday, June 11, 2015 13:18 SGT, "Chris H" <bsd-lists at bsdforge.com> wrote: 
>  
> > On Thu, 11 Jun 2015 11:33:03 +0800 "Euan Thoms" <euan at potensol.com> wrote
> > 
> > > I'm making a port for OpenSIPS. It builds successfully, but the even with
> > > just "make" it installs files to the system instead of to stage (i.e. to
> > > /usr/local/... instead of /usr/ports/net/opensips/work/stage/usr/local/...).
> > > 
> > > I am using gmake and gcc since that's what's required for OpenSIPS.
> > > 
> > > I've done a similar port before and the FreeBSD ports macros do the staging
> > > for me. However, even when I tell gmake the DESTDIR=${STAGEDIR} in do-build
> > > and do-install, a "make" just installs the files to /usr/local/... .
> > > 
> > > I can't find any documentation on how to ensure building uses staging.
> > > OpenSIPS doesn't have a configure script AFAIK. It has it's own menuconfig
> > > which normally generates a Makefile.conf. The only thing useful in there is
> > > PREFIX= , but that is to specify the final destination paths (also used in
> > > linking I guess). My port passes the compile flags in MAKE_ARGS instead of
> > > using a Makefile.conf file. 
> > Kind of a tough call w/o any real information -- your Makefile, the source
> > location? :)
> 
> Sorry about that.
> 
> Source file is here: http://opensips.org/pub/opensips/1.11.5/opensips-1.11.5-latest_src.tar.gz
> 
> here is my Makefile contents:
> 
> # cat Makefile
> # Created by: Euan Thoms <euan at potensol.com>
> # $FreeBSD$
> 
> PORTNAME=               opensips1-lts
> PORTVERSION=            1.11.5
> CATEGORIES=             net
> MASTER_SITES=           http://opensips.org/pub/opensips/1.11.5/
> DISTNAME=               opensips-${PORTVERSION}-latest_src
> 
> MAINTAINER=             euan at potensol.com
> COMMENT=                OpenSIPS (Open SIP Server) is a mature Open Source implementation of a SIP server.
> 
> LICENSE=                GPLv2
> LIB_DEPENDS=            libxml2.so:${PORTSDIR}/textproc/libxml2 \
>                         libmemcached.so:${PORTSDIR}/databases/libmemcached
> 
> BUILD_DEPENDS=          python:${PORTSDIR}/lang/python
> 
> WRKSRC=                 ${WRKDIR}/opensips-${PORTVERSION}-tls
> 
> OPTIONS_DEFINE=         LDAP MYSQL PGSQL MEMCACHED
> OPTIONS_DEFAULT=        LDAP PGSQL MEMCACHED
> OPTIONS_SUB= yes
> 
> LDAP_DESC=              Build with LDAP support
> MYSQL_DESC=             Build with MySQL support
> PGSQL_DESC=             Build with PostgreSQL support
> MEMCACHED_DESC=         Build with memcached support
> 
> USES=                   gmake shebangfix
> USE_GCC=                yes
> 
> .include <bsd.port.options.mk>
> 
> #post-patch:
> #       ${REINPLACE_CMD} -e 's|^#include <Python.h>|#include "Python.h"|' ${WRKSRC}/
> 
> EXCLUDE_MODULES=        aaa_radius b2b_logic cachedb_cassandra cachedb_couchbase \
>                         cachedb_memcached cachedb_mongodb cachedb_redis carrierroute cpl-c db_berkeley \
>                         db_http db_mysql db_oracle db_perlvdb db_postgres db_unixodbc dialplan \
>                         event_rabbitmq h350 regex identity jabber json ldap lua httpd mi_xmlrpc_ng \
>                         mi_xmlrpc mmgeoip osp perl pi_http presence presence_dialoginfo presence_mwi \
>                         presence_xml pua pua_bla pua_dialoginfo pua_mi pua_usrloc pua_xmpp python \
>                         rest_client rls sngtc snmpstats xcap xcap_client xmpp
> 
> INCLUDE_MODULES=        aaa_radius b2b_logic cachedb_memcached carrierroute \
>                         cpl-c db_postgres dialplan event_rabbitmq h350 regex identity jabber json \
>                         ldap httpd mi_xmlrpc_ng mi_xmlrpc mmgeoip perl pi_http presence \
>                         presence_dialoginfo presence_mwi presence_xml pua pua_bla pua_dialoginfo \
>                         pua_mi pua_usrloc pua_xmpp python rest_client rls xcap xcap_client xmpp
> 
> MAKE_ARGS+=             PREFIX=${LOCALBASE}
> MAKE_ARGS+=             exclude_modules="${EXCLUDE_MODULES}" include_modules="${INCLUDE_MODULES}"
> 
> #do-build:
> #       cd ${WRKSRC} && ${GMAKE} ${MAKE_ARGS} ${ALL_TARGET}
> #
> #do-install:
> #       cd ${WRKSRC} && ${GMAKE} ${MAKE_ARGS} ${INSTALL_TARGET}
> 
> .include <bsd.port.mk>
> #### EOF ############
> 
> I can't find the make files for stage to drill down and see what's going wrong. Any pointers to the script that "make stage" uses? 

Oops, I just found a folder in the source tarballs packaging folder called "freebsd". And inside that is what looks like a fully baked port.

# ls work/opensips-1.11.5-tls/packaging/freebsd
Makefile   distinfo   files/     pkg-descr


I haven't tried it yet, but I am now wondering why it isn't in the ports tree. Somebody has gone to the effort to make it.
 
-- 
Regards, Euan Thoms 




More information about the freebsd-ports mailing list