<p>There was a <a href="https://github.com/bitcoin/secp256k1/commit/ae6bc76e32016063a591399a7a2d7bac646603bc" rel="nofollow">breaking API change in libsecp256k1</a> that hasn't been addressed in libbitcoin's master branch. It has been addressed on their <a href="https://github.com/libbitcoin/libbitcoin/commit/aa39fd68b9042a341ae8a50bcd5941327a55acac" rel="nofollow"><code>develop</code> branch</a> if you want to go down that road.</p>

<p>I have had the most luck with mastercoin's <a href="https://github.com/mastercoin-MSC/install-msc/blob/master/res/install-sx.sh" rel="nofollow">install-sx.sh</a> script that pulls from older un-tagged commits that seem to work in harmony. </p>

CC BY-SA 3.0
2014-11-11T01:30:38.593Z
It works! Thank you for sharing the knowledge. I'd recommend all Windows users run a Virtual Machine/installation of Ubuntu 14 LTS to use SX, Pybitcointools and all other Python BTC utilities to their full extent (Windows is close to impossible)
Wizard Of Ozzie
CC BY-SA 3.0
2014-11-10T04:53:27.783Z
2014-11-10T04:53:27.783Z
lastcanal
<p>I'm trying to install the SX (<a href="http://SX.dyne.org" rel="nofollow">http://SX.dyne.org</a>) tools using Ubuntu 14 LTS following the installation instructions (<a href="http://sx.dyne.org/introduction.html#installation" rel="nofollow">http://sx.dyne.org/introduction.html#installation</a>). </p>

<ol>
<li>I use <strong>wget</strong> to download the SH script to root, then...</li>
<li>install with <code>sudo bash ./install-sx.sh</code></li>
</ol>

<p>All goes well until this point (terminal window output edited for brevity ie the start if the installation looks fine):</p>

<pre><code>checking for CURL... yes
checking for libsecp256k1... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating include/bitcoin/Makefile
config.status: creating src/Makefile
config.status: creating libbitcoin.pc
config.status: executing depfiles commands
config.status: executing libtool commands
configure: WARNING: unrecognized options: --with-libsecp256k1
Making all in include/bitcoin
make[1]: Entering directory '/usr/local/src/libbitcoin-git/include/bitcoin'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/usr/local/src/libbitcoin-git/include/bitcoin'
Making all in src
make[1]: Entering directory '/usr/local/src/libbitcoin-git/src'
  CXX      utility/ec_keys.lo
utility/ec_keys.cpp: In function 'libbitcoin::ec_point libbitcoin::secret_to_public_key(const ec_secret&amp;, bool)':
utility/ec_keys.cpp:66:23: error: 'secp256k1_ecdsa_pubkey_create' was not declared in this scope
             compressed))
                       ^

utility/ec_keys.cpp: In function 'bool libbitcoin::verify_public_key(const ec_point&amp;)':
utility/ec_keys.cpp:75:78: error: 'secp256k1_ecdsa_pubkey_verify' was not declared in this scope
     return secp256k1_ecdsa_pubkey_verify(public_key.data(), public_key.size());
                                                                              ^

utility/ec_keys.cpp: In function 'bool libbitcoin::verify_private_key(const ec_secret&amp;)':
utility/ec_keys.cpp:81:60: error: 'secp256k1_ecdsa_seckey_verify' was not declared in this scope
     return secp256k1_ecdsa_seckey_verify(private_key.data());
                                                            ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_tweak_add(libbitcoin::ec_point&amp;, const ec_secret&amp;)':
utility/ec_keys.cpp:115:73: error: 'secp256k1_ecdsa_pubkey_tweak_add' was not declared in this scope
     return secp256k1_ecdsa_pubkey_tweak_add(a.data(), a.size(), b.data());
                                                                         ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_multiply(libbitcoin::ec_point&amp;, const ec_secret&amp;)':
