Skip to content

user(tao) group(tao) dependency blocks the installation of ACE+TAO packages #2423

@undergraver

Description

@undergraver

Version

ACE 8.0.4 / TAO 4.0.4

Host machine and operating system

Linux, openSUSE 16.0, 64 bit

Target machine and operating system (if different from host)

Compiler name and version (including patch level)

The $ACE_ROOT/ace/config.h file

No change, built with rpmbuild -ta rpmbuild -ta ACE+TAO-src-8.0.4.tar.gz

The problem effects:

It affects installation of rpms dues to a requirement (user(tao), group(tao) that is provided already by the rpm packages.

Synopsis

leap16:/home/iulians/rpmbuild/RPMS/x86_64 # zypper install *.rpm
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
'ace-kokyu = 0:8.0.4-1' is already installed.
No update candidate for 'ace-kokyu-8.0.4-1.x86_64'. The highest available version is already installed.
'ace-xml = 0:8.0.4-1' is already installed.
No update candidate for 'ace-xml-8.0.4-1.x86_64'. The highest available version is already installed.
'ace = 0:8.0.4-1' is already installed.
No update candidate for 'ace-8.0.4-1.x86_64'. The highest available version is already installed.
'mpc = 0:8.0.4-1' is already installed.
No update candidate for 'mpc-8.0.4-1.x86_64'. The highest available version is already installed.
'tao = 0:4.0.4-1' is already installed.
No update candidate for 'tao-4.0.4-1.x86_64'. The highest available version is already installed.
Resolving package dependencies...
6 Problems:
Problem: 1: nothing provides 'group(tao)' needed by the to be installed tao-cosconcurrency-4.0.4-1.x86_64
Problem: 2: nothing provides 'group(tao)' needed by the to be installed tao-cosevent-4.0.4-1.x86_64
Problem: 3: nothing provides 'group(tao)' needed by the to be installed tao-cosnaming-4.0.4-1.x86_64
Problem: 4: nothing provides 'group(tao)' needed by the to be installed tao-cosnotification-4.0.4-1.x86_64
Problem: 5: nothing provides 'group(tao)' needed by the to be installed tao-costrading-4.0.4-1.x86_64
Problem: 6: nothing provides 'group(tao)' needed by the to be installed tao-rtevent-4.0.4-1.x86_64

Problem: 1: nothing provides 'group(tao)' needed by the to be installed tao-cosconcurrency-4.0.4-1.x86_64
 Solution 1: do not install tao-cosconcurrency-4.0.4-1.x86_64
 Solution 2: break tao-cosconcurrency-4.0.4-1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/s/r/c/d/?] (c):
leap16:/home/iulians/rpmbuild/RPMS/x86_64 # 

Description

This is somehow confusing as there are already rpm scripts doing this so packages that are providing this:

leap16:/home/iulians/rpmbuild/RPMS/x86_64 # rpm -i tao-cosconcurrency-4.0.4-1.x86_64.rpm
error: Failed dependencies:
        group(tao) is needed by tao-cosconcurrency-4.0.4-1.x86_64
        user(tao) is needed by tao-cosconcurrency-4.0.4-1.x86_64
leap16:/home/iulians/rpmbuild/RPMS/x86_64 # rpm -q --scripts -p tao-cosconcurrency-4.0.4-1.x86_64.rpm | head
preinstall scriptlet (using /bin/sh):

getent group tao >/dev/null || /usr/sbin/groupadd -r tao
getent passwd tao >/dev/null || \
/usr/sbin/useradd -r -g tao -d /etc/tao -s /sbin/nologin \
    -c "TAO Services" tao
exit 0


# ================================================================
leap16:/home/iulians/rpmbuild/RPMS/x86_64 #

The package should be modified so that it looks it provides user(tao) and group(tao)

leap16:/home/iulians/rpmbuild/RPMS/x86_64 # rpm -q --provides tao-cosnotification-4.0.4-1.x86_64.rpm
config(tao-cosnotification) = 4.0.4-1
sysvinit(tao-cosnotification)
tao-cosnotification = 4.0.4-1
tao-cosnotification(x86-64) = 4.0.4-1
leap16:/home/iulians/rpmbuild/RPMS/x86_64 # 

Running this command shows the scripts by which add this user and group:

/home/iulians/rpmbuild/RPMS/x86_64# ls | xargs -I {}  sh -c "echo {} ; rpm -q --scripts -p {} | grep -C2 -E 'useradd|groupadd'"

These packages already do this:

  • tao-cosconcurrency-4.0.4-1.x86_64.rpm
  • tao-cosevent-4.0.4-1.x86_64.rpm
  • tao-cosnaming-4.0.4-1.x86_64.rpm
  • tao-cosnotification-4.0.4-1.x86_64.rpm
  • tao-costrading-4.0.4-1.x86_64.rpm
  • tao-rtevent-4.0.4-1.x86_64.rpm

But they are not mentioned as providing this; for example:

leap16:/home/iulians/rpmbuild/RPMS/x86_64 # rpm -q --provides -p tao-cosconcurrency-4.0.4-1.x86_64.rpm
config(tao-cosconcurrency) = 4.0.4-1
sysvinit(tao-cosconcurrency)
tao-cosconcurrency = 4.0.4-1
tao-cosconcurrency(x86-64) = 4.0.4-1
leap16:/home/iulians/rpmbuild/RPMS/x86_64 #

At the same time it requires, even if it provides it:

leap16:/home/iulians/rpmbuild/RPMS/x86_64 # rpm -q --requires -p tao-cosconcurrency-4.0.4-1.x86_64.rpm | grep "(tao)"
group(tao)
user(tao)
leap16:/home/iulians/rpmbuild/RPMS/x86_64 #

This problem was not seen with 8.0.2 / 4.0.2

/home/ # rpm -q --requires tao-cosconcurrency
/bin/bash
/bin/sh
/bin/sh
/bin/sh
/bin/sh
config(tao-cosconcurrency) = 4.0.2-1
libACE.so.8.0.2()(64bit)
libTAO.so.4.0.2()(64bit)
libTAO_AnyTypeCode.so.4.0.2()(64bit)
libTAO_CodecFactory.so.4.0.2()(64bit)
libTAO_CosConcurrency.so.4.0.2()(64bit)
libTAO_CosConcurrency_Serv.so.4.0.2()(64bit)
libTAO_CosConcurrency_Skel.so.4.0.2()(64bit)
libTAO_CosNaming.so.4.0.2()(64bit)
libTAO_PI.so.4.0.2()(64bit)
libTAO_PortableServer.so.4.0.2()(64bit)
libTAO_Svc_Utils.so.4.0.2()(64bit)
libTAO_Utils.so.4.0.2()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.34)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libgcc_s.so.1()(64bit)
libgcc_s.so.1(GCC_3.0)(64bit)
libm.so.6()(64bit)
libstdc++.so.6()(64bit)
libstdc++.so.6(CXXABI_1.3)(64bit)
libstdc++.so.6(CXXABI_1.3.9)(64bit)
libstdc++.so.6(GLIBCXX_3.4)(64bit)
logrotate
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
tao = 4.0.2
/home/ #

Any idea what change was made?

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions