issue with the csh rpm

I have discovered an inconsistency with the way the csh shell has been installed, which is preventing me from installing another package.

When I attempt to install http://build.oorexx.org/builds/interpreter-main/10881/opensuse131-x86_64/ooRexx-5.0.0-10881.x86_64.opensuse131.rpm (downloaded to my machine), I see this:


# **rpm -ivvf ~leslie/Downloads/Packages/ooRexx-related/ooRexx/V5.0/ooRexx-5.0.0-10881.x86_64.opensuse131.rpm**
D: ============== /home/leslie/Downloads/Packages/ooRexx-related/ooRexx/V5.0/ooRexx-5.0.0-10881.x86_64.opensuse131.rpm
D: loading keyring from pubkeys in /var/lib/rpm/pubkeys/*.key
D: couldn't find any keys in /var/lib/rpm/pubkeys/*.key
D: loading keyring from rpmdb
D: opening  db environment /var/lib/rpm cdb:private:0x201
D: opening  db index       /var/lib/rpm/Packages 0x400 mode=0x0
D: locked   db index       /var/lib/rpm/Packages
D: opening  db index       /var/lib/rpm/Name nofsync:0x400 mode=0x0
D:  read h#       1 Header SHA1 digest: OK (b0d86230a3899ea0e94d19d76dfc7a9700fca8c5)
D: added key gpg-pubkey-307e3d54-4be01a65 to keyring
D:  read h#    2615 Header SHA1 digest: OK (faeab15fa4ed927ebb9592ef79eef9026cf56697)
D: added key gpg-pubkey-7c99e700-548c0c7c to keyring
D:  read h#    3005 Header SHA1 digest: OK (b1eb0a454c07e2043d5e87672312c63e72f99fef)
D: added key gpg-pubkey-6f88bb2f-54032bd3 to keyring
D:  read h#    3006 Header SHA1 digest: OK (9f4a09e75e7bf3eca83fd6bad6545d3df95edd0e)
D: added key gpg-pubkey-c862b42c-5389b0bf to keyring
D:  read h#    3007 Header SHA1 digest: OK (1ba39134f52794fcd8ddac115e5815ed55e2459e)
D: added key gpg-pubkey-766da614-5492c4c7 to keyring
D:  read h#    3008 Header SHA1 digest: OK (670c994d081a51d57a005de738ed37424d2a0fde)
D: added key gpg-pubkey-1abd1afb-54176598 to keyring
D:  read h#    3029 Header SHA1 digest: OK (db885128df63c304446d8a99a45a2a74a4668214)
D: added key gpg-pubkey-6867f5be-4d77cecd to keyring
D:  read h#    3078 Header SHA1 digest: OK (89befeb8520e782772eddb6c0c89f126a0e22d2b)
D: added key gpg-pubkey-65be584c-50168bc7 to keyring
D:  read h#    3135 Header SHA1 digest: OK (1469533e8536aa7267f6567bbdc17415c8547785)
D: added key gpg-pubkey-392ffa88-51f00be3 to keyring
D:  read h#    3137 Header SHA1 digest: OK (365fa330f0771cae09e09f6f9cd825369b14aa8b)
D: added key gpg-pubkey-dcef338c-549356d3 to keyring
D:  read h#    4049 Header SHA1 digest: OK (66971eaf91d670b694659a33e42061c5b5467075)
D: added key gpg-pubkey-3dbdc284-53674dd4 to keyring
D: Using legacy gpg-pubkey(s) from rpmdb
D: Expected size:      1036541 = lead(96)+sigs(180)+pad(4)+data(1036261)
D:   Actual size:      1036541
D: /home/leslie/Downloads/Packages/ooRexx-related/ooRexx/V5.0/ooRexx-5.0.0-10881.x86_64.opensuse131.rpm: Header SHA1 digest: OK (fa7b6d5aad2c047828a248762ffa512f889815c9)
D:      added binary package [0]
D: found 0 source and 1 binary packages
D: opening  db index       /var/lib/rpm/Conflictname nofsync:0x400 mode=0x0
D: ========== +++ ooRexx-5.0.0-1 x86_64/linux 0x0
D: opening  db index       /var/lib/rpm/Basenames nofsync:0x400 mode=0x0
D:  read h#    3267 Header V3 RSA/SHA256 Signature, key ID 3dbdc284: OK
D:  Requires: /bin/bash                                     YES (db files)
D:  Requires: /bin/sh                                       YES (db files)
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: /bin/sh                                       YES (cached)
D:  read h#    5608 Header V3 RSA/SHA256 Signature, key ID 3dbdc284: OK
D:  Requires: /usr/bin/csh                                  YES (db files)
D:  Requires: /usr/bin/rexx                                 YES (added files)
D:  Requires: /usr/bin/sh                                   YES (db files)
D:  Requires: config(ooRexx) = 5.0.0-1                      YES (added provide)
D: opening  db index       /var/lib/rpm/Providename nofsync:0x400 mode=0x0
**D:  Requires: csh                                           NO**
D:  read h#    3195 Header V3 RSA/SHA256 Signature, key ID 3dbdc284: OK
D:  Requires: libc.so.6()(64bit)                            YES (db provides)
D:  Requires: libc.so.6(GLIBC_2.14)(64bit)                  YES (db provides)
D:  Requires: libc.so.6(GLIBC_2.2.5)(64bit)                 YES (db provides)
D:  Requires: libc.so.6(GLIBC_2.3)(64bit)                   YES (db provides)
D:  Requires: libdl.so.2()(64bit)                           YES (db provides)
D:  Requires: libdl.so.2(GLIBC_2.2.5)(64bit)                YES (db provides)
D:  read h#     142 Header V3 RSA/SHA256 Signature, key ID 3dbdc284: OK
D:  Requires: libgcc_s.so.1()(64bit)                        YES (db provides)
D:  Requires: libgcc_s.so.1(GCC_3.0)(64bit)                 YES (db provides)
D:  Requires: libm.so.6()(64bit)                            YES (db provides)
D:  Requires: libm.so.6(GLIBC_2.2.5)(64bit)                 YES (db provides)
D:  read h#     308 Header V3 RSA/SHA256 Signature, key ID 3dbdc284: OK
D:  Requires: libncurses.so.5()(64bit)                      YES (db provides)
D:  Requires: libpthread.so.0()(64bit)                      YES (db provides)
D:  Requires: libpthread.so.0(GLIBC_2.2.5)(64bit)           YES (db provides)
D:  Requires: libpthread.so.0(GLIBC_2.3.2)(64bit)           YES (db provides)
D:  Requires: librexx.so.5.0.0()(64bit)                     YES (added provide)
D:  Requires: librexxapi.so.5.0.0()(64bit)                  YES (added provide)
D:  read h#     237 Header V3 RSA/SHA256 Signature, key ID 3dbdc284: OK
D:  Requires: libstdc++.so.6()(64bit)                       YES (db provides)
D:  Requires: libstdc++.so.6(CXXABI_1.3)(64bit)             YES (db provides)
D:  Requires: libstdc++.so.6(GLIBCXX_3.4)(64bit)            YES (db provides)
D:  Requires: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)         YES (db provides)
D:  Requires: libtinfo.so.5()(64bit)                        YES (db provides)
D:  Requires: rpmlib(CompressedFileNames) <= 3.0.4-1        YES (rpmlib provides)
D:  Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1       YES (rpmlib provides)
D:  Requires: rpmlib(PayloadIsLzma) <= 4.4.6-1              YES (rpmlib provides)
D: opening  db index       /var/lib/rpm/Obsoletename nofsync:0x400 mode=0x0
**error: Failed dependencies:
        csh is needed by ooRexx-5.0.0-1.x86_64**
D: closed   db index       /var/lib/rpm/Obsoletename
D: closed   db index       /var/lib/rpm/Conflictname
D: closed   db index       /var/lib/rpm/Providename
D: closed   db index       /var/lib/rpm/Basenames
D: closed   db index       /var/lib/rpm/Name
D: closed   db index       /var/lib/rpm/Packages
D: closed   db environment /var/lib/rpm

But csh is installed:


#**whereis csh
csh: /usr/bin/csh /bin/csh** /etc/csh.login /etc/csh.cshrc /usr/share/man/man1/csh.1.gz

Further investigation shows:


# **rpm -q tcsh --filesbypkg|grep /csh**
tcsh                      **/bin/csh**
tcsh                      **/usr/bin/csh**
tcsh                      /usr/share/man/man1/csh.1.gz

but


# **rpm -q --whatprovides csh
no package provides csh**

So there appears to be an inconsistency in the packaging of csh. Or am I using the rpm command wrong? If I’m using it wrong, what is the proper way to code this query?

BTW, the csh shell works fine; I can switch to it from bash and echoing $0 shows me it’s running:


 00:06:58,leslie@pinto
~/Documents/SourceCode/c++/nute
$**echo $0**
**/bin/bash**
 00:10:00,leslie@pinto
~/Documents/SourceCode/c++/nute
$**csh**
c++/nute% **echo $0**
**csh**
c++/nute% **exit**
**exit**

Install csh-dummy from Packman-Repo:

zypper if csh-dummy
Loading repository data...
Reading installed packages...


Information for package csh-dummy:
----------------------------------
Repository: Packman
Name: csh-dummy
Version: 1.0-9.1
Arch: noarch
Vendor: http://packman.links2linux.de
Installed: No
Status: not installed
Installed Size: 533 B
Summary: A "dummy-package" to circumvent obsolete requires for csh
Description: 
  This is a "dummy-package" to circumvent obsolete requires for csh in newer
  SuSE-versions.
  
  Some Packages (i.e. Printer Drivers from Brother Inc.) require the package
  "csh", which has become obsolete some time ago, as the csh is now located in
  the package "tcsh".
  
  To circumvent installing rpm-Packages requiring csh with the "evil" switch
  "--nodeps", this "package" can be installed.
  
  This "package" is just an empty RPM, which registers the "package" csh in the
  rpm-database. It requires the package "tcsh" installed to correctly satisfy
  the requires for the C-shell on newer SuSE-versions.

This is interesting, because when I searched for csh on the downloads page, csh-dummy did not appear in the list. (Output from the links browser):


 Header Logo

Downloads
Support
Community
Development

Package Search

✓**csh **

Search

**x** Show development, language and debug packages
Show distribution:  **openSUSE:13.1**
 
**tcsh**

Star color Star color Star color Star bw Star bw

The C SHell

 Show  3 Development packages

debuginfo
debugsource
lang

**scsh**

Star color Star color Star color Star bw Star bw

An open-source Unix shell embedded within Scheme

**lrcShow-X**

Star color Star color Star color Star bw Star bw

Application for media-players to show and search lyrics

 Show  1 Development packages

lang

**electricsheep**

Star color Star color Star color Star bw Star bw

Screensaver showing collective dream of sleeping computers

 Show  2 Development packages
   
debuginfo
debugsource

**xapian-csharp**

Star color Star color Star color Star bw Star bw

Files needed for developing C# applications which use Xapian

 Show  1 Development packages

debuginfo

**gettext-csharp**

Star color Star color Star color Star bw Star bw

Native Language Support (NLS) for C#

**libcaca-csharp**

Star color Star color Star color Star bw Star bw

C# support for libcaca

**perl-Algorithm-StringHash-FromCSharp35-XS**

Star color Star color Star color Star bw Star bw

C#'s string Hashing Algorithm in V3.5

© 2011 Novell, Inc. and others. | About openSUSE | Legal information | Feedback 

It looks to me like csh-dummy should appear on this list; otherwise there is no way to know it is the solution. Alternatively, it should be marked as a corequisite of tcsh.

Would it be appropriate for me to open a bug ticket?

Even more interesting, when I search for csh-dummy on the downloads page, I get


   Header Logo
     * Downloads
     * Support
     * Community
     * Development

                                         Package Search

   **csh-dummy**______________________
   Ajax loader
    Search ] Configure search

   **X**] Show development, language and debug packages
    Show distribution:  **opensuse 13.1**_________]

   **No packages found matching your search.**

   (c) 2011 Novell, Inc. and others. | About openSUSE | Legal information | Feedback

It is from the Packman Repo, therefore not on software.opensuse.org.
http://packman.links2linux.org/package/csh-dummy

https://en.opensuse.org/Additional_package_repositories

Well, I contend that it should be part of the official repository. It is not found in a search for csh, so there is no way for a person who is trying to resolve the problem it fixes to find it. If I don’t know that it exists and it does not show up in a search, what good is it?

You get not all packages from openSUSE, so add the Repository and install it.

Take it or leave it.

**+1 **

Well, I contend that it should be part of the official repository. It is not found in a search for csh, so there is no way for a person who is trying to resolve the problem it fixes to find it. If I don’t know that it exists and it does not show up in a search, what good is it?

There is a purpose/reason why packman is up for use :slight_smile:

An RPM that fixes an issue with another RPM should at least be marked as a corequisite; and it should reside in the same repository so that it can be located.

I already said that there are reasons/purpose why packman repo is up. In any case feel free to contact the maintainer of that package or file a bug report since complaining here will not solve anything :wink:

Perhaps I am misreading. It was my impression that you installed a package that did not come from the opensuse repo. So the proper place for the “csh-dummy” package should be the site from which you downloaded (by your own reasoning).

On many systems, such as Mac OS X and Red Hat Linux, csh is actually tcsh, an improved version of csh.

I think, your package has the wrong requires inside for some Distribution.