====== MacLibre ====== ===== Synopsis ===== MacLibre aims to be an OSX free sofware distribution like WinLibre is on Windows. It is able to install and to keep up to date a set of software and it is distributed under the GPL Licence. ===== ToDo ===== * find contributors for making .app for 10.1, 10.2, and 10.4 * use PyObjC for asking user's password in a conventional way * when installing a .pkg package display the 'Optimizing hard drive' phase * re-design GUI_PackageChooser.py * re-design Installer.py * add sub-categories ? ( may require deep modifications ) * clean the code and remove un-pythonic practices * create more Containers ( RarContainer, TgzContainer, TbzContainer, etc...) and integrate them * move MacLibre folder from unix convention (~/.maclibre) to OSX standard path * give to installed.xml an utf8 look * localize MacLibre * create several localized distribution All contributions are welcome, if you are a developer yourself and want to see the sourcecode of this opensource project, or any of the other Winlibre Projects, you may [[http://cvs.sourceforge.net/viewcvs.py/winlibre/|Browse WinLibre CVS]]. ===== Package list syntax ===== ====General overview==== If you want to use MacLibre for managing a different set of software or if you want to create another (a better ?) GUI for MacLibre, here is some explanations about the syntax of the package list. The basic hierarchy is the following : * ''Distribution'' * ''Category'' //at least one by// ''Distribution'' * ''Package'' //at least one by// ''Category'' * ''Description'' //just one by// ''Package'' * ''P'' //just one by// ''Description'' * ''Homepage'' //just one by// ''Description'' * ''Installation'' //at least one by// ''Package'' * ''File'' //just one by// ''Installation'' * ''Dependence'' //optional, zero or more// Take a look at [[http://cvs.sourceforge.net/viewcvs.py/*checkout*/winlibre/maclibre/xml/en.xml|Maclibre current package list]] ====Distribution==== ^ Field ^ Default Value ^ Necessary ^ Description ^ | ''Name'' | ''MacLibre'' | Optional | set of software's name | | ''Version'' | //empty string// | Yes | set of software's version | | ''Language'' | //empty string// | Yes | set of software's language | | ''InstallerMinVersion'' | ''0.1'' | Optional | compared to installer version ((If the ''installerMinVersion'' is superior than the version of the current installer it displays a message to user asking him to download the latest version)) | ====Category==== ^ Field ^ Default Value ^ Necessary ^ Description ^ | ''Name'' | //empty string// | Yes | displayed as a folder name in package selection tree | ====Package==== ^ Field ^ Default Value ^ Necessary ^ Description ^ | ''Name'' | //empty string// | Yes | displayed as a node in package selection tree | | ''Version'' | //empty string// | Optional | version of the package. take a look at Installation's version field | | ''Showable'' | ''True'' | Optional | set to ''False'' if this package doesn't have to be displayed in the tree | | ''Status'' | ''stable''| Optional | status of the package, could be ''stable''/''unstable''/''testing''| ====Installation==== If a package has more than one Installation, MacLibre will look which one is installable on the current system and will ignore other ones. ^ Field ^ Default Value ^ Necessary ^ Description ^ | ''SizeOnDisk'' | ''0'' | Yes | Size when installed on the disk | | ''Version'' | //empty string// | Optional | if a Package has more than one Installation with different versions. It replaces package version field if this one is not given | | ''OSMin'' | ''10.0'' | Optional | minimal version of OSX for installing this package. value included | | ''OSMax'' | ''10.4.2'' | Optional | maximal version of OSX for installing this package. value included | ====File==== A File could have more than one Url. It's used if the first download failed (wrong md5 checksum or broken link) ^ Field ^ Default Value ^ Necessary ^ Description ^ | ''Name'' | //empty string// | Yes | name of the file | | ''Size'' | ''0'' | Yes | size of the file in bytes. needed for the progression gauge | | ''Type'' | ''dmg'' | Optional | Kind of file. ''dmg'' and ''zip'' are supported | | ''Extension'' | ''app'' | Optional | Extension of the package inside the file. ''app'' and ''pkg'' are supported | | ''MD5Sum'' | //empty string// | Yes | check sum for the file | ====Dependence==== Dependence shouldn't be set in both ways. If the package ''foo'' need the package ''bar'' to be installed, only one of them have to have a Dependence anchor. ^ Field ^ Default Value ^ Necessary ^ Description ^ | ''Name'' | //empty string// | Yes | name of the dependence package | | ''Version'' | //empty string// | Yes | version of the dependence package | | ''Install'' | //empty string// | Yes | when this dependence should be installed. ''after'' or ''before'' the package | ====Examples==== * Sample Package :

Surf the Web, block pop-ups, keep spyware at bay and enjoy the useful extensions of this lean and fast browser.

http://www.mozilla.org/products/firefox/
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/1.0.6/mac/en-US/Firefox%201.0.6.dmg http://ftp.scarlet.be/pub/mozilla.org/firefox/releases/1.0.6/mac/en-US/Firefox%201.0.6.dmg
* Multi-Installations Package :

Cyberduck is a FTP and SFTP browser with an easy to use interface. It supports many OS X system technologies such as Spotlight, Bonjour, the Keychain and AppleScript.

http://cyberduck.ch/
http://cyberduck.ch/Cyberduck-2.5b4.dmg http://cyberduck.ch/Cyberduck-2.4.6.dmg
* Package with dependence :

The GIMP is a software for such tasks as photo retouching, image composition and image authoring.

http://gimp-app.sourceforge.net/
http://heanet.dl.sourceforge.net/sourceforge/gimp-app/Gimp-2.2.6.dmg http://ufpr.dl.sourceforge.net/sourceforge/gimp-app/Gimp-2.2.6.dmg