Open Source Development

Power Open Source Development

Explore the open source tools and capabilities for building and deploying modern applications on IBM Power platforms including AIX, IBM i, and Linux.


#Power


#Power

 View Only
  • 1.  RPM version of libXrender then created a soft link pointing to the OS base version /usr/lpp/X11/lib/R7/libXrender.a and not /opt/freeware/lib/libXrender.a

    Posted Fri August 02, 2019 09:22 AM

    Originally posted by: Frederick_Dunne


    During an ugrade of IBM Filenet CPE, there were a set of RPM's that needed to be installed as required by Configuration Manager in Content Platform Engine.


    OS = AIX 7.1

    https://www-01.ibm.com/support/docview.wss?uid=swg27051235

    libffi-3.2.1-1.aix6.1.ppc.rpm
    glib2-2.52.2-1.aix6.1.ppc.rpm
    gettext-0.19.8.1-1.aix6.1.ppc.rpm
    ncurses-6.1-1.aix6.1.ppc.rpm
    libXrender-0.9.8-1waixX11.aix6.1.ppc.rpm
    fontconfig-2.11.95-3.aix6.1.ppc.rpm
    libXft-2.3.2-3waixX11.aix6.1.ppc.rpm
    atk-2.20.0-3.aix6.1.ppc.rpm
    libpng-1.6.27-2.aix6.1.ppc.rpm
    freetype2-2.8-1.aix6.1.ppc.rpm
    lzo-2.10-1.aix6.1.ppc.rpm
    pixman-0.34.0-1.aix6.1.ppc.rpm
    cairo-1.14.6-2waixX11.aix6.1.ppc.rpm
    harfbuzz-1.2.7-2.aix6.1.ppc.rpm
    pango-1.40.1-2waixX11.aix6.1.ppc.rpm
    intltool-0.51.0-2.aix6.1.noarch.rpm
    gdk-pixbuf-2.35.1-2waixX11.aix6.1.ppc.rpm
    rpm -ivh shared-mime-info-1.6-2.aix6.1.ppc.rpm
    libxcb-1.12-2waixX11.aix6.1.ppc.rpm
    xcb-proto-1.12-1.aix6.1.ppc.rpm

    After updating the RPM libXrender from libXrender-0.9.8-1.ppc to libXrender-0.9.8-2waixX11.ppc the soft link for the archive /usr/lib started pointing to the AIX base version of libXrender.a. Update was done using yum.

    root@sdssflnt6669 /root # ls -lrt /usr/lib/libXrender.a
    lrwxrwxrwx 1 root system 30 Jul 22 10:18 /usr/lib/libXrender.a -> /usr/lpp/X11/lib/R7/libXrender.a
    root@sdssflnt6669 /root #

    Due to which during an upgrade, started seeing an error as mentioned in the screenshot (filenet_libxrender error.jpg).

    Found that the base OS version of libXrender.a doesn't have the required library of libXrender.so.1 which is only available in the RPM version.

    root@sdssflnt6669 /root # ar tv /usr/lpp/X11/lib/R7/libXrender.a
    rwxr-x--- 300/300 70806 Apr 23 10:23 2018 shr.o
    rw-r----- 300/300 5495 Oct 26 23:58 2007 libXrender.so.0
    root@sdssflnt6669 /root # ar tv /opt/freeware/lib/libXrender.a
    rwxr-xr-x 0/0 383091 May 29 06:13 2018 libXrender.so.1
    rw-r--r-- 0/0 72911 May 29 06:13 2018 libXrender.so.0
    root@sdssflnt6669 /root #


    I then pointed out the soft link to the RPM version of archive and upgraded worked for a while but failed (see screenshot 2)
    root@sdssflnt6669 /root # ls -lrt /usr/lib/libXrender.a
    lrwxrwxrwx 1 root system 30 Jul 23 12:26 /usr/lib/libXrender.a -> /opt/freeware/lib/libXrender.a
    root@sdssflnt6669 /root #


    Now this time it was looking for a object shr_64.o which is not present in the archive of RPM version /opt/freeware/lib/libXrender.a . Although it is present in the base version of libXrender.a which is present in /usr/lpp/X11/lib/R7/libXrender.a

    root@sdssflnt6669 /root # ar -X64 tv /opt/freeware/lib/libXrender.a
    rwxr-xr-x 0/0 407535 May 29 06:13 2018 libXrender.so.1
    rw-r--r-- 0/0 77577 May 29 06:13 2018 libXrender.so.0
    root@sdssflnt6669 /root # ar -X64 tv /usr/lpp/X11/lib/R7/libXrender.a
    rwxr-x--- 300/300 76635 Apr 23 10:23 2018 shr_64.o
    rw-r----- 300/300 5737 Oct 26 23:58 2007 libXrender.so.0
    root@sdssflnt6669 /root #

    Now, If I go to my other server where I haven't updated the RPM version of libXrender, I could see there is an object shr_64.o present in that archive. See output below from a different server.

    root@sdssflno6807 /root # rpm -qa | grep -i libXrender
    libXrender-0.9.8-1.ppc
    root@sdssflno6807 /root # ar -X64 tv /opt/freeware/lib/libXrender.a
    rwxr-xr-x 0/0 69811 Aug 22 17:45 2013 libXrender.so.1
    rw-r--r-- 0/0 77577 Aug 22 17:48 2013 libXrender.so.0
    rwxr-xr-x 0/0 69811 Aug 22 17:48 2013 shr_64.o
    root@sdssflno6807 /root #

     


    Have two questions.

    1. Why was the fact that updating the RPM version of libXrender then created a soft link pointing to the OS base version /usr/lpp/X11/lib/R7/libXrender.a and not /opt/freeware/lib/libXrender.a

    2. When IBM is recommending the set of RPM's needed for the filenet upgrade for content engine which includes libXrender-0.9.8-2waixX11.ppc, then why is there shr_64.o object missing from the archive. I even tried installing libXrender-0.9.8-1waixX11.ppc and couldn't find that object in that archive either. Is this a known bug with this version of RPM? If yes, will there be newer version of RPM available on IBM developers network.

    Command used for upgrade is

    root@sdssflnt6669 /opt/IBM/FileNet/ContentEngine/tools/configure # ls -lrt configmgr
    -rwxrwxr-x 1 wasadm wasadm 827888 Nov 30 2018 configmgr
    root@sdssflnt6669 /opt/IBM/FileNet/ContentEngine/tools/configure #


    #AIXOpenSource
    #AIX-Open-Source-Software


  • 2.  Re: RPM version of libXrender then created a soft link pointing to the OS base version /usr/lpp/X11/lib/R7/libXrender.a and not /opt/freeware/lib/libXrender.a

    Posted Fri August 02, 2019 10:14 AM

    Originally posted by: AyappanP


    libXrender Toolbox rpm ( new or old ) never interferes with /usr/lib/libXrender.a 

    # rpm -ql libXrender-0.9.8-2waixX11.ppc
    /opt/freeware/doc/libXrender-0.9.8
    /opt/freeware/doc/libXrender-0.9.8/AUTHORS
    /opt/freeware/doc/libXrender-0.9.8/COPYING
    /opt/freeware/doc/libXrender-0.9.8/ChangeLog
    /opt/freeware/lib/libXrender.a
     

    /usr/lib/libXrender.a comes from AIX base X11 fileset.

    # lslpp -f X11.base.lib | grep libXrender
                            /usr/lpp/X11/lib/R7/libXrender.a
                            /usr/lib/libXrender.a -> /usr/lpp/X11/lib/R7/libXrender.a

     

    libXrender rpm modifying /usr/lib/libXrender.a will compromise the integrity of AIX base fileset. So we don't do that. 

     

    You mentioned about error screenshots. But nothing is attached here in this thread.

    And also if your LIBPATH is exported through java or something, make sure it aligns like this "/opt/freeware/lib:/usr/lib"  . 


    #AIX-Open-Source-Software
    #AIXOpenSource


  • 3.  Re: RPM version of libXrender then created a soft link pointing to the OS base version /usr/lpp/X11/lib/R7/libXrender.a and not /opt/freeware/lib/libXrender.a

    Posted Fri August 02, 2019 10:36 AM

    Originally posted by: Frederick_Dunne


    Thank you for your response.

    I have attached the missing screenshots.

     

    Thank you,


    Fred


    #AIX-Open-Source-Software
    #AIXOpenSource


  • 4.  Re: RPM version of libXrender then created a soft link pointing to the OS base version /usr/lpp/X11/lib/R7/libXrender.a and not /opt/freeware/lib/libXrender.a

    Posted Fri August 02, 2019 11:01 AM

    Originally posted by: AyappanP


    From the screenshots, it looks like LIBPATH is not proper. 

    Try to set the LIBPATH 

    export LIBPATH=/opt/freeware/lib:/usr/lib

    Please check this document --> https://developer.ibm.com/tutorials/installing-and-configuring-gtk-on-aix/


    #AIX-Open-Source-Software
    #AIXOpenSource


  • 5.  Re: RPM version of libXrender then created a soft link pointing to the OS base version /usr/lpp/X11/lib/R7/libXrender.a and not /opt/freeware/lib/libXrender.a

    Posted Mon August 05, 2019 01:42 PM

    Originally posted by: Frederick_Dunne


    Seems the customer is still having the issue.

    "Even after setting the LIBPATH, its not working and throwing up the same error. for gtk to work it needs libXrender.so.1 library which is present in the RPM version of /opt/freeware/lib/libXrender.a archive and not in the X11 fileset AIX base version of /usr/lpp/X11/lib/R7/libXrender .a

    But moving further, the installation fails as it also looks for shr_64.o object which is present in the AIX base version of /usr/lpp/X11/lib/R7/libXrender .a and not in the RPM version /opt/freeware/lib/libXrender.a

    Earlier version of libXrender.a (RPM) had the shr_64.o object in it".

    " The issue is that the installed gtk2/gdk is looking for libXrender.a archive which are two, one installed under /opt/freeware/lib (RPM) and the other installed in /usr/lib/ (OS base). Resolution or workaround was to point the LIBPATH to /opt/freeware/lib. But my issue is that there is a missing library under the RPM version of /opt/freeware/lib itself. shr_64.o missing from the archive of libXrender.a that got installed from libXrender-0.9.8-1waixX11.ppc".

     

     

    Thank you.


    #AIX-Open-Source-Software
    #AIXOpenSource


  • 6.  Re: RPM version of libXrender then created a soft link pointing to the OS base version /usr/lpp/X11/lib/R7/libXrender.a and not /opt/freeware/lib/libXrender.a

    Posted Tue August 06, 2019 04:42 AM

    Originally posted by: AyappanP


    To resolve the issue, you need to copy the shared objects from AIX X11 fileset libXrender.a to Toolbox rpm libXrender.a

    mkdir temp

    cd temp

    ar -X32_64 -x /usr/lpp/X11/lib/R7/libXrender.a

    ar -X32_64 -q /opt/freeware/lib/libXrender.a shr_64.o shr.o


    #AIXOpenSource
    #AIX-Open-Source-Software


  • 7.  Re: RPM version of libXrender then created a soft link pointing to the OS base version /usr/lpp/X11/lib/R7/libXrender.a and not /opt/freeware/lib/libXrender.a

    Posted Tue August 06, 2019 05:22 PM

    Originally posted by: Frederick_Dunne


    Thank you for your time and assistance on this.  That resolved the customers issue.
    The customer came back with the following question.

    Customer:
    I followed your instructions and the installation is working fine without any error. Since its a workaround, does it mean the RPM doesn't have the required library and if yes, will there be a new version of RPM available so that this issue is addressed in it and we don't have to perform any workaround.


    #AIXOpenSource
    #AIX-Open-Source-Software


  • 8.  Re: RPM version of libXrender then created a soft link pointing to the OS base version /usr/lpp/X11/lib/R7/libXrender.a and not /opt/freeware/lib/libXrender.a

    Posted Wed August 07, 2019 05:53 AM

    Originally posted by: AyappanP


    Two things to notice here.

    AIX Toolbox gtk rpms were built against AIX Toolbox libXrender rpm (not against AIX base X11 fileset provided libXrender).

    The Content Platform Engine provided jvm library "libawt_xawt.so" is built against AIX base X11 fileset provided libXrender. 

    Without any LIBPATH settings, this would have worked as the applications (binary/library) has the info about dynamically linked libraries path & name. 

    But we have seen java based applications used to export LIBPATH=/usr/lib somewhere which creates this problem. 

     

    To address the problem from our side, we decided to add the shared objects from AIX base libXrender library into Toolbox rpm libXrender library archive through post-install script. We will publish a new release of libXrender rpm soon in AIX toolbox.


    #AIX-Open-Source-Software
    #AIXOpenSource


  • 9.  RE: Re: RPM version of libXrender then created a soft link pointing to the OS base version /usr/lpp/X11/lib/R7/libXrender.a and not /opt/freeware/lib/libXrender.a

    Posted Mon January 03, 2022 09:00 AM
    To confirm...

    This was updated in libXrender-0.9.8-3waixX11.aix6.1.ppc.rpm

    Installing : libXrender-0.9.8-3waixX11.ppc 1/1
    add shr.o shared members from /usr/lib/libXrender.a to /opt/freeware/lib/libXrender.a
    add shr_64.o shared members from /usr/lib/libXrender.a to /opt/freeware/lib/libXrender.a

    Installed:
    libXrender.ppc 0:0.9.8-3waixX11


    ------------------------------
    Jan Harris
    ------------------------------