Bisq: Fedora/OpenSuse compatible RPM

Created on 25 Apr 2016  路  35Comments  路  Source: bisq-network/bisq

Request from Twitter user:
The .deb package is nice, I'm sure #linux users would love a Fedora/OpenSuse compatible RPM anything in the works?

If nayone has time and skills would be good to have!

feature good first issue installation

All 35 comments

I made those RPM packages for you, both for 32bit and 64bit

Wow great!

Trying to reach out to the bitsquare team atm so they can put them on their site, should be up shortly

@ivilata Could u handle that task?

@delevrything Great! Could you please send the spec files? Maybe they could be added as contributions in the source or attached to a wiki page explaining how to generate the different kinds of packages.

I didn't generate the rpms manually, I had the process automated via some scripts so I'm not able to generate or produce a .spec file for you unfortunately. Below are the links to the rpms already built however if you still want to use them, won't let me send through github because the packages are larger than 10MB.

EDIT by ManfredKarrer:
I removed that download links as they are not official Bitsquare builds!
Please never run binaries not originated from our Github release page!

Oh ok.
I am sorry but I cannot support that other people are providing built packages for obvious security and trust reasons.
I need a build script so I can built it on my own similar the deb build script in the /package/linux folder.

Please do not promote those packages and remove them as they are not official Bitsquare packages.

Please don't misunderstand me I apprecialte a lot your help but I am sure you understand my concerns.
The Bitsquare Beta binaries will be alos pgp signed.

No problem, I completely understand. If you want the scripts I used however I found something similiar via https://github.com/jordansissel/fpm

I wish your project the best of luck!

Checking in, need fedora rpms as well.

RPM are available now at the download page.

EDIT: Was removed later as they did not work.

Getting this error when trying to install the RPM.

2016-08-13:2046 PDT
[root@Unknown bitsquare]# rpm -iv Bitsquare-64bit-0.4.9.3.rpm 
error: Failed dependencies:
    libavcodec.so.53()(64bit) is needed by bitsquare-0.4.9.3-1.x86_64
    libavcodec.so.53(LIBAVCODEC_53)(64bit) is needed by bitsquare-0.4.9.3-1.x86_64
    libavcodec.so.54()(64bit) is needed by bitsquare-0.4.9.3-1.x86_64
    libavcodec.so.54(LIBAVCODEC_54)(64bit) is needed by bitsquare-0.4.9.3-1.x86_64
    libavformat.so.53()(64bit) is needed by bitsquare-0.4.9.3-1.x86_64
    libavformat.so.53(LIBAVFORMAT_53)(64bit) is needed by bitsquare-0.4.9.3-1.x86_64
    libavformat.so.54()(64bit) is needed by bitsquare-0.4.9.3-1.x86_64
    libavformat.so.54(LIBAVFORMAT_54)(64bit) is needed by bitsquare-0.4.9.3-1.x86_64

The dependencies are installed:

2016-08-13:2046 PDT
[root@Unknown bitsquare]# find / -name libavcodec.so
/usr/lib64/libavcodec.so

Perhaps there is something in the spec file that need to reference this location for Fedora?

