* [Buildroot] [PATCH v3] package/tvheadend: unbreak
@ 2013-12-04 0:08 Yann E. MORIN
2013-12-04 7:45 ` Thomas Petazzoni
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Yann E. MORIN @ 2013-12-04 0:08 UTC (permalink / raw)
To: buildroot
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
tvheadend tries to impersonate an autotools package, when it is not.
This breaks the build.
tvheadend's ./configure tries to run compiled code.
This breaks the build.
Switch tvheadend over to using the generic-package infrastructure,
and provide carefully-crafted _CMDS for each steps.
We still keep a post-install hook to install our "DB" since it is not
part of tvheadend, but an addition of our own packaging of tvheadend.
Fixes:
http://autobuild.buildroot.net/results/3ea/3eaa17b94975477263fe12e201eec9cbeeb2912c/
http://autobuild.buildroot.net/results/7c8/7c85db0dfab98808c97a5ef17dec9d1071dc0d49/
and a few others as well.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
Changes v2->v3:
- use $(MAKE) not make (Thomas)
Changes v1->v2:
- add references to (some) autobuild failures
---
.../tvheadend-004-dont-run-compiled-code.patch | 21 +++++++++++++++++
package/tvheadend/tvheadend.mk | 27 ++++++++++++++++++----
2 files changed, 44 insertions(+), 4 deletions(-)
create mode 100644 package/tvheadend/tvheadend-004-dont-run-compiled-code.patch
diff --git a/package/tvheadend/tvheadend-004-dont-run-compiled-code.patch b/package/tvheadend/tvheadend-004-dont-run-compiled-code.patch
new file mode 100644
index 0000000..caa6e2a
--- /dev/null
+++ b/package/tvheadend/tvheadend-004-dont-run-compiled-code.patch
@@ -0,0 +1,21 @@
+support: don't try to run compiled code
+
+When cross-compiling, we can't run the compiled code.
+
+Consider the compiler besing successfull as an indication
+it is working.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN tvheadend.orig/support/configure.inc tvheadend-c7d0335eb10d02b780423bef8e7c740e422fff13/support/configure.inc
+--- tvheadend.orig/support/configure.inc 2013-12-01 01:24:26.000000000 +0100
++++ tvheadend-c7d0335eb10d02b780423bef8e7c740e422fff13/support/configure.inc 2013-12-03 22:34:57.547762178 +0100
+@@ -265,8 +265,6 @@
+ EOF
+ $CC $CFLAGS $LDFLAGS $TMPDIR/$$.c -o $TMPDIR/$$.bin $opt #&> /dev/null
+ RET=$?
+- [ $RET -eq 0 ] && $TMPDIR/$$.bin
+- RET=$?
+ rm -f $TMPDIR/$$.{c,bin}
+ return $RET
+ }
diff --git a/package/tvheadend/tvheadend.mk b/package/tvheadend/tvheadend.mk
index 1713d58..43bc382 100644
--- a/package/tvheadend/tvheadend.mk
+++ b/package/tvheadend/tvheadend.mk
@@ -22,6 +22,28 @@ endif
# scan files installed by the dvb-apps package
TVHEADEND_DEPENDENCIES += dvb-apps
+define TVHEADEND_CONFIGURE_CMDS
+ (cd $(@D); \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ./configure \
+ --prefix=/usr \
+ --cc="$(TARGET_CC)" \
+ --cflags="$(TARGET_CFLAGS)" \
+ --arch="$(ARCH)" \
+ --cpu="$(BR2_GCC_TARGET_CPU)" \
+ --python="$(HOST_DIR)/usr/bin/python" \
+ )
+endef
+
+define TVHEADEND_BUILD_CMDS
+ $(MAKE) -C $(@D)
+endef
+
+define TVHEADEND_INSTALL_TARGET_CMDS
+ $(MAKE) -C $(@D) DESTDIR="$(TARGET_DIR)" install
+endef
+
#----------------------------------------------------------------------------
# To run tvheadend, we need:
# - a startup script, and its config file
@@ -43,7 +65,4 @@ define TVHEADEND_USERS
tvheadend -1 tvheadend -1 * /home/tvheadend - video TVHeadend daemon
endef
-#----------------------------------------------------------------------------
-# tvheadend is not an autotools-based package, but it is possible to
-# call its ./configure script as if it were an autotools one.
-$(eval $(autotools-package))
+$(eval $(generic-package))
--
1.8.1.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v3] package/tvheadend: unbreak
2013-12-04 0:08 [Buildroot] [PATCH v3] package/tvheadend: unbreak Yann E. MORIN
@ 2013-12-04 7:45 ` Thomas Petazzoni
2013-12-04 21:31 ` Yann E. MORIN
2013-12-04 9:13 ` Peter Korsgaard
2013-12-05 15:14 ` Arnout Vandecappelle
2 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2013-12-04 7:45 UTC (permalink / raw)
To: buildroot
Dear Yann E. MORIN,
On Wed, 4 Dec 2013 01:08:41 +0100, Yann E. MORIN wrote:
> diff --git a/package/tvheadend/tvheadend-004-dont-run-compiled-code.patch b/package/tvheadend/tvheadend-004-dont-run-compiled-code.patch
> new file mode 100644
> index 0000000..caa6e2a
> --- /dev/null
> +++ b/package/tvheadend/tvheadend-004-dont-run-compiled-code.patch
> @@ -0,0 +1,21 @@
> +support: don't try to run compiled code
> +
> +When cross-compiling, we can't run the compiled code.
> +
> +Consider the compiler besing successfull as an indication
> +it is working.
What does "the compiler being successful" means?
And also:
besing -> being
successfull -> successful
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v3] package/tvheadend: unbreak
2013-12-04 0:08 [Buildroot] [PATCH v3] package/tvheadend: unbreak Yann E. MORIN
2013-12-04 7:45 ` Thomas Petazzoni
@ 2013-12-04 9:13 ` Peter Korsgaard
2013-12-05 15:14 ` Arnout Vandecappelle
2 siblings, 0 replies; 6+ messages in thread
From: Peter Korsgaard @ 2013-12-04 9:13 UTC (permalink / raw)
To: buildroot
>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:
> From: "Yann E. MORIN" <yann.morin.1998@free.fr>
> tvheadend tries to impersonate an autotools package, when it is not.
> This breaks the build.
> tvheadend's ./configure tries to run compiled code.
> This breaks the build.
> Switch tvheadend over to using the generic-package infrastructure,
> and provide carefully-crafted _CMDS for each steps.
> We still keep a post-install hook to install our "DB" since it is not
> part of tvheadend, but an addition of our own packaging of tvheadend.
> Fixes:
> http://autobuild.buildroot.net/results/3ea/3eaa17b94975477263fe12e201eec9cbeeb2912c/
> http://autobuild.buildroot.net/results/7c8/7c85db0dfab98808c97a5ef17dec9d1071dc0d49/
> and a few others as well.
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sorry, this was the one I committed, not v1 (with the patch commit
message tweaked).
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v3] package/tvheadend: unbreak
2013-12-04 7:45 ` Thomas Petazzoni
@ 2013-12-04 21:31 ` Yann E. MORIN
0 siblings, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2013-12-04 21:31 UTC (permalink / raw)
To: buildroot
Thomas, All,
On 2013-12-04 08:45 +0100, Thomas Petazzoni spake thusly:
> On Wed, 4 Dec 2013 01:08:41 +0100, Yann E. MORIN wrote:
>
> > diff --git a/package/tvheadend/tvheadend-004-dont-run-compiled-code.patch b/package/tvheadend/tvheadend-004-dont-run-compiled-code.patch
> > new file mode 100644
> > index 0000000..caa6e2a
> > --- /dev/null
> > +++ b/package/tvheadend/tvheadend-004-dont-run-compiled-code.patch
> > @@ -0,0 +1,21 @@
> > +support: don't try to run compiled code
> > +
> > +When cross-compiling, we can't run the compiled code.
> > +
> > +Consider the compiler besing successfull as an indication
> > +it is working.
>
> What does "the compiler being successful" means?
It means we are content with the compiler being able to compile.
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v3] package/tvheadend: unbreak
2013-12-04 0:08 [Buildroot] [PATCH v3] package/tvheadend: unbreak Yann E. MORIN
2013-12-04 7:45 ` Thomas Petazzoni
2013-12-04 9:13 ` Peter Korsgaard
@ 2013-12-05 15:14 ` Arnout Vandecappelle
2013-12-05 17:53 ` Yann E. MORIN
2 siblings, 1 reply; 6+ messages in thread
From: Arnout Vandecappelle @ 2013-12-05 15:14 UTC (permalink / raw)
To: buildroot
On 04/12/13 01:08, Yann E. MORIN wrote:
> + --cc="$(TARGET_CC)" \
> + --cflags="$(TARGET_CFLAGS)" \
It looks like the configure script is broken and fails if these
variables contain spaces (like e.g. when ccache is used).
From support/configure.inc:
function parse_args
{
local opt= val=
for opt do
val=${opt#*=}
opt=${opt%=*}
opt=${opt#*--}
case "$opt" in
cc|cflags|arch|cpu|platform|python)
eval "`toupper $opt`=$val"
;;
Since the $val isn't quoted, a value with spaces will expand to e.g.:
eval "CC=ccache gcc"
which will execute
CC=ccache gcc
so it will try to run gcc...
In addition, parse_args is called from configure as:
parse_args $*
which will expand to:
parse_args --cc=ccache gcc --cflags=-DFOO -DBAR
so we only get the ccache and -DFOO in CC and CFLAGS. The unknown
arguments gcc and -DBAR are ignored.
Two options:
- fix the scripts;
- don't use --cc and --cflags but just pass them in the environment
(assuming that this works).
Regards,
Arnout
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v3] package/tvheadend: unbreak
2013-12-05 15:14 ` Arnout Vandecappelle
@ 2013-12-05 17:53 ` Yann E. MORIN
0 siblings, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2013-12-05 17:53 UTC (permalink / raw)
To: buildroot
Arnout, All,
On 2013-12-05 16:14 +0100, Arnout Vandecappelle spake thusly:
> On 04/12/13 01:08, Yann E. MORIN wrote:
> >+ --cc="$(TARGET_CC)" \
> >+ --cflags="$(TARGET_CFLAGS)" \
>
> It looks like the configure script is broken and fails if these variables
> contain spaces (like e.g. when ccache is used).
Doh... :-(
[--SNIP--]
> Two options:
> - fix the scripts;
> - don't use --cc and --cflags but just pass them in the environment
> (assuming that this works).
I'll look what can be done with this. Thanks for the report.
Regards,
Yann e. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-12-05 17:53 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-04 0:08 [Buildroot] [PATCH v3] package/tvheadend: unbreak Yann E. MORIN
2013-12-04 7:45 ` Thomas Petazzoni
2013-12-04 21:31 ` Yann E. MORIN
2013-12-04 9:13 ` Peter Korsgaard
2013-12-05 15:14 ` Arnout Vandecappelle
2013-12-05 17:53 ` Yann E. MORIN
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox