Opened 6 years ago

Closed 4 years ago

#45684 closed defect (invalid)

Builds hang post upgrading to Yosemite

Reported by: j@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: base Version: 2.3.2
Keywords: Cc: anddam (Andrea D'Amore)
Port:

Description (last modified by neverpanic (Clemens Lang))

Similar to #45609 except nuking my install isn't an option.

Here is what I've done. Followed instructions to migrate to a new OS.

Haven't been able to install any packages. The current one I'm trying is unrar. I took the command that hangs using macports (last one on the debug prompt) and ran it directly and it completes fast without error.

sh-3.2# port -d install unrar
DEBUG: Changing to port directory: /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/archivers/unrar
DEBUG: OS darwin/14.0.0 (Mac OS X 10.10) arch i386
DEBUG: Reading variant descriptions from /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/_resources/port1.0/variant_descriptions.conf
DEBUG: universal variant already exists, so not adding the default one
DEBUG: Running callback portconfigure::add_automatic_compiler_dependencies
DEBUG: Finished running callback portconfigure::add_automatic_compiler_dependencies
DEBUG: Running callback portbuild::add_automatic_buildsystem_dependencies
DEBUG: Finished running callback portbuild::add_automatic_buildsystem_dependencies
DEBUG: changing euid/egid - current euid: 0 - current egid: 0
DEBUG: egid changed to: 501
DEBUG: euid changed to: 502
DEBUG: Starting logging for unrar
DEBUG: unrar has no conflicts
DEBUG: Executing org.macports.main (unrar)
DEBUG: changing euid/egid - current euid: 0 - current egid: 0
DEBUG: egid changed to: 501
DEBUG: euid changed to: 502
DEBUG: Skipping completed org.macports.archivefetch (unrar)
DEBUG: Privilege de-escalation not attempted as not running as root.
DEBUG: Skipping completed org.macports.fetch (unrar)
DEBUG: Privilege de-escalation not attempted as not running as root.
DEBUG: Skipping completed org.macports.checksum (unrar)
DEBUG: Privilege de-escalation not attempted as not running as root.
DEBUG: Skipping completed org.macports.extract (unrar)
DEBUG: Privilege de-escalation not attempted as not running as root.
DEBUG: Skipping completed org.macports.patch (unrar)
DEBUG: Privilege de-escalation not attempted as not running as root.
DEBUG: Skipping completed org.macports.configure (unrar)
DEBUG: Privilege de-escalation not attempted as not running as root.
DEBUG: build phase started at Wed Oct 29 16:05:49 PDT 2014
--->  Building unrar
DEBUG: Executing proc-pre-org.macports.build-build-0
DEBUG: Executing org.macports.build (unrar)
DEBUG: Environment:
CC_PRINT_OPTIONS='YES'
CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_unrar/unrar/work/.CC_PRINT_OPTIONS'
CPATH='/opt/local/include'
LIBRARY_PATH='/opt/local/lib'
MACOSX_DEPLOYMENT_TARGET='10.10'
DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_unrar/unrar/work/unrar" && /usr/bin/make -j4 -w all -f makefile.unix CXX="/usr/bin/clang++" DESTDIR=/opt/local CXXFLAGS="-Os -arch x86_64 -stdlib=libc++" LDFLAGS="-L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -stdlib=libc++"'
DEBUG: Executing command line:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_unrar/unrar/work/unrar" && /usr/bin/make -j4 -w all -f makefile.unix CXX="/usr/bin/clang++" DESTDIR=/opt/local CXXFLAGS="-Os -arch x86_64 -stdlib=libc++" LDFLAGS="-L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -stdlib=libc++"
^C
sh-3.2# cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_unrar/unrar/work/unrar" && /usr/bin/make -j4 -w all -f makefile.unix CXX="/usr/bin/clang++" DESTDIR=/opt/local CXXFLAGS="-Os -arch x86_64 -stdlib=libc++" LDFLAGS="-L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -stdlib=libc++"
make: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_unrar/unrar/work/unrar'
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c rar.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c strlist.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c strfn.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c pathfn.cpp
strfn.cpp:182:18: warning: '&&' within '||' [-Wlogical-op-parentheses]
  return(ch>='A' && ch<='Z' || ch>='a' && ch<='z');
         ~~~~~~~~^~~~~~~~~~ ~~
pathfn.cpp:611:23: warning: '&&' within '||' [-Wlogical-op-parentheses]
      if (ChPtr[1]==0 && strlen(ArcName)<MaxLength-3 || stricomp(ChPtr+1,"exe")==0 || stricomp(ChPtr+1,"sfx")==0)
          ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
pathfn.cpp:611:23: note: place parentheses around the '&&' expression to silence this warning
      if (ChPtr[1]==0 && strlen(ArcName)<MaxLength-3 || stricomp(ChPtr+1,"exe")==0 || stricomp(ChPtr+1,"sfx")==0)
                      ^
          (                                         )
strfn.cpp:182:18: note: place parentheses around the '&&' expression to silence this warning
  return(ch>='A' && ch<='Z' || ch>='a' && ch<='z');
                 ^
         (                 )
strfn.cpp:182:40: warning: '&&' within '||' [-Wlogical-op-parentheses]
  return(ch>='A' && ch<='Z' || ch>='a' && ch<='z');
                            ~~ ~~~~~~~~^~~~~~~~~~
strfn.cpp:182:40: note: place parentheses around the '&&' expression to silence this warning
  return(ch>='A' && ch<='Z' || ch>='a' && ch<='z');
                                       ^
                               (                 )
pathfn.cpp:659:23: warning: '&&' within '||' [-Wlogical-op-parentheses]
      if (ChPtr[1]==0 && wcslen(ArcNameW)<MaxLength-3 || wcsicomp(ChPtr+1,L"exe")==0 || wcsicomp(ChPtr+1,L"sfx")==0)
          ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
pathfn.cpp:659:23: note: place parentheses around the '&&' expression to silence this warning
      if (ChPtr[1]==0 && wcslen(ArcNameW)<MaxLength-3 || wcsicomp(ChPtr+1,L"exe")==0 || wcsicomp(ChPtr+1,L"sfx")==0)
                      ^
          (                                          )
pathfn.cpp:757:64: warning: '&&' within '||' [-Wlogical-op-parentheses]
    if (strchr(Extended ? "?*<>|\"":"?*",*s)!=NULL || Extended && (byte)*s<32)
                                                   ~~ ~~~~~~~~~^~~~~~~~~~~~~~
pathfn.cpp:757:64: note: place parentheses around the '&&' expression to silence this warning
    if (strchr(Extended ? "?*<>|\"":"?*",*s)!=NULL || Extended && (byte)*s<32)
                                                               ^
                                                      (                      )
pathfn.cpp:777:66: warning: '&&' within '||' [-Wlogical-op-parentheses]
    if (wcschr(Extended ? L"?*<>|\"":L"?*",*s)!=NULL || Extended && (uint)*s<32)
                                                     ~~ ~~~~~~~~~^~~~~~~~~~~~~~
pathfn.cpp:777:66: note: place parentheses around the '&&' expression to silence this warning
    if (wcschr(Extended ? L"?*<>|\"":L"?*",*s)!=NULL || Extended && (uint)*s<32)
                                                                 ^
                                                        (                      )
pathfn.cpp:797:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
pathfn.cpp:804:7: warning: add explicit braces to avoid dangling else [-Wdangling-else]
      else
      ^
pathfn.cpp:819:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
pathfn.cpp:826:7: warning: add explicit braces to avoid dangling else [-Wdangling-else]
      else
      ^
pathfn.cpp:841:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
pathfn.cpp:848:7: warning: add explicit braces to avoid dangling else [-Wdangling-else]
      else
      ^
pathfn.cpp:863:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
pathfn.cpp:870:7: warning: add explicit braces to avoid dangling else [-Wdangling-else]
      else
      ^
pathfn.cpp:1315:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c savepos.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c smallfn.cpp
2 warnings generated.
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c global.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c file.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c filefn.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c filcreat.cpp
13 warnings generated.
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c archive.cpp
file.cpp:33:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
file.cpp:291:12: warning: enumeration value 'FILE_HANDLENORMAL' not handled in switch [-Wswitch]
    switch(HandleType)
           ^
file.cpp:383:9: warning: add explicit braces to avoid dangling else [-Wdangling-else]
        else
        ^
file.cpp:479:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
filcreat.cpp:119:11: warning: add explicit braces to avoid dangling else [-Wdangling-else]
          else
          ^
filcreat.cpp:141:18: warning: '&&' within '||' [-Wlogical-op-parentheses]
  if (Name!=NULL && strlen(Name)>ASIZE(NewName)-10 ||
      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
filcreat.cpp:141:18: note: place parentheses around the '&&' expression to silence this warning
  if (Name!=NULL && strlen(Name)>ASIZE(NewName)-10 ||
                 ^
      (                                           )
filcreat.cpp:142:19: warning: '&&' within '||' [-Wlogical-op-parentheses]
      NameW!=NULL && wcslen(NameW)>ASIZE(NewNameW)-10)
      ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
filcreat.cpp:142:19: note: place parentheses around the '&&' expression to silence this warning
      NameW!=NULL && wcslen(NameW)>ASIZE(NewNameW)-10)
                  ^
      (                                              )
In file included from archive.cpp:4:
./arccmt.cpp:46:17: warning: '&&' within '||' [-Wlogical-op-parentheses]
  if (OldFormat && (OldMhd.Flags & MHD_PACK_COMMENT)!=0 || !OldFormat && CommHead.Method!=0x30)
      ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
./arccmt.cpp:46:17: note: place parentheses around the '&&' expression to silence this warning
  if (OldFormat && (OldMhd.Flags & MHD_PACK_COMMENT)!=0 || !OldFormat && CommHead.Method!=0x30)
                ^
      (                                                )
./arccmt.cpp:46:71: warning: '&&' within '||' [-Wlogical-op-parentheses]
  if (OldFormat && (OldMhd.Flags & MHD_PACK_COMMENT)!=0 || !OldFormat && CommHead.Method!=0x30)
                                                        ~~ ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
./arccmt.cpp:46:71: note: place parentheses around the '&&' expression to silence this warning
  if (OldFormat && (OldMhd.Flags & MHD_PACK_COMMENT)!=0 || !OldFormat && CommHead.Method!=0x30)
                                                                      ^
                                                           (                                  )
archive.cpp:100:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c arcread.cpp
archive.cpp:235:20: warning: '&&' within '||' [-Wlogical-op-parentheses]
            Volume && (NewMhd.Flags & MHD_FIRSTVOLUME)==0)
            ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
archive.cpp:235:20: note: place parentheses around the '&&' expression to silence this warning
            Volume && (NewMhd.Flags & MHD_FIRSTVOLUME)==0)
                   ^
            (                                            )
archive.cpp:241:41: warning: '&&' within '||' [-Wlogical-op-parentheses]
            Volume && NewLhd.UnpVer>=29 && (NewMhd.Flags & MHD_FIRSTVOLUME)==0))
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
archive.cpp:241:41: note: place parentheses around the '&&' expression to silence this warning
            Volume && NewLhd.UnpVer>=29 && (NewMhd.Flags & MHD_FIRSTVOLUME)==0))
                                        ^
            (                                                                 )
3 warnings generated.
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c unicode.cpp
4 warnings generated.
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c system.cpp
arcread.cpp:740:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c isnt.cpp
5 warnings generated.
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c crypt.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c crc.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c rawread.cpp
crypt.cpp:234:21: warning: '&&' within '||' [-Wlogical-op-parentheses]
        (Salt==NULL && !Cache[I].SaltPresent || Salt!=NULL &&
         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ~~
crypt.cpp:234:21: note: place parentheses around the '&&' expression to silence this warning
        (Salt==NULL && !Cache[I].SaltPresent || Salt!=NULL &&
                    ^
         (                                  )
crypt.cpp:235:30: warning: '&&' within '||' [-Wlogical-op-parentheses]
        Cache[I].SaltPresent && memcmp(Cache[I].Salt,Salt,SALT_SIZE)==0) &&
        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
crypt.cpp:235:30: note: place parentheses around the '&&' expression to silence this warning
        Cache[I].SaltPresent && memcmp(Cache[I].Salt,Salt,SALT_SIZE)==0) &&
                             ^
1 warning generated.
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c encname.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c resource.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c match.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c timefn.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c rdwrfn.cpp
2 warnings generated.
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c consio.cpp
match.cpp:70:7: warning: add explicit braces to avoid dangling else [-Wdangling-else]
      else
      ^
match.cpp:129:7: warning: add explicit braces to avoid dangling else [-Wdangling-else]
      else
      ^
rdwrfn.cpp:97:7: warning: add explicit braces to avoid dangling else [-Wdangling-else]
      else
      ^
rdwrfn.cpp:180:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
2 warnings generated.
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c options.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c ulinks.cpp
2 warnings generated.
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c errhnd.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c rarvm.cpp
ulinks.cpp:20:9: warning: add explicit braces to avoid dangling else [-Wdangling-else]
        else
        ^
1 warning generated.
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c secpassword.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c rijndael.cpp
rarvm.cpp:502:50: warning: '&&' within '||' [-Wlogical-op-parentheses]
          Flags=(Result<Value1 || Result==Value1 && FC)|(Result==0 ? VM_FZ:(Result&VM_FS));
                               ~~ ~~~~~~~~~~~~~~~^~~~~
rarvm.cpp:502:50: note: place parentheses around the '&&' expression to silence this warning
          Flags=(Result<Value1 || Result==Value1 && FC)|(Result==0 ? VM_FZ:(Result&VM_FS));
                                                 ^
                                  (                   )
