From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from ptx.hi.pengutronix.de ([2001:67c:670:100:1d::c0] ident=Debian-exim) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1XYsFS-0002WD-2p for ptxdist@pengutronix.de; Tue, 30 Sep 2014 09:53:26 +0200 Received: from mol by ptx.hi.pengutronix.de with local (Exim 4.80) (envelope-from ) id 1XYsFS-0004vf-09 for ptxdist@pengutronix.de; Tue, 30 Sep 2014 09:53:26 +0200 Date: Tue, 30 Sep 2014 09:53:25 +0200 From: Michael Olbrich Message-ID: <20140930075325.GC24288@pengutronix.de> References: <1411768011-9200-1-git-send-email-jon@ringle.org> <20140929094228.GC15758@pengutronix.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Subject: Re: [ptxdist] [PATCH] install_dir: Allow one to specify an alternate root dir Reply-To: ptxdist@pengutronix.de List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: ptxdist-bounces@pengutronix.de Errors-To: ptxdist-bounces@pengutronix.de To: ptxdist@pengutronix.de On Mon, Sep 29, 2014 at 08:25:38AM -0400, Jon Ringle wrote: > On Mon, Sep 29, 2014 at 5:42 AM, Michael Olbrich > wrote: > > > On Fri, Sep 26, 2014 at 05:46:51PM -0400, jon@ringle.org wrote: > > > From: Jon Ringle > > > > > > This is useful if you install a package to /opt and libs are in /opt/lib: > > > $(call install_lib, foo, 0, 0, 0644, libfoo, opt/) > > > > Is '/opt' your actual use-case or just an example? I wouldn't mind adding > > /opt to the default list. > > > > It is just an example. My actual use-case looks like this: > > @$(foreach lib, $(GPEC_LIBS), \ > $(call install_lib, gpec, 0, 0, 0644, $(lib), opt/gpec/live/);) > > where the list of libs in $(GPEC_LIBS) is installed to /opt/gpec/live/lib/ Ok. > > If not: > > > > > Signed-off-by: Jon Ringle > > > --- > > > rules/post/install.make | 4 +++- > > > scripts/lib/ptxd_make_xpkg_pkg.sh | 4 +++- > > > 2 files changed, 6 insertions(+), 2 deletions(-) > > > > > > diff --git a/rules/post/install.make b/rules/post/install.make > > > index d57e5dd..2ff9f40 100644 > > [...] > > > diff --git a/scripts/lib/ptxd_make_xpkg_pkg.sh > > b/scripts/lib/ptxd_make_xpkg_pkg.sh > > > index 86196a2..501d1fd 100644 > > > --- a/scripts/lib/ptxd_make_xpkg_pkg.sh > > > +++ b/scripts/lib/ptxd_make_xpkg_pkg.sh > > > @@ -744,9 +744,11 @@ export -f ptxd_install_shared > > > ptxd_install_lib() { > > > local lib_dir=$(ptxd_get_lib_dir) > > > local lib="$1" > > > + local root_dir="$2" > > > + shift > > > shift > > > > local root_dir="${2%/}/" > > shift 2 > > > > > > > > - local file="$(for dir in "${pkg_pkg_dir}/"{,usr/}${lib_dir}; do > > > + local file="$(for dir in > > "${pkg_pkg_dir}/"${root_dir}{,usr/}${lib_dir}; do > > > > local file="$(for dir in > > "${pkg_pkg_dir}/"${root_dir#/}{,usr/}${lib_dir}; do > > > > With this, is seems that the trailing / after ${pkg_pkg_dir} could be > removed... > > > > > > So the argument for install_lib can be absolute, and the trailing / is > > optional. Maybe even enforce an absolute path for root_dir. > > And use root_dir instead of '{,usr/}' and not before it. > > > > If the '{,/usr}' is removed, then won't that break searching for libs that > might be in /usr/lib/ ? how about this (untested, but I thin you get the idea): rootdir="${root_dir#/}/" if [ "${root_dir}" != "${root_dir%/}" ]; then bailout: must be absolute fi ... local file="$(for dir in "${pkg_pkg_dir}"${root_dir:-/,/usr/}${lib_dir}; do ... So either use ${root_dir}/lib or /lib,/usr/lib Michael -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- ptxdist mailing list ptxdist@pengutronix.de