Skip to contentSkip to conversation

Packages upgrade: groff and directfb

PATCH In review Hongxu Jia 2 participants 8 messages Dec 29, 2014 – Jan 12, 2015

lore
Share & tools
lore

Hongxu Jia

author
#0 lore raw

v2 cover Packages upgrade: groff and directfb

Changed in V2:

- Follow Saul's suggestions, investigate groff's README, double check its DEPENDS;

- Follow Richard's suggestions, correctly set the path to perl in the recipe.

- Fix qt4-embedded build failure which caused by the upgraded directfb. (thanks Richard and Otavio for pointing it out)

//Hongxu

The following changes since commit e3a623bfe39fda16420d2042647af75877bb6f70:

runqemu-internal: increase memory for qemuarm64 (2014-12-25 08:27:13 +0000)

are available in the git repository at:

git://git.pokylinux.org/poky-contrib hongxu/upgrade-packages
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=hongxu/upgrade-packages

Hongxu Jia (4):
groff: upgrade 1.22.3
groff: fix native perl path
directfb: upgrade to 1.7.6
qt4-embedded: support c++0x stand for directfb

 ...off-1.22.2-correct-man.local-install-path.patch |  32 --
 .../groff-correct-man.local-install-path.patch     |  45 +++
 .../groff/{groff_1.22.2.bb => groff_1.22.3.bb}     |  23 +-
 .../directfb/directfb/fixsepbuild.patch            |  19 --
 .../rename-no-instrument-function-macro.patch      | 345 ---------------------
 .../{directfb_1.7.4.bb => directfb_1.7.6.bb}       |   8 +-
 ...figure-support-c-0x-standard-for-directfd.patch |  40 +++
 meta/recipes-qt/qt4/qt4-embedded.inc               |   4 +-
 8 files changed, 99 insertions(+), 417 deletions(-)
 delete mode 100644 meta/recipes-extended/groff/groff-1.22.2/groff-1.22.2-correct-man.local-install-path.patch
 create mode 100644 meta/recipes-extended/groff/groff-1.22.3/groff-correct-man.local-install-path.patch
 rename meta/recipes-extended/groff/{groff_1.22.2.bb => groff_1.22.3.bb} (72%)
 delete mode 100644 meta/recipes-graphics/directfb/directfb/fixsepbuild.patch
 delete mode 100644 meta/recipes-graphics/directfb/directfb/rename-no-instrument-function-macro.patch
 rename meta/recipes-graphics/directfb/{directfb_1.7.4.bb => directfb_1.7.6.bb} (58%)
 create mode 100644 meta/recipes-qt/qt4/qt4-4.8.6/0033-configure-support-c-0x-standard-for-directfd.patch
Signature · 1 line
1.9.1
author
#1 lore raw

PATCH v2 1/4 groff: upgrade 1.22.3

Rebase groff-1.22.2-correct-man.local-install-path.patch to 1.22.3

---
 ...off-1.22.2-correct-man.local-install-path.patch | 32 ---------------
 .../groff-correct-man.local-install-path.patch     | 45 ++++++++++++++++++++++
 .../groff/{groff_1.22.2.bb => groff_1.22.3.bb}     |  6 +--
 3 files changed, 48 insertions(+), 35 deletions(-)
 delete mode 100644 meta/recipes-extended/groff/groff-1.22.2/groff-1.22.2-correct-man.local-install-path.patch
 create mode 100644 meta/recipes-extended/groff/groff-1.22.3/groff-correct-man.local-install-path.patch
 rename meta/recipes-extended/groff/{groff_1.22.2.bb => groff_1.22.3.bb} (90%)
