#! /bin/sh #---------------------------------------------------------------------------- # _do_main_package - joblist to do befor mktarball.sh work # # Creation : 2010-02-06 hbfl # Last Update: $Id$ # # Copyright (c) 2007-2017 Holger Bruenje, holgerbruenjes(at)gmx(dot)net # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. #---------------------------------------------------------------------------- #exec 2> main-package-trace$$.log #set -x # set parameter bin_name="${bin_prefix}bin_$(echo ${package_name} | tr '-' '_')" install_path="../${eis_folder:-eis}/tmp/${install_name:-install}.sh" preinstall_path="../${eis_folder:-eis}/tmp/${preinstall_name:-preinstall}.sh" install_strg="lib_names" preinstall_strg="lib_names" package_path="../${eis_folder:-eis}/var/install/packages/${package_name}" package_strg="Internal Program Version:" # set require if ${package_lib} then pg=lib else pg=package fi _lib=true case x${lib_folder} in xno) _lib=false ;; x) folder_lib=usr/lib ;; *) folder_lib=${lib_folder} ;; esac if [ -n "${bin_prefix}" ] then p_bin_prefix="${bin_prefix%_}+" fi # get version from _ADMIN/$packages_name bin_lib_version=$(grep "^${bin_name}" ${p_bin_prefix}${package_name} | sed "s/^${bin_name}[_:]//; s/_/./g" | head -n 1) if [ -z "${bin_lib_version}" ] then # special handling for included tarballs to set version also bin_lib_version=$(grep "^###${bin_name}" ${p_bin_prefix}${package_name} | sed "s/^###${bin_name}[_:]//; s/_/./g" | head -n 1) fi if [ -z "${bin_lib_version}" ] then # special handling for eis64 32bit to set version also bin_name2=${bin_name#${bin_prefix}} bin_lib_version=$(grep "^${bin_name2%_32bit}" ${p_bin_prefix}${package_name} | sed "s/^${bin_name2%_32bit}[_:]//; s/_/./g" | head -n 1) fi #bin_lib_name=`ls ../${bin_lib_folder}/usr/lib | grep "${packages_name%[0-9]}" | sed -e 's#\.so.*$##'` # do that only -> lib is given if ${_lib} then # get folder to extract lib name bin_lib_folder=$(grep "^${bin_name}" ${p_bin_prefix}${package_name}) # lib_name_version=$(ls -F ../${bin_lib_folder}/${folder_lib} | # grep -v "/$" | # sed 's#*##') lib_name_version=$(find ../${bin_lib_folder}/${folder_lib} \ -maxdepth 1 -type f -name '*' -printf '%f\n') lib_name=$(echo "${lib_name_version}" | sed 's#\.so.*$##') # list libs in one line with delimeter space for install.sh t_line='' for bin_lib in ${lib_name_version} do if [ -z "${t_line}" ] then t_line="${bin_lib}" else t_line="${t_line} ${bin_lib}" fi done lib_name_version="${t_line}" # list libs,name in one line with delimeter space for preinstall.sh t_line='' for bin_lib in ${lib_name} do if [ -z "${t_line}" ] then t_line="${bin_lib}" else t_line="${t_line} ${bin_lib}" fi done lib_name="${t_line}" fi # new package do not have {pre}install.sh base >=2.6.2 if [ -f "${install_path}" ] then # get version from $package pg_lib_version=$(grep "^${install_strg}" ${install_path} | sed "s/^${install_strg}=//") case ${pg_lib_version} in ${bin_lib_version}) : # when equal, nothing to do ;; *) if ${_lib} then # write libs in install.sh for linking sed -i "s/^\(${install_strg}=\).*/\1\"${lib_name_version}\"/" \ ${install_path} # write libname in preinstall.sh for deinstallation sed -i "s/^\(${preinstall_strg}=\)/\1\"${lib_name}\"/" \ ${preinstall_path} fi ;; esac fi # get package version from package info file if [ -z "${PKG_BUILD_VERSION}" ] then # get version from $package main_package_version=$(sed -n '// s# ##g; s###gp' ${package_path} | sed -e 's|[svn|cvs].*$||') fi # set linked-package version if [ -n "${linked}" ] then for p_linked in ${linked} do sed -i "/linked-package>${p_linked} / s#[0-9]*\.[0-9]*\.[0-9]*#${PKG_BUILD_VERSION:-${main_package_version}}#" \ ${package_path} done fi # set required-package version if [ -n "${required}" ] then for p_required in ${required} do sed -i "/require-package>${p_required} / s#[0-9]*\.[0-9]*\.[0-9]*#${PKG_BUILD_VERSION:-${main_package_version}}#" \ ${package_path} done fi # write pacakge info version in description sed -i "s|\(${package_strg}\).*$|\1 ${package_internal_name} ${bin_lib_version}|" \ ${package_path}