Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#45742 closed defect (fixed)

botan: missing from server-generated PortIndex

Reported by: l.digaspero@… Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: High Milestone:
Component: ports Version:
Keywords: Cc: mww@…, mkae (Marko Käning)
Port: botan

Description

The current qt5-creator-mac depends on botan, which is actually included in the qt5-creator source. Moreover it might happen that the botan dependence cannot be satisfied (for example in the current rsync version, as of today, for some reason it is unavailable). I propose to leave the possibility to use and install system-wide botan port as a variant.

Attachments (2)

Portfile-qt5-creator-mac-nobotan.diff (955 bytes) - added by l.digaspero@… 9 years ago.
Portfile-qt5-creator-mac-nobotan.2.diff (454 bytes) - added by l.digaspero@… 9 years ago.
Adding the no_botan variant that compile without botan.

Download all attachments as: .zip

Change History (32)

Changed 9 years ago by l.digaspero@…

comment:1 Changed 9 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: mcalhoun@… removed
Keywords: haspatch added
Owner: changed from macports-tickets@… to mcalhoun@…
Status: newassigned

Many thanks for the suggesting and especially the patch.

I am a little reluctant to mess with qt5-creator-mac if for no other reason than it is working for me now and breaks if you look at it wrong.

I have not tested it yet, but sometimes if software (such as botan) is installed by more than one Portfile, it conflicts either now or down the road.
Besides, more variants also means more things to test and debug.

My first reaction would be that unless something doesn't work, we keep it the way it is.
Any thoughts?

comment:2 Changed 9 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Resolution: wontfix
Status: assignedclosed

Unless a compelling reason comes up in the future, we'll just keep the port the way it is.
Thanks for the input.

comment:3 Changed 9 years ago by mkae (Marko Käning)

Resolution: wontfix
Status: closedreopened

Won't fix isn't a solution to this problem, if botan is a non-existant dependency for this port IMHO!

comment:4 Changed 9 years ago by mf2k (Frank Schima)

Keywords: botan variant removed
Version: 2.3.2

comment:5 in reply to:  3 Changed 9 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: mk@… added

Replying to mk@…:

Won't fix isn't a solution to this problem, if botan is a non-existant dependency for this port IMHO!

Perhaps I misunderstood the nature of the problem.
What trouble are you having downloading botan?
I have always been able to download, extract, and install with no problem.

In the original post, it was stated that it (emphasis mine):

might happen that the botan dependence cannot be satisfied

I have been unable to reproduce the report of:

current rsync version, as of today, for some reason it is unavailable

Is there a current problem that needs solving?
If so, I would be happy to look into it.

Changed 9 years ago by l.digaspero@…

Adding the no_botan variant that compile without botan.

comment:6 Changed 9 years ago by l.digaspero@…

I currently cannot install botan (macports says it is not existing). I suggest to add a no_botan variant to the Portfile (see the updated diff file) that allow to avoid installing botan, so the default variant will be as before, but it will cope with this situation.

comment:7 Changed 9 years ago by mf2k (Frank Schima)

Macports policy is to not have no_foo variant names. Please call the variant "botan" and do the reverse. So botan would be removed by typing:

sudo port install qt5-creator-mac -botan

comment:8 in reply to:  6 Changed 9 years ago by larryv (Lawrence Velázquez)

Replying to l.digaspero@…:

I currently cannot install botan (macports says it is not existing).

We should figure out why this is the case. The botan port exists on our rsync server.

% rsync rsync://rsync.macports.org/release/ports.tar.gz .
% pax -z '*botan*' < ports.tar.gz
ports/devel/qca/files/patch-src_botantools_botan_botan_secmem.h.diff
ports/security/botan
ports/security/botan/Portfile
%
  • Have you run sudo port selfupdate lately?
  • What does port info botan say for you?
  • What happens if you try to install botan manually (i.e., sudo port install botan)?

I suggest to add a no_botan variant to the Portfile (see the updated diff file) that allow to avoid installing botan, so the default variant will be as before, but it will cope with this situation.