meta/recipes-extended/groff/groff-1.22.2/groff-1.22.2-correct-man.local-install-path.patch deleted +0 -32
deleted file mode 100644
index f7e9a74..0000000
@@ -1,32 +0,0 @@
-Correct the install path of man.local to fix following error:
-    /yocto/build/tmp/sysroots/x86_64-linux/usr/share/groff/1.22.2/tmac/an-old.tmac:690: warning: can't find macro file `man.local'
-
-Signed-off-by: Zhenhua Luo <[email protected]>
-Upstream-Status: Pending
-
---- groff-1.22.2/tmac/Makefile.sub.orig	2013-02-07 20:06:08.000000000 +0800
-+++ groff-1.22.2/tmac/Makefile.sub	2013-06-26 19:11:23.572259001 +0800
-@@ -114,9 +114,9 @@
- 	  rm -f $(DESTDIR)$(mdocdir)/$$f; \
- 	  $(INSTALL_DATA) $$f-s $(DESTDIR)$(mdocdir)/$$f; \
- 	done
--	-test -f $(DESTDIR)$(localtmacdir)/man.local || \
-+	-test -f $(DESTDIR)$(tmacdir)/man.local || \
- 	  $(INSTALL_DATA) $(srcdir)/man.local \
--	    $(DESTDIR)$(localtmacdir)/man.local
-+	    $(DESTDIR)$(tmacdir)/man.local
- 	-test -f $(DESTDIR)$(localtmacdir)/mdoc.local || \
- 	  $(INSTALL_DATA) mdoc.local-s $(DESTDIR)$(localtmacdir)/mdoc.local
- 
-@@ -158,9 +158,9 @@
- 	-rm -f $(DESTDIR)$(tmacdir)/$(tmac_s_prefix)s.tmac
- 	-rm -f $(DESTDIR)$(tmacdir)/$(tmac_an_prefix)an.tmac
- 	-rm -f $(DESTDIR)$(tmacdir)/www.tmac
--	-if cmp -s $(DESTDIR)$(localtmacdir)/man.local \
-+	-if cmp -s $(DESTDIR)$(tmacdir)/man.local \
- 	           $(srcdir)/man.local; then \
--	  rm -f $(DESTDIR)$(localtmacdir)/man.local; \
-+	  rm -f $(DESTDIR)$(tmacdir)/man.local; \
- 	fi
- 	-if cmp -s $(DESTDIR)$(localtmacdir)/mdoc.local \
- 	           $(srcdir)/mdoc.local; then \
meta/recipes-extended/groff/groff-1.22.3/groff-correct-man.local-install-path.patch new file +45 -0

45 lines not on this page · raw message

meta/recipes-extended/groff/groff_1.22.3.bb renamed from meta/recipes-extended/groff/groff_1.22.2.bb +3 -3
similarity index 90%
rename from meta/recipes-extended/groff/groff_1.22.2.bb
rename to meta/recipes-extended/groff/groff_1.22.3.bb
index 63f0425..22c0946 100644
@@ -9,11 +9,11 @@ PR = "r1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
 SRC_URI = "${GNU_MIRROR}/groff/groff-${PV}.tar.gz \
-	file://groff-1.22.2-correct-man.local-install-path.patch \
+	file://groff-correct-man.local-install-path.patch \
 "
 
-SRC_URI[md5sum] = "9f4cd592a5efc7e36481d8d8d8af6d16"
-SRC_URI[sha256sum] = "380864dac4772e0c0d7b1282d25d0c5fd7f63baf45c87c4657afed22a13d2076"
+SRC_URI[md5sum] = "cc825fa64bc7306a885f2fb2268d3ec5"
+SRC_URI[sha256sum] = "3a48a9d6c97750bfbd535feeb5be0111db6406ddb7bb79fc680809cda6d828a5"
 
 DEPENDS = "groff-native"
 DEPENDS_class-native = ""
Signature · 1 line
1.9.1
author
#2 lore raw

PATCH v2 2/4 groff: fix native perl path

In reply to Hongxu Jia

Build groff on a machine with /bin/perl, it gave an error at rootfs time:
...
|ERROR: Unable to install packages. Command 'tmp/sysroots/x86_64-linux/ usr/bin/smart --quiet --data-dir=tmp/work/qemux86-poky-linux/core-image -minimal/1.0-r0/rootfs/var/lib/smart install -y groff@i586 run-postinsts@all packagegroup-core-boot@qemux86 perl@i586' returned 1:
|error: Can't install groff-1.22.3-r1@i586: no package provides /bin/perl

ERROR: Function failed: do_rootfs
...

Previously (From OE-Core rev: 79fc557683d4eeadaebeb00dfba53762956e4910 and 103d668cece420447c12987119459ebd49c208df), we manually edit perl scripts with replacing '/usr/bin/perl' or '/bin/perl' with '/usr/bin/env perl'. If new perl scripts added after groff upgraded, we have to manually do the modification on them.

The groff did the above modification according the value of PERL, so we set it correctly could fix it.

