Opened 3 years ago

Last modified 3 years ago

#64464 assigned defect

uchardet has no universal variant on systems where builds happen with MacPorts gcc

Reported by: barracuda156 Owned by: amake (Aaron Madlon-Kay)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: powerpc Cc:
Port: uchardet

Description

Oddly, despite I have +universal as a default setting on 10.5.8, uchardet builds as ppc-only.

36-191:~ svacchanda$ port -v installed uchardet
The following ports are currently installed:
  uchardet @0.0.7_0 (active) requested_variants='' platform='darwin 9' archs='ppc' date='2022-01-18T18:46:00+0800'

After I uninstalled it and tried to force universal, it tries to build a number of clangs and llvm versions:

36-191:~ svacchanda$ sudo port -v install uchardet +universal supported_archs="ppc ppc64" build_arch="ppc ppc64"
--->  Fetching archive for clang_select
--->  clang_select-2.2_0.darwin_9.ppc-ppc64.tbz2 doesn't seem to exist in /opt/local/var/macports/incoming/verified
--->  Attempting to fetch clang_select-2.2_0.darwin_9.ppc-ppc64.tbz2 from http://packages.macports.org/clang_select
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0   126    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
--->  Attempting to fetch clang_select-2.2_0.darwin_9.ppc-ppc64.tbz2 from http://nue.de.packages.macports.org/clang_select
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0   278    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
--->  Attempting to fetch clang_select-2.2_0.darwin_9.ppc-ppc64.tbz2 from http://atl.us.packages.macports.org/clang_select
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0   364    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
--->  Fetching distfiles for clang_select
--->  Verifying checksums for clang_select
--->  Extracting clang_select
--->  Configuring clang_select
--->  Building clang_select
--->  Staging clang_select into destroot
. changed
	gid expected 0 found 80 modified
./usr missing (created)
. missing (directory not created: File exists)
./Applications missing (created)
./Developer missing (created)
./Library missing (created)
. changed
	gid expected 80 found 0 modified
./bin missing (created)
./etc missing (created)
./include missing (created)
./lib missing (created)
./lib/pkgconfig missing (created)
./libexec missing (created)
./sbin missing (created)
./share missing (created)
./share/doc missing (created)
./share/info missing (created)
./share/man missing (created)
./share/man/cat1 missing (created)
./share/man/cat2 missing (created)
./share/man/cat3 missing (created)
./share/man/cat4 missing (created)
./share/man/cat5 missing (created)
./share/man/cat6 missing (created)
./share/man/cat7 missing (created)
./share/man/cat8 missing (created)
./share/man/cat9 missing (created)
./share/man/catl missing (created)
./share/man/catn missing (created)
./share/man/man1 missing (created)
./share/man/man2 missing (created)
./share/man/man3 missing (created)
./share/man/man4 missing (created)
./share/man/man5 missing (created)
./share/man/man6 missing (created)
./share/man/man7 missing (created)
./share/man/man8 missing (created)
./share/man/man9 missing (created)
./share/man/manl missing (created)
./share/man/mann missing (created)
./share/nls missing (created)
./share/nls/C missing (created)
./share/nls/af_ZA.ISO8859-1 missing (created)
./share/nls/af_ZA.ISO8859-15 missing (created)
./share/nls/bg_BG.CP1251 missing (created)
./share/nls/cs_CZ.ISO8859-2 missing (created)
./share/nls/da_DK.ISO8859-1 missing (created)
./share/nls/da_DK.ISO8859-15 missing (created)
./share/nls/de_AT.ISO8859-1 missing (created)
./share/nls/de_AT.ISO8859-15 missing (created)
./share/nls/de_CH.ISO8859-1 missing (created)
./share/nls/de_CH.ISO8859-15 missing (created)
./share/nls/de_DE.ISO8859-1 missing (created)
./share/nls/de_DE.ISO8859-15 missing (created)
./share/nls/el_GR.ISO8859-7 missing (created)
./share/nls/en_AU.ISO8859-1 missing (created)
./share/nls/en_AU.ISO8859-15 missing (created)
./share/nls/en_AU.US-ASCII missing (created)
./share/nls/en_CA.ISO8859-1 missing (created)
./share/nls/en_CA.ISO8859-15 missing (created)
./share/nls/en_CA.US-ASCII missing (created)
./share/nls/en_GB.ISO8859-1 missing (created)
./share/nls/en_GB.ISO8859-15 missing (created)
./share/nls/en_GB.US-ASCII missing (created)
./share/nls/en_NZ.ISO8859-1 missing (created)
./share/nls/en_NZ.ISO8859-15 missing (created)
./share/nls/en_NZ.US-ASCII missing (created)
./share/nls/en_US.ISO8859-1 missing (created)
./share/nls/en_US.ISO8859-15 missing (created)
./share/nls/es_ES.ISO8859-1 missing (created)
./share/nls/es_ES.ISO8859-15 missing (created)
./share/nls/et_EE.ISO8859-15 missing (created)
./share/nls/fi_FI.ISO8859-1 missing (created)
./share/nls/fi_FI.ISO8859-15 missing (created)
./share/nls/fr_BE.ISO8859-1 missing (created)
./share/nls/fr_BE.ISO8859-15 missing (created)
./share/nls/fr_CA.ISO8859-1 missing (created)
./share/nls/fr_CA.ISO8859-15 missing (created)
./share/nls/fr_CH.ISO8859-1 missing (created)
./share/nls/fr_CH.ISO8859-15 missing (created)
./share/nls/fr_FR.ISO8859-1 missing (created)
./share/nls/fr_FR.ISO8859-15 missing (created)
./share/nls/hi_IN.ISCII-DEV missing (created)
./share/nls/hr_HR.ISO8859-2 missing (created)
./share/nls/hu_HU.ISO8859-2 missing (created)
./share/nls/is_IS.ISO8859-1 missing (created)
./share/nls/is_IS.ISO8859-15 missing (created)
./share/nls/it_CH.ISO8859-1 missing (created)
./share/nls/it_CH.ISO8859-15 missing (created)
./share/nls/it_IT.ISO8859-1 missing (created)
./share/nls/it_IT.ISO8859-15 missing (created)
./share/nls/ja_JP.SJIS missing (created)
./share/nls/ja_JP.eucJP missing (created)
./share/nls/ko_KR.eucKR missing (created)
./share/nls/la_LN.ISO8859-1 missing (created)
./share/nls/la_LN.ISO8859-15 missing (created)
./share/nls/la_LN.ISO8859-2 missing (created)
./share/nls/la_LN.ISO8859-4 missing (created)
./share/nls/la_LN.US-ASCII missing (created)
./share/nls/lt_LT.ISO8859-4 missing (created)
./share/nls/nl_BE.ISO8859-1 missing (created)
./share/nls/nl_BE.ISO8859-15 missing (created)
./share/nls/nl_NL.ISO8859-1 missing (created)
./share/nls/nl_NL.ISO8859-15 missing (created)
./share/nls/no_NO.ISO8859-1 missing (created)
./share/nls/no_NO.ISO8859-15 missing (created)
./share/nls/pl_PL.ISO8859-2 missing (created)
./share/nls/pt_BR.ISO8859-1 missing (created)
./share/nls/pt_PT.ISO8859-1 missing (created)
./share/nls/pt_PT.ISO8859-15 missing (created)
./share/nls/ro_RO.ISO8859-2 missing (created)
./share/nls/ru_RU.CP866 missing (created)
./share/nls/ru_RU.ISO8859-5 missing (created)
./share/nls/ru_RU.KOI8-R missing (created)
./share/nls/sk_SK.ISO8859-2 missing (created)
./share/nls/sl_SI.ISO8859-2 missing (created)
./share/nls/sv_SE.ISO8859-1 missing (created)
./share/nls/sv_SE.ISO8859-15 missing (created)
./share/nls/tr_TR.ISO8859-9 missing (created)
./share/nls/uk_UA.ISO8859-5 missing (created)
./share/nls/uk_UA.KOI8-U missing (created)
./share/nls/zh_CN.eucCN missing (created)
./share/nls/zh_TW.Big5 missing (created)
./share/skel missing (created)
./var missing (created)
./var/cache missing (created)
./var/db missing (created)
./var/log missing (created)
./var/run missing (created)
./var/spool missing (created)
./www missing (created)
xinstall: mkdir /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_clang_select/clang_select/work/destroot/opt/local/etc/select
xinstall: mkdir /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_clang_select/clang_select/work/destroot/opt/local/etc/select/clang
xinstall: /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/sysutils/clang_select/files/base -> /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_clang_select/clang_select/work/destroot/opt/local/etc/select/clang/base
--->  Patching base: s|${prefix}|/opt/local|g
--->  Patching base: s|${frameworks_dir}|/opt/local/Library/Frameworks|g
--->  Patching base: s|${applications_dir}|/Applications/MacPorts|g
--->  Patching base: s|${developer_dir}|/Developer|g
xinstall: /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/sysutils/clang_select/files/none -> /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_clang_select/clang_select/work/destroot/opt/local/etc/select/clang/none
--->  Patching none: s|${prefix}|/opt/local|g
--->  Patching none: s|${frameworks_dir}|/opt/local/Library/Frameworks|g
--->  Patching none: s|${applications_dir}|/Applications/MacPorts|g
--->  Patching none: s|${developer_dir}|/Developer|g
--->  Installing clang_select @2.2_0
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_clang_select/clang_select/work/destroot" && /usr/bin/tar -cvf - . | /usr/bin/bzip2 -c9 > /opt/local/var/macports/software/clang_select/clang_select-2.2_0.darwin_9.ppc-ppc64.tbz2 
./
./+COMMENT
./+CONTENTS
./+DESC
./+PORTFILE
./+STATE
./opt/
./opt/local/
./opt/local/etc/
./opt/local/etc/select/
./opt/local/etc/select/clang/
./opt/local/etc/select/clang/base
./opt/local/etc/select/clang/none
--->  Activating clang_select @2.2_0
x ./
x ./+COMMENT
x ./+CONTENTS
x ./+DESC
x ./+PORTFILE
x ./+STATE
x ./opt/
x ./opt/local/
x ./opt/local/etc/
x ./opt/local/etc/select/
x ./opt/local/etc/select/clang/
x ./opt/local/etc/select/clang/base
x ./opt/local/etc/select/clang/none
--->  Cleaning clang_select
--->  Removing work directory for clang_select
--->  Computing dependencies for clang-3.4..
The following dependencies will be installed:  llvm-3.4
Continue? [Y/n]: n
--->  Computing dependencies for libcxx...
The following dependencies will be installed: 
 clang-3.4
 llvm-3.4
Continue? [Y/n]: n
--->  Computing dependencies for uchardet.............
The following dependencies will be installed: 
 clang-3.4
 clang-3.7
 clang-7.0
 cmake-bootstrap
 icu
 libcxx
 libomp
 libxml2
 llvm-3.4
 llvm-3.7
 llvm-7.0
 xar
Continue? [Y/n]: n
--->  Scanning binaries for linking errors
--->  No broken files found.                             
--->  No broken ports found.

Multiple ports from xorg-apps depend on uchardet, and subsequently fail to configure, complaining that uchardet doesn't build for ppc+ppc64. As an example:

36-191:~ svacchanda$ sudo port -v install bitmap
--->  Computing dependencies for bitmap...
Error: Cannot install groff for the archs 'ppc ppc64' because
Error: its dependency uchardet cannot build for the required archs.

Change History (3)

comment:1 in reply to:  description ; Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to barracuda156:

Oddly, despite I have +universal as a default setting on 10.5.8, uchardet builds as ppc-only.

36-191:~ svacchanda$ port -v installed uchardet
The following ports are currently installed:
  uchardet @0.0.7_0 (active) requested_variants='' platform='darwin 9' archs='ppc' date='2022-01-18T18:46:00+0800'

uchardet should have a universal variant, but based on the above, you haven't installed it with that variant. Does the variant show up when you run port variants uchardet?

I suspect that perhaps it won't, because this port indicates that it requires C++11, which on PPC means it must build with a newer MacPorts GCC, and only Apple's GCC ever supported building for multiple architectures at the same time. The only way to get universal with MacPorts GCC would be to build for each arch separately, in other words try adding PortGroup muniversal 1.0 after the PortSystem 1.0 line.

36-191:~ svacchanda$ sudo port -v install uchardet +universal supported_archs="ppc ppc64" build_arch="ppc ppc64"

You should not override supported_archs like this on the command line.

For one thing, the uchardet Portfile does not contain any code that limits the supported_archs, so overriding it and restricting it to only ppc ppc64 as you did won't be of any use.

For another, variables you specify on the comand line affect all dependencies as well, resulting in the nonsense you observed next:

--->  Fetching archive for clang_select
--->  clang_select-2.2_0.darwin_9.ppc-ppc64.tbz2 doesn't seem to exist in /opt/local/var/macports/incoming/verified

clang_select is a noarch port, but because you instructed MacPorts that it supports ppc and ppc64, MacPorts is dutifully reinstalling it for ppc ppc64, which will be no different than before since this port does not install architecture-specific files.

It's also invalid to set build_arch to anything other than a single architecture.

comment:2 in reply to:  1 Changed 3 years ago by barracuda156

Replying to ryandesign:

uchardet should have a universal variant, but based on the above, you haven't installed it with that variant. Does the variant show up when you run port variants uchardet?

36-191:~ svacchanda$ port variants uchardet
uchardet has the variants:
   debug: Enable debug binaries

I suspect that perhaps it won't, because this port indicates that it requires C++11, which on PPC means it must build with a newer MacPorts GCC, and only Apple's GCC ever supported building for multiple architectures at the same time. The only way to get universal with MacPorts GCC would be to build for each arch separately, in other words try adding PortGroup muniversal 1.0 after the PortSystem 1.0 line.

It worked!

36-191:~ svacchanda$ port -v installed uchardet
The following ports are currently installed:
  uchardet @0.0.7_0+universal (active) requested_variants='+universal' platform='darwin 9' archs='ppc ppc64' date='2022-01-18T20:35:58+0800'

For another, variables you specify on the comand line affect all dependencies as well, resulting in the nonsense you observed next: It's also invalid to set build_arch to anything other than a single architecture.

Thank you, noted.

comment:3 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Keywords: powerpc added; PowerPC Leopard ppc64 X11 xorg removed
Owner: set to amake
Port: xorg-apps removed
Status: newassigned
Summary: uchardet builds for ppc when called for ppc+ppc64, but xorg-apps needs it universaluchardet has no universal variant on systems where builds happen with MacPorts gcc
Note: See TracTickets for help on using tickets.