# Why is Percona-Server-shared-compat-57 a dependency of Percona-Server-client-57?

**URL:** <https://forums.percona.com/t/why-is-percona-server-shared-compat-57-a-dependency-of-percona-server-client-57/24603>\
**Category:** Percona Server for MySQL 5.7\
**Created:** [August 22, 2023, 7:41pm UTC](https://forums.percona.com/t/why-is-percona-server-shared-compat-57-a-dependency-of-percona-server-client-57/24603 "2023-08-22T19:41:14Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![resuni](https://avatars.discourse-cdn.com/v4/letter/r/ac8455/32.png) [@resuni](https://forums.percona.com/u/resuni)\
**Post date:** [August 22, 2023, 7:41pm UTC](https://forums.percona.com/t/why-is-percona-server-shared-compat-57-a-dependency-of-percona-server-client-57/24603/1 "2023-08-22T19:41:14Z")

</div>

Hello,

We’re running Percona 5.7 on RHEL 8. When using dnf to install Percona from the yum repos, it wants to install Percona-Server-shared-compat-57.

```auto
$ sudo dnf install Percona-Server-server-57
Last metadata expiration check: 0:29:39 ago on Tue 22 Aug 2023 05:19:02 PM UTC.
Dependencies resolved.
================================================================================
 Package Arch Version Repository Size
================================================================================
Installing:
 Percona-Server-server-57 x86_64 5.7.43-47.1.el8 percona-release-x86_64 31 M
Installing dependencies:
 Percona-Server-client-57 x86_64 5.7.43-47.1.el8 percona-release-x86_64 7.7 M
 Percona-Server-shared-57 x86_64 5.7.43-47.1.el8 percona-release-x86_64 817 k
 Percona-Server-shared-compat-57
                           x86_64 5.7.43-47.1.el8 percona-release-x86_64 1.2 M
 compat-openssl10 x86_64 1:1.0.2o-4.el8_6 appstream 1.1 M
 libaio x86_64 0.3.112-1.el8 baseos 31 k

Transaction Summary
================================================================================
Install 6 Packages

Total size: 42 M
Installed size: 43 M

```

According to [the install guide](https://docs.percona.com/percona-server/5.7/installation/yum_repo.html):

> The `Percona-Server-shared-compat` package includes shared libraries for software compiled against older versions of the client library. The following libraries are included in this package: `libmysqlclient.so.12`, `libmysqlclient.so.14`, `libmysqlclient.so.15`, `libmysqlclient.so.16`, and `libmysqlclient.so.18`.

I understand why Percona would provide a package with these libraries, but why make it a dependency rather than instruct those using older mysql clients to opt into installing it?

---

<div class="post-metadata">

**Author:** ![matthewb](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/matthewb/32/34_2.png) [@matthewb](https://forums.percona.com/u/matthewb)\
**Post date:** [August 22, 2023, 8:30pm UTC](https://forums.percona.com/t/why-is-percona-server-shared-compat-57-a-dependency-of-percona-server-client-57/24603/2 "2023-08-22T20:30:44Z")

</div>

Would you rather have 1,000 people install your software and it just works out of the box, or have 1,000 people opening support tickets asking why the latest version of Percona Server doesn’t work on their system? 😉

If you don’t need it, you can remove it. `rpm -e --nodeps`

---

<div class="post-metadata">

**Author:** ![resuni](https://avatars.discourse-cdn.com/v4/letter/r/ac8455/32.png) [@resuni](https://forums.percona.com/u/resuni)\
**Post date:** [August 22, 2023, 8:33pm UTC](https://forums.percona.com/t/why-is-percona-server-shared-compat-57-a-dependency-of-percona-server-client-57/24603/3 "2023-08-22T20:33:39Z")

</div>

> If you don’t need it, you can remove it. `rpm -e --nodeps`

If I remove it, won’t it just get reinstalled the next time Percona updates?

---

<div class="post-metadata">

**Author:** ![matthewb](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/matthewb/32/34_2.png) [@matthewb](https://forums.percona.com/u/matthewb)\
**Post date:** [August 22, 2023, 8:53pm UTC](https://forums.percona.com/t/why-is-percona-server-shared-compat-57-a-dependency-of-percona-server-client-57/24603/4 "2023-08-22T20:53:52Z")

</div>

Probably. It’s not hurting anything to leave it there and not causing any other impact.

Side note, you do know that 5.7 dies in 40 days right? I’m hoping that this testing is prep for upgrade to 8.0 🙂

---

<div class="post-metadata">

**Author:** ![resuni](https://avatars.discourse-cdn.com/v4/letter/r/ac8455/32.png) [@resuni](https://forums.percona.com/u/resuni)\
**Post date:** [August 24, 2023, 5:32pm UTC](https://forums.percona.com/t/why-is-percona-server-shared-compat-57-a-dependency-of-percona-server-client-57/24603/5 "2023-08-24T17:32:42Z")

</div>

> Probably. It’s not hurting anything to leave it there and not causing any other impact.

Well, it installs the `compat-openssl10` package, which is affected by a number of CVEs right now. I know we’d only be affected by these CVEs if we were using a MySQL client that requires these older libraries, but it would be nice to have an easy, elegant way to remove the compatibility packages to keep our vulnerability scanner from complaining.

> Side note, you do know that 5.7 dies in 40 days right? I’m hoping that this testing is prep for upgrade to 8.0 🙂

Yes! In fact you provided a very useful answer in another thread I opened regarding upgrading: [InnoDB assertion failure crash when altering then optimizing table after upgrade from MySQL 5.7 to 8.0 - #6 by matthewb](https://forums.percona.com/t/innodb-assertion-failure-crash-when-altering-then-optimizing-table-after-upgrade-from-mysql-5-7-to-8-0/24287/6)

But the MySQL 8 version of this compatibility package will also be installed as a dependency of the MySQL 8 version of the client. I just used 5.7 as an example since that’s the version my test VM happened to have installed when I started this thread.

---

<div class="post-metadata">

**Author:** ![matthewb](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/matthewb/32/34_2.png) [@matthewb](https://forums.percona.com/u/matthewb)\
**Post date:** [August 24, 2023, 8:13pm UTC](https://forums.percona.com/t/why-is-percona-server-shared-compat-57-a-dependency-of-percona-server-client-57/24603/6 "2023-08-24T20:13:58Z")

</div>

> [@resuni](#):
>
> But the MySQL 8 version of this compatibility package will also be installed as a dependency of the MySQL 8 version of the client

I don’t think that’s correct. This is a RHEL9 system that I installed 8.0 on just two days ago. No compat packages here:

```auto
[root@db06-a data]# rpm -qa | grep -i percona
percona-release-1.0-27.noarch
percona-server-shared-8.0.33-25.1.el9.x86_64
percona-server-client-8.0.33-25.1.el9.x86_64
percona-icu-data-files-8.0.33-25.1.el9.x86_64
percona-server-server-8.0.33-25.1.el9.x86_64
percona-xtrabackup-80-8.0.34-29.1.el9.x86_64
percona-toolkit-3.5.4-2.el9.x86_64

[root@db06-a data]# rpm -qa | grep -i compat
libxcrypt-compat-4.4.18-3.el9.x86_64
polkit-pkla-compat-0.1-21.el9.x86_64
openldap-compat-2.6.2-3.el9.x86_64

[root@db06-a data]# rpm -qa | grep -i openssl
xmlsec1-openssl-1.2.29-9.el9.x86_64
openssl-libs-3.0.7-16.el9_2.x86_64
openssl-3.0.7-16.el9_2.x86_64

```

---

<div class="post-metadata">

**Author:** ![resuni](https://avatars.discourse-cdn.com/v4/letter/r/ac8455/32.png) [@resuni](https://forums.percona.com/u/resuni)\
**Post date:** [August 24, 2023, 9:52pm UTC](https://forums.percona.com/t/why-is-percona-server-shared-compat-57-a-dependency-of-percona-server-client-57/24603/7 "2023-08-24T21:52:00Z")

</div>

I just spun up a fresh Rocky 8 VM to check myself. When installing percona-server-server, the compat packages did get installed:

```auto
[vagrant@percona2 ~]$ rpm -qa | grep -i percona
percona-server-shared-compat-8.0.33-25.1.el8.x86_64
percona-icu-data-files-8.0.33-25.1.el8.x86_64
percona-server-shared-8.0.33-25.1.el8.x86_64
percona-server-server-8.0.33-25.1.el8.x86_64
percona-toolkit-3.5.4-2.el8.x86_64
percona-server-client-8.0.33-25.1.el8.x86_64
percona-xtrabackup-80-8.0.34-29.1.el8.x86_64
[vagrant@percona2 ~]$ rpm -qa | grep -i compat
polkit-pkla-compat-0.1-12.el8.x86_64
percona-server-shared-compat-8.0.33-25.1.el8.x86_64
compat-openssl10-1.0.2o-4.el8_6.x86_64
ncurses-compat-libs-6.1-9.20180224.el8.x86_64

```

The [documentation](https://docs.percona.com/percona-server/8.0/installation/yum-files.html) does say this:

> This package is not included in downloads for Red Hat Enterprise Linux 9 and derivatives.

Confirmed by spinning up a Rocky 9 VM and installing percona-server-server. Neither the percona compat package nor the openssl compat package were pulled in as dependencies:

```auto
[vagrant@localhost ~]$ rpm -qa | grep -i percona
percona-server-shared-8.0.33-25.1.el9.x86_64
percona-server-client-8.0.33-25.1.el9.x86_64
percona-icu-data-files-8.0.33-25.1.el9.x86_64
percona-server-server-8.0.33-25.1.el9.x86_64
[vagrant@localhost ~]$ rpm -qa | grep -i compat
libxcrypt-compat-4.4.18-3.el9.x86_64
openldap-compat-2.6.2-3.el9.x86_64
polkit-pkla-compat-0.1-21.el9.x86_64

```