utility/ec_keys.cpp:121:73: error: 'secp256k1_ecdsa_pubkey_tweak_mul' was not declared in this scope
     return secp256k1_ecdsa_pubkey_tweak_mul(a.data(), a.size(), b.data());
                                                                         ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_add(libbitcoin::ec_secret&amp;, const ec_secret&amp;)':
utility/ec_keys.cpp:127:64: error: 'secp256k1_ecdsa_privkey_tweak_add' was not declared in this scope
     return secp256k1_ecdsa_privkey_tweak_add(a.data(), b.data());
                                                                ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_multiply(libbitcoin::ec_secret&amp;, const ec_secret&amp;)':
utility/ec_keys.cpp:133:64: error: 'secp256k1_ecdsa_privkey_tweak_mul' was not declared in this scope
     return secp256k1_ecdsa_privkey_tweak_mul(a.data(), b.data());
                                                                ^

utility/ec_keys.cpp: In function 'bool libbitcoin::verify_public_key(const ec_point&amp;)':
utility/ec_keys.cpp:76:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

utility/ec_keys.cpp: In function 'bool libbitcoin::verify_private_key(const ec_secret&amp;)':
utility/ec_keys.cpp:82:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_tweak_add(libbitcoin::ec_point&amp;, const ec_secret&amp;)':
utility/ec_keys.cpp:116:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
utility/ec_keys.cpp: In function 'bool libbitcoin::ec_multiply(libbitcoin::ec_point&amp;, const ec_secret&amp;)':
utility/ec_keys.cpp:122:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_add(libbitcoin::ec_secret&amp;, const ec_secret&amp;)':
utility/ec_keys.cpp:128:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_multiply(libbitcoin::ec_secret&amp;, const ec_secret&amp;)':
utility/ec_keys.cpp:134:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

make[1]: * [utility/ec_keys.lo] Error 1
make[1]: Leaving directory '/usr/local/src/libbitcoin-git/src'
make: * [all-recursive] Error 1
Xxxxx@ubuntu:/$ sx
The program 'sx' is currently not installed. You can install it by typing:
sudo apt-get install lrzsz
</code></pre>

<p>Has anyone got any idea why this is occurring and if there's a workaround? I initially had <strong>more</strong> issues with Ubuntu 12.04 LTS so have upgraded to 14 LTS as I mentioned. </p>

<ubuntu><error><installation><python>
Ubuntu 14 LTS with SX tools installation issues
Wizard Of Ozzie
# Ubuntu 14 LTS with SX tools installation issues

(Asked by: username_0 on 2014-10-30)

I'm trying to install the SX (<http://SX.dyne.org>) tools using Ubuntu 14 LTS following the installation instructions (<http://sx.dyne.org/introduction.html#installation>).

1. I use **wget** to download the SH script to root, then...
2. install with `sudo bash ./install-sx.sh`

All goes well until this point (terminal window output edited for brevity ie the start if the installation looks fine):