We also add perl and ghostscript to groff DEPENDS, because it requres perl >= v5.6.1 and ghostscript, see README:
...
52 Depending on your requirements, you may need at least some of the 53 following tools to build `groff' directly from its source:
54
55 perl >= v5.6.1 (see macro GROFF_PERL in file `m4/groff.m4')
56 ghostscript
...

---
 meta/recipes-extended/groff/groff_1.22.3.bb | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)
meta/recipes-extended/groff/groff_1.22.3.bb +5 -12
index 22c0946..12a260c 100644
@@ -15,8 +15,11 @@ SRC_URI = "${GNU_MIRROR}/groff/groff-${PV}.tar.gz \
 SRC_URI[md5sum] = "cc825fa64bc7306a885f2fb2268d3ec5"
 SRC_URI[sha256sum] = "3a48a9d6c97750bfbd535feeb5be0111db6406ddb7bb79fc680809cda6d828a5"
 
-DEPENDS = "groff-native"
-DEPENDS_class-native = ""
+DEPENDS = "groff-native perl ghostscript"
+DEPENDS_class-native = "perl-native ghostscript-native"
+
+export PERL = "${bindir}/perl"
+PERL_class-native = "${STAGING_BINDIR_NATIVE}/perl-native/perl"
 
 inherit autotools texinfo
 
@@ -44,16 +47,6 @@ do_configure_append() {
     cd ${olddir}
 }
 
