mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: "Benoît BURNICHON" <Benoit.BURNICHON@airtag.com>
To: "ptxdist@pengutronix.de" <ptxdist@pengutronix.de>
Subject: Re: [ptxdist] install_replace on a {pre,post}{rm,inst} script
Date: Thu, 10 Nov 2011 12:34:01 +0000	[thread overview]
Message-ID: <3944866A166FC34A948C72DD5EDDCA2A1DAE3854@HQ0SBS01.airtag.local> (raw)
In-Reply-To: <3944866A166FC34A948C72DD5EDDCA2A1DAE27E9@HQ0SBS01.airtag.local>

> Hi all,
>
> I would like to perform an action like is done on lighttpd package.
>         @$(call install_replace, lighttpd, /etc/lighttpd/lighttpd.conf, \
>                 @CGI@, $(call ptx/ifdef, PTXCONF_PHP5_SAPI_CGI,,#))
>
> Problem is, that I want to perform the same thing in the install scripts:
>         @$(call install_script_replace, mypackage, postinst, \
>                 @INSTALLDIR@,$(MYPACKAGE_LOCATION))

I found out how to modify ptxdist to get the script substituted.
But, doing this will not be reflected in the scripts run by ptxdist as these are run from their original location.

Diff below would work for preinst script but not for postinst

------8<------------------8<------------------8<------------
diff --git a/scripts/lib/ptxd_make_xpkg_prepare.sh b/scripts/lib/ptxd_make_xpkg_prepare.sh
index eeb9356..3a3efc3 100644
--- a/scripts/lib/ptxd_make_xpkg_prepare.sh
+++ b/scripts/lib/ptxd_make_xpkg_prepare.sh
@@ -88,8 +88,9 @@ install_init: @DEPENDS@ -> ${dep}"
        echo -n "install_init:  ${script} "

        if ptxd_in_path PTXDIST_PATH_RULES "${pkg_xpkg}.${script}"; then
-           install -m 0755 \
-               -D "${ptxd_reply}" \
+           ptxd_replace_magic "${ptxd_reply}" > \
+               "${pkg_xpkg_control_dir}/${script}" || return
+           chmod 0755 \
                "${pkg_xpkg_control_dir}/${script}" || return

            echo "packaging: '$(ptxd_print_path "${ptxd_reply}")'"
@@ -97,8 +98,8 @@ install_init: @DEPENDS@ -> ${dep}"
            # FIXME: install ipkg rather than executing script
            if [ "${script}" = "preinst" ]; then
                echo "install_init:     executing '${ptxd_reply}'"
-               DESTDIR="${ptx_nfsroot}" /bin/sh "${ptxd_reply}"
-               DESTDIR="${ptx_nfsroot_dbg}" /bin/sh "${ptxd_reply}"
+               DESTDIR="${ptx_nfsroot}" /bin/sh "${pkg_xpkg_control_dir}/${script}"
+               DESTDIR="${ptx_nfsroot_dbg}" /bin/sh "${pkg_xpkg_control_dir}/${script}"
            fi
        else
            echo "not available"
------8<------------------8<------------------8<------------

I wonder why ptxdist does not use the host_compiled ipkg to perform the install step.

{Host_ipkg_path}/ipkg-cl -o ${PTXDIST_ROOT} install ${PTXDIST_PLATFORM}/package/mypackage_trunk_armel.ipk

I tried it and it works

>
> This way, I can choose the destination directory from the ptxdist menu.
>
> BTW, the script postinst are run by ptxdist at targetinstall stage. The scripts
> should not fail on this call.
>
> When using ipkg or opkg, scripts are called with different parameters:
>         - Ptxdist calls without arguments and with DESTDIR environment variable
> set to destination (nfs root or root-debug dir)
>         - Ipkg calls postinstall scripts with 'configure' argument and PKG_ROOT
> environment variable set to the destination.
>         - Ipkg can be called with -o (--offline) argument to set the offline
> directory to install to. (But be careful, there is no environment variables
> indicating that the install is an offline one)


I was wrong, the IPKG_OFFLINE_ROOT is set if in offline mode

>
> Regards,
>
> Ben

________________________________

Ce courriel et toutes les pièces jointes sont confidentiels et peuvent être couverts par un privilège ou une protection légale. Il est établi à l’attention exclusive de ses destinataires. Toute utilisation de ce courriel non conforme à sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse préalable.
This email and any attachment are confidential and may be legally privileged or otherwise protected from disclosure. It is intended only for the stated addressee(s) and access to it by any other person(s) is unauthorized. Any use, dissemination or disclosure not in accordance with its purpose, either in whole or in part, is prohibited without our prior formal approval.
-- 
ptxdist mailing list
ptxdist@pengutronix.de

  reply	other threads:[~2011-11-10 12:34 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-10 10:45 Benoît BURNICHON
2011-11-10 12:34 ` Benoît BURNICHON [this message]
2011-11-20 12:44 ` [ptxdist] [PATCH] add install_script_replace to replace in pre/post scripts Michael Olbrich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3944866A166FC34A948C72DD5EDDCA2A1DAE3854@HQ0SBS01.airtag.local \
    --to=benoit.burnichon@airtag.com \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox