Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added fedora instructions #616

Closed
wants to merge 5 commits into from
Closed

Added fedora instructions #616

wants to merge 5 commits into from

Conversation

Mechazawa
Copy link

No description provided.

@tribler-ci
Copy link
Contributor

Can one of the admins verify this patch?

@LipuFei
Copy link

LipuFei commented Jun 1, 2014

Not sure about this. We only have Debian/Ubuntu based systems for building tribler at the moment. Any other comments?

@NielsZeilemaker
Copy link

It seems ok, we'll test it in a fedora live environment.

python-netifaces vlc python-igraph \
python-pyasn1 gmpy gmp-devel python-pip \
rb_libtorrent-python wxPython
sudo pip install gmpy m2crypto twisted
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't really like advising people to install stuff trough pip system wide, maybe better to drop the sudo here.

Forgot that twisted needs python-devel and gmpy is already provided by yum
@Mechazawa
Copy link
Author

@whirm pip needs to be ran as root because twisted is installed in /usr/lib64/python2.7/site-packages/twisted and m2crypto needs to write to restricted directories.

```sh
sudo yum group install "Development Tools" -y
sudo yum install scons libevent-devel python-apsw \
python-netifaces vlc python-igraph \

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm getting "no package vlc available."

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems to be only available through rpmfusion

Name        : vlc
Arch        : x86_64
Version     : 2.1.4
Release     : 1.fc20
Size        : 4.1 M
Repo        : installed
From repo   : rpmfusion-free-updates
Summary     : The cross-platform open-source multimedia framework, player and
            : server
URL         : http://www.videolan.org
Licence     : GPLv2+
Description : VLC media player is a highly portable multimedia player and
            : multimedia framework capable of reading most audio and video
            : formats as well as DVDs, Audio CDs VCDs, and various streaming
            : protocols. It can also be used as a media converter or a server to
            : stream in uni-cast or multi-cast in IPv4 or IPv6 on networks.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This adds the rpmfusion-free repository

su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm -y'

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added the command to install the free rpmfusion repos in fb62d8e

@whirm
Copy link

whirm commented Jun 2, 2014

@Mechazawa then better go trough the virtualenv route (you could even provide a script to do it, you would make a few users in our forum happy), I think telling people to install a custom built m2crypto alongside the one in Fedora (which has EC disabled) it's not a really good idea.
And in general installing stuff on / bypassing the package manager is something to be avoided when possible.

@Mechazawa
Copy link
Author

It's installing all the requirements through yum now.

sudo yum group install "Development Tools" -y
sudo yum install scons libevent-devel python-apsw \
python-netifaces vlc python-igraph \
python-pyasn1 gmpy gmp-devel m2crypto \
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have the fedora guys enabled elliptic curves on their m2crypto build? If not this will not work.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like the only issue right now is m2crypto. The package maintainer didn't compile it with elliptic curves enabled. I could either see if I can contact him and see why it's disabled or it will have to be compiled from source. Compiling from source shouldn't be that hard unless it has some kind of ridicules dep chain.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it only m2crypto, or is openssl also missing the ecc stuff?
On Jul 25, 2014 9:25 PM, "Bas" notifications@github.com wrote:

In README.md:

  •                 python-m2crypto vlc python-igraph \
    
  •                 python-pyasn1 python-gmpy
    
    + + +### Fedora +You'll need to have the [rpmfusion] repos installed for vlc. only the rpmfusion-free repo is needed. This can be done by running the following command: +sh
    +su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm -y'
    + + +The following packages are needed to run tribler on Fedora: +sh
    +sudo yum group install "Development Tools" -y
    +sudo yum install scons libevent-devel python-apsw \
  •             python-netifaces vlc python-igraph \
    
  •             python-pyasn1 gmpy gmp-devel m2crypto \
    

Seems like the only issue right now is m2crypto. The package maintainer
didn't compile it with elliptic curves enabled. I could either see if I can
contact him and see why it's disabled or it will have to be compiled from
source. Compiling from source shouldn't be that hard unless it has some
kind of ridicules dep chain.


Reply to this email directly or view it on GitHub
https://github.com/Tribler/tribler/pull/616/files#r15419678.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

openssl ecc stuff seems to be functional

@NielsZeilemaker
Copy link

In the end, it doesnt work as we're missing the ec stuff like @whirm was saying.
I'm not sure if the openssl is crippled or m2crypto, but it doesn't work.

@whirm
Copy link

whirm commented Jul 24, 2014

@Mechazawa are you still interested in updating this?

@Mechazawa
Copy link
Author

Whoops sorry I forgot about it because I've had it pretty busy. I'll spin up a clean fedora VM tonight and I'll see exactly what will be needed. (yum only pref)

---- Elric Milon wrote ----

@Mechazawa are you still interested in updating this?


Reply to this email directly or view it on GitHub.

@whirm
Copy link

whirm commented Jul 25, 2014

Glad to hear that, thanks! :D

@vvs-
Copy link

vvs- commented Jul 30, 2014

Please, note that tracker bug for ECC in Fedora is here:
https://bugzilla.redhat.com/show_bug.cgi?id=1019390
You can check the status of various packages there.

@vvs-
Copy link

vvs- commented Jul 30, 2014

openssl ecparam -list_curves:

  secp384r1 : NIST/SECG curve over a 384 bit prime field
  secp521r1 : NIST/SECG curve over a 521 bit prime field
  prime256v1: X9.62/SECG curve over a 256 bit prime field

So, there is still no support for sect233k1 in Fedora.

@Mechazawa
Copy link
Author

Sadly, I don't have enough time to resolve the issues (in a clean way) for now. This means that the issue is better off being closed until someone else with enough time can fix it.

@Mechazawa Mechazawa closed this Jul 30, 2014
@whirm
Copy link

whirm commented Jul 31, 2014

Ok, thanks for trying :)

@setupminimal
Copy link

I have looked into this more, and it appears that use of the Elliptic Curve sect233k1 in OpenSSL is patent-encumbered. It will not be included into Fedora until the lawyers have secured a better gaurentee that Red Hat or Fedora users will not be sued for using the ECC routines in OpenSSL. The short-term resolution is to build OpenSSL with ECC support alongside system OpenSSL, so that Tribler can be used. This is a really complicated procedure, but I will be trying it and writing a procedure for Tribler users to use sometime in the next week. The longterm fix would be to move to a platform (like LibreSSL) that is not patent-encumbered, and I will also look into the feasability of that.

@whirm
Copy link

whirm commented Oct 27, 2014

What's actually encumbered is the actual curve, so it doesn't matter if we move to LibreSSL as they either have the same (encumbered) curve or they don't and we can't use it :)

It's not that hard to have a custom built OpenSSL library, you can check the script we use to build our virtualenv to run our experiments on the DAS4 supercomputer (which runs on CentOS): https://github.com/Tribler/gumby/blob/devel/scripts/build_virtualenv.sh

@fabianhjr
Copy link

I am no expert in this matter, why not fall back to other curves if it is unavailable?

In Fedora 21 openssl.x86_64 1:1.0.1j-1: openssl ecparam -list_curves

secp384r1 : NIST/SECG curve over a 384 bit prime field
secp521r1 : NIST/SECG curve over a 521 bit prime field
prime256v1: X9.62/SECG curve over a 256 bit prime field

@NielsZeilemaker
Copy link

The first two should suffice, although they're a bit "large". However, we need them to be enabled in m2crypto as well, as we're using m2crypto to interact with openssl.
Could you check if m2crypto has any curves available?

@az-z
Copy link

az-z commented Dec 20, 2014

NielsZellemaker - how do i do that? sorry not py dev.

@NielsZeilemaker
Copy link

Open a python console, and type

from M2Crypto import EC
dir(EC)

@az-z
Copy link

az-z commented Dec 20, 2014

Does it have what is needed ?

package - m2crypto-0.21.1-13.fc20.x86_64

[az@toshiba ec]$ python
Python 2.7.5 (default, Nov  3 2014, 14:26:24) 
[GCC 4.8.3 20140911 (Red Hat 4.8.3-7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from M2Crypto import EC
>>> dir(EC)
['BIO', 'EC', 'ECError', 'EC_pub', 'NID_X9_62_c2pnb163v1', 'NID_X9_62_c2pnb163v2', 'NID_X9_62_c2pnb163v3', 'NID_X9_62_c2pnb176v1', 'NID_X9_62_c2pnb208w1', 'NID_X9_62_c2pnb272w1', 'NID_X9_62_c2pnb304w1', 'NID_X9_62_c2pnb368w1', 'NID_X9_62_c2tnb191v1', 'NID_X9_62_c2tnb191v2', 'NID_X9_62_c2tnb191v3', 'NID_X9_62_c2tnb239v1', 'NID_X9_62_c2tnb239v2', 'NID_X9_62_c2tnb239v3', 'NID_X9_62_c2tnb359v1', 'NID_X9_62_c2tnb431r1', 'NID_X9_62_prime192v1', 'NID_X9_62_prime192v2', 'NID_X9_62_prime192v3', 'NID_X9_62_prime239v1', 'NID_X9_62_prime239v2', 'NID_X9_62_prime239v3', 'NID_X9_62_prime256v1', 'NID_secp112r1', 'NID_secp112r2', 'NID_secp128r1', 'NID_secp128r2', 'NID_secp160k1', 'NID_secp160r1', 'NID_secp160r2', 'NID_secp192k1', 'NID_secp224k1', 'NID_secp224r1', 'NID_secp256k1', 'NID_secp384r1', 'NID_secp521r1', 'NID_sect113r1', 'NID_sect113r2', 'NID_sect131r1', 'NID_sect131r2', 'NID_sect163k1', 'NID_sect163r1', 'NID_sect163r2', 'NID_sect193r1', 'NID_sect193r2', 'NID_sect233k1', 'NID_sect233r1', 'NID_sect239k1', 'NID_sect283k1', 'NID_sect283r1', 'NID_sect409k1', 'NID_sect409r1', 'NID_sect571k1', 'NID_sect571r1', 'NID_wap_wsg_idm_ecid_wtls1', 'NID_wap_wsg_idm_ecid_wtls10', 'NID_wap_wsg_idm_ecid_wtls11', 'NID_wap_wsg_idm_ecid_wtls12', 'NID_wap_wsg_idm_ecid_wtls3', 'NID_wap_wsg_idm_ecid_wtls4', 'NID_wap_wsg_idm_ecid_wtls5', 'NID_wap_wsg_idm_ecid_wtls6', 'NID_wap_wsg_idm_ecid_wtls7', 'NID_wap_wsg_idm_ecid_wtls8', 'NID_wap_wsg_idm_ecid_wtls9', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'ec_error', 'gen_params', 'load_key', 'load_key_bio', 'load_pub_key', 'load_pub_key_bio', 'm2', 'pub_key_from_der', 'util']

@almereyda
Copy link

How to proceed from here?

@NielsZeilemaker
Copy link

It seems promising, ill post another snippit which will test which curves actually work.

@az-z
Copy link

az-z commented Feb 8, 2015

@NielsZeilemaker ,
i see the issue is closed. I was under impression you are looking into this (fedora port). Please let me know.

@NielsZeilemaker
Copy link

I'll have another go with Fedora 21 to see if I can get Tribler up and running.

@NielsZeilemaker
Copy link

Unfortunately it's a no go, we can modify Tribler to get it running using the keys @fabianhjr mentioned. However, the master member keys (those used as an identifier for the communities) don't load and cannot load as the curves are not supported.

@az-z
Copy link

az-z commented Feb 14, 2015

Neils,
what are these "master keys"?
//sorry i'm of my league on this subject.
Maybe a better question is - what are the requirements (per package) on OS
? My line of thinking iseither to open the ticket with RH team or follow-up
on the existing tickets,

On Tue, Feb 10, 2015 at 5:10 PM, Niels Zeilemaker notifications@github.com
wrote:

Unfortunately it's a no go, we can modify Tribler to get it running using
the keys @fabianhjr https://github.com/fabianhjr mentioned. However,
the master member keys (those used as an identifier for the communities)
don't load and cannot load as the curves are not supported.


Reply to this email directly or view it on GitHub
#616 (comment).

@NielsZeilemaker
Copy link

It's a bit complex, but it's a part of the decentralized permission system tribler is using.
We can't change these keys to the ones which do work on fedora, as they are used as identifiers and changing them won't allow you to discover other peers using tribler.

@az-z
Copy link

az-z commented Feb 14, 2015

Will those that work in fedora work in other system?
On Feb 14, 2015 1:20 PM, "Niels Zeilemaker" notifications@github.com
wrote:

It's a bit complex, but it's a part of the decentralized permission system
tribler is using.
We can't change these keys to the ones which do work on fedora, as they
are used as identifiers and changing them won't allow you to discover other
peers using tribler.


Reply to this email directly or view it on GitHub
#616 (comment).

@NielsZeilemaker
Copy link

It will, but we cant easily switch to a new type of identifier

@az-z
Copy link

az-z commented Feb 14, 2015

What other diatributions that do not support these keys or its only rh?
On Feb 14, 2015 4:38 PM, "Niels Zeilemaker" notifications@github.com
wrote:

It will, but we cant easily switch to a new type of identifier


Reply to this email directly or view it on GitHub
#616 (comment).

@NielsZeilemaker
Copy link

I think it's only redhat, but you just needs to recompile openssl with the ecckeys enabled to get it working.

@az-z
Copy link

az-z commented Feb 17, 2015

@NielsZeilemaker
i pocked around a bit.
Does this package have all what is required ?
https://github.com/ptudor/centos6-openssl/commit/0d47cbdf595c0991751114664f62c57914131bda

@NielsZeilemaker
Copy link

I'm not sure, we're using sect curves which seem to be missing from that list. But have a go, if you get null pointers in m2 crypto then you know there is still a problem with openssl

@az-z
Copy link

az-z commented Feb 22, 2015

@NielsZeilemaker
how about this

<mock-ch/opt/openssl-compat-bitcoin/bin/openssl ecparam -list_curves
  secp112r1 : SECG/WTLS curve over a 112 bit prime field
  secp112r2 : SECG curve over a 112 bit prime field
  secp128r1 : SECG curve over a 128 bit prime field
  secp128r2 : SECG curve over a 128 bit prime field
  secp160k1 : SECG curve over a 160 bit prime field
  secp160r1 : SECG curve over a 160 bit prime field
  secp160r2 : SECG/WTLS curve over a 160 bit prime field
  secp192k1 : SECG curve over a 192 bit prime field
  secp224k1 : SECG curve over a 224 bit prime field
  secp224r1 : NIST/SECG curve over a 224 bit prime field
  secp256k1 : SECG curve over a 256 bit prime field
  secp384r1 : NIST/SECG curve over a 384 bit prime field
  secp521r1 : NIST/SECG curve over a 521 bit prime field
  prime192v1: NIST/X9.62/SECG curve over a 192 bit prime field
  prime192v2: X9.62 curve over a 192 bit prime field
  prime192v3: X9.62 curve over a 192 bit prime field
  prime239v1: X9.62 curve over a 239 bit prime field
  prime239v2: X9.62 curve over a 239 bit prime field
  prime239v3: X9.62 curve over a 239 bit prime field
  prime256v1: X9.62/SECG curve over a 256 bit prime field
  sect113r1 : SECG curve over a 113 bit binary field
  sect113r2 : SECG curve over a 113 bit binary field
  sect131r1 : SECG/WTLS curve over a 131 bit binary field
  sect131r2 : SECG curve over a 131 bit binary field
  sect163k1 : NIST/SECG/WTLS curve over a 163 bit binary field
  sect163r1 : SECG curve over a 163 bit binary field
  sect163r2 : NIST/SECG curve over a 163 bit binary field
  sect193r1 : SECG curve over a 193 bit binary field
  sect193r2 : SECG curve over a 193 bit binary field
  sect233k1 : NIST/SECG/WTLS curve over a 233 bit binary field
  sect233r1 : NIST/SECG/WTLS curve over a 233 bit binary field
  sect239k1 : SECG curve over a 239 bit binary field
  sect283k1 : NIST/SECG curve over a 283 bit binary field
  sect283r1 : NIST/SECG curve over a 283 bit binary field
  sect409k1 : NIST/SECG curve over a 409 bit binary field
  sect409r1 : NIST/SECG curve over a 409 bit binary field
  sect571k1 : NIST/SECG curve over a 571 bit binary field
  sect571r1 : NIST/SECG curve over a 571 bit binary field
  c2pnb163v1: X9.62 curve over a 163 bit binary field
  c2pnb163v2: X9.62 curve over a 163 bit binary field
  c2pnb163v3: X9.62 curve over a 163 bit binary field
  c2pnb176v1: X9.62 curve over a 176 bit binary field
  c2tnb191v1: X9.62 curve over a 191 bit binary field
  c2tnb191v2: X9.62 curve over a 191 bit binary field
  c2tnb191v3: X9.62 curve over a 191 bit binary field
  c2pnb208w1: X9.62 curve over a 208 bit binary field
  c2tnb239v1: X9.62 curve over a 239 bit binary field
  c2tnb239v2: X9.62 curve over a 239 bit binary field
  c2tnb239v3: X9.62 curve over a 239 bit binary field
  c2pnb272w1: X9.62 curve over a 272 bit binary field
  c2pnb304w1: X9.62 curve over a 304 bit binary field
  c2tnb359v1: X9.62 curve over a 359 bit binary field
  c2pnb368w1: X9.62 curve over a 368 bit binary field
  c2tnb431r1: X9.62 curve over a 431 bit binary field
  wap-wsg-idm-ecid-wtls1: WTLS curve over a 113 bit binary field
  wap-wsg-idm-ecid-wtls3: NIST/SECG/WTLS curve over a 163 bit binary field
  wap-wsg-idm-ecid-wtls4: SECG curve over a 113 bit binary field
  wap-wsg-idm-ecid-wtls5: X9.62 curve over a 163 bit binary field
  wap-wsg-idm-ecid-wtls6: SECG/WTLS curve over a 112 bit prime field
  wap-wsg-idm-ecid-wtls7: SECG/WTLS curve over a 160 bit prime field
  wap-wsg-idm-ecid-wtls8: WTLS curve over a 112 bit prime field
  wap-wsg-idm-ecid-wtls9: WTLS curve over a 160 bit prime field
  wap-wsg-idm-ecid-wtls10: NIST/SECG/WTLS curve over a 233 bit binary field
  wap-wsg-idm-ecid-wtls11: NIST/SECG/WTLS curve over a 233 bit binary field
  wap-wsg-idm-ecid-wtls12: WTLS curvs over a 224 bit prime field
  Oakley-EC2N-3: 
    IPSec/IKE/Oakley curve #3 over a 155 bit binary field.
    Not suitable for ECDSA.
    Questionable extension field!
  Oakley-EC2N-4: 
    IPSec/IKE/Oakley curve #4 over a 185 bit binary field.
    Not suitable for ECDSA.
    Questionable extension field!

@NielsZeilemaker
Copy link

The curves seem to be there.

@az-z
Copy link

az-z commented Feb 22, 2015

@NielsZeilemaker
what else do i need to check? Or i can just install the package and tribler will pick them (curves) up ?

@NielsZeilemaker
Copy link

You need to convince m2crypto to use this version of openssl. Or replace the default openssl completely.

@almereyda
Copy link

Now, why not also sending a Pull Request to upstream? I believe RPM world
could have its use for the additional crypto Tribler requires.

On 22 February 2015 at 18:32, Niels Zeilemaker notifications@github.com
wrote:

You need to convince m2crypto to use this version of openssl. Or replace
the default openssl completely.


Reply to this email directly or view it on GitHub
#616 (comment).

@az-z
Copy link

az-z commented Mar 15, 2015

@almereyda Jon, i think there is a conflict between feature request (from this application) and lawyers from redhat. easy to understand that latter wins.
@NielsZeilemaker ,
ill not be participating in this further unfortunately. Due to concerns in https://lists.torproject.org/pipermail/tor-dev/2014-December/007999.html

@synctext
Copy link
Member

@az-z
We are very much aware of that critical review on the Tor mailing list.
Most mentioned issues have been fixed and the last one should be addressed soon.

As a university research team we're very committed to fix all concerns and have the needed crypto expertise in the team. However, improvements take costly development time.
A nuanced follow-up can be read here: #1066 + details of remaining ECB issue.

Our darknet roadmap for coming years is here: #3

@bam80
Copy link

bam80 commented Apr 16, 2020

Maybe someone gives it another try, please?

@sbadux
Copy link

sbadux commented Jul 18, 2020

It would be great to have a rpm package. I'm not using Tribler because I'm on Fedora and it's not available

@devos50
Copy link
Contributor

devos50 commented Jul 19, 2020

I remember that we had quite some issues with M2Crypto. However, that dependency is long gone and the move to Python 3 might also resolve some dependency issues.

Unfortunately, our development time is scarce and we have to prioritise. Adding Fedora support would mean yet another platform to maintain, besides Windows/Mac/Debian/Ubuntu, which we already have our hands full with.

That said, as a first step we could try to setup a Fedora machine and try to install all required dependencies to run Tribler. We have some plans in the pipeline to do so with arch linux already.

@sbadux
Copy link

sbadux commented Jul 22, 2020

I remember that we had quite some issues with M2Crypto. However, that dependency is long gone and the move to Python 3 might also resolve some dependency issues.

Unfortunately, our development time is scarce and we have to prioritise. Adding Fedora support would mean yet another platform to maintain, besides Windows/Mac/Debian/Ubuntu, which we already have our hands full with.

That said, as a first step we could try to setup a Fedora machine and try to install all required dependencies to run Tribler. We have some plans in the pipeline to do so with arch linux already.

You may consider a distro-agnostic package like AppImage or Flatpak. It may solve a lot of problems but I'm not a developer so I don't know if it's difficult to create such kind of packages

@bam80
Copy link

bam80 commented Jul 22, 2020

+1 for distro-agnostic package like AppImage or Flatpak. Then you could drop distro-specific efforts altogether and just support Linux in a whole.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.