A while ago I read article about creating metaports to avoid installing every dam port, that you need with portmaster
So I wanted to share mine [just finished], let it be example for many other metaports, that you create
Now I can simply
/usr/ports/x11/ks86/Makefile
/usr/ports/x11/ks86/pkg_descr - not really needed... but I wanted ports-mgmt/portlint to stop complaining about it
After install you should remove this metaport [pkg delete -f]
Ignore errors
I find you that it's best if you specify app name thatget's installed.
If something breaks in middle of install, next time you run this metaport it won't try to install ccache again.... but sometimes it's not possible..... for example for fonts.....
In this case you can specify full path to some other file or directory
for example
That line was from xorg Makefile
[red]UPDATE[/red]
I've updated my metaport to fix issues mentioned above. Now I can use my metaport whenever I want... even if all/some ports are installed
[red]UPDATE[/red]
Here's link to my current desktop metaports
http://hg.bsdroot.lv/aldis/ks86-desktop/
http://hg.bsdroot.lv/aldis/ks86-laptop/
http://hg.bsdroot.lv/aldis/ks86-desktop-core/
So I wanted to share mine [just finished], let it be example for many other metaports, that you create
Now I can simply
# portmaster x11/ks86
/usr/ports/x11/ks86/Makefile
Code:
# New ports collection makefile for: FreeBSD
# Date created: 2009.12.07.
# Whom: Aldis Berjoza <killasmurf86@gmail.com>
# $FreeBSD:$
#
PORTNAME= killasmurf86-desktop
PORTVERSION= 1.2
CATEGORIES= x11
MASTER_SITES=
DISTFILES=
MAINTAINER= killasmurf86@gmail.com
COMMENT= The meta-port for killasmurf86\'s desktop
NO_BUILD= YES
NO_WRKSUBDIR= YES
USE_CDRTOOLS= YES
# devel {{{1
RUN_DEPENDS+= vim:${PORTSDIR}/editors/vim
RUN_DEPENDS+= cscope:${PORTSDIR}/devel/cscope
RUN_DEPENDS+= exctags:${PORTSDIR}/devel/ctags
RUN_DEPENDS+= cscout:${PORTSDIR}/devel/cscout
RUN_DEPENDS+= ht:${PORTSDIR}/editors/hte
RUN_DEPENDS+= git:${PORTSDIR}/devel/git
RUN_DEPENDS+= ccache:${PORTSDIR}/devel/ccache
RUN_DEPENDS+= cgdb:${PORTSDIR}/devel/cgdb
#RUN_DEPENDS+= svn:${PORTSDIR}/devel/subversion
# 1}}}
# minimal desktop {{{1
RUN_DEPENDS+= ${LOCALBASE}/libdata/xorg:${PORTSDIR}/x11/xorg
RUN_DEPENDS+= fvwm2:${PORTSDIR}/x11-wm/fvwm2-devel
RUN_DEPENDS+= xdm:${PORTSDIR}/x11/xdm
RUN_DEPENDS+= urxvt:${PORTSDIR}/x11/rxvt-unicode
RUN_DEPENDS+= convert:${PORTSDIR}/graphics/ImageMagick
RUN_DEPENDS+= hsetroot:${PORTSDIR}/graphics/hsetroot
RUN_DEPENDS+= mksh:${PORTSDIR}/shells/mksh
RUN_DEPENDS+= tmux:${PORTSDIR}/sysutils/tmux
RUN_DEPENDS+= numlockx:${PORTSDIR}/x11/numlockx
RUN_DEPENDS+= xlock:${PORTSDIR}/x11/xlockmore
RUN_DEPENDS+= xclip:${PORTSDIR}/x11/xclip
RUN_DEPENDS+= gtk-theme-switch2:${PORTSDIR}/x11/gtk-theme-switch2
RUN_DEPENDS+= conky:${PORTSDIR}/sysutils/conky
RUN_DEPENDS+= xdg-mime:${PORTSDIR}/devel/xdg-utils
# 1}}}
# fonts {{{1
RUN_DEPENDS+= ${LOCALBASE}/lib/X11/fonts/local/unifont.ttf:${PORTSDIR}/x11-fonts/gnu-unifont-ttf
RUN_DEPENDS+= ${LOCALBASE}/lib/X11/fonts/webfonts:${PORTSDIR}/x11-fonts/webfonts
RUN_DEPENDS+= ${LOCALBASE}/lib/X11/fonts/junicode:${PORTSDIR}/x11-fonts/junicode
RUN_DEPENDS+= ${LOCALBASE}/lib/X11/fonts/terminus-font:${PORTSDIR}/x11-fonts/terminus-font
# 1}}}
# internet {{{1
RUN_DEPENDS+= axel:${PORTSDIR}/ftp/axel
RUN_DEPENDS+= irssi:${PORTSDIR}/irc/irssi
#RUN_DEPENDS+= firefox3:${PORTSDIR}/www/firefox35
#RUN_DEPENDS+= ${LOCALBASE}/lib/browser_plugins/dummyflash/dummyflash.so:${PORTSDIR}/www/dummyflash
#RUN_DEPENDS+= gnash:${PORTSDIR}/graphics/gnash
RUN_DEPENDS+= opera:${PORTSDIR}/www/opera
#RUN_DEPENDS+= psi:${PORTSDIR}/net-im/psi
RUN_DEPENDS+= pidgin:${PORTSDIR}/net-im/pidgin
#RUN_DEPENDS+= cclive:${PORTSDIR}/multimedia/cclive
RUN_DEPENDS+= elinks:${PORTSDIR}/www/elinks
# 1}}}
# security {{{1
RUN_DEPENDS+= gpg2:${PORTSDIR}/security/gnupg
RUN_DEPENDS+= sudo:${PORTSDIR}/security/sudo
RUN_DEPENDS+= keepassx:${PORTSDIR}/security/keepassx
RUN_DEPENDS+= pinentry:${PORTSDIR}/security/pinentry
#RUN_DEPENDS+= gpa:${PORTSDIR}/security/gpa
RUN_DEPENDS+= nmap:${PORTSDIR}/security/nmap
# 1}}}
# sys various {{{1
#RUN_DEPENDS+= mkisofs:${PORTSDIR}/sysutils/cdrtools # using USE_CDRTOOLS=yes instead
RUN_DEPENDS+= gtk-send-pr:${PORTSDIR}/sysutils/gtk-send-pr
RUN_DEPENDS+= growisofs:${PORTSDIR}/sysutils/dvd+rw-tools
#RUN_DEPENDS+= sysinfo:${PORTSDIR}/sysutils/sysinfo
# 1}}}
# players {{{1
RUN_DEPENDS+= mplayer:${PORTSDIR}/multimedia/mplayer
#RUN_DEPENDS+= playd:${PORTSDIR}/multimedia/playd
#RUN_DEPENDS+= playd2:${PORTSDIR}/multimedia/playd2
## I need this for my local playd2
#RUN_DEPENDS+= ${LOCALBASE}/lib/perl5/site_perl/5.8.9/File/Type.pm:${PORTSDIR}/devel/p5-File-Type
# 1}}}
# graphics editors {{{1
RUN_DEPENDS+= gimp:${PORTSDIR}/graphics/gimp
RUN_DEPENDS+= ${LOCALBASE}share/gimp/brushes/50x50cone.gbr:${PORTSDIR}/graphics/gimp-data-extras
RUN_DEPENDS+= ${LOCALBASE}/share/gimp/patterns/worn_metal_chex.pat:${PORTSDIR}/graphics/gimp-data-extras
RUN_DEPENDS+= ${LOCALBASE}/share/gimp/scripts/egger-copyright.scm:${PORTSDIR}/graphics/gimpfx-foundry
RUN_DEPENDS+= inkscape:${PORTSDIR}/graphics/inkscape
RUN_DEPENDS+= pdftk:${PORTSDIR}/print/pdftk
# 1}}}
# viewers {{{1
RUN_DEPENDS+= xpdf:${PORTSDIR}/graphics/xpdf
RUN_DEPENDS+= djview4:${PORTSDIR}/graphics/djview4
RUN_DEPENDS+= epdfview:${PORTSDIR}/graphics/epdfview
RUN_DEPENDS+= gpicview:${PORTSDIR}/graphics/gpicview
# 1}}}
# mail {{{1
RUN_DEPENDS+= postfix:${PORTSDIR}/mail/postfix
RUN_DEPENDS+= mutt:${PORTSDIR}/mail/mutt-devel
# 1}}}
# stuff related to ports/packages {{{1
RUN_DEPENDS+= portmaster:${PORTSDIR}/ports-mgmt/portmaster
RUN_DEPENDS+= pkg_cutleaves:${PORTSDIR}/ports-mgmt/pkg_cutleaves
RUN_DEPENDS+= portaudit:${PORTSDIR}/ports-mgmt/portaudit
RUN_DEPENDS+= psearch:${PORTSDIR}/ports-mgmt/psearch
RUN_DEPENDS+= bpkg:${PORTSDIR}/ports-mgmt/bpkg
RUN_DEPENDS+= portlint:${PORTSDIR}/ports-mgmt/portlint
# 1}}}
# Peripheria (Printer/Scanner ...) {{{1
LIB_DEPENDS+= gutenprint.2:${PORTSDIR}/print/gutenprint
RUN_DEPENDS+= ${LOCALBASE}/etc/rc.d/cupsd:${PORTSDIR}/print/cups
RUN_DEPENDS+= ${LOCALBASE}/libexec/cups/backend/cups-pdf:${PORTSDIR}/print/cups-pdf
RUN_DEPENDS+= xsane:${PORTSDIR}/graphics/xsane
# 1}}}
# ARV programming {{{1
RUN_DEPENDS+= avrdude:${PORTSDIR}/devel/avrdude
RUN_DEPENDS+= avra:${PORTSDIR}/devel/avra
# 1}}}
# for OpenOffice.org you need these {{{1
RUN_DEPENDS+= ldapadd:${PORTSDIR}/net/openldap24-client
RUN_DEPENDS+= javavm:${PORTSDIR}/java/javavmwrapper
LIB_DEPENDS+= Xm.3:${PORTSDIR}/x11-toolkits/open-motif
RUN_DEPENDS+= ${LOCALBASE}/libexec/gnome-vfs-daemon:${PORTSDIR}/devel/gnome-vfs
LIB_DEPENDS+= cups.2:${PORTSDIR}/print/cups-base
## need JDK to compile. you can pkg_add openjdk6
#RUN_DEPENDS+= ${LOCALBASE}/openjdk7:${PORTSDIR}/java/openjdk7
#RUN_DEPENDS+= ${LOCALBASE}/openjdk6:${PORTSDIR}/java/openjdk6
# 1}}}
# Database {{{1
#RUN_DEPENDS+= pgadmin3:${PORTSDIR}/databases/pgadmin3
#RUN_DEPENDS+= sqliteman:${PORTSDIR}/databases/sqliteman
# 1}}}
# Emulators {{{1
RUN_DEPENDS+= VirtualBox:${PORTSDIR}/emulators/virtualbox-ose
#RUN_DEPENDS+= qemu:${PORTSDIR}/emulators/qemu
# 1}}}
# Math {{{1
RUN_DEPENDS+= mathomatic:${PORTSDIR}/math/mathomatic
#RUN_DEPENDS+= scilab:${PORTSDIR}/math/scilab
# 1}}}
# MISC {{{1
RUN_DEPENDS+= gcolor2:${PORTSDIR}/graphics/gcolor2
RUN_DEPENDS+= when:${PORTSDIR}/deskutils/when
RUN_DEPENDS+= easytag:${PORTSDIR}/audio/easytag
RUN_DEPENDS+= klavaro:${PORTSDIR}/games/klavaro
RUN_DEPENDS+= tightvnc:${PORTSDIR}/net/tightvnc
RUN_DEPENDS+= filezilla:${PORTSDIR}/ftp/filezilla
#RUN_DEPENDS+= freemind:${PORTSDIR}/deskutils/freemind
RUN_DEPENDS+= unrar:${PORTSDIR}/archivers/unrar
RUN_DEPENDS+= zip:${PORTSDIR}/archivers/zip
# 1}}}
do-install:
${DO_NADA}
.include <bsd.port.mk>
/usr/ports/x11/ks86/pkg_descr - not really needed... but I wanted ports-mgmt/portlint to stop complaining about it
Code:
This port is create to let me easelly instal my custom dekstop
enviroment....
Feel free to use, modify, do what ever you want to do
Code:
# pkg_delete -f killasmurf86-desktop-1.0
pkg_delete: the package info for package 'killasmurf86-desktop-0.9' is corrupt (but I'll delete it anyway)
pkg_delete: couldn't completely deinstall package 'killasmurf86-desktop-0.9',
only the log entry in /var/db/pkg/killasmurf86-desktop-0.9 was removed
I find you that it's best if you specify app name thatget's installed.
Code:
RUN_DEPENDS+= [red]ccache[/red]:${PORTSDIR}/devel/ccache
If something breaks in middle of install, next time you run this metaport it won't try to install ccache again.... but sometimes it's not possible..... for example for fonts.....
In this case you can specify full path to some other file or directory
for example
Code:
RUN_DEPENDS+= ${LOCALBASE}/libdata/xorg/drivers:${PORTSDIR}/x11-drivers/xorg-drivers
[red]UPDATE[/red]
I've updated my metaport to fix issues mentioned above. Now I can use my metaport whenever I want... even if all/some ports are installed
[red]UPDATE[/red]
Here's link to my current desktop metaports
http://hg.bsdroot.lv/aldis/ks86-desktop/
http://hg.bsdroot.lv/aldis/ks86-laptop/
http://hg.bsdroot.lv/aldis/ks86-desktop-core/