```
checking for CURL... yes
checking for libsecp256k1... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating include/bitcoin/Makefile
config.status: creating src/Makefile
config.status: creating libbitcoin.pc
config.status: executing depfiles commands
config.status: executing libtool commands
configure: WARNING: unrecognized options: --with-libsecp256k1
Making all in include/bitcoin
make[1]: Entering directory '/usr/local/src/libbitcoin-git/include/bitcoin'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/usr/local/src/libbitcoin-git/include/bitcoin'
Making all in src
make[1]: Entering directory '/usr/local/src/libbitcoin-git/src'
  CXX      utility/ec_keys.lo
utility/ec_keys.cpp: In function 'libbitcoin::ec_point libbitcoin::secret_to_public_key(const ec_secret&, bool)':
utility/ec_keys.cpp:66:23: error: 'secp256k1_ecdsa_pubkey_create' was not declared in this scope
             compressed))
                       ^

utility/ec_keys.cpp: In function 'bool libbitcoin::verify_public_key(const ec_point&)':
utility/ec_keys.cpp:75:78: error: 'secp256k1_ecdsa_pubkey_verify' was not declared in this scope
     return secp256k1_ecdsa_pubkey_verify(public_key.data(), public_key.size());
                                                                              ^

utility/ec_keys.cpp: In function 'bool libbitcoin::verify_private_key(const ec_secret&)':
utility/ec_keys.cpp:81:60: error: 'secp256k1_ecdsa_seckey_verify' was not declared in this scope
     return secp256k1_ecdsa_seckey_verify(private_key.data());
                                                            ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_tweak_add(libbitcoin::ec_point&, const ec_secret&)':
utility/ec_keys.cpp:115:73: error: 'secp256k1_ecdsa_pubkey_tweak_add' was not declared in this scope
     return secp256k1_ecdsa_pubkey_tweak_add(a.data(), a.size(), b.data());
                                                                         ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_multiply(libbitcoin::ec_point&, const ec_secret&)':
utility/ec_keys.cpp:121:73: error: 'secp256k1_ecdsa_pubkey_tweak_mul' was not declared in this scope
     return secp256k1_ecdsa_pubkey_tweak_mul(a.data(), a.size(), b.data());
                                                                         ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_add(libbitcoin::ec_secret&, const ec_secret&)':
utility/ec_keys.cpp:127:64: error: 'secp256k1_ecdsa_privkey_tweak_add' was not declared in this scope
     return secp256k1_ecdsa_privkey_tweak_add(a.data(), b.data());
                                                                ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_multiply(libbitcoin::ec_secret&, const ec_secret&)':
utility/ec_keys.cpp:133:64: error: 'secp256k1_ecdsa_privkey_tweak_mul' was not declared in this scope
     return secp256k1_ecdsa_privkey_tweak_mul(a.data(), b.data());
                                                                ^

utility/ec_keys.cpp: In function 'bool libbitcoin::verify_public_key(const ec_point&)':
utility/ec_keys.cpp:76:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

utility/ec_keys.cpp: In function 'bool libbitcoin::verify_private_key(const ec_secret&)':
utility/ec_keys.cpp:82:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_tweak_add(libbitcoin::ec_point&, const ec_secret&)':
utility/ec_keys.cpp:116:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
utility/ec_keys.cpp: In function 'bool libbitcoin::ec_multiply(libbitcoin::ec_point&, const ec_secret&)':
utility/ec_keys.cpp:122:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_add(libbitcoin::ec_secret&, const ec_secret&)':
utility/ec_keys.cpp:128:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

utility/ec_keys.cpp: In function 'bool libbitcoin::ec_multiply(libbitcoin::ec_secret&, const ec_secret&)':
utility/ec_keys.cpp:134:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

make[1]: * [utility/ec_keys.lo] Error 1
make[1]: Leaving directory '/usr/local/src/libbitcoin-git/src'
make: * [all-recursive] Error 1
Xxxxx@ubuntu:/$ sx
The program 'sx' is currently not installed. You can install it by typing:
sudo apt-get install lrzsz

```

Has anyone got any idea why this is occurring and if there's a workaround? I initially had **more** issues with Ubuntu 12.04 LTS so have upgraded to 14 LTS as I mentioned.

**Tags:** ubuntu, error, installation, python


---

## 1 answers

### Answer by username_1 on 2014-11-10. Score: 1 | Accepted answer

There was a [breaking API change in libsecp256k1](https://github.com/bitcoin/secp256k1/commit/ae6bc76e32016063a591399a7a2d7bac646603bc) that hasn't been addressed in libbitcoin's master branch. It has been addressed on their [`develop` branch](https://github.com/libbitcoin/libbitcoin/commit/aa39fd68b9042a341ae8a50bcd5941327a55acac) if you want to go down that road.

I have had the most luck with mastercoin's [install-sx.sh](https://github.com/mastercoin-MSC/install-msc/blob/master/res/install-sx.sh) script that pulls from older un-tagged commits that seem to work in harmony.

> **Comments:**
> **username_0**: It works! Thank you for sharing the knowledge. I'd recommend all Windows users run a Virtual Machine/installation of Ubuntu 14 LTS to use SX, Pybitcointools and all other Python BTC utilities to their full extent (Windows is close to impossible)  

---