rarvm.cpp:513:50: warning: '&&' within '||' [-Wlogical-op-parentheses]
          Flags=(Result>Value1 || Result==Value1 && FC)|(Result==0 ? VM_FZ:(Result&VM_FS));
                               ~~ ~~~~~~~~~~~~~~~^~~~~
rarvm.cpp:513:50: note: place parentheses around the '&&' expression to silence this warning
          Flags=(Result>Value1 || Result==Value1 && FC)|(Result==0 ? VM_FZ:(Result&VM_FS));
                                                 ^
                                  (                   )
rarvm.cpp:787:12: warning: 53 enumeration values not handled in switch: 'VM_ADD', 'VM_SUB', 'VM_JZ'... [-Wswitch]
    switch(Cmd->OpCode)
           ^
rarvm.cpp:821:12: warning: 50 enumeration values not handled in switch: 'VM_MOV', 'VM_CMP', 'VM_JZ'... [-Wswitch]
    switch(Cmd->OpCode)
           ^
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c getbits.cpp
rarvm.cpp:871:10: warning: enumeration value 'VMSF_NONE' not handled in switch [-Wswitch]
  switch(FilterType)
         ^
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c sha1.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c extinfo.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c extract.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c volume.cpp
extract.cpp:68:7: warning: add explicit braces to avoid dangling else [-Wdangling-else]
      else
      ^
extract.cpp:210:7: warning: add explicit braces to avoid dangling else [-Wdangling-else]
      else
      ^
extract.cpp:235:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
extract.cpp:269:7: warning: add explicit braces to avoid dangling else [-Wdangling-else]
      else
      ^
extract.cpp:277:65: warning: '&&' within '||' [-Wlogical-op-parentheses]
      !Cmd->Recurse && MatchedArgs>=Cmd->FileArgs->ItemsCount() &&
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
extract.cpp:277:65: note: place parentheses around the '&&' expression to silence this warning
      !Cmd->Recurse && MatchedArgs>=Cmd->FileArgs->ItemsCount() &&
                                                                ^
extract.cpp:467:66: warning: '&&' within '||' [-Wlogical-op-parentheses]
        if (!PasswordAll && (!Arc.Solid || Arc.NewLhd.UnpVer>=20 && (Arc.NewLhd.Flags & LHD_SOLID)==0))
                                        ~~ ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extract.cpp:467:66: note: place parentheses around the '&&' expression to silence this warning
        if (!PasswordAll && (!Arc.Solid || Arc.NewLhd.UnpVer>=20 && (Arc.NewLhd.Flags & LHD_SOLID)==0))
                                                                 ^
                                           (                                                         )
extract.cpp:466:7: warning: add explicit braces to avoid dangling else [-Wdangling-else]
      else
      ^
extract.cpp:759:7: warning: add explicit braces to avoid dangling else [-Wdangling-else]
      else
      ^
extract.cpp:835:9: warning: add explicit braces to avoid dangling else [-Wdangling-else]
        else
        ^
extract.cpp:904:11: warning: add explicit braces to avoid dangling else [-Wdangling-else]
          else
          ^
extract.cpp:918:35: warning: '&&' within '||' [-Wlogical-op-parentheses]
      bool ValidCRC=Arc.OldFormat && GET_UINT32(DataIO.UnpFileCRC)==GET_UINT32(Arc.NewLhd.FileCRC) ||
                    ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
extract.cpp:918:35: note: place parentheses around the '&&' expression to silence this warning
      bool ValidCRC=Arc.OldFormat && GET_UINT32(DataIO.UnpFileCRC)==GET_UINT32(Arc.NewLhd.FileCRC) ||
                    ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extract.cpp:919:35: warning: '&&' within '||' [-Wlogical-op-parentheses]
                   !Arc.OldFormat && GET_UINT32(DataIO.UnpFileCRC)==GET_UINT32(Arc.NewLhd.FileCRC^0xffffffff);
                   ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extract.cpp:919:35: note: place parentheses around the '&&' expression to silence this warning
                   !Arc.OldFormat && GET_UINT32(DataIO.UnpFileCRC)==GET_UINT32(Arc.NewLhd.FileCRC^0xffffffff);
                   ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extract.cpp:1005:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c list.cpp
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c find.cpp
list.cpp:135:11: warning: add explicit braces to avoid dangling else [-Wdangling-else]
          else
          ^
list.cpp:142:46: warning: '&&' within '||' [-Wlogical-op-parentheses]
            Arc.GetHeaderType()==ENDARC_HEAD &&
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
list.cpp:142:46: note: place parentheses around the '&&' expression to silence this warning
            Arc.GetHeaderType()==ENDARC_HEAD &&
                                             ^
list.cpp:277:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c unpack.cpp
5 warnings generated.
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c cmddata.cpp
13 warnings generated.
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c filestr.cpp
3 warnings generated.
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c recvol.cpp
In file included from unpack.cpp:7:
./unpack15.cpp:326:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
./unpack15.cpp:334:42: warning: '&&' within '||' [-Wlogical-op-parentheses]
  if (OldAvr3 > 0xb0 || AvrPlc >= 0x2a00 && OldAvr2 < 0x40)
                     ~~ ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
./unpack15.cpp:334:42: note: place parentheses around the '&&' expression to silence this warning
  if (OldAvr3 > 0xb0 || AvrPlc >= 0x2a00 && OldAvr2 < 0x40)
                                         ^
                        (                                 )
filestr.cpp:21:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
filestr.cpp:36:57: warning: '&&' within '||' [-Wlogical-op-parentheses]
  if (FileName!=NULL && *FileName!=0 || FileNameW!=NULL && *FileNameW!=0)
                                     ~~ ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
filestr.cpp:36:57: note: place parentheses around the '&&' expression to silence this warning
  if (FileName!=NULL && *FileName!=0 || FileNameW!=NULL && *FileNameW!=0)
                                                        ^
                                        (                               )
filestr.cpp:62:31: warning: '&&' within '||' [-Wlogical-op-parentheses]
      SrcCharset==RCH_DEFAULT && IsUnicode((byte *)&Data[0],DataSize))
      ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
filestr.cpp:62:31: note: place parentheses around the '&&' expression to silence this warning
      SrcCharset==RCH_DEFAULT && IsUnicode((byte *)&Data[0],DataSize))
                              ^
      (                                                              )
In file included from unpack.cpp:8:
./unpack20.cpp:262:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    else
    ^
cmddata.cpp:896:17: warning: add explicit braces to avoid dangling else [-Wdangling-else]
                else
                ^
cmddata.cpp:1242:58: warning: '&&' within '||' [-Wlogical-op-parentheses]
  if ((NewLhd.FileAttr & ExclFileAttr)!=0 || InclAttrSet && (NewLhd.FileAttr & InclFileAttr)==0)
                                          ~~ ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cmddata.cpp:1242:58: note: place parentheses around the '&&' expression to silence this warning
  if ((NewLhd.FileAttr & ExclFileAttr)!=0 || InclAttrSet && (NewLhd.FileAttr & InclFileAttr)==0)
                                                         ^
                                             (                                                 )
cmddata.cpp:1253:65: warning: '&&' within '||' [-Wlogical-op-parentheses]
    bool Unicode=(NewLhd.Flags & LHD_UNICODE) || ArgNameW!=NULL && *ArgNameW!=0;
                                              ~~ ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
cmddata.cpp:1253:65: note: place parentheses around the '&&' expression to silence this warning
    bool Unicode=(NewLhd.Flags & LHD_UNICODE) || ArgNameW!=NULL && *ArgNameW!=0;
                                                                ^
                                                 (                             )
cmddata.cpp:1297:38: warning: '&&' within '||' [-Wlogical-op-parentheses]
  if (Command[0]!=0 && Command[1]!=0 && strchr(SingleCharCommands,*Command)!=NULL || *ArcName==0)
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
cmddata.cpp:1297:38: note: place parentheses around the '&&' expression to silence this warning
  if (Command[0]!=0 && Command[1]!=0 && strchr(SingleCharCommands,*Command)!=NULL || *ArcName==0)
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings generated.
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c rs.cpp
recvol.cpp:87:9: warning: add explicit braces to avoid dangling else [-Wdangling-else]
        else
        ^
recvol.cpp:104:11: warning: add explicit braces to avoid dangling else [-Wdangling-else]
          else
          ^
recvol.cpp:270:25: warning: '&&' within '||' [-Wlogical-op-parentheses]
    if (RecVolNumber!=0 && RecVolNumber!=P[1] || FileNumber!=0 && FileNumber!=P[2])
        ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ ~~
recvol.cpp:270:25: note: place parentheses around the '&&' expression to silence this warning
    if (RecVolNumber!=0 && RecVolNumber!=P[1] || FileNumber!=0 && FileNumber!=P[2])
                        ^
        (                                    )
recvol.cpp:270:64: warning: '&&' within '||' [-Wlogical-op-parentheses]
    if (RecVolNumber!=0 && RecVolNumber!=P[1] || FileNumber!=0 && FileNumber!=P[2])
                                              ~~ ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
recvol.cpp:270:64: note: place parentheses around the '&&' expression to silence this warning
    if (RecVolNumber!=0 && RecVolNumber!=P[1] || FileNumber!=0 && FileNumber!=P[2])
                                                               ^
                                                 (                                )
4 warnings generated.
/usr/bin/clang++  -Os -arch x86_64 -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DUNRAR -c scantree.cpp
4 warnings generated.
scantree.cpp:90:51: warning: '&&' within '||' [-Wlogical-op-parentheses]
  if (Name[0]=='.' && (Name[1]==0 || Name[1]=='.' && Name[2]==0))
                                  ~~ ~~~~~~~~~~~~~^~~~~~~~~~~~~
scantree.cpp:90:51: note: place parentheses around the '&&' expression to silence this warning
  if (Name[0]=='.' && (Name[1]==0 || Name[1]=='.' && Name[2]==0))
                                                  ^
                                     (                         )
scantree.cpp:104:56: warning: '&&' within '||' [-Wlogical-op-parentheses]
    if (NameW[0]=='.' && (NameW[1]==0 || NameW[1]=='.' && NameW[2]==0))
                                      ~~ ~~~~~~~~~~~~~~^~~~~~~~~~~~~~
scantree.cpp:104:56: note: place parentheses around the '&&' expression to silence this warning
    if (NameW[0]=='.' && (NameW[1]==0 || NameW[1]=='.' && NameW[2]==0))
                                                       ^
                                         (                           )
scantree.cpp:152:30: warning: '&&' within '||' [-Wlogical-op-parentheses]
                   Wildcards && Recurse==RECURSE_WILDCARDS ||
                   ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
scantree.cpp:152:30: note: place parentheses around the '&&' expression to silence this warning
                   Wildcards && Recurse==RECURSE_WILDCARDS ||
                             ^
                   (                                      )
scantree.cpp:153:35: warning: '&&' within '||' [-Wlogical-op-parentheses]
                   ScanEntireDisk && Recurse!=RECURSE_DISABLE);
                   ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
scantree.cpp:153:35: note: place parentheses around the '&&' expression to silence this warning
                   ScanEntireDisk && Recurse!=RECURSE_DISABLE);
                                  ^
                   (                                         )
4 warnings generated.
3 warnings generated.
/usr/bin/clang++ -o unrar -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -stdlib=libc++ rar.o strlist.o strfn.o pathfn.o savepos.o smallfn.o global.o file.o filefn.o filcreat.o archive.o arcread.o unicode.o system.o isnt.o crypt.o crc.o rawread.o encname.o resource.o match.o timefn.o rdwrfn.o consio.o options.o ulinks.o errhnd.o rarvm.o secpassword.o rijndael.o getbits.o sha1.o extinfo.o extract.o volume.o list.o find.o unpack.o cmddata.o filestr.o recvol.o rs.o scantree.o
strip unrar
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_unrar/unrar/work/unrar'
sh-3.2#

Attachments (3)

Sample of make.txt (7.5 KB) - added by j@… 6 years ago.
sample of hanging process.
dtruss_port_unrar.tgz (276.5 KB) - added by j@… 6 years ago.
dtruss_port_unrar4.txt (1.1 MB) - added by j@… 6 years ago.

Download all attachments as: .zip

Change History (17)

comment:1 Changed 6 years ago by j@…

Additional steps: completely uninstalled xcode and command line tools.

dumped macports directories.

Reinstalled both

Still hanging on the same command for unrar. Also on bzip2. and hangs on bash.

Of course, when running the same command exposed from the debug, it builds fine.

Any ideas?

comment:2 Changed 6 years ago by j@…

More info from attempting to install bash:

--->  Configuring expat
DEBUG: Using compiler 'Xcode Clang'
DEBUG: Executing org.macports.configure (expat)
DEBUG: Environment:
CC='/usr/bin/clang'
CC_PRINT_OPTIONS='YES'
CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_textproc_expat/expat/work/.CC_PRINT_OPTIONS'
CFLAGS='-pipe -Os -arch x86_64'
CPATH='/opt/local/include'
CPPFLAGS='-I/opt/local/include'
CXX='/usr/bin/clang++'
CXXFLAGS='-pipe -Os -arch x86_64 -stdlib=libc++'
F77FLAGS='-m64'
F90FLAGS='-pipe -Os -m64'
FCFLAGS='-pipe -Os -m64'
FFLAGS='-pipe -Os'
INSTALL='/usr/bin/install -c'
LDFLAGS='-L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64'
LIBRARY_PATH='/opt/local/lib'
MACOSX_DEPLOYMENT_TARGET='10.10'
OBJC='/usr/bin/clang'
OBJCFLAGS='-pipe -Os -arch x86_64'
OBJCXX='/usr/bin/clang++'
OBJCXXFLAGS='-pipe -Os -arch x86_64 -stdlib=libc++'
DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_textproc_expat/expat/work/expat-2.1.0" && ./configure --prefix=/opt/local'
DEBUG: Executing command line:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_textproc_expat/expat/work/expat-2.1.0" && ./configure --prefix=/opt/local

And then it hangs.

Last edited 6 years ago by j@… (previous) (diff)

comment:3 Changed 6 years ago by neverpanic (Clemens Lang)

Component: portsbase
Description: modified (diff)

Please use WikiFormatting and preview your post. Large amounts of output are best attached as files rather than pasted inline.

comment:4 Changed 6 years ago by neverpanic (Clemens Lang)

I don't see a problem with the output you posted in your initial post. Did you abort at this point? Which process was the hanging one? Did you try sampling the process using Activity Monitor?

I'm starting to think there's something wonky in Yosemite, also due to the fact that SQLite performance seems to be very bad at times.

comment:5 Changed 6 years ago by j@…

The output stops at the command that hangs. I did abort there.

I didn't pull up activity monitor. I did wait quite some time though.

When I take the same command from the debug line, and execute it, it completes fairly quickly. For the unrar example, less than a second.

comment:6 Changed 6 years ago by j@…

What else can I gather? What is the difference between running the command through port and running it through the terminal?

What environment stuff is different?

sudo su
port -d install unrar
# Copy the command that hangs
# Past the command that hangs
# watch it run perfectly and quickly


That's the repo steps for me.

comment:7 in reply to:  6 Changed 6 years ago by neverpanic (Clemens Lang)

Replying to j@…:

What environment stuff is different?

Loads, here's a non-exhaustive list:

  • user (MacPorts builds as unprivileged user)
  • sandboxing (MacPorts employs the OS X sandbox)
  • environment variables, among them $PATH, $HOME, $TMPDIR and other common variables
  • possibly launchd sessions due to the different user and stuff, but I'm not sure about that one
  • injected libraries when using trace mode

What is the difference between running the command through port and running it through the terminal?

See above.

What else can I gather?

Try with sudo instead in a shell started by sudo su. Sample the hanging process in Activity Monitor and attach the sample. Attach to the hanging process with dtruss.

Changed 6 years ago by j@…

Attachment: Sample of make.txt added

sample of hanging process.

comment:8 Changed 6 years ago by j@…

The command that hangs (from the original post to this ticket right before ctrl-c) is:

DEBUG: Executing command line:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_unrar/unrar/work/unrar" && /usr/bin/make -j4 -w all -f makefile.unix CXX="/usr/bin/clang++" DESTDIR=/opt/local CXXFLAGS="-Os -arch x86_64 -stdlib=libc++" LDFLAGS="-L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -stdlib=libc++"

I've attached the process sample for make to the ticket.

Not sure how to use dtruss. This is what I did:

jon$ sudo dtruss -p 44392
Password:
SYSCALL(args) 		 = return

Just to clarify - I ran into the same issue using both "sudo su \n port install", and "sudo port install" invocations.

Now, I just tried to run the command on the last debug line as my user, and it also worked when I add sudo before the make command.

Command:

cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_unrar/unrar/work/unrar" && sudo /usr/bin/make -j4 -w all -f makefile.unix CXX="/usr/bin/clang++" DESTDIR=/opt/local CXXFLAGS="-Os -arch x86_64 -stdlib=libc++" LDFLAGS="-L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -stdlib=libc++"

Output:

/usr/bin/clang++ -o unrar -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -stdlib=libc++ rar.o strlist.o strfn.o pathfn.o savepos.o smallfn.o global.o file.o filefn.o filcreat.o archive.o arcread.o unicode.o system.o isnt.o crypt.o crc.o rawread.o encname.o resource.o match.o timefn.o rdwrfn.o consio.o options.o ulinks.o errhnd.o rarvm.o secpassword.o rijndael.o getbits.o sha1.o extinfo.o extract.o volume.o list.o find.o unpack.o cmddata.o filestr.o recvol.o rs.o scantree.o
strip unrar
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_unrar/unrar/work/unrar'

Which seems to indicate there is something amiss when port invokes the make command.

comment:9 Changed 6 years ago by j@…

Ok, I reran dtruss.

In the attached tgz file, the first 3 files (dtruss_port_unrar{0..3}.txt) were created with this command:

sudo dtruss port -d install unrar 2>&1 | tee dtruss_port_unrar4.txt

Files: dtruss_port_unrar.txt dtruss_port_unrar2.txt dtruss_port_unrar3.txt

The interesting file (dtruss_port_unrar4.txt) is the 4th one created using the -f command:

sudo dtruss -f port -d install unrar 2>&1 | tee dtruss_port_unrar4.txt

Changed 6 years ago by j@…

Attachment: dtruss_port_unrar.tgz added

Changed 6 years ago by j@…

Attachment: dtruss_port_unrar4.txt added

comment:10 Changed 6 years ago by j@…

Fixed. One of the following.

  1. disk utility - fix permissions -- quick glance only show problems with printer and cups files.
  2. disk utility - verify disk - disk is 'OK'
  3. shutdown and turn back on

Once back on, sudo port install unrar, and got some (new/different) errors. sudo port clean unrar && sudo port install unrar. built and installed successfully.

Hope this helps others.

Thanks for the help. I seem to be building and installing again.

comment:11 Changed 6 years ago by neverpanic (Clemens Lang)

OK, so this seems to support my guess that there's something wrong with Apple's software and MacPorts actually isn't to blame here. Your sample shows that make is hanging in a read operation in the xcode selection code that arbitrates which binary actually gets executed by /usr/bin/make.

Looking at the fourth dtruss file, we can see libxcrun.dylib being loaded and doing its job until a successful

rename("/private/var/root/Library/Preferences/com.apple.xpc.activity2.plist.EMcHeGY\0", "/private/var/root/Library/Preferences/com.apple.xpc.activity2.plist\0")

After that, we only see mutexes and other synchronization stuff doing nothing and an occasional read that I assume is spotlight or similar system service socket interaction.

We also see a couple of __mac_syscall calls that all fail with Err#45, which seems to be "Operation not supported" according to bsd/sys/errno.h from the kernel sources. A quick grep in the security subdirectory of the kernel sources make me think this happened because the filesystem was not mounted with MULTILABEL support, whatever that is, since the docs are very short on this. It also isn't clear if this failed syscall is actually an issue here.

In conclusion, that leaves us with the suggestion to file a radar with Apple and hope it won't be ignored.

comment:12 Changed 6 years ago by anddam (Andrea D'Amore)

Cc: and.damore@… added

Cc Me!

comment:13 Changed 6 years ago by anddam (Andrea D'Amore)

I confirm that repairing disk and permission with Recovery fixed the issue.

comment:14 Changed 4 years ago by ryandesign (Ryan Schmidt)

Resolution: invalid
Status: newclosed

It sounds like there's nothing we can fix in MacPorts for this. It also hasn't come up recently so maybe Apple fixed it in a later Yosemite update.

Note: See TracTickets for help on using tickets.