Skip to content

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

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions