Changes between Initial Version and Version 1 of Ticket #47255
- Timestamp:
- Mar 24, 2015, 10:11:33 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #47255
- Property Cc ryandesign@… removed
- Property Owner changed from macports-tickets@… to ryandesign@…
-
Ticket #47255 – Description
initial v1 3 3 Xz depends on port:libiconv and port:gettext, and esp. the latter is updated rather frequently. The update sequence (when building from source) is as follows, taking gettext as an example (using xz compression and with the +universal variant which is the reason many of us have to build each upgrade from source): 4 4 5 1 )port destroot gettext +universal6 2)create the new archive in ${prefix}/var/macports/software/gettext/gettext???.txz7 3)port deactivate gettext@current-version+universal8 4)unpack the archive created in (2) in a temporary directory in ${prefix}/var/macports/software/gettext5 1. port destroot gettext +universal 6 1. create the new archive in ${prefix}/var/macports/software/gettext/gettext???.txz 7 1. port deactivate gettext@current-version+universal 8 1. unpack the archive created in (2) in a temporary directory in ${prefix}/var/macports/software/gettext 9 9 10 10 And that's where things go wrong: since port:gettext has been deactivated, port:xz can no longer function. … … 17 17 The correct way to address this issue is of course to change the order of steps outline above: 18 18 19 1 )port destroot xz +universal20 2)create the new archive in ${prefix}/var/macports/software/xz/xz???.txz21 3)unpack the archive created in (2) in a temporary directory in ${prefix}/var/macports/software/xz22 4)port deactivate xz@current-version+universal23 5)move the new files in place from the temporary directory into ${prefix}19 1. port destroot xz +universal 20 1. create the new archive in ${prefix}/var/macports/software/xz/xz???.txz 21 1. unpack the archive created in (2) in a temporary directory in ${prefix}/var/macports/software/xz 22 1. port deactivate xz@current-version+universal 23 1. move the new files in place from the temporary directory into ${prefix} 24 24 25 25 This has 2 advantages: 1) the to-be-updated functionality remains available right up to the moment where standard system commands will be used to update it, so that tools used in the procedure can update themselves and 2) the "gap" during which the to-be-updated functionality is unavailable is reduced to the strict minimum, which means users are unlikely to notice it even when they're running the update in the background. This "gap" can be quite lengthy for large ports like Qt.