Changes between Version 16 and Version 17 of MacPortsRenaming
- Timestamp:
- Jun 30, 2007, 4:39:27 AM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MacPortsRenaming
v16 v17 7 7 Upon migrating away from the defunct OpenDarwin community, the MacPorts project also changed its name from the long standing "DarwinPorts", in order to better reflect its aim to refocus support solely on Mac OS X. 8 8 9 This change brought about great mixture between the old and new names at various aspects of the project, like chosen installation paths, internal routines naming and many others, as every naming decision up to the point of migration had naturally been based on the old project name. When first moving to our new name great effort was put into updating most of the user visible stuff to the implied new namespace, but many "under the hood" things were left behind in the old namespace due to time constraints in getting MacPorts 1.4 out the door, including every single installation path.9 This change brought about great mixture between the old and new names at various aspects of the project, like chosen installation paths, internal routines naming and many others, as every naming decision up to the point of migration had naturally been based on the old project name. When first moving to our new name great effort was put into updating most of the user visible stuff to the implied new namespace, but many "under the hood" things were left behind in the old namespace due to time constraints in getting MacPorts 1.4 out the door, including every single user-side installation path. 10 10 11 It is the aim of the [source:branches/dp2mp-move/base dp2mp-move branch] to complete the migration to the new namespace at every single level of the MacPortsproject:11 It is the aim of the [source:branches/dp2mp-move/base dp2mp-move branch] to complete the migration to the new MacPorts namespace at every single level of the project: 12 12 13 13 * source level layout, e.g. moving `base/src/darwinports1.0` to `base/src/macports1.0` in svn and adapting files therein accordingly; 14 14 * internal routines naming, e.g. renaming `dportinit` to `mportinit` and many other examples in this category; 15 15 * installation paths, e.g. going from a `${prefix}/share/darwinports` MacPorts base installation path at the host level to `${prefix}/share/macports`; 16 * distribution means, e.g. by using the `rsync.macports.org` server for source and ports distribution and updating corresponding options in configuration files in existing installations to reflect this; 17 * any other relevant aspect.... 16 * distribution means, e.g. by moving to the `rsync.macports.org` server name for source and ports distribution and updating corresponding options in existing configuration files to reflect the change; 17 * any other relevant aspect missing from this list... 18 19 == MacPorts' new look == 20 18 21 19 22 Needless to say, changes in this branch have major implications not only in the inner workings of MacPorts, but also on some user visible aspects of the project. WIth respect to installation paths, a default MacPorts installation upgraded to this branch would experience the following gradual moves: … … 29 32 }}} 30 33 31 The last entry in the list above represents an important and delicate move, since MacPorts operates inside the `/opt/local/var/db/dports` directory for many of its internal operations, like fetching Portfiles and building ports, among many other activities. Previously, MacPorts would fetch its own sources and the ports tree through the `selfupdate` and/or `sync` routines into a `/opt/local/var/db/dports/sources/rsync.<rsync_server>_<rsync_module>` skeleton, replacing dots and other characters in server/module names with `_` in some parts of the resulting directory name. Therefore the most common and default paths for the rsync based MacPorts sources and ports tree would look like:34 The last entry in the list above represents an important and delicate move, since MacPorts operates inside the `/opt/local/var/db/dports` directory for many of its internal operations, like fetching Portfiles and building ports, among many other activities. Previously, MacPorts would fetch its own sources and the ports tree through the `selfupdate` and/or `sync` routines into an `/opt/local/var/db/dports/sources/rsync.<rsync_server>_<rsync_module>` skeleton, replacing dots and other characters in server/module names with `_` in some parts of the resulting directory name. Therefore the most common and default paths for the rsync based MacPorts sources and ports tree would look like: 32 35 33 36 {{{ … … 36 39 }}} 37 40 38 `selfupdate` and `sync` routines in this branch, however, have been upgraded to work with a much more flexible and cleaner skeleton: sources are now fetched into a`/opt/local/var/macports/sources/<server>/<rsync_module>` hierarchy. This may not seem like much at first, but closer inspection reveals this approach allows room to grow in every custom way users might need while also preserving a sense of order. Default paths will now look like:41 `selfupdate` and `sync` routines in this branch, however, have been upgraded and refactored to work with a much more flexible and cleaner skeleton: sources are now fetched into an `/opt/local/var/macports/sources/<server>/<rsync_module>` hierarchy. This may not seem like much at first, but closer inspection reveals this approach allows room to grow in every custom way users might need while also preserving a sense of order. Default paths will now look like: 39 42 40 43 {{{ … … 49 52 }}} 50 53 51 `trunk/base` being the corresponding rsync module in this case thatwould come to replace the old and confusing `/opt/local/var/db/dports/sources/rsync.rsync.darwinports.org_dpupdate/base` directory.54 `trunk/base` being the corresponding rsync module that in this case would come to replace the old and confusing `/opt/local/var/db/dports/sources/rsync.rsync.darwinports.org_dpupdate/base` directory. 52 55 53 56 This new structure also allows us to distribute a new and custom ports tree under an entirely different rsync module if we so wish, while still preserving order. An example of this would look like, for a hypothetical ports tree with Portfiles still in testing: … … 65 68 }}} 66 69 67 An upgrade target in the [source:branches/dp2mp-move/base/Makefile.in main Makefile] takes care of moving everything that's "old" in an existing MacPorts installation into its new location before regular installation of the new sources begins, as detailed in the moves above. Also, among the rules in this target there are a set of `sed` calls that act on existing configuration files to upgrade them to the new conventions. For the new global and user specific `macpors.conf` file (`/opt/local/etc/macports/macports.conf` and `~/.macports/macports.conf`, respectively), these are: 70 == Upgrading existing installations == 71 72 An upgrade target in the [source:trunk/base/Makefile.in main Makefile] takes care of moving everything that's "old" in an existing MacPorts installation into its new location (as detailed in the moves dialog above) before regular installation of the new sources begins. Also, among the rules in this target there are a set of `sed` calls that act on existing configuration files to upgrade them to the new conventions. For the new system-widw and user specific `macpors.conf` files (`/opt/local/etc/macports/macports.conf` and `~/.macports/macports.conf`, respectively), these are: 68 73 69 74 * new default path up to the configuration files is inserted, `/opt/local/etc/ports ---> /opt/local/etc/macports`; … … 75 80 * useless --delete option is removed from the default rsync flags (--delete is implied by --delete-after); 76 81 * comment references to the old ports.conf(5) man page are upgraded to the new macports.conf(5) page, `ports.conf(5) ---> macports.conf(5)`; 77 * remaining comments in the DarwinPorts namespace are also upgraded .82 * remaining comments in the DarwinPorts namespace are also upgraded to the MacPorts namespace. 78 83 79 84 And for `sources.conf`: … … 82 87 * new default value for the ports tree, `dpupdate/dports ---> release/ports/`. 83 88 89 This takes care of `selfupdate` and source based existing MacPorts installations. Users installing from the pkg installer distributed through our dmgs will also experience the exact same upgrade through the included [source:trunk//base/portmgr/dmg/preflight preflight script]. 90 84 91 = Pending = 85 92