Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#36558 closed submission (fixed)

ssss @1.0.1

Reported by: okoeroo@… Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc: nonstop.server@…
Port: ssss

Description

Shamir's Secret Sharing is an algorithm in cryptography. It is a form of secret sharing, where a secret is divided into parts, giving each participant its own unique part, where some of the parts or all of them are needed in order to reconstruct the secret.

Counting on all participants to combine together the secret might be impractical, and therefore sometimes the threshold scheme is used where any k of the parts are sufficient to reconstruct the original secret.

Attachments (4)

Portfile (1.4 KB) - added by okoeroo@… 12 years ago.
Portfile.2 (1.3 KB) - added by ryandesign (Ryan Carsten Schmidt) 12 years ago.
revised portfile proposal
main.log (28.0 KB) - added by ryandesign (Ryan Carsten Schmidt) 12 years ago.
Portfile.3 (1.3 KB) - added by okoeroo@… 12 years ago.

Download all attachments as: .zip

Change History (13)

Changed 12 years ago by okoeroo@…

Attachment: Portfile added

Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: Portfile.2 added

revised portfile proposal

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

Thanks. I've attached a revised portfile, which uses the github portgroup and downloads from a distfile instead of downloading from git.

I also switched the system invocation to use the -W flag.

The port does not build for me. I'm attaching the main.log.

I don't understand why the port requests that MacPorts run autoreconf ("use_autoreconf yes") but then afterward manually runs the bootstrap script which itself runs aclocal, glibtoolize, autoheader, automake and autoconf. Shouldn't one or the other be sufficient?

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

Cc: ryandesign@… added
Keywords: security shamir secret sharing removed
Port: ssss added

Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: main.log added

comment:3 in reply to:  1 Changed 12 years ago by okoeroo@…

Replying to ryandesign@…:

Thanks. I've attached a revised portfile, which uses the github portgroup and downloads from a distfile instead of downloading from git.

I also switched the system invocation to use the -W flag.

The port does not build for me. I'm attaching the main.log.

I don't understand why the port requests that MacPorts run autoreconf ("use_autoreconf yes") but then afterward manually runs the bootstrap script which itself runs aclocal, glibtoolize, autoheader, automake and autoconf. Shouldn't one or the other be sufficient?

I will analyse your main.log and see what's wrong. The double run of autoreconf (and friends) is more my stupidity I guess. The use_autoreconf yes was in my example.

Changed 12 years ago by okoeroo@…

Attachment: Portfile.3 added

comment:4 in reply to:  1 Changed 12 years ago by okoeroo@…

Replying to ryandesign@…:

Thanks. I've attached a revised portfile, which uses the github portgroup and downloads from a distfile instead of downloading from git.

I also switched the system invocation to use the -W flag.

The port does not build for me. I'm attaching the main.log.

I don't understand why the port requests that MacPorts run autoreconf ("use_autoreconf yes") but then afterward manually runs the bootstrap script which itself runs aclocal, glibtoolize, autoheader, automake and autoconf. Shouldn't one or the other be sufficient?

Hi,

I've been able to replicate the problem on a clean MacPorts machine. The project/ directory was required for my current autotools setup and was created by automake or autoconf at the end, but glibtoolize couldn't work. Running the install for a second time fixed it, but that's totally not good.

What I've changed in the Portfile.3 file is:

  • Updated checksums
  • Removed the autoreconf command
  • Added a mkdir project/ before I run the autotools bootstrap

These changes solve my build problems on my reference machine.

It should work for you too :-)

comment:5 Changed 12 years ago by nonstop.server@…

Cc: nonstop.server@… added

Cc Me!

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

Cc: ryandesign@… removed
Owner: changed from macports-tickets@… to ryandesign@…
Status: newassigned

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

Thanks. Committed in r98694 with some changes. Since the bootstrap script is still running programs provided by the autoconf, automake and libtool ports, I added those dependencies to depends_build. ("use_autoreconf yes" had added them for you automatically, so when you removed that line it became your responsibility to add those dependencies yourself.) I also used the Tcl "file mkdir" command to make the project directory; no need to launch a separate program to do that.

With regard to the updated checksums, I see this is because you incorporated a fix to an issue I filed and re-tagged 1.0.1. Please avoid re-tagging your releases in the future. We call this a stealth update and we discourage it. Imagine what would have happened if we had accepted your 1.0.1 portfile as originally submitted (imagine we had figured out we needed to create the "project" directory and had included that directive in the portfile). Then two days later you re-tagged 1.0.1, thus changing the checksums. Now some users trying to install the port (those for whom the github server is closer than any MacPorts mirror server) will encounter a checksum mismatch error, which will inconvenience the user and will occupy our time when we have to deal with the bug report the user will undoubtedly file. Therefore once you've created a tag or release please consider it to be immutable. If you need to make further changes and publish them to your users, do so under a new version number.

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

Resolution: fixed
Status: assignedclosed

comment:9 in reply to:  7 Changed 12 years ago by okoeroo@…

Replying to ryandesign@…:

Thanks. Committed in r98694 with some changes. Since the bootstrap script is still running programs provided by the autoconf, automake and libtool ports, I added those dependencies to depends_build. ("use_autoreconf yes" had added them for you automatically, so when you removed that line it became your responsibility to add those dependencies yourself.) I also used the Tcl "file mkdir" command to make the project directory; no need to launch a separate program to do that.

With regard to the updated checksums, I see this is because you incorporated a fix to an issue I filed and re-tagged 1.0.1. Please avoid re-tagging your releases in the future. We call this a stealth update and we discourage it. Imagine what would have happened if we had accepted your 1.0.1 portfile as originally submitted (imagine we had figured out we needed to create the "project" directory and had included that directive in the portfile). Then two days later you re-tagged 1.0.1, thus changing the checksums. Now some users trying to install the port (those for whom the github server is closer than any MacPorts mirror server) will encounter a checksum mismatch error, which will inconvenience the user and will occupy our time when we have to deal with the bug report the user will undoubtedly file. Therefore once you've created a tag or release please consider it to be immutable. If you need to make further changes and publish them to your users, do so under a new version number.

Thanks for the fixes. I'm aware of my retagging action to be dangerous. As MacPorts is going to be the first one to really be hit by this I've took the liberty just this once to retag it fully understanding the potential impact of messing up the Port for others if I would do this again.

Note: See TracTickets for help on using tickets.