Creating new port

Raghu HB raghu.hb at avagotech.com
Fri May 30 04:18:30 UTC 2014


Olli and Michelle,

Thanks a lot, this is what I was looking for (example for the port
creation), I referred simple sysutils/tw_cli port and created new port and
package.

Below are the steps I followed.

STEP1: Created a test port directory /usr/ports/sysutils/testport

STEP2: Created Makefile with below content.

	
--------------------------------------------------------------------------
----------------------------------------------------------------
	# $FreeBSD$
	
	PORTNAME=       testport
	PORTVERSION=    2.1
	CATEGORIES=     sysutils
	MASTER_SITES=   ftp://support.com
	DISTNAME=       testport-2.1

	MAINTAINER=     youremail at example.com
	COMMENT=        test

	ONLY_FOR_ARCHS= amd64

	WRKSRC=         ${WRKDIR}
	NO_BUILD=       yes


	.include <bsd.port.options.mk>


	do-install:

        	@${MKDIR} ${PREFIX}/sbin/test/
        	${INSTALL_PROGRAM}
${WRKSRC}/${DISTNAME}/bin/test/testbinary ${PREFIX}/sbin/test/

	deinstall:
        	@${RMDIR} ${PREFIX}/sbin/test

	.include <bsd.port.mk>
	
--------------------------------------------------------------------------
----------------------------------------------------------------

STEP3: Created the tar file testport-2.1.tar.gz and placed the tar file in
/usr/ports/distfiles

	./ testport-2.1
	./ testport-2.1/bin
	./ testport-2.1/bin/test
	./ testport-2.1/bin/test/testbinary

STEP4: Change the directory to /usr/ports/sysutils/testport  and run the
command : make makesum

STEP5: Run the command "make package"
              I can see that the port is created and installed.

STEP6:  try uninstall the port: "make deinstall"

STEP7: Create the package from the port using the below commands and
verify the package.

	pkg_create -b testport-2.1
	pkg_add -f testport-2.1.tbz
	pkg_delete testport-2.1

As I mentioned above I created a test package and which is working fine.
Please suggest if any changes needed or if something is wrong in above
steps.

Now I would say I will create a package for my new application
"finalpackage.tbz".
I would like to know if I can ship the "finalpackage.tbz" file to customer
to use the package on their system for new application?  or it has to be
registered with FreeBSD community?
Please guide us with the future steps to release the application to
customer.

-----Original Message-----
From: olli hauer [mailto:ohauer at gmx.de]
Sent: Thursday, May 29, 2014 1:30 PM
To: freebsd-ports
Cc: Raghu HB
Subject: Re: Creating new port

On 2014-05-28 12:01, Raghu HB wrote:
> Thanks Michelle for quick response.
>
>
> First I would like to explain what is the application and how I am
> trying to create port.
>
> We have some command line utilities to run on FreeBSD (Storage
> controller software).
> The installer should contain few binaries and scripts which will be
> deployed on FreeBSD OS.
> The binaries are pre-compiled and scripts will be used to
> start/stop/restart the services or daemons.
>
> Created below directory structure "/usr/ports/distfiles/":
>
> ./mrmonitor-1.1
> ./mrmonitor-1.1/bin
> ./mrmonitor-1.1/bin/mrmonitor
> ./mrmonitor-1.1/bin/mrmonitor/testmonitor
> ./mrmonitor-1.1/Makefile
>
> I created a tar.gz file which contains the above directory structure
> with the name mrmonitor-1.1.tar.gz.
>
> The Makefile contents:
> ----------------------------------------------------------
> # $FreeBSD$
> PORTNAME=       mrmonitor
> PORTVERSION=    1.1
> CATEGORIES=     misc
> MASTER_SITES=
>
> MAINTAINER=    Raghu.hb at avagotech.com
> COMMENT=       MRMonitor
> .include <bsd.port.mk>
> ----------------------------------------------------------
>
>
> Created a home directory /home/Raghu, Created 3 new files Makefile,
> pkg-descr
>
> The Makefile contents:
> ----------------------------------------------------------
> # $FreeBSD$
> PORTNAME=       mrmonitor
> PORTVERSION=    1.1
> CATEGORIES=     misc
> MASTER_SITES=
>
> MAINTAINER=    Raghu.hb at avagotech.com
> COMMENT=       MRMonitor
> .include <bsd.port.mk>
> ----------------------------------------------------------
>
>
> pkg-descr
>
> ----------------------------------------------------------
> This is MRMonitor port
> ----------------------------------------------------------
>
> pkg-plist
> ----------------------------------------------------------
> bin/mrmonitor
> bin/mrmonitor/testmonitor
> @dirrm bin/mrmonitor
> ----------------------------------------------------------
>
>
>
> Now I run the command make makesum which is successful, then I ran the
> command make package I got the errors (attached the error  messages) .
>
> May be I am doing something wrong in some basic configuration, please
> correct me.
>
>
> Thanks,
> Raghu
>
> -----Original Message-----
> From: Michelle Sullivan [mailto:michelle at sorbs.net]
> Sent: Wednesday, May 28, 2014 3:14 PM
> To: Raghu HB
> Cc: FreeBSD Ports ML
> Subject: Re: Creating new port
>
> Raghu HB wrote:
>> Hello,
>>
>>
>>
>> I am new to FreeBSD and I am in a process of creating new port for
>> one of the application.
>>
>> I have gone through the steps in handbook and I tried to create new
>> port but I am not successful.
>>
>>
>>
>> I would request you to send one sample example to create new port
>> with all the steps explained would be a great help.
>>
>>
>
> What's the application, can you send me your Makefile so far and what
> errors you're getting?
>
> And I'll try and take a look.
>
> Michelle
>
> --
> Michelle Sullivan
> http://www.mhix.org/
>

Reading the make-error log it looks like `make' is called recursive.
In case the the port does not compile anything try to add the keyword
NO_BUILD=yes into the port Makefile and use a 'do-install:' target.

e.g.

COMMENT= 	...

NO_BUILD=	yes

do-install:
	${INSTALL} ${WRKSRC}/${ARCH}/mrmonitor ${STAGEDIR}${LOCALBASE}/bin
	${INSTALL_SCRIPT} ${WRKSRC}/scripts/$scriptXX
${STAGEDIR}${LOCALBASE}/bin ...
.include <bsd.port.mk>


If you could provide your full Makefile and a link to the distfile I'm
sure the port can be finished in short time.
As a hint look at the simple sysutils/tw_cli port


--
Regards,
olli


More information about the freebsd-ports mailing list