#37416 closed defect (invalid)
gettext +universal upgrade staging error
Reported by: | egor7@… | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.1.2 |
Keywords: | haspatch | Cc: | cooljeanius (Eric Gallager), dershow, halkola@…, j@… |
Port: | gettext |
Description
I've got the next error while upgrading gettext port:
---> Staging gettext into destroot Error: org.macports.destroot for port gettext returned: /opt/local/lib/libgettextlib.la differs in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_gettext/gettext/work/destroot-i386 and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_gettext/gettext/work/destroot-x86_64 and cannot be merged
I've done cleaning but error still is the same.
Attachments (4)
Change History (24)
comment:1 Changed 12 years ago by egor7@…
Cc: | egor7@… added |
---|
Changed 12 years ago by egor7@…
comment:4 Changed 12 years ago by jmroot (Joshua Root)
Cc: | egor7@… removed |
---|---|
Owner: | changed from macports-tickets@… to ryandesign@… |
Summary: | gettext upgrade staging error → gettext +universal upgrade staging error |
Please remember to Cc the maintainer.
comment:5 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
Status: | new → assigned |
---|
Please attach the two libgettextlib.la files so that I can see how they differ.
comment:6 Changed 12 years ago by egor7@…
diff x86_64_libgettextlib.la i386_libgettextlib.la 17c17 < inherited_linker_flags=' ' --- > inherited_linker_flags=' -fopenmp'
Changed 12 years ago by egor7@…
Attachment: | i386_libgettextlib.la added |
---|
Changed 12 years ago by egor7@…
Attachment: | x86_64_libgettextlib.la added |
---|
comment:8 follow-up: 10 Changed 12 years ago by halkola@…
I have a different staging error with gettext:
---> Staging gettext into destroot Error: org.macports.destroot for port gettext returned: error copying "/opt/local/var/macports/build/_opt_mports_devel_gettext/gettext/work/destroot" to "/opt/local/var/macports/build/_opt_mports_devel_gettext/gettext/work/destroot-x86_64/destroot": file already exists Error: Failed to install gettext
I have also tried to clean gettext first.
comment:10 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
Keywords: | haspatch added |
---|
Replying to egor7@…:
diff x86_64_libgettextlib.la i386_libgettextlib.la 17c17 < inherited_linker_flags=' ' --- > inherited_linker_flags=' -fopenmp'
Interesting. So the configure script decided that on i386 openmp should be used but on x86_64 it should not. I can't reproduce that. On my Snow Leopard machine compiling with gcc-4.2, it decided to use openmp for both i386 and x86_64 parts. And on Mountain Lion with clang, it decided not to use openmp for either the i386 or x86_64 parts.
I'm inclined to just disable openmp explicitly to avoid the problem, whatever its cause. From what I can tell, openmp is only used for the msgmerge
utility, which is a program developers would use but users and build systems wouldn't, so this change should not affect normal MacPorts users. I see some other packagers have chosen this as well. See if the attached patch works for you.
Replying to halkola@…:
I have a different staging error with gettext:
---> Staging gettext into destroot Error: org.macports.destroot for port gettext returned: error copying "/opt/local/var/macports/build/_opt_mports_devel_gettext/gettext/work/destroot" to "/opt/local/var/macports/build/_opt_mports_devel_gettext/gettext/work/destroot-x86_64/destroot": file already exists Error: Failed to install gettextI have also tried to clean gettext first.
Although you said you tried to clean gettext, the error message "destroot: file already exists" usually means you did not clean before trying. Please clean and try again. This ticket is about the "X differs in Y and Z and cannot be merged" error message. If your build still fails and you get an error message different from that, please file a new ticket.
Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
Attachment: | gettext-disable-openmp.diff added |
---|
proposed patch
comment:11 follow-up: 12 Changed 12 years ago by egor7@…
cat .../gettext-0.18.2-x86_64/gettext-tools/config.log ... ld: warning: in /usr/local/lib/libgomp.dylib, file was built for i386 which is not the architecture being linked (x86_64) Undefined symbols: "_omp_get_num_threads", referenced from: _main in ccYhygBz.o ...
so opm (OpenMP) for x86_64 on Mac OSX 10.6.8 can't be compiled because of its standard i368 lib, I think.
How to apply gettext-disable-openmp.diff
?
comment:12 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → invalid |
---|---|
Status: | assigned → closed |
Replying to egor7@…:
ld: warning: in /usr/local/lib/libgomp.dylib, file was built for i386 which is not the architecture being linked (x86_64)
There's the real problem: you have this interfering library in /usr/local; please remove it and any other software you installed in /usr/local.
comment:13 Changed 12 years ago by dershow
Resolution: | invalid |
---|---|
Status: | closed → reopened |
I did have some stuff in /usr/local, so I got rid of it. I then did a sudo port clean getttext and upgrade, and got the same error as before, where it builds but then doesn't install. I just looked in macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_gettext/gettext/work/gettext-0.18.2-x86_64/gettext-tools/config.log and I don't see anything related to libgomp, egor7 is mentioning above. So, it seems that something else is still not working.
comment:14 Changed 12 years ago by halkola@…
I also have the same problem now when using variant +universal. With -universal I get my earlier error even after sudo port clean gettext. My libgettextlib.la differ in the same as with egor7. No mention of _omp_get_num_threads or libgomp in config.log.
comment:15 follow-up: 16 Changed 12 years ago by egor7@…
I removed everything from /usr/local/lib
and successefully reinstall (force reinstall) gettext.
comment:16 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → invalid |
---|---|
Status: | reopened → closed |
Replying to egor7@…:
I removed everything from
/usr/local/lib
and successefully reinstall (force reinstall) gettext.
Great, I'm glad that worked.
dersh and halkola, please file new tickets; you two are apparently experiencing a different problem, or possibly two different problems. This ticket was about the error message "X differs in Y and Z and cannot be merged" caused by the presence of an i386-only copy of the library /usr/local/lib/libgomp.dylib and was resolved by removing that library.
comment:17 Changed 12 years ago by halkola@…
For me also moving /usr/local/lib/ and installing gettext worked (moving /usr/local/lib/ afterwards back). Trying to install with variant -universal doesn't work anymore due to some dependencies that requite gettext with universal. I am therefore happy with this solution. Thanks!
comment:18 Changed 12 years ago by dershow
I moved /usr/local, but as I said above, cleaning then upgrade didn't work. However, I just tried: sudo port install gettext +universal and that worked. So for me that force wasn't necessary, but an upgrade didn't work.
comment:19 follow-up: 20 Changed 12 years ago by j@…
I also had the same thing happen, except for me it was libunistring was installed without the universal variant, and the gettext port depended on it if it exists, otherwise doesn't include it.
diff -c /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_gettext/gettext/work/destroot-i386/opt/local/lib/libgettextlib.la /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_gettext/gettext/work/destroot-x86_64/opt/local/lib/libgettextlib.la *** /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_gettext/gettext/work/destroot-i386/opt/local/lib/libgettextlib.la Thu Jan 17 16:09:31 2013 --- /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_gettext/gettext/work/destroot-x86_64/opt/local/lib/libgettextlib.la Thu Jan 17 16:09:27 2013 *************** *** 17,23 **** inherited_linker_flags=' ' # Libraries that this one depends upon. ! dependency_libs=' -R/opt/local/lib -L/opt/local/lib /opt/local/lib/libintl.la -lc /opt/local/lib/libiconv.la -lncurses' # Names of additional weak libraries provided by this library weak_library_names='' --- 17,23 ---- inherited_linker_flags=' ' # Libraries that this one depends upon. ! dependency_libs=' -R/opt/local/lib -L/opt/local/lib /opt/local/lib/libintl.la -lc /opt/local/lib/libunistring.la /opt/local/lib/libiconv.la -lncurses' # Names of additional weak libraries provided by this library weak_library_names='' Diff finished. Thu Jan 17 17:00:20 2013
To fix this problem, I ran the following commands.
% sudo port install libunistring +universal % sudo port install gettext +universal % sudo port upgrade outdated
And I was on my way :) I hope this helps people who find this bug in the tracker.
MacPort Devs: Let me know if this should be a separate bug? I'm not sure I can repro it now that I've gone off and installed libunistring correctly, but hopefully that's not too hard.
comment:20 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | j@… added |
---|
Replying to j@…:
I also had the same thing happen, except for me it was libunistring was installed without the universal variant, and the gettext port depended on it if it exists, otherwise doesn't include it.
[snip]
MacPort Devs: Let me know if this should be a separate bug? I'm not sure I can repro it now that I've gone off and installed libunistring correctly, but hopefully that's not too hard.
Yes, this is a new problem and needs a new ticket. I've filed #37681 for it.
Cc Me!