Mail archive

[acf] Release of acf-core-0.9.0

From: Ted Trask <>
Date: Fri, 1 Jan 2010 13:31:34 -0800 (PST)

acf-core release 0.9.0 has been tagged and many of the other ACF packages were updated to correspond. Here are some of the changes:

1) Permissions were abstracted by adding a check-permissions function
to viewlibrary so a view can check permissions without knowing the
format of session.
2) Permissions are now checked for prefix/controller/action instead of controller/action, so controllers with the same name are now viewed separately. This was a longterm bug. This is INCOMPATIBLE with user-defined roles from earlier versions. Users will have to recreate the roles (but it will be easier thanks to point 8 below).
3) Symlink'd directories are now allowed in the app directory for controller / menu / roles searching.
4) Menu code was added to split a menu group if different prefix/controller combos add identically named tabs.
5) Config file appdir and libdir can now be comma-separated lists of directories. This allows for extending ACF without editing /usr/share/acf.

These 5 changes above combine to allow a cool new feature. If you would like a new instance of an ACF, you can create a new appdir (in /etc/acf for instance), add that appdir to the appdir list in the config file, symlink the ACF directory with a different directory name (do NOT use the same directory name), and voila! a second instance of the ACF. This is only useful right now for the new versions of acf-tinydns and acf-openvpn - they have been modified to take advantage of the new feature. If you would like to try with tinydns, do the following:

ln -s /etc/init.d/tinydns /etc/init.d/tinydns.eth0
mkdir /etc/acf/app
ls -s /usr/share/acf/app/tinydns /etc/acf/app/tinydns.eth0
sed -i 's~appdir=/usr/share/acf/app/~appdir=/usr/share/acf/app/,/etc/acf/app/~' /etc/acf/acf.conf

6) Removed redundant and buggy versions of basename and dirname functions - this affected several ACFs.
7) Fixed weirdities in parse_path_info for more consistent behavior.
8) Default roles are now created for each role file individually in addition to the old combined roles, so there is more granularity in the default roles. This allows you to select 'the USER role for weblog' whereas you used to only have the option for 'the USER role for ALL controllers'.
9) jquery libraries were moved to a new acf-jquery package. The css and gif files were merged into acf-skins.
10) Non-ACF-specific libraries were moved to a new acf-lib package and located in the standard Lua path for reuse. Also moved the cfe_unpack function from html to viewfunctions library.
11) Logfile is now definable in the acf.conf file.
12) The command-line client, which has existed for a long time, now
works and is included in the release. See usage of
/usr/share/acf/www/cgi-bin/cli. This can be used by root user with no
permissions checking. Especially useful for scripting (like weblog
importing - see weblogimport script).

If you have created your own ACF extensions, you will probably have to modify your code. But, you now have a much neater way of adding those extensions without modifying files in /usr/share/acf.

These changes will be available in the next major release of alpine and should be in the edge repository shortly.


Ted Trask


Received on Fri Jan 01 2010 - 13:31:34 GMT