What specifies (64bit) tag on RPM files.
by rroberts59110 from LinuxQuestions.org on (#5FZTN)
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
Transaction Summary
==================================================================================================== ===========================================
Install 1 Package (+1 Dependent package)
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 aarch64]$ rpm -qlp libomniORB4.2-4.2.3-1.el7.aarch64.rpm
/etc/omniORB.cfg
/usr/lib64/libCOS4.so.2
/usr/lib64/libCOS4.so.2.3
/usr/lib64/libCOSDynamic4.so.2
/usr/lib64/libCOSDynamic4.so.2.3
/usr/lib64/libomniCodeSets4.so.2
/usr/lib64/libomniCodeSets4.so.2.3
/usr/lib64/libomniConnectionMgmt4.so.2
/usr/lib64/libomniConnectionMgmt4.so.2.3
/usr/lib64/libomniDynamic4.so.2
/usr/lib64/libomniDynamic4.so.2.3
/usr/lib64/libomniORB4.so.2
/usr/lib64/libomniORB4.so.2.3
/usr/lib64/libomniZIOP4.so.2
/usr/lib64/libomniZIOP4.so.2.3
/usr/lib64/libomniZIOPDynamic4.so.2
/usr/lib64/libomniZIOPDynamic4.so.2.3
/usr/lib64/libomnisslTP4.so.2
/usr/lib64/libomnisslTP4.so.2.3
/usr/lib64/libomnithread.so.4
/usr/lib64/libomnithread.so.4.1
/usr/share/doc/libomniORB4.2-4.2.3
/usr/share/doc/libomniORB4.2-4.2.3/COPYING
/usr/share/doc/libomniORB4.2-4.2.3/COPYING.LIB
/usr/share/doc/libomniORB4.2-4.2.3/CREDITS
[developer@centos-arm aarch64]$
and
[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:
[developer@centos-arm aarch64]$ rpm -qp libomniORB4.2-4.2.3-1.el7.aarch64.rpm --provides
config(libomniORB4.2) = 4.2.3-1.el7
libCOS4.so.2
libCOSDynamic4.so.2
libomniCodeSets4.so.2
libomniConnectionMgmt4.so.2
libomniDynamic4.so.2
libomniORB = 4.2.3-1.el7
libomniORB4.2 = 4.2.3-1.el7
libomniORB4.2(aarch-64) = 4.2.3-1.el7
libomniORB4.so.2
libomniZIOP4.so.2
libomniZIOPDynamic4.so.2
libomniorb = 4.2.3-1.el7
libomnisslTP4.so.2
libomnithread.so.4
omniORB = 4.2.3-1.el7
omniorb = 4.2.3-1.el7
[developer@centos-arm aarch64]$
and
[developer@centos-arm aarch64]$ rpm -qp ~/Downloads/omniORB-4.2.0-3.el7.aarch64.rpm --provides
omniORB = 4.2.0-3.el7
omniORB(aarch-64) = 4.2.0-3.el7
libCOS4.so.2()(64bit)
libCOSDynamic4.so.2()(64bit)
libomniCodeSets4.so.2()(64bit)
libomniConnectionMgmt4.so.2()(64bit)
libomniDynamic4.so.2()(64bit)
libomniORB4.so.2()(64bit)
libomnisslTP4.so.2()(64bit)
libomnithread.so.4()(64bit)
libomniZIOP4.so.2()(64bit)
libomniZIOPDynamic4.so.2()(64bit)
[developer@centos-arm aarch64]$
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?
Any help would be appreciated!


[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
Transaction Summary
==================================================================================================== ===========================================
Install 1 Package (+1 Dependent package)
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 aarch64]$ rpm -qlp libomniORB4.2-4.2.3-1.el7.aarch64.rpm
/etc/omniORB.cfg
/usr/lib64/libCOS4.so.2
/usr/lib64/libCOS4.so.2.3
/usr/lib64/libCOSDynamic4.so.2
/usr/lib64/libCOSDynamic4.so.2.3
/usr/lib64/libomniCodeSets4.so.2
/usr/lib64/libomniCodeSets4.so.2.3
/usr/lib64/libomniConnectionMgmt4.so.2
/usr/lib64/libomniConnectionMgmt4.so.2.3
/usr/lib64/libomniDynamic4.so.2
/usr/lib64/libomniDynamic4.so.2.3
/usr/lib64/libomniORB4.so.2
/usr/lib64/libomniORB4.so.2.3
/usr/lib64/libomniZIOP4.so.2
/usr/lib64/libomniZIOP4.so.2.3
/usr/lib64/libomniZIOPDynamic4.so.2
/usr/lib64/libomniZIOPDynamic4.so.2.3
/usr/lib64/libomnisslTP4.so.2
/usr/lib64/libomnisslTP4.so.2.3
/usr/lib64/libomnithread.so.4
/usr/lib64/libomnithread.so.4.1
/usr/share/doc/libomniORB4.2-4.2.3
/usr/share/doc/libomniORB4.2-4.2.3/COPYING
/usr/share/doc/libomniORB4.2-4.2.3/COPYING.LIB
/usr/share/doc/libomniORB4.2-4.2.3/CREDITS
[developer@centos-arm aarch64]$
and
[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:
[developer@centos-arm aarch64]$ rpm -qp libomniORB4.2-4.2.3-1.el7.aarch64.rpm --provides
config(libomniORB4.2) = 4.2.3-1.el7
libCOS4.so.2
libCOSDynamic4.so.2
libomniCodeSets4.so.2
libomniConnectionMgmt4.so.2
libomniDynamic4.so.2
libomniORB = 4.2.3-1.el7
libomniORB4.2 = 4.2.3-1.el7
libomniORB4.2(aarch-64) = 4.2.3-1.el7
libomniORB4.so.2
libomniZIOP4.so.2
libomniZIOPDynamic4.so.2
libomniorb = 4.2.3-1.el7
libomnisslTP4.so.2
libomnithread.so.4
omniORB = 4.2.3-1.el7
omniorb = 4.2.3-1.el7
[developer@centos-arm aarch64]$
and
[developer@centos-arm aarch64]$ rpm -qp ~/Downloads/omniORB-4.2.0-3.el7.aarch64.rpm --provides
omniORB = 4.2.0-3.el7
omniORB(aarch-64) = 4.2.0-3.el7
libCOS4.so.2()(64bit)
libCOSDynamic4.so.2()(64bit)
libomniCodeSets4.so.2()(64bit)
libomniConnectionMgmt4.so.2()(64bit)
libomniDynamic4.so.2()(64bit)
libomniORB4.so.2()(64bit)
libomnisslTP4.so.2()(64bit)
libomnithread.so.4()(64bit)
libomniZIOP4.so.2()(64bit)
libomniZIOPDynamic4.so.2()(64bit)
[developer@centos-arm aarch64]$
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?
Any help would be appreciated!