Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I have built source code for omniORB version 4.2.3, available from Sourceforge. I have created an .rpm file using the provided source archive and .spec file. This build produces several packages including libomniORB4.2 and omniORB-devel. First I installed libomniORB4.2 and when I try to install omniORB-devel, it wants to install package omniORB(version 4.2.0) from the epel repo, for dependencies:
[developer@centos-arm aarch64]$ sudo yum install omniORB-devel-4.2.3-1.el7.aarch64.rpm
Loaded plugins: fastestmirror
Examining omniORB-devel-4.2.3-1.el7.aarch64.rpm: omniORB-devel-4.2.3-1.el7.aarch64
Marking omniORB-devel-4.2.3-1.el7.aarch64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package omniORB-devel.aarch64 0:4.2.3-1.el7 will be installed
--> Processing Dependency: libCOS4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
Loading mirror speeds from cached hostfile
epel/aarch64/metalink | 17 kB 00:00:00
* base: mirror.pit.teraswitch.com
* epel: packages.oit.ncsu.edu
* extras: mirror.genesisadaptive.com
* updates: mirror.pit.teraswitch.com
--> Processing Dependency: libCOSDynamic4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomniCodeSets4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomniConnectionMgmt4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomniDynamic4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomniORB4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomniZIOP4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomniZIOPDynamic4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomnisslTP4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomnithread.so.4()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Running transaction check
---> Package omniORB.aarch64 0:4.2.0-3.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==================================================================================================== ===========================================
Package Arch Version Repository Size
==================================================================================================== ===========================================
Installing:
omniORB-devel aarch64 4.2.3-1.el7 /omniORB-devel-4.2.3-1.el7.aarch64 21 M
Installing for dependencies:
omniORB aarch64 4.2.0-3.el7 epel 1.4 M
Total size: 23 M
Installed size: 30 M
Is this ok [y/d/N]: n
Exiting on user command
Your transaction was saved, rerun it with:
yum load-transaction /tmp/yum_save_tx.2021-03-22.14-23.YTXFPA.yumtx
[developer@centos-arm aarch64]$
Note the (64bit) qualifier in the above output.
If I try to install omniORB-devel it fails citing conflicts between package omniORB and libomniORB4.2 which is already installed.
The thing is, the libomniORB4.2 package I just built provides all of the same files as the omniORB from the repo.
When I list the contents of libomniORB4.2 and omniORB using rpm -qlp they are essentially identical other than version numbers:
[developer@centos-arm Downloads]$ rpm -qlp omniORB-4.2.0-3.el7.aarch64.rpm
/usr/lib64/libCOS4.so.2
/usr/lib64/libCOS4.so.2.0
/usr/lib64/libCOSDynamic4.so.2
/usr/lib64/libCOSDynamic4.so.2.0
/usr/lib64/libomniCodeSets4.so.2
/usr/lib64/libomniCodeSets4.so.2.0
/usr/lib64/libomniConnectionMgmt4.so.2
/usr/lib64/libomniConnectionMgmt4.so.2.0
/usr/lib64/libomniDynamic4.so.2
/usr/lib64/libomniDynamic4.so.2.0
/usr/lib64/libomniORB4.so.2
/usr/lib64/libomniORB4.so.2.0
/usr/lib64/libomniZIOP4.so.2
/usr/lib64/libomniZIOP4.so.2.0
/usr/lib64/libomniZIOPDynamic4.so.2
/usr/lib64/libomniZIOPDynamic4.so.2.0
/usr/lib64/libomnisslTP4.so.2
/usr/lib64/libomnisslTP4.so.2.0
/usr/lib64/libomnithread.so.4
/usr/lib64/libomnithread.so.4.0
/usr/share/doc/omniORB-4.2.0
/usr/share/doc/omniORB-4.2.0/COPYING.LIB
/usr/share/doc/omniORB-4.2.0/README.FIRST.txt
/usr/share/doc/omniORB-4.2.0/README.unix.txt
[developer@centos-arm Downloads]$
In all instances, the shorter name e.g. libCOS4.so.2 is a symlink to the version specific name libCOS4.so.2.3.
When I query the packages with rpm -qp --provides the output differs:
The omniORB package from the repo, which is an older version of omniORB lists its provided files with the (64bit) tag while the libomniORB that I built does not have the (64bit) tag.
libomniORB4.2 was built on a 64-bit ARM machine and if you query the files e.g.
[developer@centos-arm aarch64]$ file /usr/lib64/libCOS4.so.2.3 /usr/lib64/libCOS4.so.2.3: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=c4044d2801c254b4be0fdf7d27c83f3f13492db5, not stripped [developer@centos-arm aarch64]$
The produced files are recognized as 64-bit libraries.
Why is the rpm metadata different? What causes the (64bit) tag to be added to the rpm metadata?
I don't build RPMs, but from long term use with dnf on feodra and occasional interactions with RHEL repositories I can tell you my experiences. Version numbers are different, package names are similar, file names provided are the same, requirements are similar, all of which lead to conflicts. In most cases devel packages require the base package with the same name, but your base package name is prefixed with lib, so that is not the same.
If you disable the rhel repo during the install so it does not try and find the package there it is possible that your install of the devel package will succeed as long as all the defined dependencies are met.
As far as the (64bit) tag on the dependent libraries, there are 32 bit libraries as well, so that tells you it is selecting the proper 64 bit libraries for your needs. It also tells the installer to put those files in /user/lib64 and not /usr/lib.
Last edited by computersavvy; 03-30-2021 at 05:55 PM.
The Requires: line of the devel package for its base package should be arch-specific (i.e. include %{_isa}).
Generally, I wouldn't recommend using RPM spec files provided by upstream (BTW, which one you used, omniORB.spec or omniORB_new.spec?). Instead, download the RPM source package for omniORB 4.2.3 from Fedora 32 repository (or omniORB 4.2.4 from Fedora Rawhide repo) and rebuild it for CentOS 7.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.