A while ago I also tested Alien-converted packages in Fedora and found the same problem. I installed the FFMPEG libraries from RPM Fusion but versions still differed so I gave up at that point. Maybe a build of the exact same version of FFMPEG would fix the issue, otherwise building a native RPM of Bitsquare may do. Unfortunately my Fedora-fu is too short to provide more help! :(

Thanks for checking into it a bit more. Can you look up the locations of the .so files on a distro that works and post it here? Perhaps I can simply do symlinks from my /usr/lib64/*so files to where the package thinks they should be.

You'd just have to run the same find command on that distro:

# find / -name libavcodec.so

The RPMs seem to no longer be on the download page -- can they be rebuilt and added?

They never worked so far I got from responses. I have no Fedora/Suse setup to test and don't know exactly how to build RPM (prev. approach with Alien-converted seems was not successful). If anyone can provide a script to build them I will add them again.

Hi, my name is Jonny Heggheim and I am a Fedora packager [1]. I maintain the Electrum package and some of the dependencies for MultiBit HD in the official Fedora repository. I can assist making RPM for Fedora.

The biggest problem I see is changes to the Java installation.

[1] https://fedoraproject.org/wiki/User:Jonny

I did not know that it now works with non-modified Java, the latest version in Fedora is 1.8.0_111. There are work on getting openjfx into the standard Fedora repository https://bugzilla.redhat.com/show_bug.cgi?id=1145303

Thanks! For openJDK the security policy files don't need to be changes, thought the bouncycastle file and he secrurity file edit still need to be done. As we use our own bitcoinj fork.

Are there plans to bring back changes in the bitcoinj fork? Or have you different goals? I am also the maintainer of the bitcoinj package on Fedora.

There are no problems building a big static build and distribute it from the homepage of bitsquare. But Fedora have strict rules what they include in their official repository.

That is definitely in the roadmap. The reason was that they removed java serialisation and we use that. It will require a bit of work to remove all that dependencies to serialisation. We have plans as well to move completely away from java serialisation, though that is a bigger task not planned soon.
If any dev is interested to work on that (making it compatible with the bitcoinj head) would be great.
Though we had a few privacy related minor changes (remove http seeds, try to fix bloom filter issues - still not fixed) which would still require a fork (or we get a PR into bitcoinJ to make those features configurable).

A short update: I have made a RPM of openjfx for Fedora that I would like to get into the standard Fedora repository, it needs some polishing + some changes to openjdk package. Building and running bitsquare seems to work.

Cool!

A short update: The RPM of openjfx have been included into the standard official repository of Fedora and is available in Fedora 26 beta and soon in Fedora 25 (latest stable).

Is there still any work being done to put together an official Fedora RPM package of bisq? I'd love to try it out when something is available.

OpenJFX was added to the repository, so it easier to get started, I still build and run from the source code. I have started on some of its dependencies like https://bugzilla.redhat.com/show_bug.cgi?id=1467716 that have been in waiting for review for a while since I have not have time to peer reviews.

In the meantime, is there any approved way of installing Bisq on a non-deb GNU/Linux? Maybe just a compiled binary in a tar file or something? I'm sure there are lots of Fedora, CentOS, RHEL, etc users who're waiting to try Bisq out!

@hegjon what is the status of .rpm now? looked at several issues mentioning fedora/redhat and found no clear build instructions.

@ManfredKarrer said

RPM are available now at the download page.

But https://bisq.network/downloads/ has no RPM mentioned!

I added once bu it was not working. I don't have experience with RPM. If anyone provides build scripts I can add it but I cannot test the builds as I don't have a fedora/redhat VM set up.

@ManfredKarrer, alien does a reasonably good job converting from deb to rpm, at least to evaluate.
after running
alien --scripts --to-rpm Bisq-64bit-0.6.7.deb
and examining the package I see at least three problems:

  1. the name of ffmpeg libraries differs between deb and rpm based distributions. workaround - either include required ffmpeg libraries in the package or compile on target system.
  2. pre/post scripts don't directly carry over from deb to rpm and need minor adjustment.
    question - does bisq service really needed? application starts and appear to function without it.
  3. alien includes all folders starting from / into the package which causes conflict with filesystem package. file / from install of bisq-0.6.7-2.x86_64 conflicts with file from package filesystem-3.3-3.fc27.x86_64

All of the above is resolvable, I've done much more complicated conversions on a closed source deb package, but I would prefer to someone provide clear compile steps on latest CentOS and/or Fedora first, since source is open and there must be no need for ridiculous workarounds.

BTW, setting up a Fedora VM is more then trivial since Fedora provides live CD image.

I used alien in the past but the resulting binary was not working. If any one provides a tested script (convert existing deb into rpm and test on Fedora that it works) I will add a rpm for next release.

I have created lower hanging packages, but the biggest obstacle have been solved, OpenJFX is working out of the box (without media and webkit) on Fedora.

Here is conversion scenario. I commented out libavcodec|libavformat|libavutil dependencies because many missing even on original Ubuntu and Bisq seems to work without them.
produces bisq-0.6.7-2.x86_64.rpm in current folder. result installs in Fedora 27.

alien -r -g /path/to/Bisq-64bit-0.6.7.deb
find bisq-0.6.7 -type f | while read LIB; do LDDOUT=$(ldd $LIB 2>&1); LDDRETVAL=$?;if [ \( -z "${LDDOUT%%*you do not have execution permission for*}" \) -a \( $LDDRETVAL -eq 0 \) ]; then chmod -v +x $LIB;fi;done
cat bisq-0.6.7/bisq-0.6.7-2.spec | while read LINE; do if echo "$LINE" | grep -q "_unpackaged_files_terminate_build" ;then break; else echo "$LINE";fi;done > bisq.spec
rm bisq-0.6.7/bisq-0.6.7-2.spec
echo "AutoReqProv: no" >> bisq.spec
find bisq-0.6.7 | /usr/lib/rpm/rpmdeps --requires 2>&1| while read LIB; do if [ -z "$(find bisq-0.6.7 -name  ${LIB%%(*}\*)" ]; then echo "Requires: $LIB"; fi; done | egrep -v '(libavcodec|libavformat|libavutil)' >> bisq.spec
cat >> bisq.spec << "EOF"
%description
Bisq is ....

%preun
if [ "$1" = 0 ]; then
   xdg-desktop-menu uninstall --novendor /opt/Bisq/Bisq.desktop
fi

%post
xdg-desktop-menu install --novendor /opt/Bisq/Bisq.desktop

%files
/opt/Bisq
EOF

pushd bisq-0.6.7
rpmbuild --buildroot=$(pwd) -bb --target x86_64 ../bisq.spec
popd

Thanks! Will give it a try at the next release.

We didn't get this into v0.7.0. Can try for v0.7.1.

Was this page helpful?
0 / 5 - 0 ratings