Creating Portshaker-compatible Overlays

CyberLeo Kitsana 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
directly possible.

Second, after pounding my overlay into something resembling a proper
tree, I encountered some strangeness with regards to custom categories.

portshaker.conf:
----8<----
use_zfs="yes"

mirror_base_dir="/srv/ports"

ports_trees="main"

main_ports_tree="/usr/ports"
main_zfs_dataset="mtumishi/devel/ports"
main_merge_from="freebsd cdn"
----8<----

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:
----8<----
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
----8<----

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:

----8<----
(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.
----8<----

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?

Thanks!

-- 
Fuzzy love,
-CyberLeo
Technical Administrator
CyberLeo.Net Webhosting
http://www.CyberLeo.Net
<CyberLeo at CyberLeo.Net>

Furry Peace! - http://wwww.fur.com/peace/


More information about the freebsd-ports mailing list