Mac OS X distributionsAuthor(s): Rémy Haemmerlé, Ciao Development Team.
Building Mac packages
These are the main prerequisites for the build process to succeed:
- A user account with enough free space (at least twice that necessary for a compiled local repository for package generation).
- A local Ciao repository with binaries and documentation already generated.
- A working installation of Ciao.
- Apple's Xcode 3.0 Developer Tools (for package generation only).
The usual Ciao software requirements also apply, the build process should complain if anything is missing.
- ./ciao-boot.sh gen_pbundle__macport
- ./ciao-boot.sh gen_pbundle__pkg
./ciao-boot.sh gen_pbundle__macport produces a MacPorts Portfile which depends on a source tgz distribution. If the tarball is available in the package directory the command will automatically produce it. Notice that because the portfile includes a checksum of the tarball source distribution it is dependent on this archive. Since macports are used online the tarball used to produce the portfile should be the same as the one available online on the Ciao website.
./ciao-boot.sh gen_pbundle__pkg produces a pkg (i.e., a standard "Managed Install" MacOs Package) wrapped into a dmg image disk. This command assumes that binaries and documentation have been locally built using correct configure options.
Packager's maintenance guide (mac)
The system comprises a skeleton for the MacPorts Portfile (Portfile.skel) that should be updated in case of changes in ciao_builder's commands and options but also in case of changes in the Ciao website.
Since the MacPorts Portfile includes the electronic address where the tarball source distribution resides (on the Ciao website) then any change in the architecture of the website should be reflected here.
Usage and interface
- Library usage:
- Application modules:
bundle_hash, config_common, pbundle_generator, builder_aux, builder_cmds, pbundle_gen_src, messages_aux.
- System library modules:
aggregates, lists, llists, terms, format, md5sum, process, system, system_extra, streams, file_utils, pathnames, bundle_flags, bundle_info, paths_extra, doc_flags, bundle_params, exemaker, glob.
prelude, nonpure, condcomp, fsyntax, assertions.
- Application modules:
Documentation on exports
Documentation on multifiles