diff options
Diffstat (limited to 'app-backup/tsm')
-rw-r--r-- | app-backup/tsm/Manifest | 14 | ||||
-rw-r--r-- | app-backup/tsm/tsm-7.1.1.4.ebuild | 240 |
2 files changed, 254 insertions, 0 deletions
diff --git a/app-backup/tsm/Manifest b/app-backup/tsm/Manifest index 6098d57c705b..6a5acad682ed 100644 --- a/app-backup/tsm/Manifest +++ b/app-backup/tsm/Manifest @@ -26,6 +26,20 @@ DIST 7.1.0.3-TIVsm-msg.PT_BR.x86_64.rpm 3730125 SHA256 f1cde1ca9a74145382f9c1e6e DIST 7.1.0.3-TIVsm-msg.RU_RU.x86_64.rpm 4383399 SHA256 0d1b2559c09bada269b46cfa92c5201dd88594ab0fbac982f40cc647a8fe4804 SHA512 d4d39251a5b5c0507897855289cc7516fb4fdb60ef788b083332a9e15ff31788c74de64950cc04f67f0c16d64f7bccc85bbda07106f1cd1eba63c2f45df8cdee WHIRLPOOL 9b005c286968f7d2f74a32572e7094879ea5618b676d1e08cc3cb487df6e07aefeebdc48e9a2a0b1321ba010cae8dc341d610289411fc61d59bb8247f1fdb472 DIST 7.1.0.3-TIVsm-msg.ZH_CN.x86_64.rpm 3439170 SHA256 3ec55d3165b69c3d22d1d5fe96ab2398ce72952b8e6a3bc1b0e71011caefdf5d SHA512 acaaed9f3f5bf2e442b45b511cbfe6b6075b36be8073e61ba1fcc4bd794a717c436245febeb5f2198bc7a025600c006ef1cfa2b2380be00c5c9d38d8aea50a91 WHIRLPOOL 94b163b61e5a66aeb628f73228557a44812d25a3bbf2f804a8ef7feeae6990e0f0e7516133f07dea608ef88dbfa0f711510351ed8d161510a5e5d74ba6133d31 DIST 7.1.0.3-TIVsm-msg.ZH_TW.x86_64.rpm 3524512 SHA256 45962815b4deaa83a7202a7381cb02681b6f1edaa5c704000a8ef186a2955f85 SHA512 440c5d16d8681b60493f33b800d20cd4e4cec7cd60ae59d76b67043e7e9693a7654b5975e8ce5dffe29cafbafe9741bb1651630d65188ebc83bf29f572fb7ac4 WHIRLPOOL 37c2e7a0b3ddf4d87438cc2148c55c9d254f8954f2a78bed605ab02632cd9ac527d07dfb2b8b4161e4c96c75b08ba638f4925d157130ea94d517fa5859948d70 +DIST 7.1.1.4-TIV-TSMBAC-LinuxX86.tar 107806720 SHA256 5de583c2f655e19bd0dc5aa39120d889744e74fea4b0ee25b5c0abb09170405c SHA512 ef0d1aee978f7664b761ff48ad76c27a4693576eb43320f2367244e8d6c69bf69e6defa30d9abe61b56c2613ae08df4905097c695c3ceb3e3d657224fecf894f WHIRLPOOL 4c8cdcfe46caefd5f3717025e9c328894a808e0a972350f6b377a58527dbc2226d4af11d364f69ebec28f81b6778549169ae52f71dbe7930ed143a9ffe1707a8 +DIST 7.1.1.4-TIVsm-msg.CS_CZ.x86_64.rpm 4520127 SHA256 26d5d80a5a8b4185959401c0cae49dfa9f0368932984d8b9b0a0ef6a7dab15f7 SHA512 6af571027ff8500c696626c2087f735561b8e5b82be4e24a3d4abdb3d1d1dca0bccb63282f03a136bc1f2d48b0741661da80b67ff1e50ef3bdd9777f4f9aff29 WHIRLPOOL 6c3b316529c25ff5ca91c0e6d52fd4ef04bd2a759a522884f95fcfbd1841d6289c8d0bee44282aa86a27f8254693ddc05796592f318b0b7b9319fedf26f3d969 +DIST 7.1.1.4-TIVsm-msg.DE_DE.x86_64.rpm 3820514 SHA256 27ff21934c7b168e71024281a9b8bf34aeabdd62a9164bab4f27d9f3539263b1 SHA512 ce723adf833d0d52cdf644aebdef6499d011236bffd3a42756705c771350790a181416dff51bf4e9804e72c8dd80d6b7be8e8e315fc758ed735ec4b022e8636a WHIRLPOOL 670584187c600500c2686ca81b019accc0feee3e98779d399448b7e708a9e18801d6ac5266c0fb9d9899e1ee8627e9014aaa5ac5174d1b4fb426caf94c989767 +DIST 7.1.1.4-TIVsm-msg.ES_ES.x86_64.rpm 3850294 SHA256 58ed22a273afb165bd0d2808e535bf0834908970a69627e07b882ba321e27eb0 SHA512 08fdd1cc8f6f8ea9005f8d063b04a8cc780da9fd6e75e0101a70a2fd910829d4634bbe3b83bbbc8a154aba1ab9bd6f298b1c049fea99e915fa4cccae007ebe42 WHIRLPOOL 6d02d94939fc5faf28f4f12e4d38dba4160df078ce4d8b35a057b4158b5ad1b275cba198a5f1d5fe63c05c2577dacda2745bd59ae9930a02911591383b55a0fc +DIST 7.1.1.4-TIVsm-msg.FR_FR.x86_64.rpm 3804267 SHA256 8f72546a66ec593ca7b0e300fd347ff5d65099c78aa4c0d80ff343fe4271cdf4 SHA512 c768e9b1b4939572c4165d33c74b8221d6cd1ef96bee4d9c3a9754c9e611e7bbc23d825061ed8e2a9c36b061fff928cfa68e060cb40ba6349923bc958e7a42ac WHIRLPOOL a1a58b8aead6e1cd2703ebffff08ef3169e29a2a67f0d63048a297d1427aa1ab51e97dd9f77701c36996162d942a53b3b5f1451244db3956abba1f5521f19aa8 +DIST 7.1.1.4-TIVsm-msg.HU_HU.x86_64.rpm 3878375 SHA256 0f0876960630c0a3c20397da4fd5962a508521777d7a31210ff8a6e3c69b0c48 SHA512 bee4e11ca1f81c942b65fe5fdfcea3ad8bd08faefff7748798669bca3d417560688d3d8d83f8116cf78d6cfecd1e23f74d7f7563b7898d24759cddddceadcbd3 WHIRLPOOL 4ed75509abcfb68ee980fd0032f3eb0ab0e55a6282a1c50ce1d33d22573ff3ef1ccd6dd56dc20604ff502a92da7f66f4f962e1124a667bcdfb246eb464d7100e +DIST 7.1.1.4-TIVsm-msg.IT_IT.x86_64.rpm 3683951 SHA256 2a5fcf484a268bff79342ce23d0619811be1c3750959891a13a1a2df437a734f SHA512 bd051a1d52c92951530373d4beb47ccfbe61416d27a1b31525fa55464c4ce86247de1d170b505929f03c3cc9a6978e925a1e3561bbf21384df841fbb3362aaff WHIRLPOOL 0726e73590760b9ea0ad5995fb9500986929f7ec54427f3ed9c493bdf08323b35c1e73745b6d8e15af4755cc89695c4c8bf2d5ffe1074a09e22c0fdea768f15e +DIST 7.1.1.4-TIVsm-msg.JA_JP.x86_64.rpm 3833380 SHA256 3b83ecbb9eea4f21d01e16938a70dafb8e2380e8877195641a55008adddc2da9 SHA512 aa35807b0d8986cf8953cf85422e698f0090997e89288bb6e9f99286f6f8fe3f42a55eef581a1add66a2ff40cbfae25880327322ca07240a766d4ff9ceb97802 WHIRLPOOL 2fb68ee665a1131b5835de15c55091fb633cbde5e33eb0fa8e9dbc9d0f6dfd3884951d8a5d981575b775ad43b76be04a72a4e841d1ee3f80fbc8ff99d8c8612d +DIST 7.1.1.4-TIVsm-msg.KO_KR.x86_64.rpm 3670780 SHA256 1b3728a0235c2dc7019a327755f4962973add15bd4251a458443cbee35b55a97 SHA512 1a96e0457454ce9a54f984be5e994244e80ef77fa091748780cebbf2057983b91b9d291fa2ae2a45f1fd4907168dbf52af10c5988e0d2318f89a3b7fb107f315 WHIRLPOOL d18a95ac6c927e72b543c5dc003605aa1f96d491168b6d549ce731b43c8d74c00c25edf8d9e59121f35922263897a57fd6e931a01e5f9b06a0715f7d936d2ffa +DIST 7.1.1.4-TIVsm-msg.PL_PL.x86_64.rpm 3757534 SHA256 ffc9ea0027183357fe170d65e714694a557945f6f164a4790564d5cf49cd45de SHA512 3088182f7cebf20b4ed9da2ca18f8bfa05def5cd671eca638629bd83fa8bd8bf152fbb2db710348d958777a8b1ecf890a09ddeef72010fca563827f4392c2814 WHIRLPOOL 1c130637bf9cfb64ebb6bd379409568c57b160212ab1384f9bb6099aac70d61d74bb4e80c7c71db08891f3bd125f08e235e3e682f054d4fd4ee1ea8ea7856798 +DIST 7.1.1.4-TIVsm-msg.PT_BR.x86_64.rpm 3787311 SHA256 78e593b5291c56f9b10f45dad3880715445622deea371d5364cf6a8d7074a5b2 SHA512 c1de15f6e192ade933350a1eeebf4b33ae7f013697e8df4009424dcc21d29a4a8aa4b814e8e00ac16df536191644f72ea08f055a2851fc0c05e46144427ed80f WHIRLPOOL 6d0f66f60b31bb1630aa0139dbbf75baebe0944378f53211314065bf83342330a554d60bed48a8d95d6f747c93b30c775a00c938a583513ed8844727cb216462 +DIST 7.1.1.4-TIVsm-msg.RU_RU.x86_64.rpm 4439766 SHA256 63ceac563d7b7aeab48519533e8a6eafd946e79ddc3168e3893473579d628498 SHA512 e20ef1f68a9cb1a1ee6ad5d9873ad27b3bc8c9d93bb01a82459e6a2abfb2f69a2f2d52f11913e3d6b14db3c6c9f558d46dda5b5ccfd6a7bdb7d652ff3ff86d4c WHIRLPOOL 5c10159b8fbe0eaa55f1b54b4ef2ab026cc9128125af40274978085331f6a0ee249f5fbb853d4f882a5fde04812cf9977140539e8ba2e3b5f192db04a2e777cf +DIST 7.1.1.4-TIVsm-msg.ZH_CN.x86_64.rpm 3498617 SHA256 56a1f7ea91336451935fba3c2a450fd34aaa9f387f94166b2dbe75bdbb9fcba5 SHA512 c047dea24569348e36390936fa1bf5ce505503a62042b5965be70b7f860992bfcabf735c8ea1a64fc88d70140d1bfa54f3197a04daa24fa0ad815fcdf1d4aa2a WHIRLPOOL 4f78fb8acc82ca5dafcef700876303b5ae53bd6662ba35613f0737dd617cb566904d9f5bc623aabb74f84b0495b6f972f5fd6adf9348b52eaf86ab344bd94107 +DIST 7.1.1.4-TIVsm-msg.ZH_TW.x86_64.rpm 3581954 SHA256 2af3761fca55c365d376f41014c55fbafdfedd4752684997f1d2ce5793d6accc SHA512 6f620d51e45c966829f49fde5f5ce0bccfd5b716f14d2cbba2a2dd54acf8715a5bbc43c3a8ccffb2febdea5e74f487acb3058234e1e17786cf81d804d750b348 WHIRLPOOL 6f486e5d06dcc0c90ecc61ab6ec038efd46466b7ebab053edc442fe6ec97695b1cd6acaa2915c7f4717ca433a72ca9586653a631ce2af543af3c59c2ae9148c8 DIST 7.1.2.0-TIV-TSMBAC-LinuxX86.tar 113049600 SHA256 955291e82ae5e207a46a52c7b97d7cb4a05b623afcb3cf59e0e13e5cff4c4f9d SHA512 9b8722bd87794a01fdb3db2bf0db7a5d05e9c278d8469e43e2af1f84bbaa3a40efbffb19da3ef5fa5445b8f1e1b39aa603992994b0aa4654d00c431c14efb5f4 WHIRLPOOL 2ee25e928fb671452324ff6fa9616bc74a3481e93138974ffd55ade16e9028a22b367c29ca13ce6774fd819c075235cf01bdb5dd8d43995bb456f1b6b086cf64 DIST 7.1.2.0-TIVsm-msg.CS_CZ.x86_64.rpm 4436432 SHA256 d126520652fb95254609c8c4767a7e266bcdd76c1fa8d86d5cf6cee7b0cf6263 SHA512 18f2bd339d455250967823969b7b0b4ead32bd99260854b247729fb36884d8e8d5e211505b72f31e88e33ec4054653eb1ab0db3c28287200e71ac080616850b9 WHIRLPOOL 671b8e0e96f64430b8bed49926b925a16bc97036e901b0b98f6e3cc21246b1916d023b16896dfeabf0d9d8afc87adcf888d6162f22945662104e804194a4d555 DIST 7.1.2.0-TIVsm-msg.DE_DE.x86_64.rpm 3746180 SHA256 b113096752920643332ca41c6ade89d38e446659d1ca018088efc6b09b67c4cc SHA512 9c56719271d9a1f6bf01c0af023c59d8850010fd8a4cb34ec792369b9b652259d3a4548c4ce8ed9ed6fd3097fafa3ed6ed5014146841f1dd5686ec01e6fdc7f2 WHIRLPOOL 5522f1a971babee9574eeccdc24c15e44d5aa57699ccbab1ada5eb79f987443c974ab1b8c9daf26d039396ad5fd43dc267c287dbf0485b6fb9c18e80aff21c44 diff --git a/app-backup/tsm/tsm-7.1.1.4.ebuild b/app-backup/tsm/tsm-7.1.1.4.ebuild new file mode 100644 index 000000000000..33d605b68355 --- /dev/null +++ b/app-backup/tsm/tsm-7.1.1.4.ebuild @@ -0,0 +1,240 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit versionator multilib eutils readme.gentoo-r1 rpm systemd user + +DESCRIPTION="Tivoli Storage Manager (TSM) Backup/Archive (B/A) Client and API" +HOMEPAGE="http://www.tivoli.com/" + +MY_PV_MAJOR=$(get_major_version) +MY_PV_MINOR=$(get_version_component_range 2) +MY_PV_TINY=$(get_version_component_range 3) +MY_PV_PATCH=$(get_version_component_range 4) + +MY_PV_NODOTS="${MY_PV_MAJOR}${MY_PV_MINOR}${MY_PV_TINY}" +MY_PVR_ALLDOTS=${PV} + +if [[ ${MY_PV_PATCH} == 0 ]]; then + MY_RELEASE_PATH=maintenance +else + MY_RELEASE_PATH=patches +fi +BASE_URI="ftp://ftp.software.ibm.com/storage/tivoli-storage-management/" +BASE_URI+="${MY_RELEASE_PATH}/client/v${MY_PV_MAJOR}r${MY_PV_MINOR}/" +BASE_URI+="Linux/LinuxX86/BA/v${MY_PV_NODOTS}/" +SRC_TAR="${MY_PVR_ALLDOTS}-TIV-TSMBAC-LinuxX86.tar" +SRC_URI="${BASE_URI}${SRC_TAR}" + +RESTRICT="strip" # Breaks libPiIMG.so and libPiSNAP.so +LICENSE="Apache-1.1 Apache-2.0 JDOM BSD-2 CC-PD Boost-1.0 MIT CPL-1.0 HPND Exolab + dom4j EPL-1.0 FTL icu unicode IBM Info-ZIP LGPL-2 LGPL-2.1 openafs-krb5-a + ZLIB MPL-1.0 MPL-1.1 NPL-1.1 openssl OPENLDAP RSA public-domain W3C + || ( BSD GPL-2+ ) gSOAP libpng tsm" + +SLOT="0" +KEYWORDS="~amd64 -*" +IUSE="acl java +tsm_cit +tsm_hw" +QA_PREBUILT="*" + +MY_LANGS="cs:CS_CZ de:DE_DE es:ES_ES fr:FR_FR hu:HU_HU it:IT_IT + ja:JA_JP ko:KO_KR pl:PL_PL pt:PT_BR ru:RU_RU zh:ZH_CN zh_TW:ZH_TW" +MY_LANG_PV="${MY_PVR_ALLDOTS}-" +for lang in ${MY_LANGS}; do + IUSE="${IUSE} linguas_${lang%:*}" + SRC_URI="${SRC_URI} linguas_${lang%:*}? ( \ +${BASE_URI}TIVsm-msg.${lang#*:}.x86_64.rpm -> \ +${MY_LANG_PV}TIVsm-msg.${lang#*:}.x86_64.rpm )" +done +unset lang + +DEPEND="" +RDEPEND=" + dev-libs/expat + dev-libs/libxml2 + =sys-fs/fuse-2* + acl? ( sys-apps/acl ) + java? ( virtual/jre:1.7 ) +" + +S="${WORKDIR}" + +pkg_setup() { + enewgroup tsm + DOC_CONTENTS=" + Note that you have to be either root or member of the group tsm to + be able to use the Tivoli Storage Manager client." +} + +src_unpack() { + local rpm rpms lang + unpack ${SRC_TAR} + + for rpm in *.rpm; do + case ${rpm} in + TIVsm-APIcit.*|TIVsm-BAcit.*) + use tsm_cit && rpms="${rpms} ./${rpm}" + ;; + TIVsm-BAhdw.*) + use tsm_hw && rpms="${rpms} ./${rpm}" + ;; + TIVsm-JBB.*|*-filepath-*) + # "journal based backup" for all filesystems + # requires a kernel module. + # "Linux Filepath source code" available + # by request from vendor + ;; + *) + rpms="${rpms} ./${rpm}" + ;; + esac + done + for rpm in ${A}; do + case ${rpm} in + *.rpm) + rpms="${rpms} ${rpm}" + ;; + esac + done + + rpm_unpack ${rpms} + + # Avoid strange error messages caused by read-only files + chmod -R u+w "${S}" || die +} + +src_prepare() { + # Avoid unnecessary dependency on ksh + sed -i 's:^#!/usr/bin/ksh:#!/bin/bash:' \ + opt/tivoli/tsm/client/ba/bin/dsmj || die +} + +src_install() { + cp -a opt "${D}" || die + cp -a usr "${D}" || die + + # The RPM files contain postinstall scripts which can be extracted + # e.g. using https://bugs.gentoo.org/attachment.cgi?id=234663 . + # Below we try to mimic the behaviour of these scripts. + # We don't deal with SELinux compliance (yet), though. + local RPM_INSTALL_PREFIX CLIENTDIR i + RPM_INSTALL_PREFIX=/opt + CLIENTDIR=$RPM_INSTALL_PREFIX/tivoli/tsm/client + + # We don't bother setting timestamps to build dates. + # But we should delete the corresponding files. + rm -f "${D}"$CLIENTDIR/api/bin*/.buildDate || die + rm -f "${D}"$CLIENTDIR/ba/bin*/.buildDate || die + rm -f "${D}"$CLIENTDIR/lang/.buildDate || die + + # Create links for messages; this is spread over several postin scripts. + for i in $(cd "${D}"${CLIENTDIR}/lang; ls -1d ??_??); do + dosym ../../lang/${i} $CLIENTDIR/ba/bin/${i} + dosym ../../lang/${i} $CLIENTDIR/api/bin64/${i} + done + + # Mimic TIVsm-API64 postinstall script + for i in libgpfs.so libdmapi.so; do + dosym ../..$CLIENTDIR/api/bin64/${i} /usr/lib64/${i} + done + + # The TIVsm-BA postinstall script only does messages and ancient upgrades + + # The gscrypt64 postinstall script only deals with s390[x] SELinux + # and the symlink for the iccs library which we handle in the loop below. + + # Move stuff from /usr/local to /opt, #452332 + mv "${D}"/usr/local/ibm "${D}"/opt/ || die + rmdir "${D}"/usr/local || die + + # Mimic gskssl64 postinstall script + for i in sys p11 km ssl drld kicc ldap cms acmeidup valn dbfl iccs; do + dosym ../../opt/ibm/gsk8_64/lib64/libgsk8${i}_64.so \ + /usr/lib64/libgsk8${i}_64.so + done + for i in capicmd ver; do + dosym ../../opt/ibm/gsk8_64/bin/gsk8${i}_64 /usr/bin/gsk${i}_64 + done + + # Done with the postinstall scripts as the RPMs contain them. + # Now on to some more Gentoo-specific installation. + + [[ -d "${D}usr/lib" ]] && die "Using 32bit lib dir in 64bit only system" + + # Avoid "QA Notice: Found an absolute symlink in a library directory" + local target + find "${D}"usr/lib* -lname '/*' | while read i; do + target=$(readlink "${i}") + rm -v "${i}" || die + dosym "../..${target}" "${i#${D}}" + done + + # Install symlinks for sonames of libraries, bug #416503 + dosym libvixMntapi.so.1.1.0 $CLIENTDIR/ba/bin/libvixMntapi.so.1 + dosym libvixDiskLibVim.so.5.5.0 $CLIENTDIR/ba/bin/libvixDiskLibVim.so.5 + dosym libvixDiskLib.so.5.5.0 $CLIENTDIR/ba/bin/libvixDiskLib.so.5 + + fowners :tsm /opt/tivoli/tsm/client/ba/bin/dsmtca + fperms 4710 /opt/tivoli/tsm/client/ba/bin/dsmtca + + keepdir /var/log/tsm + insinto /etc/logrotate.d + newins "${FILESDIR}/tsm.logrotate" tsm + + keepdir /etc/tivoli + + cp -a "${S}/opt/tivoli/tsm/client/ba/bin/dsm.sys.smp" "${D}/etc/tivoli/dsm.sys" || die + echo ' PasswordDir "/etc/tivoli/"' >> ${D}/etc/tivoli/dsm.sys + echo ' PasswordAccess generate' >> ${D}/etc/tivoli/dsm.sys + + # Added the hostname to be more friendly, the admin will need to edit this file anyway + echo ' NodeName' `hostname` >> ${D}/etc/tivoli/dsm.sys + echo ' ErrorLogName "/var/log/tsm/dsmerror.log"' >> ${D}/etc/tivoli/dsm.sys + echo ' SchedLogName "/var/log/tsm/dsmsched.log"' >> ${D}/etc/tivoli/dsm.sys + dosym ../../../../../../etc/tivoli/dsm.sys /opt/tivoli/tsm/client/ba/bin/dsm.sys + + cp -a "${S}/opt/tivoli/tsm/client/ba/bin/dsm.opt.smp" "${D}/etc/tivoli/dsm.opt" + dosym ../../../../../../etc/tivoli/dsm.opt /opt/tivoli/tsm/client/ba/bin/dsm.opt + + # Setup the env + dodir /etc/env.d + ENV_FILE="${D}/etc/env.d/80tivoli" + echo 'DSM_CONFIG="/etc/tivoli/dsm.opt"' >> ${ENV_FILE} + echo 'DSM_DIR="/opt/tivoli/tsm/client/ba/bin"' >> ${ENV_FILE} + echo 'DSM_LOG="/var/log/tsm"' >> ${ENV_FILE} + echo 'ROOTPATH="/opt/tivoli/tsm/client/ba/bin"' >> ${ENV_FILE} + + newconfd "${FILESDIR}/dsmc.conf.d" dsmc + newinitd "${FILESDIR}/dsmc.init.d" dsmc + newinitd "${FILESDIR}/dsmcad.init.d-r1" dsmcad + + systemd_dounit "${FILESDIR}/dsmc.service" + systemd_dounit "${FILESDIR}/dsmcad.service" + + readme.gentoo_create_doc +} + +pkg_postinst() { + local i dirs + for i in /var/log/tsm/dsm{error,sched,j,webcl}.log; do + if [[ ! -e $i ]]; then + touch $i || die + chown :tsm $i || die + chmod 0660 $i || die + fi + done + + # Bug #375041: the log directory itself should not be world writable. + # Have to do this in postinst due to bug #141619 + chown root:tsm /var/log/tsm || die + chmod 0750 /var/log/tsm || die + + # Bug 508052: directories used to be too restrictive, have to widen perms. + dirs=( /opt/tivoli $(find /opt/tivoli/tsm -type d) ) + chown root:root "${dirs[@]}" || die + chmod 0755 "${dirs[@]}" || die + + readme.gentoo_print_elog +} |