questions regarding selfupdate issue

Ryan Schmidt ryandesign at
Thu Nov 13 04:12:42 PST 2014

On Nov 13, 2014, at 5:28 AM, René J.V. Bertin wrote:

> I just did an overdue selfupdate, and ran into an issue that obliged me to images_to_archives.tcl step manually. For example:
> Processing 132 of 947: gsed-4.2.2_0.darwin_10.x86_64.tbz2
> Command failed: /usr/bin/tar -cjf /opt/local/var/macports/software/gsed/gsed-4.2.2_0.darwin_10.x86_64.tbz2 -T /opt/local/var/macports/software/gsed/tarlist > /opt/local/var/macports/software/gsed/error.log 2>&1
> Exit code: 1
> command execution failed
>    while executing
> "system "$tarcmd -cjf $newlocation -T ${targetdir}/tarlist > ${targetdir}/error.log 2>&1""
>    ("foreach" body line 78)
>    invoked from within
> "foreach installed $ilist {
>    incr counter
>    set iname [lindex $installed 0]
>    set iversion [lindex $installed 1]
>    set irevision [lindex $inst..."
>    (file "./src/images_to_archives.tcl" line 38)
> I checked a couple of the error logs and tarballs in macports/software, and it seems this was "only" about missing translation files. I know I have at times gone into /opt/local/share/locale and deleted useless locale directories (that really adds up).
> I initially tried to unblock the situation by deactivating the offending port (here gsed) and then reactivating it, but apparently the archive tarball had already been recreated because reactivation failed because of those same missing translation files. I certainly did not recreate (all) those tarballs myself after pruning the locale directory ...
> In the end I just wrote a script that evoked tcl images_to_archives.tcl as long as it exited with non-zero status, assuming that whatever issue that would lead to would be corrected at the next ugrade of the affected port.
> But I've never ran into this before, so what is this apparently new step about?

images_to_archives.tcl is rather old at this point -- over 3 years old. It dates from the release of MacPorts 2.0.0 (2011-07-22), since which time "archives" mode is always on. Prior to that, users could choose "images" mode or "archives" mode, with "images" mode as the default. images_to_archives.tcl converts an "images"-based MacPorts installation to an "archives"-based one.

> As a subsidiary question: do I provoke source-only upgrading by adding a configure.optflags option to `port upgrade outdated` or will the option be ignored if a port has binary packages available?

You request a from-source build by either adding the "-s" flag on the command line every time you install or upgrade (e.g. "sudo port -s install ..." or "sudo port -s upgrade ..."), or by setting "buildfromsource always" in macports.conf.

More information about the macports-users mailing list