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

[Packaging][RPM] *.rpm have too much dependencies #36832

Closed
kou opened this issue Jul 24, 2023 · 0 comments · Fixed by #36833
Closed

[Packaging][RPM] *.rpm have too much dependencies #36832

kou opened this issue Jul 24, 2023 · 0 comments · Fixed by #36833

Comments

@kou
Copy link
Member

kou commented Jul 24, 2023

Describe the bug, including details regarding any error messages, version, and platform.

rpmbuild generates dependency information based of linked shared libraries automatically.

For example, arrow12-libs has the following dependency information:

$ rpm -qpR arrow12-libs-12.0.1-1.el8.x86_64.rpm
brotli
gflags
ld-linux-x86-64.so.2()(64bit)
ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
libbrotlicommon.so.1()(64bit)
libbrotlidec.so.1()(64bit)
libbrotlienc.so.1()(64bit)
libbz2.so.1()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.17)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.28)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.2)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.6)(64bit)
libc.so.6(GLIBC_2.9)(64bit)
libcrypto.so.1.1()(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0)(64bit)
libcurl.so.4()(64bit)
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libgcc_s.so.1()(64bit)
libgcc_s.so.1(GCC_3.0)(64bit)
libgcc_s.so.1(GCC_3.4)(64bit)
libgcc_s.so.1(GCC_7.0.0)(64bit)
liblz4.so.1()(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libm.so.6(GLIBC_2.27)(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.12)(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
libre2.so.0()(64bit)
librt.so.1()(64bit)
libsnappy.so.1()(64bit)
libssl.so.1.1()(64bit)
libstdc++.so.6()(64bit)
libstdc++.so.6(CXXABI_1.3)(64bit)
libstdc++.so.6(CXXABI_1.3.5)(64bit)
libstdc++.so.6(CXXABI_1.3.7)(64bit)
libstdc++.so.6(CXXABI_1.3.8)(64bit)
libstdc++.so.6(CXXABI_1.3.9)(64bit)
libstdc++.so.6(GLIBCXX_3.4)(64bit)
libstdc++.so.6(GLIBCXX_3.4.11)(64bit)
libstdc++.so.6(GLIBCXX_3.4.14)(64bit)
libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
libstdc++.so.6(GLIBCXX_3.4.17)(64bit)
libstdc++.so.6(GLIBCXX_3.4.18)(64bit)
libstdc++.so.6(GLIBCXX_3.4.19)(64bit)
libstdc++.so.6(GLIBCXX_3.4.20)(64bit)
libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
libstdc++.so.6(GLIBCXX_3.4.22)(64bit)
libstdc++.so.6(GLIBCXX_3.4.5)(64bit)
libstdc++.so.6(GLIBCXX_3.4.9)(64bit)
libz.so.1()(64bit)
libz.so.1(ZLIB_1.2.0)(64bit)
libzstd
libzstd.so.1()(64bit)
lz4-libs >= 1.8.0
re2
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
rtld(GNU_HASH)
snappy
zlib

If we have libzstd.so.1()(64bit) in it, we don't need to add Requires: libzstd to our arrow.spec explicitly.
But we need Requires: lz4-libs >= 1.8.0 even when we have liblz4.so.1()(64bit) because lz4 version information doesn't exist in liblz4.so.1()(64bit). (If LZ4 uses liblz4.so.2 for LZ4 1.8.0 or later, we don't need Requires: lz4-libs >= 1.8.0.)

The Zstandard dependency is harmless. It's just duplicated. But the gflags dependency is needless because arrow12-libs doesn't use it.

Component(s)

Packaging

@kou kou added the Type: bug label Jul 24, 2023
kou added a commit to kou/arrow that referenced this issue Jul 24, 2023
@raulcd raulcd added this to the 13.0.0 milestone Jul 24, 2023
raulcd pushed a commit that referenced this issue Jul 25, 2023
### Rationale for this change

`arrowXX-libs` doesn't use `gflags` but it depends on `gflags`.

### What changes are included in this PR?

Remove needless explicit `Requires`.

### Are these changes tested?

Yes.

### Are there any user-facing changes?

Yes.
* Closes: #36832

Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Raúl Cumplido <[email protected]>
raulcd pushed a commit that referenced this issue Jul 25, 2023
### Rationale for this change

`arrowXX-libs` doesn't use `gflags` but it depends on `gflags`.

### What changes are included in this PR?

Remove needless explicit `Requires`.

### Are these changes tested?

Yes.

### Are there any user-facing changes?

Yes.
* Closes: #36832

Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Raúl Cumplido <[email protected]>
R-JunmingChen pushed a commit to R-JunmingChen/arrow that referenced this issue Aug 20, 2023
### Rationale for this change

`arrowXX-libs` doesn't use `gflags` but it depends on `gflags`.

### What changes are included in this PR?

Remove needless explicit `Requires`.

### Are these changes tested?

Yes.

### Are there any user-facing changes?

Yes.
* Closes: apache#36832

Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Raúl Cumplido <[email protected]>
loicalleyne pushed a commit to loicalleyne/arrow that referenced this issue Nov 13, 2023
### Rationale for this change

`arrowXX-libs` doesn't use `gflags` but it depends on `gflags`.

### What changes are included in this PR?

Remove needless explicit `Requires`.

### Are these changes tested?

Yes.

### Are there any user-facing changes?

Yes.
* Closes: apache#36832

Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Raúl Cumplido <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants