Creating Portshaker-compatible Overlays
cyberleo at cyberleo.net
Mon Feb 13 17:42:57 UTC 2012
I recently heard about Portshaker, and thought I might give it a go to
replace the ad-hoc script I currently use to manage local port overlays.
First, are there any plans to support rsync as an update method for
source trees? It was a little strange to discover that this was not
Second, after pounding my overlay into something resembling a proper
tree, I encountered some strangeness with regards to custom categories.
The 'freebsd' source is updated via portsnap, and the 'cdn' source via
git from http://git.cyberleo.net/cdn-ports-overlay.git branch
'portshaker'. Both updates work fine.
ls -la /srv/ports/cdn:
drwxr-xr-x 8 root wheel 13 Feb 13 10:12 .git
-rw-r--r-- 1 root wheel 0 Feb 13 10:12 .gitignore
-rw-r--r-- 1 root wheel 19 Feb 13 10:12 Makefile.local
drwxr-xr-x 2 root wheel 3 Feb 13 10:17 Mk
drwxr-xr-x 7 root wheel 8 Feb 13 10:12 misc-cdn
drwxr-xr-x 3 root wheel 3 Feb 13 10:12 net
The changes in Mk/bsd.local.mk appear to be carried over properly, but
Makefile.local is ignored and portshaker appears to have trouble merging
the misc-cdn category:
(ee95ca16)[cyberleo at mtumishi ~]$ sudo portshaker -Mv
[Info 10:49:24] Cloning '/srv/ports/freebsd' to '/usr/ports'.
[Info 10:49:33] Merging '/srv/ports/cdn' to '/usr/ports'.
[Warn 10:49:33] misc-cdn/Makefile: No Makefile in this directory!
cp: /usr/ports/misc-cdn/bash-config: No such file or directory
[Error 10:49:33] Cannot merge misc-cdn/bash-config.
It strikes me as strange that it would assume Makefile is a directory;
but, given the nature of portshaker, I would expect it to manage the
category Makefile properly regardless.
It also seems to forget to create custom category directories in the
target, and so fails when merging the ports under them.
Am I approaching this with incorrect expectations? Are there any hints
to be provided on how I might more effectively leverage this tool?
<CyberLeo at CyberLeo.Net>
Furry Peace! - http://wwww.fur.com/peace/
More information about the freebsd-ports