# "make package" and dependencies



## Stamps (Jun 27, 2009)

I use FreeBSD 7.2 on 2 servers. I would like to compile packages into /usr/ports/packages directory on one machine and than share it with other over NFS mounting point. 

But something i can't figure out. if i use "make package" on program in ports collection that has a lot of dependencies. Must i manually go in every port of dependencies and use "make install" or is there a way to make this automatically? So all dependencies get compiled as packages not just compiled to use by system.

For example if i would like to make packages for egroupware...:



> eGroupware-1.6.001_2
> A web based GroupWare system
> Long description : Sources : Changes : Download
> Maintained by: wenheping@gmail.com
> Requires: cclient-2007e,1, libiconv-1.13, libxml2-2.7.3, mysql-client-5.0.83, pcre-7.9, pear-1.8.1, pear-Auth-1.6.1_1, pear-Auth_SASL-1.0.2, pear-HTTP_WebDAV_Server-1.0.0.r4, pear-Log-1.11.4, pear-Net_IMAP-1.1.0, pear-Net_Sieve-1.1.6, pear-Net_Socket-1.0.9, pear-XML_Feed_Parser-1.0.3, php5-5.2.10, php5-dom-5.2.10, php5-imap-5.2.10, php5-mysql-5.2.10, php5-pcre-5.2.10, php5-pdo-5.2.10, php5-pdo_mysql-5.2.10, php5-session-5.2.10, php5-simplexml-5.2.10, php5-spl-5.2.10, php5-tidy-5.2.10, php5-xml-5.2.10, pkg-config-0.23_1, tidy-lib-090315.c



:...that has a lot of dependencies. Is there a way to make all necessary packages automatically with a command at /ports/ deskutils/egroupware directory?

Thanks for answers!


----------



## graudeejs (Jun 27, 2009)

I suggest using portmaster
for example
`$ portmaster -g x11/xorg`

this will create all packages necessary for Xorg (that is for ports that aren't yet installed)
This way on new system you can create all packages you need


----------



## Stamps (Jun 27, 2009)

Great just what i am looking for. So in my case on new system i install portmaster and use:


```
$ portmaster -g /usr/ports/deskutils/egroupware
```

I will tray ASAP!


----------



## blah (Jun 27, 2009)

If the package already installed you can do
`# pkg_create -Rxb egroup`
else there is "package-recursive" make target in ports tree.


----------



## Stamps (Jun 27, 2009)

If i understand correctly then the easiest way to make a package and compile all dependencies into packages that are not all ready installed by the system and move them into /usr/ports/packages is: 

$ make config-recursive
$ make package-recursive 

Is this correct?


----------



## phoenix (Jun 29, 2009)

Be sure to set the *PACKAGES* environment variable to /usr/ports/packages.  By defualt, packages are built in the current directory (so the individual port directories).  Unless you set PACKAGES.


----------



## mecano (Oct 3, 2010)

Looks like package-recursive doesn't process rc.d scripts, resulting packages are missing them, any reason for that?


----------



## SirDice (Oct 3, 2010)

phoenix said:
			
		

> Be sure to set the *PACKAGES* environment variable to /usr/ports/packages.  By defualt, packages are built in the current directory (so the individual port directories).  Unless you set PACKAGES.



No. As long as the directory /usr/ports/packages/ exist (it doesn't by default) the packages will be stored there. If the directory doesn't exist _and_ PACKAGES isn't set, then the package will be stored in the port's directory.


----------



## wernerdev (Aug 27, 2011)

I'm back since I didn't get this solved 

Today I tried again and the same problem is still around.
I build the port and then ran "build package-recursive".

The resulted contents of my "packages/All" directory: http://pastebin.com/raw.php?i=i8q80K44
Thats all the crap which got build and which is also required when installing.

Can't this be solved? Can't I just install "avahi-daemon" which has only 2 or 3 dependencies?


----------



## DutchDaemon (Aug 27, 2011)

Dependencies have their own dependencies, you know.


```
[/usr/ports/net/avahi] $ make all-depends-list                                                                                            
/usr/ports/net/avahi-app
/usr/ports/devel/libtool
/usr/ports/devel/gobject-introspection
/usr/ports/devel/gmake
/usr/ports/textproc/intltool
/usr/ports/devel/pkg-config
/usr/ports/textproc/expat2
/usr/ports/devel/libdaemon
/usr/ports/devel/dbus-glib
/usr/ports/databases/gdbm
/usr/ports/devel/gettext
/usr/ports/devel/glib20
/usr/ports/devel/gio-fam-backend
/usr/ports/sysutils/gnome_subr
/usr/ports/lang/python27
/usr/ports/devel/bison
/usr/ports/devel/libffi
/usr/ports/graphics/cairo
/usr/ports/lang/perl5.12
/usr/ports/textproc/p5-XML-Parser
/usr/ports/converters/libiconv
/usr/ports/devel/dbus
/usr/ports/devel/pcre
/usr/ports/devel/gamin
/usr/ports/devel/m4
/usr/ports/x11/xcb-util
/usr/ports/x11/libXrender
/usr/ports/print/freetype2
/usr/ports/graphics/png
/usr/ports/x11-fonts/fontconfig
/usr/ports/x11/pixman
/usr/ports/x11/libX11
/usr/ports/textproc/libxml2
/usr/ports/devel/libsigsegv
/usr/ports/devel/gperf
/usr/ports/x11/libXau
/usr/ports/x11/libXdmcp
/usr/ports/x11/libxcb
/usr/ports/x11/renderproto
/usr/ports/x11/xproto
/usr/ports/devel/xorg-macros
/usr/ports/x11/bigreqsproto
/usr/ports/x11/xcmiscproto
/usr/ports/x11/xextproto
/usr/ports/x11/xtrans
/usr/ports/x11/kbproto
/usr/ports/x11/inputproto
/usr/ports/x11-fonts/xf86bigfontproto
/usr/ports/devel/libcheck
/usr/ports/textproc/libxslt
/usr/ports/x11/xcb-proto
/usr/ports/devel/libpthread-stubs
/usr/ports/security/libgcrypt
/usr/ports/security/libgpg-error
```


----------



## wernerdev (Aug 28, 2011)

Removed... Wrong topic.


----------

