INTRODUCTION ============ This README applies to rpm.rte-4.13.0.4 and higher versions. rpm.rte older than 4.13.0.4 ships binaries and libraries in /usr/opt/freeware/lib and /usr/opt/freeware/bin paths. rpm.rte-4.13.0.x is dependent on libraries from the below mentioned minimal versioned rpm packages. rpm.rte-3.0.5.x has a slightly lesser dependency than rpm.rte-4.13.0.x. So as to mention, rpm.rte ships libraries extracted from below mentioned rpm packages. db-4.8.24 file-5.12 lua-5.1.5 popt-1.16 nss-3.14.3 nspr-4.9.5 readline-6.1 Also, other binary and libraries are shipped from these below rpm packages. These tools are required in case of rpm packages build etc.. bzip2-1.0.6 gettext-0.19.7 gzip-1.6 texinfo-4.6 (info) patch-2.5.4 ISSUES WITH OLDER APPROACH ========================== The problem with the older approach was that. 1. If any rpm package is installed, which is providing same library as what rpm.rte is installed, then the library from rpm package overwrites the library installed by rpm.rte fileset. Side effects of this is that, the rpm command might fail to load if the overwritten library from rpm package isn't compatible with what rpm.rte needs. This can cause other AIX commands like oslevel and lslpp to fail. 2. If any rpm package is installed, which is providing same library as what rpm.rte is installed then users can't remove this package. AIX-rpm virtual rpm package adds a dependency on these packages as the libraries are required to run rpm commands. AIX-rpm is just a virtual package which reflects what has been installed on the system by rpm.rte fileset. 3. If with rpm.rte-3.0.5.x, users install non toolbox repository rpm packages or in-house built rpm packages like gettext, db etc., then at his point all users applications are in working condition. Later, if update to latest rpm.rte-4.13.0.x happens either through TL update or manual update to rpm.rte-4.13.0.x or to rpm.rte-3.0.5.x, then rpm.rte overwrites the libraries installed by a users rpm package if they are same. So, later users application can fail if library what rpm.rte provides is incompatible with what the users application requires. CHANGES IN NEWER rpm.rte (4.13.0.4 onwards) =========================================== Newer solution has been implemented to resolve the issues mentioned above. Here are the highlights of the new changes. -> Newer rpm.rte ships it's required binaries and libraries under the path /usr/opt/rpm, which is totally isolated path than the earlier /opt/freeware paths. -> Keeps the libraries and binaries we were shipping in /opt/freeware/lib/ and /opt/freeware/bin/ as-is, so as not to break applications which are dependent and assuming that some libraries and binaries will be present in the system through rpm.rte. -> AIX-rpm doesn't have dependency on packages like gettext, db, readline etc., users can install and uninstall these packages and rpm command works fine. -> With rpm-3, if users installed packages like gettext, db etc.. then migrating to a newer rpm.rte won't overwrite what has been installed by these rpm packages. Users installed libraries and binaries will be taken backup and restored so that their environment won't be effected even if users installs packages from perzl or bull. Users application won't be effected and our rpm command works without any issues. -> Package building won't be effect, as the build, source paths, prefix, libpath, binpath are controlled using a macros file. So, when we build rpm package using 4.13.0.4, we should be getting the rpm packages with binaries and libraries path as our default __prefix path /opt/freeware. LIMITATIONS WITH NEWER SOLUTIONS ================================ With newer rpm.rte users can remove packages like gettext, db etc., as AIX-rpm doesn't have any dependency on them. However, after removing, binaries and libraries from these packages would be removed, which might be required for some other packages. This is because of the assumption that some binaries and libraries will be present in the system by default from the rpm.rte. One such example is. In some of rpm packages /sbin/install-info command is used in post install scripts. /sbin/install-info is provided by rpm.rte and also an info rpm package. If we remove info rpm package after migration to 4.13.0.4 then /sbin/install-info would be removed and some packages installation might fail later due to missing /sbin/install-info. One solution we are trying is to fix the info rpm package and not to overwrite what rpm.rte provides. Smilarly for other packages. IMPORTANT NOTE ============== As mentioned in limitation section, please make sure to check if the rpm packages being removed is required by any other rpm packages. KNOWN ISSUES ============ As mentioned in limitation sections we might see error while installing rpm packages if we removed the installed packages like info. As per the new approach, though removing packages won't effect any rpm functionality they might causes issues with other rpm packages. 1. Removing installed info rpm packages might through error about missing /sbin/install-info while installing rpm packages which uses install-info command in pre/post install script. 2. Removing installed gzip might through error about missing gzip command if gzip command is used in pre/post install script. Similarly removing packages like gettext, db, etc. can cause issues.