Opened 10 years ago

Closed 5 years ago

#24001 closed defect (fixed)

curl: destroot merge failure of curl-config with +universal variant because of --host and host_alias

Reported by: ToePeu@… Owned by: ryandesign (Ryan Schmidt)
Priority: Normal Milestone:
Component: ports Version: 1.8.2
Keywords: Cc: mcl_guard-netmail@…, neverlunch@…, christian.groon@…, erik.welander@…, cooljeanius (Eric Gallager)
Port: curl

Description (last modified by mf2k (Frank Schima))

it raise error because ppc and intel has different curl-config file

its difference is occured by --configure options:

       echo " '--prefix=/opt/local' '--enable-ipv6' '--without-gnutls' '--without-gssapi' '--without-libssh2' '--without-spnego' '--disable-ares' '--disable-ldap' '--disable-ldaps' '--with-libidn' '--with-zlib=/opt/local' '--disable-dependency-tracking' '--with-ssl' '--with-ca-bundle=/opt/local/share/curl/curl-ca-bundle.crt' 'CC=/usr/bin/gcc-4.2' 'CFLAGS=-O2 ' 'LDFLAGS=-L/opt/local/lib ' 'CPPFLAGS=-I/opt/local/include'"

is for intel, but for ppc, it has more ppc-related options

it raise merge failure in destroot path

since i removed difference of both curl-config as fake, problem resolved.

i think there should not be check curl-config here.

ps. when i failed to destroot, and tried -d to make report, destroot failed for everything because it could not recover its state before destroot. it was terrible and i should remove some output of destroot manually.

Attachments (4)

main.log (14.1 KB) - added by erik.welander@… 6 years ago.
Error building universal
ppc-curl-config (5.4 KB) - added by erik.welander@… 6 years ago.
In /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_curl/curl/work/destroot-powerpcopt/local/bin
intel-curl-config (5.4 KB) - added by erik.welander@… 6 years ago.
"curl-config" In /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_curl/curl/work/destroot-intelopt/local/bin
QuickFix.diff (815 bytes) - added by erik.welander@… 6 years ago.
A quick and dirty fix but it works like a charm and universal builds works with it.

Download all attachments as: .zip

Change History (25)

comment:1 Changed 10 years ago by jmroot (Joshua Root)

Keywords: curl destroot removed
Owner: changed from macports-tickets@… to ryandesign@…

Please remember to cc the maintainer.

comment:2 Changed 10 years ago by mf2k (Frank Schima)

Description: modified (diff)

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

Status: newassigned
Summary: curl-7.20 +universal destroot failcurl +universal (ppc/i386) destroot fails

Confirmed, for example building ppc/i386 on Tiger Intel:

--- /opt/local/var/macports/build/_Users_rschmidt_macports_dports_net_curl/work/destroot-intel/opt/local/bin/curl-config        2010-03-09 23:47:38.000000000 -0600
+++ /opt/local/var/macports/build/_Users_rschmidt_macports_dports_net_curl/work/destroot-powerpc/opt/local/bin/curl-config      2010-03-09 23:47:40.000000000 -0600
@@ -148,7 +148,7 @@
        ;;
 
     --configure)
-      echo " '--prefix=/opt/local' '--enable-ipv6' '--without-gnutls' '--without-gssapi' '--without-spnego' '--disable-ares' '--disable-ldap' '--disable-ldaps' '--with-libidn' '--with-zlib=/opt/local' '--disable-dependency-tracking' '--with-ssl' '--with-ca-bundle=/opt/local/share/curl/curl-ca-bundle.crt' '--with-libssh2' 'CC=/usr/bin/gcc-4.0' 'CFLAGS=-O2 ' 'LDFLAGS=-L/opt/local/lib ' 'CPPFLAGS=-I/opt/local/include'"
+      echo " '--prefix=/opt/local' '--enable-ipv6' '--without-gnutls' '--without-gssapi' '--without-spnego' '--disable-ares' '--disable-ldap' '--disable-ldaps' '--with-libidn' '--with-zlib=/opt/local' '--disable-dependency-tracking' '--with-ssl' '--with-ca-bundle=/opt/local/share/curl/curl-ca-bundle.crt' '--with-libssh2' '--host=powerpc-apple-darwin8.11.1' 'host_alias=powerpc-apple-darwin8.11.1' 'CC=/usr/bin/gcc-4.0' 'CFLAGS=-O2 ' 'LDFLAGS=-L/opt/local/lib ' 'CPPFLAGS=-I/opt/local/include'"
     ;;
 
     *)

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

Presumably I should simply remove '--host=.*' and 'host_alias=.*' from curl-config if present.

comment:5 Changed 10 years ago by ryandesign (Ryan Schmidt)

Has duplicate #24983.

comment:6 Changed 10 years ago by mcl_guard-netmail@…

Cc: mcl_guard-netmail@… added

Cc Me!

comment:7 Changed 10 years ago by neverlunch@…

Cc: neverlunch@… added

Cc Me!

comment:8 Changed 10 years ago by ryandesign (Ryan Schmidt)

Has duplicate #26797.

comment:9 Changed 10 years ago by ryandesign (Ryan Schmidt)

Cc: christian.groon@… added

comment:10 Changed 10 years ago by ryandesign (Ryan Schmidt)

Resolution: fixed
Status: assignedclosed

Should be fixed in r75686.

Changed 6 years ago by erik.welander@…

Attachment: main.log added

Error building universal

comment:11 Changed 6 years ago by erik.welander@…

Resolution: fixed
Status: closedreopened

Hi, i have tried to build the package for quite some time now using a PowerBook G4, but the build always fails at the destroot stage. I have completely purged macports and all of its ports, and tried install variants such as installing zlib beforehand.

I have set +universal in variants.conf and tried to install with "sudo port install zlib" followed by "sudo port install curl +ssl" Yet i can never get past the destroot stage. Following the other threads of people having the same problem, i am lead here with a status of the bug being "fixed", yet i can't get past the part

--->  Staging curl into destroot
Error: org.macports.destroot for port curl returned: curl-config differs in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_curl/curl/work/destroot-powerpc//opt/local/bin and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_curl/curl/work/destroot-intel//opt/local/bin and cannot be merged

Any help in the matter would be appreciated. Maybe this bug should be reopened?

Last edited 6 years ago by ryandesign (Ryan Schmidt) (previous) (diff)

comment:12 Changed 6 years ago by erik.welander@…

Cc: erik.welander@… added

Cc Me!

comment:13 in reply to:  11 ; Changed 6 years ago by ryandesign (Ryan Schmidt)

Replying to erik.welander@…:

Hi, i have tried to build the package for quite some time now using a PowerBook G4, but the build always fails at the destroot stage. I have completely purged macports and all of its ports, and tried install variants such as installing zlib beforehand.

I have set +universal in variants.conf

Is there a particular reason why you need to build universal? The only reason you would need this is if you need to build software on your PowerBook that can also be run on an Intel Mac.

and tried to install with "sudo port install zlib" followed by "sudo port install curl +ssl" Yet i can never get past the destroot stage. Following the other threads of people having the same problem, i am lead here with a status of the bug being "fixed", yet i can't get past the part

--->  Staging curl into destroot
Error: org.macports.destroot for port curl returned: curl-config differs in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_curl/curl/work/destroot-powerpc//opt/local/bin and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_curl/curl/work/destroot-intel//opt/local/bin and cannot be merged

Any help in the matter would be appreciated. Maybe this bug should be reopened?

Please attach the two copies of the curl-config file so that I can see how they differ.

Changed 6 years ago by erik.welander@…

Attachment: ppc-curl-config added

In /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_curl/curl/work/destroot-powerpcopt/local/bin

Changed 6 years ago by erik.welander@…

Attachment: intel-curl-config added

"curl-config" In /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_curl/curl/work/destroot-intelopt/local/bin

comment:14 in reply to:  13 Changed 6 years ago by erik.welander@…

Replying to ryandesign@…:

Replying to erik.welander@…:

Hi, i have tried to build the package for quite some time now using a PowerBook G4, but the build always fails at the destroot stage. I have completely purged macports and all of its ports, and tried install variants such as installing zlib beforehand.

I have set +universal in variants.conf

Is there a particular reason why you need to build universal? The only reason you would need this is if you need to build software on your PowerBook that can also be run on an Intel Mac.

The application will be used within a volunteer organization hosting various activities(programming, karaoke, movie nights). The users/members of this organization gets internet access as well as access to network resources by logging in. I love this Powerbook(1.66Ghz 15") so i'm not very keen on upgrading just yet as it's still a wonderful computer to work with, but i do want other people get access to the programs i make.

and tried to install with "sudo port install zlib" followed by "sudo port install curl +ssl" Yet i can never get past the destroot stage. Following the other threads of people having the same problem, i am lead here with a status of the bug being "fixed", yet i can't get past the part

--->  Staging curl into destroot
Error: org.macports.destroot for port curl returned: curl-config differs in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_curl/curl/work/destroot-powerpc//opt/local/bin and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_curl/curl/work/destroot-intel//opt/local/bin and cannot be merged

Any help in the matter would be appreciated. Maybe this bug should be reopened?

Please attach the two copies of the curl-config file so that I can see how they differ.

I copied "curl-config" from both folders and named them according to architecture.

Last edited 6 years ago by erik.welander@… (previous) (diff)

comment:15 Changed 6 years ago by ryandesign (Ryan Schmidt)

There are differences between the two files, but they're irrelevant differences: just a few repeated flags. Off the top of my head I don't know why that would be happening.

comment:16 in reply to:  15 Changed 6 years ago by erik.welander@…

Replying to ryandesign@…:

There are differences between the two files, but they're irrelevant differences: just a few repeated flags. Off the top of my head I don't know why that would be happening.

Maybe Macports halts as soon as it finds any kind of difference at all? Why does not both versions just share the same file? Any way i can test this theory? Simply copying the intel one to the PPC one did not work since it does not like the fact that the directories already exists.

Last edited 6 years ago by erik.welander@… (previous) (diff)

comment:17 Changed 6 years ago by ryandesign (Ryan Schmidt)

Replying to erik.welander@…:

Maybe Macports halts as soon as it finds any kind of difference at all? Why does not both versions just share the same file? Any way i can test this theory? Simply copying the intel one to the PPC one did not work since it does not like the fact that the directories already exists.

Yes, any difference in a text file will halt the merge; this is intentional because there are not expected to be any differences between the files. MacPorts cannot magically know which one of the two is correct. The question is why the curl build system has produced two different files.

Changed 6 years ago by erik.welander@…

Attachment: QuickFix.diff added

A quick and dirty fix but it works like a charm and universal builds works with it.

comment:18 in reply to:  17 Changed 6 years ago by erik.welander@…

Replying to ryandesign@…:

Replying to erik.welander@…:

Maybe Macports halts as soon as it finds any kind of difference at all? Why does not both versions just share the same file? Any way i can test this theory? Simply copying the intel one to the PPC one did not work since it does not like the fact that the directories already exists.

Yes, any difference in a text file will halt the merge; this is intentional because there are not expected to be any differences between the files. MacPorts cannot magically know which one of the two is correct. The question is why the curl build system has produced two different files.

I made i quick and dirty fix to it and it works like it should now, something similar should be done but maybe a bit more clean?

Much to my suprise bash syntax and commands does not work and i do not have any experience or knowledge about TCL.

Upon examining the configure files in the ppc build directory, the flags do needlessly repeat themselves.

comment:19 Changed 6 years ago by ryandesign (Ryan Schmidt)

I'm not comfortable simply ignoring the problem by just picking one of the files and ignoring the other; this will prevent us from learning about any future differences as well, and although the current difference is insignificant, differences future versions of curl might produce might not be. I want to figure out why the curl build system is generating two different files here, and make it stop doing that. Or it might not be the fault of the curl build system; it might be something in the muniversal portgroup causing this, in which case we need to fix that.

comment:20 Changed 6 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:21 Changed 5 years ago by ryandesign (Ryan Schmidt)

Resolution: fixed
Status: reopenedclosed
Summary: curl +universal (ppc/i386) destroot failscurl: destroot merge failure of curl-config with +universal variant because of --host and host_alias

This ticket was originally about the failure to merge because of the --host and host_alias parameters. That was fixed in r75686 by removing the --host and host_alias parameters prior to merging, so this ticket should remain closed.

The new problem is about a failure to merge because of repeated SSL flags. Let's handle that issue in #32287.

Note: See TracTickets for help on using tickets.