From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-wr0-x22a.google.com ([2a00:1450:400c:c0c::22a]) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1eieLE-0005ox-Fd for ptxdist@pengutronix.de; Mon, 05 Feb 2018 11:49:40 +0100 Received: by mail-wr0-x22a.google.com with SMTP id v15so29063804wrb.8 for ; Mon, 05 Feb 2018 02:49:40 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <20180205102524.ts3vrgfl4c5tqoko@pengutronix.de> References: <20180202154617.vibuekjswifjp6ih@pengutronix.de> <20180205102524.ts3vrgfl4c5tqoko@pengutronix.de> From: Guillermo Rodriguez Garcia Date: Mon, 5 Feb 2018 11:49:38 +0100 Message-ID: Subject: Re: [ptxdist] mediastreamer2: Bad search path when relinking library List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: multipart/mixed; boundary="===============0380031800==" Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de --===============0380031800== Content-Type: multipart/alternative; boundary="94eb2c1cbbda9c2372056474d163" --94eb2c1cbbda9c2372056474d163 Content-Type: text/plain; charset="UTF-8" 2018-02-05 11:25 GMT+01:00 Michael Olbrich : > On Mon, Feb 05, 2018 at 11:05:40AM +0100, Guillermo Rodriguez Garcia wrote: > > Hi, > > > > 2018-02-02 16:46 GMT+01:00 Michael Olbrich : > > > > > Hi, > > > > > > On Fri, Feb 02, 2018 at 11:59:03AM +0100, Guillermo Rodriguez Garcia > wrote: > > > > I am trying to create a ptxdist package for mediastreamer2. By > default, > > > > releases come without a configure script, and with an autogen.sh that > > > > requires intltoolize. > > > > > > > > So I first tried the following: > > > > > > > > In mediastreamer2.in: > > > > > > > > select HOST_INTLTOOL > > > > > > > > In mediasteamer2.make: > > > > > > > > $(STATEDIR)/mediastreamer2.extract: > > > > @$(call targetinfo) > > > > @$(call clean, $(MEDIASTREAMER2_DIR)) > > > > @$(call extract, MEDIASTREAMER2) > > > > cd $(MEDIASTREAMER2_DIR) && [ -f configure ] || sh autogen.sh > > > > @$(call patchin, MEDIASTREAMER2) > > > > @$(call touch) > > > > > > > > However, this does not work because apparently ptxdist resolves > > > > dependencies after the extract stage, so when autogen.sh is run, the > > > > host-intltool package has not been installed yet. > > > > > > > > So I tried to run autogen.sh from the extract.post stage instead: > > > > > > > > $(STATEDIR)/mediastreamer2.extract.post: > > > > @$(call targetinfo) > > > > cd $(MEDIASTREAMER2_DIR) && [ -f configure ] || sh autogen.sh > > > > > > I'm guessing you got that from the latest src-autoconf template. This > is > > > still broken. It's missing the actual extract.post command: > > > > > > > No, I actually made that up myself, based on the documentation. The > manual > > mentions [1] that extract.post is a good place to "generate a configure > > script out of an autotoolized configure.ac file for example", so that's > > what I tried. Also the manual does not document any default rule when > > extract.post is omitted (whereas it does so for other stages). So I > didn't > > know that I had to call world/patchin/post from my custom extract.post > rule. > > Ok. That needs to be fixed in the documentation. > > > > > > > @$(call world/patchin/post, @PACKAGE@) > > > > > > > @$(call touch) > > > > > > > > This way, host-intltool is installed before autogen.sh is run, so > that > > > part > > > > work. But this creates other problems: The install stage fails when > > > trying > > > > to relink some libraries. > > > > > > > > What is the proper way to do this? > > > > > > The template whre you got this from is for packages where the source is > > > part of your BSP. I don't think this is the case for mediasteamer2. You > > > should use the 'target' new-package template. > > > > > > For most packages the tarball contains the configure script. In that > case > > > nothing special need to happen. If the configure script is missing, > then > > > you need to create a autogen.sh link. > > > e.g. like the libyaml package in PTXdist does this with > > > patches/libyaml-0.1.7/autogen.sh. > > > > > > > Actually the mediastreamer2 package comes with its own autogen.sh script. > > That's why I am running > > > > cd $(MEDIASTREAMER2_DIR) && [ -f configure ] || sh autogen.sh > > > > Is that correct? I guess that if there's an autogen.sh script in the > > package, that should normally be used in preference to the generic > ptxdist > > version. Right? > > Not quite. > 1. If the configure exists, then don't call any autogen.sh unless configure > was not generated properly. > OK. configure does not exist in this case. > 2. unless you have the source in local_src/ provide > patches/-/autogen.sh > 3. If the autogen.sh from ptxdist works, then use it. The local autogen.sh > scipts in the packages often do other random stuff, such as calling > 'configure' and the one in ptxdist does the right thing in most cases. > Interesting. In my case the ptxversion does not work because intltoolize needs to be run as well. But it is good to know this. For packages where the ptxdist version works, shall I just copy the generic autogen.sh over to patches/- Bonus question. If there are no other patches, ptxdist complains in the extract stage saying that the series file was not found (although this does not prevent it from continuing to the extract.post stage). Is this ok? 4. If you need to use the package specific autogen.sh, the > patches/-/autogen.sh should look like this: > ------- > #!/bin/sh > exec ./autogen,sh > ------- > OK, this is good to know as well. This way I don't need to mess with stage rules. Thanks, Guillermo Rodriguez Garcia guille.rodriguez@gmail.com --94eb2c1cbbda9c2372056474d163 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
2018= -02-05 11:25 GMT+01:00 Michael Olbrich <m.olbrich@pengutronix.de>:
On Mon, Feb 05, 2018 at 11:05:4= 0AM +0100, Guillermo Rodriguez Garcia wrote:
> Hi,
>
> 2018-02-02 16:46 GMT+01:00 Michael Olbrich <
m.olbrich@pengutronix.de>:
>
> > Hi,
> >
> > On Fri, Feb 02, 2018 at 11:59:03AM +0100, Guillermo Rodriguez Gar= cia wrote:
> > > I am trying to create a ptxdist package for mediastreamer2. = By default,
> > > releases come without a configure script, and with an autoge= n.sh that
> > > requires intltoolize.
> > >
> > > So I first tried the following:
> > >
> > > In mediastreamer2.in:
> > >
> > > select HOST_INTLTOOL
> > >
> > > In mediasteamer2.make:
> > >
> > > $(STATEDIR)/mediastreamer2.extract:
> > > @$(call targetinfo)
> > > @$(call clean, $(MEDIASTREAMER2_DIR))
> > > @$(call extract, MEDIASTREAMER2)
> > > cd $(MEDIASTREAMER2_DIR) && [ -f configure ] || sh a= utogen.sh
> > > @$(call patchin, MEDIASTREAMER2)
> > > @$(call touch)
> > >
> > > However, this does not work because apparently ptxdist resol= ves
> > > dependencies after the extract stage, so when autogen.sh is = run, the
> > > host-intltool package has not been installed yet.
> > >
> > > So I tried to run autogen.sh from the extract.post stage ins= tead:
> > >
> > > $(STATEDIR)/mediastreamer2.extract.post:
> > > @$(call targetinfo)
> > > cd $(MEDIASTREAMER2_DIR) && [ -f configure ] || sh a= utogen.sh
> >
> > I'm guessing you got that from the latest src-autoconf templa= te. This is
> > still broken. It's missing the actual extract.post command: > >
>
> No, I actually made that up myself, based on the documentation. The ma= nual
> mentions [1] that extract.post is a good place to "generate a con= figure
> script out of an autotoolized configure.ac file for example", so th= at's
> what I tried. Also the manual does not document any default rule when<= br> > extract.post is omitted (whereas it does so for other stages). So I di= dn't
> know that I had to call world/patchin/post from my custom extract.post= rule.

