Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-4141

Galera library is not installable from MariaDB yum repository on Fedora

Details

    Description

      I tried Fedora 17, but I suppose it will be the same for 16 and 18.

      We have OS-specific packages for the server and Galera-server, but the galera library is the same rhel5 in all repositories (CentOS 5-6, Fedora 16-18). It installs all right on CentOS 5, but fails on Fedora 17 because it wants libssl.so.6 and libcrypto.so.6 which are not there:

      sudo yum install galera
      Loaded plugins: langpacks, presto, refresh-packagekit
      Resolving Dependencies
      --> Running transaction check
      ---> Package galera.x86_64 0:23.2.2-1.rhel5 will be installed
      --> Processing Dependency: libcrypto.so.6()(64bit) for package: galera-23.2.2-1.rhel5.x86_64
      --> Processing Dependency: libssl.so.6()(64bit) for package: galera-23.2.2-1.rhel5.x86_64
      --> Restarting Dependency Resolution with new changes.
      --> Running transaction check
      ---> Package galera.x86_64 0:23.2.2-1.rhel5 will be installed
      --> Finished Dependency Resolution
      Error: Package: galera-23.2.2-1.rhel5.x86_64 (mariadb)
                 Requires: libssl.so.6()(64bit)
      Error: Package: galera-23.2.2-1.rhel5.x86_64 (mariadb)
                 Requires: libcrypto.so.6()(64bit)
       You could try using --skip-broken to work around the problem
       You could try running: rpm -Va --nofiles --nodigest

      There might be a workaround, some sources suggest to link existing libcrypto.so and libssl.so libraries to the required .6 names, but it didn't work for me so far.

      In any case, it doesn't look solid, hopefully we can fix it somehow.
      If I build the library from sources, it links with .10 versions which are there:

      	libssl.so.10 => /lib64/libssl.so.10 (0x00007f895cc23000)
      	libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f895c889000)

      There is a complication though, Fedora 17 comes with gcc 4.7.2 which doesn't work with the current release sources of galera, it was only fixed in the galera tree as a post-fix for https://bugs.launchpad.net/galera/+bug/926464 (revision: http://bazaar.launchpad.net/~codership/galera/2.x/revision/138)

      Attachments

        Issue Links

          Activity

            elenst Elena Stepanova added a comment - - edited

            True, but it seems to be a different problem now. The new PRM (galera-23.2.4-1.rhel6) that we and Codership both have in the repo now installs on Fedora 17 all right through rpm, but doesn't work through yum. It doesn't fail and doesn't complain about dependencies, just ... doesn't get installed.

            $ sudo yum install galera-23.2.4-1.rhel6.x86_64.rpm
            Loaded plugins: langpacks, presto, refresh-packagekit
            Examining galera-23.2.4-1.rhel6.x86_64.rpm: galera-23.2.4-1.rhel6.x86_64
            Marking galera-23.2.4-1.rhel6.x86_64.rpm to be installed
            Resolving Dependencies
            --> Running transaction check
            ---> Package galera.x86_64 0:23.2.4-1.rhel6 will be installed
            --> Restarting Dependency Resolution with new changes.
            --> Running transaction check
            ---> Package galera.x86_64 0:23.2.4-1.rhel6 will be installed
            --> Finished Dependency Resolution
            $ echo $?
            0
            $ rpm -qa | grep -i galera
            $

            Consequently, MariaDB-Galera-server doesn't install either.

            But installing the same galera RPM through rpm works:

            $ sudo rpm -ivh galera-23.2.4-1.rhel6.x86_64.rpm
            Preparing... ########################################### [100%]
            1:galera ########################################### [100%]

            And after that it's possible to install MariaDB-Galera-server.

            We need to figure out why yum installation does not work.

            elenst Elena Stepanova added a comment - - edited True, but it seems to be a different problem now. The new PRM (galera-23.2.4-1.rhel6) that we and Codership both have in the repo now installs on Fedora 17 all right through rpm, but doesn't work through yum. It doesn't fail and doesn't complain about dependencies, just ... doesn't get installed. $ sudo yum install galera-23.2.4-1.rhel6.x86_64.rpm Loaded plugins: langpacks, presto, refresh-packagekit Examining galera-23.2.4-1.rhel6.x86_64.rpm: galera-23.2.4-1.rhel6.x86_64 Marking galera-23.2.4-1.rhel6.x86_64.rpm to be installed Resolving Dependencies --> Running transaction check ---> Package galera.x86_64 0:23.2.4-1.rhel6 will be installed --> Restarting Dependency Resolution with new changes. --> Running transaction check ---> Package galera.x86_64 0:23.2.4-1.rhel6 will be installed --> Finished Dependency Resolution $ echo $? 0 $ rpm -qa | grep -i galera $ Consequently, MariaDB-Galera-server doesn't install either. But installing the same galera RPM through rpm works: $ sudo rpm -ivh galera-23.2.4-1.rhel6.x86_64.rpm Preparing... ########################################### [100%] 1:galera ########################################### [100%] And after that it's possible to install MariaDB-Galera-server. We need to figure out why yum installation does not work.
            hkwi Hiroaki KAWAI added a comment -

            For the follwers, I'd like to put my workaround here for this issue.

            I created a galera rpm for fedora from source with following patch ( some are already fixed in bzr 2.x branch ):
            -----------------------------
            diff -u -r galera-23.2.6-src/SConstruct galera-23.2.6-src-new/SConstruct
            — galera-23.2.6-src/SConstruct 2013-06-29 07:05:37.000000000 +0900
            +++ galera-23.2.6-src-new/SConstruct 2013-09-12 13:23:32.183831162 +0900
            @@ -272,8 +272,8 @@
            conf.env.Append(CPPFLAGS = ' -DGALERA_USE_BOOST_POOL_ALLOC=1')

            1. due to a bug in boost >= 1.50 we need to link with boost_system
            2. - should be a noop with no boost_pool.
              1. if conf.CheckLib('boost_system'):
              2. conf.env.Append(LIBS=['boost_system'])
                + if conf.CheckLib('boost_system'):
                + conf.env.Append(LIBS=['boost_system'])
                else:
                print 'Error: boost/pool/pool_alloc.hpp not found or not usable'
                Exit(1)
                diff -u -r galera-23.2.6-src/scripts/build.sh galera-23.2.6-src-new/scripts/build.sh
                • galera-23.2.6-src/scripts/build.sh 2013-06-29 07:05:37.000000000 +0900
                  +++ galera-23.2.6-src-new/scripts/build.sh 2013-09-12 13:25:08.047343985 +0900
                  @@ -303,7 +303,7 @@
                  #if [ "$GALERA_REV" == "exported" ]
                  #then
                  GALERA_REV=$(bzr revno 2>/dev/null) || \
            • GALERA_REV=$(svnversion | sed s/\:/,/g) || \
              + GALERA_REV=$(svnversion | sed s/\:/,/g | sed s/ /_/g ) || \
              GALERA_REV=$(echo "xxxx")
              export GALERA_REV
              #fi
              diff -u -r galera-23.2.6-src/scripts/packages/galera.spec galera-23.2.6-src-new/scripts/packages/galera.spec
                • galera-23.2.6-src/scripts/packages/galera.spec 2013-06-29 07:05:37.000000000 +0900
                  +++ galera-23.2.6-src-new/scripts/packages/galera.spec 2013-09-12 13:47:01.082402947 +0900
                  @@ -96,13 +96,13 @@
                  %config(noreplace,missingok) %{_sysconfdir}/sysconfig/garb
                  %attr(0755,root,root) %{_sysconfdir}/init.d/garb

            -%attr(0755,root,root) %dir %{_bindir}
            +#%attr(0755,root,root) %dir %{_bindir}
            %attr(0755,root,root) %{_bindir}/garbd

            -%attr(0755,root,root) %dir %

            {libs}
            +#%attr(0755,root,root) %dir %{libs}

            %attr(0755,root,root) %

            {libs}

            /libgalera_smm.so

            -%attr(0755,root,root) %dir %

            {docs}
            +#%attr(0755,root,root) %dir %{docs}

            %doc %attr(0644,root,root) %

            {docs}/COPYING
            %doc %attr(0644,root,root) %{docs}

            /README
            %doc %attr(0644,root,root) %

            {docs}

            /README-MySQL
            diff -u -r galera-23.2.6-src/scripts/packages/rpm.sh galera-23.2.6-src-new/scripts/packages/rpm.sh
            — galera-23.2.6-src/scripts/packages/rpm.sh 2013-06-29 07:05:37.000000000 +0900
            +++ galera-23.2.6-src-new/scripts/packages/rpm.sh 2013-09-12 13:32:56.161842130 +0900
            @@ -44,7 +44,7 @@
            --define "optflags $RPM_OPT_FLAGS" \
            --define "version $1" \
            --define "release $RELEASE" \

            • -bb --short-circuit -bi $GALERA_SPEC
              + -bb $GALERA_SPEC

            RPM_ARCH=$(uname -m | sed s/i686/i386/)

            -----------------------------

            build and package (Fedora 18)
            -----------------------------
            ./scripts/build.sh
            ./scripts/packages/rpm.sh 18
            -----------------------------

            Install galera rpm with yum and the, install MariaDB-Galera-server.
            -----------------------------
            yum install galera-18-1.fc18.x86_64.rpm
            yum install MariaDB-Galera-server
            -----------------------------

            hkwi Hiroaki KAWAI added a comment - For the follwers, I'd like to put my workaround here for this issue. I created a galera rpm for fedora from source with following patch ( some are already fixed in bzr 2.x branch ): ----------------------------- diff -u -r galera-23.2.6-src/SConstruct galera-23.2.6-src-new/SConstruct — galera-23.2.6-src/SConstruct 2013-06-29 07:05:37.000000000 +0900 +++ galera-23.2.6-src-new/SConstruct 2013-09-12 13:23:32.183831162 +0900 @@ -272,8 +272,8 @@ conf.env.Append(CPPFLAGS = ' -DGALERA_USE_BOOST_POOL_ALLOC=1') due to a bug in boost >= 1.50 we need to link with boost_system - should be a noop with no boost_pool. if conf.CheckLib('boost_system'): conf.env.Append(LIBS= ['boost_system'] ) + if conf.CheckLib('boost_system'): + conf.env.Append(LIBS= ['boost_system'] ) else: print 'Error: boost/pool/pool_alloc.hpp not found or not usable' Exit(1) diff -u -r galera-23.2.6-src/scripts/build.sh galera-23.2.6-src-new/scripts/build.sh galera-23.2.6-src/scripts/build.sh 2013-06-29 07:05:37.000000000 +0900 +++ galera-23.2.6-src-new/scripts/build.sh 2013-09-12 13:25:08.047343985 +0900 @@ -303,7 +303,7 @@ #if [ "$GALERA_REV" == "exported" ] #then GALERA_REV=$(bzr revno 2>/dev/null) || \ GALERA_REV=$(svnversion | sed s/\:/,/g) || \ + GALERA_REV=$(svnversion | sed s/\:/,/g | sed s/ /_/g ) || \ GALERA_REV=$(echo "xxxx") export GALERA_REV #fi diff -u -r galera-23.2.6-src/scripts/packages/galera.spec galera-23.2.6-src-new/scripts/packages/galera.spec galera-23.2.6-src/scripts/packages/galera.spec 2013-06-29 07:05:37.000000000 +0900 +++ galera-23.2.6-src-new/scripts/packages/galera.spec 2013-09-12 13:47:01.082402947 +0900 @@ -96,13 +96,13 @@ %config(noreplace,missingok) %{_sysconfdir}/sysconfig/garb %attr(0755,root,root) %{_sysconfdir}/init.d/garb -%attr(0755,root,root) %dir %{_bindir} +#%attr(0755,root,root) %dir %{_bindir} %attr(0755,root,root) %{_bindir}/garbd -%attr(0755,root,root) %dir % {libs} +#%attr(0755,root,root) %dir %{libs} %attr(0755,root,root) % {libs} /libgalera_smm.so -%attr(0755,root,root) %dir % {docs} +#%attr(0755,root,root) %dir %{docs} %doc %attr(0644,root,root) % {docs}/COPYING %doc %attr(0644,root,root) %{docs} /README %doc %attr(0644,root,root) % {docs} /README-MySQL diff -u -r galera-23.2.6-src/scripts/packages/rpm.sh galera-23.2.6-src-new/scripts/packages/rpm.sh — galera-23.2.6-src/scripts/packages/rpm.sh 2013-06-29 07:05:37.000000000 +0900 +++ galera-23.2.6-src-new/scripts/packages/rpm.sh 2013-09-12 13:32:56.161842130 +0900 @@ -44,7 +44,7 @@ --define "optflags $RPM_OPT_FLAGS" \ --define "version $1" \ --define "release $RELEASE" \ -bb --short-circuit -bi $GALERA_SPEC + -bb $GALERA_SPEC RPM_ARCH=$(uname -m | sed s/i686/i386/) ----------------------------- build and package (Fedora 18) ----------------------------- ./scripts/build.sh ./scripts/packages/rpm.sh 18 ----------------------------- Install galera rpm with yum and the, install MariaDB-Galera-server. ----------------------------- yum install galera-18-1.fc18.x86_64.rpm yum install MariaDB-Galera-server -----------------------------
            oden Oden Eriksson added a comment - - edited

            To me it looks like the packages was built on a rhel5 host that has openssl-0.9.8x that uses the soname 6. Later fedora uses openssl-1.x with another soname. Usually this operation when you try to install for example a rhel5 package on another distro release for example rhel6 (or distro for that matter) is unsupported by the distro vendor.

            Solution: For Fedora 17 use packages that are built for Fedora 17.

            EDIT: I just read the intial report again and missed that the problem is elsewhere. rhel5 packages has been put in the Fedora 17 yum repo. I see now at for example http://yum.mariadb.org/10.0/fedora18-x86/rpms/ this is the problem as with:
            http://yum.mariadb.org/10.0/fedora18-x86/rpms/galera-23.2.4-1.rhel6.i386.rpm

            Solution: Provide galera binaries for Fedora 18 built on Fedora 18.

            oden Oden Eriksson added a comment - - edited To me it looks like the packages was built on a rhel5 host that has openssl-0.9.8x that uses the soname 6. Later fedora uses openssl-1.x with another soname. Usually this operation when you try to install for example a rhel5 package on another distro release for example rhel6 (or distro for that matter) is unsupported by the distro vendor. Solution: For Fedora 17 use packages that are built for Fedora 17. EDIT: I just read the intial report again and missed that the problem is elsewhere. rhel5 packages has been put in the Fedora 17 yum repo. I see now at for example http://yum.mariadb.org/10.0/fedora18-x86/rpms/ this is the problem as with: http://yum.mariadb.org/10.0/fedora18-x86/rpms/galera-23.2.4-1.rhel6.i386.rpm Solution: Provide galera binaries for Fedora 18 built on Fedora 18.

            That's only in the 10.0 repositories, which I haven't messed with much as MariaDB Galera Cluster is not available for them.

            Look instead at: http://yum.mariadb.org/5.5/fedora18-x86/rpms/

            The package there was built on Fedora 18. But it doesn't work. Add the repo, issue a 'yum install galera' and it doesn't actually install it.

            dbart Daniel Bartholomew added a comment - That's only in the 10.0 repositories, which I haven't messed with much as MariaDB Galera Cluster is not available for them. Look instead at: http://yum.mariadb.org/5.5/fedora18-x86/rpms/ The package there was built on Fedora 18. But it doesn't work. Add the repo, issue a 'yum install galera' and it doesn't actually install it.

            We are currently build MariaDB Galera server packages for fedora 19 and 20, galera packages supplied for those platforms install just fine.

            nirbhay_c Nirbhay Choubey (Inactive) added a comment - We are currently build MariaDB Galera server packages for fedora 19 and 20, galera packages supplied for those platforms install just fine.

            People

              nirbhay_c Nirbhay Choubey (Inactive)
              elenst Elena Stepanova
              Votes:
              3 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.