Packages upgrade: groff and directfb
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.patchSignature · 1 line
1.9.1
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
@@ -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
@@ -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
PATCH v2 2/4 groff: fix native perl path
In reply to Hongxu JiaBuild 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
@@ -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
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
@@ -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
@@ -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
PATCH v2 4/4 qt4-embedded: support c++0x stand for directfb
In reply to Hongxu JiaWhile 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
@@ -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
@@ -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
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-contribhongxu/upgrade-packages
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=hongxu/upgrade-packagesHongxu 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.patchcreate mode 100644meta/recipes-extended/groff/groff-1.22.3/groff-correct-man.local-install-path.patchrename meta/recipes-extended/groff/{groff_1.22.2.bb => groff_1.22.3.bb} (72%)
delete mode 100644meta/recipes-graphics/directfb/directfb/fixsepbuild.patch
delete mode 100644meta/recipes-graphics/directfb/directfb/rename-no-instrument-function-macro.patchrename meta/recipes-graphics/directfb/{directfb_1.7.4.bb => directfb_1.7.6.bb} (58%)
create mode 100644meta/recipes-qt/qt4/qt4-4.8.6/0033-configure-support-c-0x-standard-for-directfd.patch
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
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