Ok. That needs to be fixed in the documentation.

> >
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 @$(call world/patchin/post, @PA= CKAGE@)
> >
> > > @$(call touch)
> > >
> > > This way, host-intltool is installed before autogen.sh is ru= n, so that
> > part
> > > work. But this creates other problems: The install stage fai= ls when
> > trying
> > > to relink some libraries.
> > >
> > > What is the proper way to do this?
> >
> > The template whre you got this from is for packages where the sou= rce is
> > part of your BSP. I don't think this is the case for mediaste= amer2. You
> > should use the 'target' new-package template.
> >
> > For most packages the tarball contains the configure script. In t= hat case
> > nothing special need to happen. If the configure script is missin= g, then
> > you need to create a autogen.sh link.
> > e.g. like the libyaml package in PTXdist does this with
> > patches/libyaml-0.1.7/autogen.sh.
> >
>
> Actually the mediastreamer2 package comes with its own autogen.sh scri= pt.
> That's why I am running
>
> cd $(MEDIASTREAMER2_DIR) && [ -f configure ] || sh autogen.sh<= br> >
> Is that correct? I guess that if there's an autogen.sh script in t= he
> package, that should normally be used in preference to the generic ptx= dist
> version. Right?

Not quite.
1. If the configure exists, then don't call any autogen.sh unless confi= gure
=C2=A0 =C2=A0was not generated properly.

OK. configure does not exist in this case.
=C2=A0
2. unless you have the source in local_src/ provide
=C2=A0 =C2=A0patches/<package>-<version>/autogen.sh
3. If the autog= en.sh from ptxdist works, then use it. The local autogen.sh
=C2=A0 =C2=A0scipts in the packages often do other random stuff, such as ca= lling
=C2=A0 =C2=A0'configure' and the one in ptxdist does the right thin= g in most cases.

Interesting. In my cas= e the ptxversion does not work because intltoolize needs to be run as well.= But it is good to know this.

For packages where t= he ptxdist version works, shall I just copy the generic autogen.sh over to = patches/<package>-<version>

Bonus ques= tion. If there are no other patches, ptxdist complains in the extract stage= saying that the series file was not found (although this does not prevent = it from continuing to the extract.post stage). Is this ok?

4. If you need to use the package specific autogen.sh, the
=C2=A0 =C2=A0patches/<package>-<version>/autogen.sh should= look like this:
-------
#!/bin/sh
exec ./autogen,sh
-------

OK, this is good to know as wel= l. This way I don't need to mess with stage rules.

Thanks= ,

Guillermo Rodriguez Garcia
--94eb2c1cbbda9c2372056474d163-- --===============0380031800== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcHR4ZGlzdCBt YWlsaW5nIGxpc3QKcHR4ZGlzdEBwZW5ndXRyb25peC5kZQ== --===============0380031800==--