Another method I tired was to install the component manually; this requires no directory permission changes for the install and I prefer this method. There is a downside that can be overcome, which I will explain at the end of this post.
Upload the Files Manually
For this "fix" you extract the BreeszingForms component locally and upload it manually to the correct folders on the server.
/administrator/components/com_breezingforms/
admin
captchas
images
joomfish
legacyclasses
libraries
mailtpl
packages
pdftpl
sql
admin.breezingforms.php
breezingforms.xml
classloader.php
index.html
install.secimage.php
toolbar.facileforms.php
uninstall.secimage.php
/administrator/language
upload the appropriate languages from the component's /language/admin/
/components/com_breezingforms
downloadtpl
images
libraries
themes
uploads
breezingforms.php
facileforms.class.php
facileforms.config.php
facileforms.js
facileforms.process.php
facileforms.xml.php
index.html
markdown.php
/language
upload the appropriate languages from the component's /language/public/
Install the BreezingForms Menus
Using phpMyAdim you can run the following SQL against your Joomla! database, replace the ### with your Joomla! database's prefix and remove the ids.
INSERT INTO `###_components` (`name`, `link`, `menuid`, `parent`, `admin_menu_link`, `admin_menu_alt`, `option`, `ordering`, `admin_menu_img`, `iscore`, `params`, `enabled`) VALUES
('BreezingForms', 'option=com_breezingforms', 0, 0, '', 'BreezingForms', 'com_breezingforms', 0, 'js/ThemeOffice/component.png', 0, 'ff_com_page=1\nff_com_align=1\n', 1),
('Manage Records', '', 0, 127, 'option=com_breezingforms&act=managerecs', 'Manage Records', 'com_breezingforms', 0, 'js/ThemeOffice/checkin.png', 0, '', 1),
('Manage Backend Menus', '', 0, 127, 'option=com_breezingforms&act=managemenus', 'Manage Backend Menus', 'com_breezingforms', 1, 'js/ThemeOffice/menumgr.png', 0, '', 1),
('Manage Forms', '', 0, 127, 'option=com_breezingforms&act=manageforms', 'Manage Forms', 'com_breezingforms', 2, 'js/ThemeOffice/content.png', 0, '', 1),
('Manage Scripts', '', 0, 127, 'option=com_breezingforms&act=managescripts', 'Manage Scripts', 'com_breezingforms', 3, 'js/ThemeOffice/cpanel.png', 0, '', 1),
('Manage Pieces', '', 0, 127, 'option=com_breezingforms&act=managepieces', 'Manage Pieces', 'com_breezingforms', 4, 'js/ThemeOffice/cpanel.png', 0, '', 1),
('Integrator', '', 0, 127, 'option=com_breezingforms&act=integrate', 'Integrator', 'com_breezingforms', 5, 'js/ThemeOffice/config.png', 0, '', 1),
('Configuration', '', 0, 127, 'option=com_breezingforms&act=configuration', 'Configuration', 'com_breezingforms', 6, 'js/ThemeOffice/config.png', 0, '', 1);
Install the BreezingForms Standard Script Library
Go to the menu Components : BreezingForms : Configuration.
Click on Package Installer.
Select Install package from file on server.
At the end of the path make sure the file points to stdlib.english.xml
(Optionally) Add the BreezingForms Sample Library
Go to the menu Components : BreezingForms : Configuration.
Click on Package Installer.
Select Install package from file on server.
At the end of the path make sure the file points to samples.english.xml
Add the MM Functions
Go to Extensions : Install/Uninstall.
Browse to the plg_mmfuncs.zip file on your local computer.
Click on Upload & Install.
Go to Extensions : Plugin Manager.
Find MMFuncs in the list and enable it.
Downside & Workaround for it
The only downside I found was that Breezing Forms does not seem to use the FTP Client details in the site's Global Configuration settings to save packages you create, so you get the following message when creating a package *** ABUSE WARNING ***.
The work around is to temporarily set the permissions of the directory /administrator/components/com_breezingforms/packages to 777. Create the package and then change the directory permissions back to what they were, usually 755.
I looked into this further and noticed that the mkPackage() function in the config.class.php was using fopen to save the created packages. I updated the method so that it uses the JFile::write() method instead and this resolved the issue. I'll submit my changes to crosstec and let them proof my code for a possible update.