-do_install_append() {
-	# Some distros have both /bin/perl and /usr/bin/perl, but we set perl location
-	# for target as /usr/bin/perl, so fix it to /usr/bin/perl.
-	for i in afmtodit mmroff gropdf pdfmom; do
-		if [ -f ${D}${bindir}/$i ]; then
-			sed -i -e '1s,#!.*perl,#! ${USRBINPATH}/env perl,' ${D}${bindir}/$i
-		fi
-	done
-}
-
 do_install_append_class-native() {
 	create_cmdline_wrapper ${D}/${bindir}/groff \
 		-F${STAGING_DIR_NATIVE}${datadir_native}/groff/${PV}/font \
Signature · 1 line
1.9.1
author
#3 lore raw

PATCH v2 3/4 directfb: upgrade to 1.7.6

In reply to Hongxu Jia

- Drop fixsepbuild.patch which has been merged to 1.7.6
- Drop obsolete rename-no-instrument-function-macro.patch

---
 .../directfb/directfb/fixsepbuild.patch            |  19 --
 .../rename-no-instrument-function-macro.patch      | 345 ---------------------
 .../{directfb_1.7.4.bb => directfb_1.7.6.bb}       |   8 +-
 3 files changed, 3 insertions(+), 369 deletions(-)
 delete mode 100644 meta/recipes-graphics/directfb/directfb/fixsepbuild.patch
 delete mode 100644 meta/recipes-graphics/directfb/directfb/rename-no-instrument-function-macro.patch
 rename meta/recipes-graphics/directfb/{directfb_1.7.4.bb => directfb_1.7.6.bb} (58%)
meta/recipes-graphics/directfb/directfb/fixsepbuild.patch deleted +0 -19
deleted file mode 100644
index 94a9ba5..0000000
@@ -1,19 +0,0 @@
-Fix out of tree builds
-
-Upstream-Status: Pending
-
-RP 2013/03/21
-
-Index: DirectFB-1.6.1/configure.in
-===================================================================
---- DirectFB-1.6.1.orig/configure.in	2013-03-19 01:38:28.174004720 +0000
-+++ DirectFB-1.6.1/configure.in	2013-03-21 12:18:10.253113675 +0000
-@@ -111,7 +111,7 @@
- AC_PATH_TOOL(FLUXCOMP, fluxcomp)
- AC_SUBST(FLUXCOMP)
- if test -z "$FLUXCOMP"; then
--  if ! test -e src/core/CoreDFB.cpp; then
-+  if ! test -e $srcdir/src/core/CoreDFB.cpp; then
-     AC_MSG_ERROR([
- *** DirectFB compilation requires fluxcomp ***
- 
meta/recipes-graphics/directfb/directfb/rename-no-instrument-function-macro.patch deleted +0 -345

345 lines not on this page · raw message

meta/recipes-graphics/directfb/directfb_1.7.6.bb renamed from meta/recipes-graphics/directfb/directfb_1.7.4.bb +3 -5
similarity index 58%
rename from meta/recipes-graphics/directfb/directfb_1.7.4.bb
rename to meta/recipes-graphics/directfb/directfb_1.7.6.bb
index 39b006e..d25d987 100644
@@ -1,11 +1,9 @@
 require directfb.inc
 
-RV = "1.7-4"
+RV = "1.7-6"
 
 DEPENDS += "sysfsutils"
 
-SRC_URI += "file://fixsepbuild.patch"
-
 EXTRA_OECONF = "\
   --enable-freetype=yes \
   --enable-zlib \
@@ -19,5 +17,5 @@ EXTRA_OECONF = "\
 
 LEAD_SONAME = "libdirectfb-1.7.so.0"
 
-SRC_URI[md5sum] = "f5bdacde77fc653279819796ae11341e"
-SRC_URI[sha256sum] = "20ccd60011c788e50c940ab566943d050679067bc84dc37ca447f1b4af08481b"
+SRC_URI[md5sum] = "8a7bb06b3f58599b230b4cf314004512"
+SRC_URI[sha256sum] = "44f32bacfb842ea234599532f8481fe41b5bd2310d2bd101508eb3a5df26c9e1"
Signature · 1 line
1.9.1
author
#4 lore raw

PATCH v2 4/4 qt4-embedded: support c++0x stand for directfb

In reply to Hongxu Jia

While directfd upgrade to 1.7.6, it always includes directfb++ utils when C++ is used and set c++0x as c++ standard.
(In git://git.directfb.org/git/directfb/core/DirectFB.git
commit b444bcae3197be9faf883460dcc239ef757d5922, and commit 522beeb76f2a8d2dee30d928d2a5955bd06cf25c)

The directfd in qt4-embedded is c++, and there was a build failure:
...
| qdirectfbwindowsurface.cpp:336:69: error: in C++98 'rect' must be initialized by constructor, not by '{...}'
| const DFBRectangle rect = { r.x(), r.y(), r.width(), r.height() };
...

The g++ used c++98 as default c++ standard, we should explicitly set c++0x for directfd in qt4-embedded.

---
 ...figure-support-c-0x-standard-for-directfd.patch | 40 ++++++++++++++++++++++
 meta/recipes-qt/qt4/qt4-embedded.inc               |  4 ++-
 2 files changed, 43 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-qt/qt4/qt4-4.8.6/0033-configure-support-c-0x-standard-for-directfd.patch
meta/recipes-qt/qt4/qt4-4.8.6/0033-configure-support-c-0x-standard-for-directfd.patch new file +40 -0
new file mode 100644
index 0000000..f3face5
@@ -0,0 +1,40 @@
+configure: support c++0x standard for directfd
+
+While directfd upgrade to 1.7.6, it always includes directfb++ utils
+when C++ is used and set c++0x as c++ standard.
+(In git://git.directfb.org/git/directfb/core/DirectFB.git
+commit b444bcae3197be9faf883460dcc239ef757d5922, and commit
+522beeb76f2a8d2dee30d928d2a5955bd06cf25c)
+
+The directfd in qt4 is c++, and there was a build failure:
+...
+| qdirectfbwindowsurface.cpp:336:69: error: in C++98 'rect' must be
+initialized by constructor, not by '{...}'
+|      const DFBRectangle rect = { r.x(), r.y(), r.width(), r.height() };
+...
+
+The g++ used c++98 as default c++ standard, we should
+explicitly set c++0x for directfd in qt4.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <[email protected]>
+---
+ configure | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure b/configure
+index 5724bd6..ecc2f8b 100755
+--- a/configure
++++ b/configure
+@@ -6656,6 +6656,7 @@ if [ "$PLATFORM_QWS" = "yes" ]; then
+        if [ "${screen}" = "directfb" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
+            if test -n "$PKG_CONFIG" && "$PKG_CONFIG" --exists directfb 2>/dev/null; then
+                QT_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
++               QT_CFLAGS_DIRECTFB="$QT_CFLAGS_DIRECTFB -std=c++0x"
+                QT_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
+            elif directfb-config --version >/dev/null 2>&1; then
+                QT_CFLAGS_DIRECTFB=`directfb-config --cflags 2>/dev/null`
+-- 
+1.9.1
+
meta/recipes-qt/qt4/qt4-embedded.inc +3 -1
index e87de4b..ef5cf2c 100644
@@ -9,7 +9,9 @@ QT4EDEPENDS = ""
 QT_BASE_LIB  ?= "libqt-embedded"
 
 # Set necessary variables in the profile
-SRC_URI += "file://qte.sh"
+SRC_URI += "file://qte.sh \
+            file://0033-configure-support-c-0x-standard-for-directfd.patch \
+"
 
 QT_EMBEDDED_FLAGS ?= " \
     -embedded $QT_ARCH \
Signature · 1 line
1.9.1
author
#5 lore raw
In reply to Hongxu Jia
Quoted 1 line · Hongxu Jia

Changed in V2:

Ping

//Hongxu

Quoted 44 lines

- Follow Saul's suggestions, investigate groff's README, double check its DEPENDS;

- Follow Richard's suggestions, correctly set the path to perl in the recipe.

- Fix qt4-embedded build failure which caused by the upgraded directfb. (thanks Richard and Otavio for pointing it out)

//Hongxu

The following changes since commit e3a623bfe39fda16420d2042647af75877bb6f70:

   runqemu-internal: increase memory for qemuarm64 (2014-12-25 08:27:13 +0000)

are available in the git repository at:

git://git.pokylinux.org/poky-contrib hongxu/upgrade-packages
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=hongxu/upgrade-packages

Hongxu Jia (4):
groff: upgrade 1.22.3
groff: fix native perl path
directfb: upgrade to 1.7.6
qt4-embedded: support c++0x stand for directfb

  ...off-1.22.2-correct-man.local-install-path.patch |  32 --
  .../groff-correct-man.local-install-path.patch     |  45 +++
  .../groff/{groff_1.22.2.bb => groff_1.22.3.bb}     |  23 +-
  .../directfb/directfb/fixsepbuild.patch            |  19 --
  .../rename-no-instrument-function-macro.patch      | 345 ---------------------
  .../{directfb_1.7.4.bb => directfb_1.7.6.bb}       |   8 +-
  ...figure-support-c-0x-standard-for-directfd.patch |  40 +++
  meta/recipes-qt/qt4/qt4-embedded.inc               |   4 +-
  8 files changed, 99 insertions(+), 417 deletions(-)

delete mode 100644 meta/recipes-extended/groff/groff-1.22.2/groff-1.22.2-correct-man.local-install-path.patch create mode 100644 meta/recipes-extended/groff/groff-1.22.3/groff-correct-man.local-install-path.patch rename meta/recipes-extended/groff/{groff_1.22.2.bb => groff_1.22.3.bb} (72%)
delete mode 100644 meta/recipes-graphics/directfb/directfb/fixsepbuild.patch
delete mode 100644 meta/recipes-graphics/directfb/directfb/rename-no-instrument-function-macro.patch rename meta/recipes-graphics/directfb/{directfb_1.7.4.bb => directfb_1.7.6.bb} (58%)
create mode 100644 meta/recipes-qt/qt4/qt4-4.8.6/0033-configure-support-c-0x-standard-for-directfd.patch

#6 lore raw
In reply to Hongxu Jia
Quoted 6 lines · Hongxu Jia

Hongxu Jia (4):
groff: upgrade 1.22.3
groff: fix native perl path
directfb: upgrade to 1.7.6
qt4-embedded: support c++0x stand for directfb

I've merged all of these into MUT apart from "groff: fix native perl path". Adding a dependency on perl-native seems like a massive overkill when the problem appears to me that we just need to ensure that all Perl scripts in ${bindir} get fixed, or that we set PERL appropriately. Setting PERL seems to be the right solution but we need it set for target builds only, so would this work?

EXTRA_OECONF_append_class-target="PERL=${bindir}/perl"

Ross

author
#7 lore raw
Quoted 10 lines · Ross

On 29 December 2014 at 05:47, Hongxu Jia <[email protected] <mailto:[email protected]>> wrote:

    Hongxu Jia (4):
      groff: upgrade 1.22.3
      groff: fix native perl path
      directfb: upgrade to 1.7.6
      qt4-embedded: support c++0x stand for directfb
Quoted 3 lines

I've merged all of these into MUT apart from "groff: fix native perl path". Adding a dependency on perl-native seems like a massive overkill when the problem appears to me that we just need to ensure that all Perl scripts in ${bindir} get fixed, or that we set PERL appropriately. Setting PERL seems to be the right solution but we need it set for target builds only, so would this work?

EXTRA_OECONF_append_class-target="PERL=${bindir}/perl"

Agree

//Hongxu

Quoted 2 lines

Ross