AIX

AIX

Connect with fellow AIX users and experts to gain knowledge, share insights, and solve problems.


#Power
#Power
 View Only
  • 1.  Does smit.cat not exist?

    Posted Mon February 23, 2026 04:07 PM

    Hi experts…

    Lately I've been working with SMIT menus and I've noticed that for each menu option, selector, and dialog box, there are references to a catalog file with information or help.

    Most of the references point to the smit.cat file, which is the default catalog file for messages.

    I understand that we can retrieve the messages and display them with commands like:

    # dspmsg -s 3 smit.cat 71 "Could not create user $USER."

    The location of the smit.cat file should be /usr/lib/nls/msg/en_US (depending on the language), but when I looked for it, it wasn't there.

    When I tried using the following command, it returned that there is no smit.cat file anywhere on the system.

    # find / -name smit.cat

    This would indicate that SMIT has a problem displaying messages from its menus, but SMIT calls to help do display information and help data correctly

    So where is the smit.cat file? .... Is it embedded somewhere?

    Other catalog files referenced in ODM's SMIT files, such as devices.cat, sas.cat, and serinstall.cat, are located in the /usr/lib/methods/ or /usr/lib/nls/msg/en_US/ directories.

    However, there are many other files, such as topas.cat, cmdnim.cat, rsetctl.cat, ewlm.cat, wlmcntrl.cat, chedition.cat, trustchk.cat, cmdtrace.cat, smtctl.cat, piosmit.cat, and vrtscsi.cat, to name a few, that are also nowhere to be found but also surely work well. 

    Regards

    Luis A. Rojas Kramer



    ------------------------------
    Luis Alberto Rojas Kramer
    Tech Support Specialist and Company Founder
    Grupo Integrador TFI, S.A. de C.V.
    Boca del Río
    5519501838
    ------------------------------


  • 2.  RE: Does smit.cat not exist?

    Posted Tue February 24, 2026 01:17 AM

    Sadly, I don't have an AIX box to try at the moment.  Have you tried running it with "truss", redirecting the stderr to a file, and then looking for the file searches / opens in the log?  Something is making me think you might need a "truss -f" to follow sub-processes, although I think the SMIT menu system is largely self-contained until it has to run queries or commands.



    ------------------------------
    Christopher Petersen
    ------------------------------



  • 3.  RE: Does smit.cat not exist?

    Posted Tue February 24, 2026 12:31 PM

    Thank you all for your comments... 

    That's right, the fileset bos.msg.en_US.rte is not installed. (it is an IBM AIX 7.3.4.0 image for PowerVS on IBM Cloud) 

    Using truss, we can notice each time the help is invoked an html file in /usr/share/man/info/en_US/a_doc_lib/aixhelp/smithelp  is opened and get info from it. 

    The question is... The smit.cat is not used/needed? or... html files are an alternative to help info due fileset is not installed?  

     

    Regards 

     

    Luis Rojas

     

                               Change / Show Day and Time

    Type or select values in entry fields.
    Press Enter AFTER making all desired changes.

                                                            [Entry Fields]
      YEAR (00-99/1970-2105)                             [26]                     #
      MONTH (01-12)                                      [02]                     #
      DAY (01-31)                                        [24]                     #

      HOUR (00-23)                                       [11]                     #
      MINUTES (00-59)                                    [22]                     #
      SECONDS (00-59)                                    [04]                     #

      +--------------------------------------------------------------------------+
      |                             CONTEXTUAL HELP                              |
      |                                                                          |
      | Press Enter or Cancel to return to the application.                      |
      |                                                                          |
      |   Displays the last two numbers of the current year (00-99).             |
      |                                                                          |
    F1| F1=Help                 F2=Refresh              F3=Cancel                |
    F5| F8=Image                Enter=Do                                         |
    F9+--------------------------------------------------------------------------+

    ----

    # lslpp -l bos.msg.en_US.rte
    lslpp: Fileset bos.msg.en_US.rte not installed.
    #
    # lslpp -w /usr/lib/nls/msg/en_US/smit.cat
    #
    # truss -t kopen -feado /tmp/truss.out smit date
    #
    # cat /tmp/truss.out
    Trace Started at: Tue Feb 24 11:16:02 2026
    17891762: 30671325: 2.6743:        kopen("/usr/bin/smit", O_RDONLY|O_LARGEFILE) = 3
    17891762: 30671325: 3.2356:        kopen("/dev/null", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) = 3
    17891762:     Received signal #20, SIGCHLD [caught]
    17236426:       *** process killed ***
    17891762:     Received signal #20, SIGCHLD [caught]
    17891762: 30671325: 3.3579:        kopen("/dev/null", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) = 3
    17891762:     Received signal #20, SIGCHLD [caught]
    9634160:        *** process killed ***
    17891762:     Received signal #20, SIGCHLD [caught]
    18547032:       *** process killed ***
    , SIGCHLD [caught]
    17891762: 30671325: 17.2477:        kopen("/usr/share/man/info/en_US/doc_registry", O_RDONLY) = 10
    17891762: 30671325: 17.2548:        kopen("/usr/share/man/info/en_US/doc_registry/cmhdevs.ref", O_RDONLY) = 11
    17891762: 30671325: 17.2650:        kopen("/usr/share/man/info/en_US/doc_registry/cmhenv.ref", O_RDONLY) = 11
    17891762: 30671325: 17.2656:        kopen("/usr/share/man/info/en_US/doc_registry/cmhinst.ref", O_RDONLY) = 11
    17891762: 30671325: 17.2661:        kopen("/usr/share/man/info/en_US/doc_registry/cmhnet.ref", O_RDONLY) = 11
    17891762: 30671325: 17.2755:        kopen("/usr/share/man/info/en_US/doc_registry/cmhnim.ref", O_RDONLY) = 11
    17891762: 30671325: 17.2761:        kopen("/usr/share/man/info/en_US/doc_registry/cmhprnt.ref", O_RDONLY) = 11
    17891762: 30671325: 17.2768:        kopen("/usr/share/man/info/en_US/doc_registry/cmhstor.ref", O_RDONLY) = 11
    17891762: 30671325: 17.2774:        kopen("/usr/share/man/info/en_US/doc_registry/cmhusgr.ref", O_RDONLY) = 11
    17891762: 30671325: 17.2780:        kopen("/usr/share/man/info/en_US/doc_registry/smithelp.ref", O_RDONLY) = 11
    17891762: 30671325: 17.2853:        kopen("/usr/share/man/info/en_US/a_doc_lib/aixhelp/smithelp/smit_date.htm", O_RDONLY) = 10
    17891762:                               (sleeping...)
    17891762: 30671325: 21.2178:        kopen("/usr/share/man/info/en_US/doc_registry", O_RDONLY) = 10
    17891762: 30671325: 21.2181:        kopen("/usr/share/man/info/en_US/doc_registry/cmhdevs.ref", O_RDONLY) = 11
    17891762: 30671325: 21.2191:        kopen("/usr/share/man/info/en_US/doc_registry/cmhenv.ref", O_RDONLY) = 11
    17891762: 30671325: 21.2195:        kopen("/usr/share/man/info/en_US/doc_registry/cmhinst.ref", O_RDONLY) = 11
    17891762: 30671325: 21.2198:        kopen("/usr/share/man/info/en_US/doc_registry/cmhnet.ref", O_RDONLY) = 11
    17891762: 30671325: 21.2207:        kopen("/usr/share/man/info/en_US/doc_registry/cmhnim.ref", O_RDONLY) = 11
    17891762: 30671325: 21.2211:        kopen("/usr/share/man/info/en_US/doc_registry/cmhprnt.ref", O_RDONLY) = 11
    17891762: 30671325: 21.2215:        kopen("/usr/share/man/info/en_US/doc_registry/cmhstor.ref", O_RDONLY) = 11
    17891762: 30671325: 21.2220:        kopen("/usr/share/man/info/en_US/doc_registry/cmhusgr.ref", O_RDONLY) = 11
    17891762: 30671325: 21.2224:        kopen("/usr/share/man/info/en_US/doc_registry/smithelp.ref", O_RDONLY) = 11
    17891762: 30671325: 21.2237:        kopen("/usr/share/man/info/en_US/a_doc_lib/aixhelp/smithelp/smit_date.htm", O_RDONLY) = 10
    17891762: 30671325: 27.2060:        kopen("/usr/share/man/info/en_US/doc_registry", O_RDONLY) = 10
    17891762: 30671325: 27.2063:        kopen("/usr/share/man/info/en_US/doc_registry/cmhdevs.ref", O_RDONLY) = 11
    17891762: 30671325: 27.2073:        kopen("/usr/share/man/info/en_US/doc_registry/cmhenv.ref", O_RDONLY) = 11
    17891762: 30671325: 27.2077:        kopen("/usr/share/man/info/en_US/doc_registry/cmhinst.ref", O_RDONLY) = 11
    17891762: 30671325: 27.2081:        kopen("/usr/share/man/info/en_US/doc_registry/cmhnet.ref", O_RDONLY) = 11
    17891762: 30671325: 27.2089:        kopen("/usr/share/man/info/en_US/doc_registry/cmhnim.ref", O_RDONLY) = 11
    17891762: 30671325: 27.2093:        kopen("/usr/share/man/info/en_US/doc_registry/cmhprnt.ref", O_RDONLY) = 11
    17891762: 30671325: 27.2097:        kopen("/usr/share/man/info/en_US/doc_registry/cmhstor.ref", O_RDONLY) = 11
    17891762: 30671325: 27.2102:        kopen("/usr/share/man/info/en_US/doc_registry/cmhusgr.ref", O_RDONLY) = 11
    17891762: 30671325: 27.2106:        kopen("/usr/share/man/info/en_US/doc_registry/smithelp.ref", O_RDONLY) = 11
    17891762: 30671325: 27.2119:        kopen("/usr/share/man/info/en_US/a_doc_lib/aixhelp/smithelp/smit_date.htm", O_RDONLY) = 10
    17891762:                               (sleeping...)
    17891762: 30671325: 31.8817:        kopen("/tmp/RFeqed", O_WRONLY|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) = 6
    17891762: 30671325: 31.9024:        kopen("/tmp/RFeqed", O_RDONLY) = 6
    17891762: *** process killed ***
    #

    ---

     

     






  • 4.  RE: Does smit.cat not exist?

    Posted Wed February 25, 2026 01:09 AM

    The htm file contains the help messages that display when you do an F1 on any smit menu option.

    The smit.cat file contains the messages that get displayed on the smit menu screen. The smit.cat is used only when you are in a non-default locale.



    ------------------------------
    Saikrishna Akkela
    ------------------------------



  • 5.  RE: Does smit.cat not exist?

    Posted Wed February 25, 2026 03:04 AM

    Sorry for the confusion.

     It was mentioned that "dspmsg" still outputs a message if the corresponding language file does not exist. My response was centered around that, were variables like LANG, LC__FASTMSG and NLSPATH influence its actions, the default message is usually hardcoded in the scripts that use "dspmsg" and still give meaningful output in case the proper .cat file (or the message number) cannot be found. Messages that "dspmsg" can use will be installed on the system by installing fileset bos.msg.$LANG.rte, e.g. bos.msg.en_US.rte.

    The help information for smitty comes from files in /usr/share/man/info/$LANG/a_doc_lib/aixhelp/smithelp and they are installed by installing fileset bos.help.msg.$LANG.smit, e.g. bos.help.msg.en_US.smit.

    So language-specific (error) messages from commands are taken from the bos.msg.$LANG.rte fileset, while smitty help information comes from a different fileset bos.help.msg.$LANG.smit. Hope this clarifies a bit.



    ------------------------------
    Richard Westerik
    Principal specialist
    Simac IT NL bv
    Ede
    +31651575123
    ------------------------------



  • 6.  RE: Does smit.cat not exist?

    Posted Tue February 24, 2026 01:54 AM
    Edited by Saikrishna Akkela Tue February 24, 2026 01:54 AM

    The cat files for a specific language are shipped with language filesets. But, the default messages are built into the program (binary/script) itself. Only when the locale is something different than the default (C), the msgs will be picked up from the cat files for specific locale if available, otherwise the default messages are displayed.

    Please check if you have bos.msg.en_US.rte  fileset installed. The smit.cat (/usr/lib/nls/msg/en_US/smit.cat) is shipped with it.

    $ lslpp -w /usr/lib/nls/msg/en_US/smit.cat
      File                                        Fileset               Type
      ----------------------------------------------------------------------------
      /usr/lib/nls/msg/en_US/smit.cat             bos.msg.en_US.rte     File

    You have to install the msg fileset of the particular locale if you are looking for the msgs of any other locale.



    ------------------------------
    Saikrishna Akkela
    ------------------------------



  • 7.  RE: Does smit.cat not exist?

    Posted Tue February 24, 2026 02:18 AM

    These .cat files are installed on the system when you install the bos.msg.language.rte fileset, where language is the locale, like en_US or another language.

    The reason you still get meaningful messages is because in almost all cases the programmer using 'dspmsg' has built-in a string to use when the catalog cannot be opened or the entry requested cannot be found in the catalog.

    In your example:

    dspmsg -s 3 smit.cat 71 "Could not create user $USER."

    This means dspmsg is instructed to show message 71 out of set 3 of the smit.cat file. But if it cannot find the file in the $NLSPATH directories (or cannot find message 71 in set 3), it displays the default message "Could not create user $USER". I think clear programming (using dspmsg's catch-all default or displaying something if dspmsg doesn't come up with a string) makes sure you get meaningful messages even though bos.msg.en_US.rte isn't installed.



    ------------------------------
    Richard Westerik
    Principal specialist
    Simac IT NL bv
    Ede
    +31651575123
    ------------------------------