No. We will not add a variant to work around a problem that should not exist.

comment:9 in reply to:  6 ; Changed 9 years ago by mkae (Marko Käning)

Replying to l.digaspero@…:

I currently cannot install botan (macports says it is not existing).

Same here, although the Portfile is there:

$ ls /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/security/botan/
Portfile

How can that be? Is MacPorts' registry broken?

comment:10 in reply to:  9 Changed 9 years ago by larryv (Lawrence Velázquez)

Exactly what error are you seeing? This is what I get:

% sudo port install botan
Password:
--->  Computing dependencies for botan
--->  Fetching distfiles for botan
--->  Attempting to fetch Botan-1.10.8.tbz from http://files.randombit.net/botan/
--->  Verifying checksums for botan                                                  
--->  Extracting botan
--->  Configuring botan
--->  Building botan
--->  Staging botan into destroot
--->  Installing botan @1.10.8_1
--->  Activating botan @1.10.8_1
--->  Cleaning botan
--->  Updating database of binaries
--->  Scanning binaries for linking errors
--->  No broken files found.                             
sudo port install botan  93.34s user 9.87s system 424% cpu 24.306 total
%

comment:11 Changed 9 years ago by mkae (Marko Käning)

$ port info botan
Error: Port botan not found

"sudo port selfupdate" I carried out lately. :-(

comment:12 in reply to:  11 Changed 9 years ago by larryv (Lawrence Velázquez)

How strange. Could you try deleting your port index and running selfupdate again to rebuild it from scratch?

comment:13 Changed 9 years ago by l.digaspero@…

However, since botan is not a really required dependence for qt5-mac-creator (since it comes with a custom botan distribution in the source package) why should it be the default in the macports distribution? I suggest to go with my first amended Portfile which defines a variant for installing and using the botan dependency only if required.

Incidentally I have the same behavior as in the previous post for installing botan:

$ sudo port info botan
Error: Port botan not found

comment:14 Changed 9 years ago by neverpanic (Clemens Lang)

Please don't use the bundled botan, it leads to problems such as #37652. Also, it's yet another private copy of a library we already have. No need to waste build time, disk space and other resources on something we already have.

What do

ls -lash $(port dir yubico-pam)/../botan
grep -iEA1 '^botan' $(port dir yubico-pam)/../../PortIndex
grep -i '^botan' $(port dir yubico-pam)/../../PortIndex.quick

print on your system?

comment:15 Changed 9 years ago by mkae (Marko Käning)

This is what I get:

$ ls -lash $(port dir yubico-pam)/../botan
total 4.0K
   0 drwxr-xr-x   3 root wheel  102 Sep 29 08:01 .
   0 drwxr-xr-x 129 root wheel 4.3K Sep 16 23:30 ..
4.0K -rw-r--r--   1 root wheel 2.6K Sep 29 08:01 Portfile
$ grep -iEA1 '^botan' $(port dir yubico-pam)/../../PortIndex
$ grep -i '^botan' $(port dir yubico-pam)/../../PortIndex.quick
$ port installed botan
The following ports are currently installed:
  botan @1.10.8_1 (active)
$ port info botan
Error: Port botan not found

Then I deleted the 2 port index files and retried, but got the same results above, e.g.:

$ port info botan
Error: Port botan not found

comment:16 in reply to:  15 ; Changed 9 years ago by larryv (Lawrence Velázquez)

Replying to mk@…:

$ grep -iEA1 '^botan' $(port dir yubico-pam)/../../PortIndex
$ grep -i '^botan' $(port dir yubico-pam)/../../PortIndex.quick

These commands should have returned something.

Then I deleted the 2 port index files and retried, but got the same results above, e.g.:

$ port info botan
Error: Port botan not found

Did you regenerate the indices after deleting them (with port selfupdate or portindex)?

comment:17 in reply to:  16 ; Changed 9 years ago by mkae (Marko Käning)

Replying to larryv@…:

These commands should have returned something.

Yes.

Did you regenerate the indices after deleting them (with port selfupdate or portindex)?

Yes.

I am as puzzled about this as you are! :-o

comment:18 in reply to:  17 ; Changed 9 years ago by larryv (Lawrence Velázquez)

Replying to mk@…:

Replying to larryv@…:

Did you regenerate the indices after deleting them (with port selfupdate or portindex)?

Yes.

Huh. Do you see any error messages while rebuilding the indices?

comment:19 in reply to:  18 Changed 9 years ago by mkae (Marko Käning)

Nope.

comment:20 Changed 9 years ago by neverpanic (Clemens Lang)

What happens if you run

cd $(port dir yubico-pam)/../botan && port -d info

Did you generate the PortIndex locally or did you get the one from the server? Maybe the server's PortIndex is corrupt? Which OS version do you run?

comment:21 Changed 9 years ago by mkae (Marko Käning)

The above command gives me the expected output for botan. :)

I used "sudo port selfupdate" to generate the index. (Don't know whether that rsyncs only or whether it gets generated locally.)

I am using Mavericks here on my host and guest VMs.

comment:22 Changed 9 years ago by neverpanic (Clemens Lang)

It rsyncs unless you're using SVN as source. I'll check the server-side PortIndex.

comment:23 Changed 9 years ago by neverpanic (Clemens Lang)

Component: portsserver/hosting
Keywords: haspatch removed
Port: qt5-creator-mac removed
Priority: NormalHigh
Summary: qt5-creator botan externalServer-generated PortIndex is corrupt, e.g. missing botan (was: qt5-creator botan external)
Type: enhancementdefect

Indeed:

:) $> rsync --partial --progress --inplace rsync://rsync.macports.org/release/tarballs/PortIndex_darwin_13_i386/PortIndex /var/tmp/
[…]
:) $> rsync --partial --progress --inplace rsync://rsync.macports.org/release/tarballs/PortIndex_darwin_13_i386/PortIndex.quick /var/tmp/
[…]
:) $> cd /var/tmp
:) $> grep -iEA1 '^botan' PortIndex
:( $> grep -i '^botan' PortIndex.quick
:( $>

So the server-side PortIndex is corrupt. We need to figure out whether it's only the darwin13 one or all and escalate to Shree.

comment:24 Changed 9 years ago by jmroot (Joshua Root)

The botan portfile is broken:

% port info botan build_arch=""
Error: Unable to open port: can't read "merger_configure_args()": no such element in array

comment:25 Changed 9 years ago by jmroot (Joshua Root)

Summary: Server-generated PortIndex is corrupt, e.g. missing botan (was: qt5-creator botan external)Server-generated PortIndex is missing botan (was: qt5-creator botan external)

comment:26 Changed 9 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: reopenedclosed

comment:27 Changed 9 years ago by jmroot (Joshua Root)

Cc: mww@… added

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

Component: server/hostingports
Port: botan added
Summary: Server-generated PortIndex is missing botan (was: qt5-creator botan external)botan: missing from server-generated PortIndex

comment:29 Changed 9 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Please forgive my ignorance, but can anyone explain why r127982 fixes the problem (although I am glad it does)?
botan has the following code on line 46:

array set merger_configure_args {
    ppc     --cpu=ppc
    i386    --cpu=ia32
    ppc64   --cpu=ppc64
    x86_64  --cpu=amd64
}

So how, on line 65, could merger_configure_args($build_arch) be undefined?

Further, why does this problem only show up on certain configurations?
On the mailing list, it mentions "a bad assumption," but I am not sure what that means.

Thanks to anyone who can explain this.

comment:30 Changed 9 years ago by jmroot (Joshua Root)

You can’t assume build_arch will always contain one of those four values. It’s free to take any value that the compiler understands, or be blank (which means don’t pass any -arch flags, juts go with what the compiler produces by default). On the server that generates the PortIndex, it happens to be blank.

Note: See TracTickets for help on using tickets.