Skip to contentSkip to conversation

libcairomm: new package

PATCH New James Knight 3 participants 12 messages Dec 3, 2015 – Dec 21, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/4 libcairomm: new package

---
 package/Config.in                  |  1 +
 package/libcairomm/Config.in       | 19 +++++++++++++++++++
 package/libcairomm/libcairomm.hash |  2 ++
 package/libcairomm/libcairomm.mk   | 16 ++++++++++++++++
 4 files changed, 38 insertions(+)
 create mode 100644 package/libcairomm/Config.in
 create mode 100644 package/libcairomm/libcairomm.hash
 create mode 100644 package/libcairomm/libcairomm.mk
package/Config.in +1 -0
index 2bdad01..d4d430c 100644
@@ -1105,6 +1105,7 @@ menu "Other"
 	source "package/libbsd/Config.in"
 	source "package/libcap/Config.in"
 	source "package/libcap-ng/Config.in"
+	source "package/libcairomm/Config.in"
 	source "package/libcgroup/Config.in"
 	source "package/libcofi/Config.in"
 	source "package/libcrossguid/Config.in"
package/libcairomm/Config.in new file +19 -0
new file mode 100644
index 0000000..bdd027a
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_LIBCAIROMM
+	bool "libcairomm"
+	select BR2_PACKAGE_CAIRO
+	select BR2_PACKAGE_LIBGLIB2
+	depends on BR2_ARCH_HAS_ATOMICS # cairo
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
+	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
+	depends on BR2_USE_WCHAR # libglib2
+	depends on BR2_USE_MMU # libglib2
+	help
+	  The libcairomm package is a set of C++ bindings for Cairo.
+
+	  http://www.gtkmm.org/
+
+comment "libcairomm needs a toolchain w/ C++, wchar, threads, gcc >= 4.8"
+	depends on BR2_USE_MMU
+	depends on BR2_ARCH_HAS_ATOMICS
+	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR \
+		|| !BR2_TOOLCHAIN_HAS_THREADS
package/libcairomm/libcairomm.hash new file +2 -0
new file mode 100644
index 0000000..bebd474
@@ -0,0 +1,2 @@
+# From http://ftp.gnome.org/pub/gnome/sources/cairomm/1.12/cairomm-1.12.0.sha256sum
+sha256	a54ada8394a86182525c0762e6f50db6b9212a2109280d13ec6a0b29bfd1afe6	cairomm-1.12.0.tar.xz
package/libcairomm/libcairomm.mk new file +16 -0
new file mode 100644
index 0000000..08b5cd4
@@ -0,0 +1,16 @@
+################################################################################
+#
+# libcairomm
+#
+################################################################################
+
+LIBCAIROMM_VERSION_MAJOR = 1.12
+LIBCAIROMM_VERSION = $(LIBCAIROMM_VERSION_MAJOR).0
+LIBCAIROMM_LICENSE = LGPLv2
+LIBCAIROMM_LICENSE_FILES = COPYING
+LIBCAIROMM_SOURCE = cairomm-$(LIBCAIROMM_VERSION).tar.xz
+LIBCAIROMM_SITE = http://ftp.gnome.org/pub/gnome/sources/cairomm/$(LIBCAIROMM_VERSION_MAJOR)
+LIBCAIROMM_INSTALL_STAGING = YES
+LIBCAIROMM_DEPENDENCIES = cairo libglib2 host-pkgconf
+
+$(eval $(autotools-package))
Signature · 1 line
1.9.5.msysgit.1
#1 lore raw

PATCH 2/4 libpangomm: new package

---
 package/Config.in                  |  1 +
 package/libpangomm/Config.in       | 21 +++++++++++++++++++++
 package/libpangomm/libpangomm.hash |  2 ++
 package/libpangomm/libpangomm.mk   | 16 ++++++++++++++++
 4 files changed, 40 insertions(+)
 create mode 100644 package/libpangomm/Config.in
 create mode 100644 package/libpangomm/libpangomm.hash
 create mode 100644 package/libpangomm/libpangomm.mk
package/Config.in +1 -0
index d4d430c..8e84399 100644
@@ -1119,6 +1119,7 @@ menu "Other"
 	source "package/libical/Config.in"
 	source "package/liblinear/Config.in"
 	source "package/libnspr/Config.in"
+	source "package/libpangomm/Config.in"
 	source "package/libpfm4/Config.in"
 	source "package/libplatform/Config.in"
 	source "package/libplist/Config.in"
package/libpangomm/Config.in new file +21 -0
new file mode 100644
index 0000000..e595549
@@ -0,0 +1,21 @@
+config BR2_PACKAGE_LIBPANGOMM
+	bool "libpangomm"
+	select BR2_PACKAGE_LIBCAIROMM
+	select BR2_PACKAGE_GLIBMM
+	select BR2_PACKAGE_PANGO
+	depends on BR2_ARCH_HAS_ATOMICS # libcairomm/pango -> cairo
+	depends on BR2_INSTALL_LIBSTDCPP # glibmm/pango
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
+	depends on BR2_TOOLCHAIN_HAS_THREADS # *mm/pango -> libglib2
+	depends on BR2_USE_MMU # *mm/pango -> libglib2
+	depends on BR2_USE_WCHAR # *mm/pango -> libglib2
+	help
+	  The libpangomm package is a set of C++ bindings for Pango.
+
+	  http://www.gtkmm.org/
+
+comment "libpangomm needs a toolchain w/ C++, wchar, threads, gcc >= 4.8"
+	depends on BR2_USE_MMU
+	depends on BR2_ARCH_HAS_ATOMICS
+	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR \
+		|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
package/libpangomm/libpangomm.hash new file +2 -0
new file mode 100644
index 0000000..39e6a91
@@ -0,0 +1,2 @@
+# From http://ftp.gnome.org/pub/gnome/sources/pangomm/2.39/pangomm-2.39.1.sha256sum
+sha256	10c06bbf12a03963ffe9c697887b57c72f1dac1671d09dba45cecd25db5dc6ed	pangomm-2.39.1.tar.xz
package/libpangomm/libpangomm.mk new file +16 -0
new file mode 100644
index 0000000..d3743c1
@@ -0,0 +1,16 @@
+################################################################################
+#
+# libpangomm
+#
+################################################################################
+
+LIBPANGOMM_VERSION_MAJOR = 2.39
+LIBPANGOMM_VERSION = $(LIBPANGOMM_VERSION_MAJOR).1
+LIBPANGOMM_LICENSE = LGPLv2.1+ (library), GPLv2+ (tools)
+LIBPANGOMM_LICENSE_FILES = COPYING COPYING.tools
+LIBPANGOMM_SOURCE = pangomm-$(LIBPANGOMM_VERSION).tar.xz
+LIBPANGOMM_SITE = http://ftp.gnome.org/pub/gnome/sources/pangomm/$(LIBPANGOMM_VERSION_MAJOR)
+LIBPANGOMM_INSTALL_STAGING = YES
+LIBPANGOMM_DEPENDENCIES = glibmm libcairomm pango host-pkgconf
+
+$(eval $(autotools-package))
Signature · 1 line
1.9.5.msysgit.1
#2 lore raw

PATCH 2/4 libpangomm: new package

Dear James Knight,

Quoted 10 lines · James Knight
---
 package/Config.in                  |  1 +
 package/libpangomm/Config.in       | 21 +++++++++++++++++++++
 package/libpangomm/libpangomm.hash |  2 ++
 package/libpangomm/libpangomm.mk   | 16 ++++++++++++++++
 4 files changed, 40 insertions(+)
 create mode 100644 package/libpangomm/Config.in
 create mode 100644 package/libpangomm/libpangomm.hash
 create mode 100644 package/libpangomm/libpangomm.mk

Applied, after doing some changes:

[Thomas:
- rename to pangomm.
- move next to pango in menuconfig.
- add dependency to libsigc.]

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH 2/4 libpangomm: new package

In reply to James Knight
Quoted 1 line · James Knight

+LIBPANGOMM_VERSION_MAJOR = 2.39

Hi James.
Any particular reason you went for a devel/unstable branch version? (odd numbers for gnome stuff = devel/unstable, even = stable/releases). Thanks!
Regards.

#4 lore raw

PATCH 2/4 libpangomm: new package

Gustavo,

Quoted 2 lines · Gustavo Zacarias

Any particular reason you went for a devel/unstable branch version?

No. I only just took the versions I saw available to download. I didn't consider the Gnome version stable/devel releases. If we want to downgrade to a stable version, I have no objections.

#5 lore raw

PATCH 3/4 libatkmm: new package

In reply to James Knight
---
 package/Config.in              |  1 +
 package/libatkmm/Config.in     | 19 +++++++++++++++++++
 package/libatkmm/libatkmm.hash |  2 ++
 package/libatkmm/libatkmm.mk   | 16 ++++++++++++++++
 4 files changed, 38 insertions(+)
 create mode 100644 package/libatkmm/Config.in
 create mode 100644 package/libatkmm/libatkmm.hash
 create mode 100644 package/libatkmm/libatkmm.mk
package/Config.in +1 -0
index 8e84399..0520e14 100644
@@ -1101,6 +1101,7 @@ menu "Other"
 	source "package/gsl/Config.in"
 	source "package/gtest/Config.in"
 	source "package/libargtable2/Config.in"
+	source "package/libatkmm/Config.in"
 	source "package/libatomic_ops/Config.in"
 	source "package/libbsd/Config.in"
 	source "package/libcap/Config.in"
package/libatkmm/Config.in new file +19 -0
new file mode 100644
index 0000000..3e55fb7
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_LIBATKMM
+	bool "libatkmm"
+	select BR2_PACKAGE_ATK
+	select BR2_PACKAGE_GLIBMM
+	depends on BR2_INSTALL_LIBSTDCPP # glibmm
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
+	depends on BR2_TOOLCHAIN_HAS_THREADS # atk/glibmm -> libglib2
+	depends on BR2_USE_MMU # atk/glibmm -> libglib2
+	depends on BR2_USE_WCHAR # atk/glibmm -> libglib2
+
+	help
+	  The libatkmm package is a set of C++ bindings for Atk.
+
+	  http://www.gtkmm.org/
+
+comment "libatkmm needs a toolchain w/ C++, wchar, threads, gcc >= 4.8"
+	depends on BR2_USE_MMU
+	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR \
+		|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
package/libatkmm/libatkmm.hash new file +2 -0
new file mode 100644
index 0000000..4b3577c
@@ -0,0 +1,2 @@
+# From http://ftp.gnome.org/pub/gnome/sources/atkmm/2.24/atkmm-2.24.2.sha256sum
+sha256	ff95385759e2af23828d4056356f25376cfabc41e690ac1df055371537e458bd	atkmm-2.24.2.tar.xz
package/libatkmm/libatkmm.mk new file +16 -0
new file mode 100644
index 0000000..26bbcb7
@@ -0,0 +1,16 @@
+################################################################################
+#
+# libatkmm
+#
+################################################################################
+
+LIBATKMM_VERSION_MAJOR = 2.24
+LIBATKMM_VERSION = $(LIBATKMM_VERSION_MAJOR).2
+LIBATKMM_LICENSE = LGPLv2.1+ (library), GPLv2+ (tools)
+LIBATKMM_LICENSE_FILES = COPYING COPYING.tools
+LIBATKMM_SOURCE = atkmm-$(LIBATKMM_VERSION).tar.xz
+LIBATKMM_SITE = http://ftp.gnome.org/pub/gnome/sources/atkmm/$(LIBATKMM_VERSION_MAJOR)
+LIBATKMM_INSTALL_STAGING = YES
+LIBATKMM_DEPENDENCIES = atk glibmm host-pkgconf
+
+$(eval $(autotools-package))
Signature · 1 line
1.9.5.msysgit.1
#6 lore raw

PATCH 3/4 libatkmm: new package

Dear James Knight,

Quoted 10 lines · James Knight
---
 package/Config.in              |  1 +
 package/libatkmm/Config.in     | 19 +++++++++++++++++++
 package/libatkmm/libatkmm.hash |  2 ++
 package/libatkmm/libatkmm.mk   | 16 ++++++++++++++++
 4 files changed, 38 insertions(+)
 create mode 100644 package/libatkmm/Config.in
 create mode 100644 package/libatkmm/libatkmm.hash
 create mode 100644 package/libatkmm/libatkmm.mk

Applied, after some changes:

[Thomas:
- rename to atkmm
- move next to atk in menuconfig
- add dependency to libsigc]

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#7 lore raw

PATCH 4/4 libgtkmm30: new package

In reply to James Knight
---
 package/Config.in                  |  1 +
 package/libgtkmm30/Config.in       | 23 +++++++++++++++++++++++
 package/libgtkmm30/libgtkmm30.hash |  2 ++
 package/libgtkmm30/libgtkmm30.mk   | 27 +++++++++++++++++++++++++++
 4 files changed, 53 insertions(+)
 create mode 100644 package/libgtkmm30/Config.in
 create mode 100644 package/libgtkmm30/libgtkmm30.hash
 create mode 100644 package/libgtkmm30/libgtkmm30.mk
package/Config.in +1 -0
index 0520e14..6a060e3 100644
@@ -1117,6 +1117,7 @@ menu "Other"
 	source "package/libevent/Config.in"
 	source "package/libffi/Config.in"
 	source "package/libglib2/Config.in"
+	source "package/libgtkmm30/Config.in"
 	source "package/libical/Config.in"
 	source "package/liblinear/Config.in"
 	source "package/libnspr/Config.in"
package/libgtkmm30/Config.in new file +23 -0
new file mode 100644
index 0000000..5f95447
@@ -0,0 +1,23 @@
+config BR2_PACKAGE_LIBGTKMM30
+	bool "libgtkmm30"
+	select BR2_PACKAGE_GLIBMM
+	select BR2_PACKAGE_LIBATKMM
+	select BR2_PACKAGE_LIBCAIROMM
+	select BR2_PACKAGE_LIBPANGOMM
+	select BR2_PACKAGE_LIBGTK3
+	depends on BR2_ARCH_HAS_ATOMICS # libcairomm/libgtk3/libpangomm -> cairo
+	depends on BR2_INSTALL_LIBSTDCPP # glibmm, libpangomm -> glibmm/pango
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
+	depends on BR2_TOOLCHAIN_HAS_THREADS # *mm/libgtk3 -> libglib2
+	depends on BR2_USE_MMU # *mm/libgtk3 -> libglib2
+	depends on BR2_USE_WCHAR # *mm/libgtk3 -> libglib2
+	help
+	  The libgtkmm30 package is a set of C++ bindings for GTK 3.
+
+	  http://www.gtkmm.org/
+
+comment "libgtkmm30 needs a toolchain w/ C++, wchar, threads, gcc >= 4.8"
+	depends on BR2_USE_MMU
+	depends on BR2_ARCH_HAS_ATOMICS
+	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR \
+		|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
package/libgtkmm30/libgtkmm30.hash new file +2 -0
new file mode 100644
index 0000000..49e2f76
@@ -0,0 +1,2 @@
+# From http://ftp.gnome.org/pub/GNOME/sources/gtkmm/3.14/gtkmm-3.14.0.sha256sum
+sha256	d9f528a62c6ec226fa08287c45c7465b2dce5aae5068e9ac48d30a64a378e48b	gtkmm-3.14.0.tar.xz
package/libgtkmm30/libgtkmm30.mk new file +27 -0
new file mode 100644
index 0000000..1cd184d
@@ -0,0 +1,27 @@
+################################################################################
+#
+# libgtkmm30
+#
+################################################################################
+
+LIBGTKMM30_VERSION_MAJOR = 3.14
+LIBGTKMM30_VERSION = $(LIBGTKMM30_VERSION_MAJOR).0
+LIBGTKMM30_LICENSE = LGPLv2.1+ (library), GPLv2+ (tools)
+LIBGTKMM30_LICENSE_FILES = COPYING COPYING.tools
+LIBGTKMM30_SOURCE = gtkmm-$(LIBGTKMM30_VERSION).tar.xz
+LIBGTKMM30_SITE = http://ftp.gnome.org/pub/gnome/sources/gtkmm/$(LIBGTKMM30_VERSION_MAJOR)
+LIBGTKMM30_INSTALL_STAGING = YES
+LIBGTKMM30_DEPENDENCIES = glibmm libatkmm libcairomm libgtk3 libpangomm host-pkgconf
+
+# Explicit use of C++11 to build with newer *mm dependencies that require C++11.
+#
+# The most recent release of *mm-related libraries require C++11. This project's
+# dependencies (ex. libpangomm) are updated and enforce the C++11 standard.
+# Since the libgtkmm30 must match the libgtk3 version, the useable version of
+# libgtkmm30 does not have this enforcement; however, to build with the most
+# recent version of the dependencies, libgtkmm30 requires to be built with
+# `-std=c++11`. The following enforces C++11 standard. When libgtk3 is updated,
+# followed by a libgtkmm30 update, this flag modification can be removed.
+LIBGTKMM30_CONF_ENV = CPPFLAGS="$(TARGET_CPPFLAGS) -std=c++11"
+
+$(eval $(autotools-package))
Signature · 1 line
1.9.5.msysgit.1
#8 lore raw

PATCH 4/4 libgtkmm30: new package

Dear James Knight,

Quoted 10 lines · James Knight
---
 package/Config.in                  |  1 +
 package/libgtkmm30/Config.in       | 23 +++++++++++++++++++++++
 package/libgtkmm30/libgtkmm30.hash |  2 ++
 package/libgtkmm30/libgtkmm30.mk   | 27 +++++++++++++++++++++++++++
 4 files changed, 53 insertions(+)
 create mode 100644 package/libgtkmm30/Config.in
 create mode 100644 package/libgtkmm30/libgtkmm30.hash
 create mode 100644 package/libgtkmm30/libgtkmm30.mk

Applied, after some changes:

[Thomas:
- rename from libgtkmm30 to gtkmm3.
- add libsigc dependency.]

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#9 lore raw

PATCH 1/4 libcairomm: new package

In reply to James Knight

Dear James Knight,

Quoted 10 lines · James Knight
---
 package/Config.in                  |  1 +
 package/libcairomm/Config.in       | 19 +++++++++++++++++++
 package/libcairomm/libcairomm.hash |  2 ++
 package/libcairomm/libcairomm.mk   | 16 ++++++++++++++++
 4 files changed, 38 insertions(+)
 create mode 100644 package/libcairomm/Config.in
 create mode 100644 package/libcairomm/libcairomm.hash
 create mode 100644 package/libcairomm/libcairomm.mk

I've applied, but quite a few changes were needed:

[Thomas:
- rename package from libcairomm to cairomm in order to match upstream name.
- put the package next to cairo in menuconfig
- add missing dependency on libsigc
- add missing depends on BR2_INSTALL_LIBSTDCPP
- fix license: it's LGPLv2+, not LGPLv2.]

I was a bit surprised by the missing dependency on libsigc. Please test your new packages with minimal configurations to validate that you have selected all dependencies. Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#10 lore raw

PATCH 1/4 libcairomm: new package

Thomas,

Quoted 2 lines · Thomas Petazzoni

I've applied, but quite a few changes were needed:

First off, thanks (as well as for related commits).

Quoted 2 lines

I was a bit surprised by the missing dependency on libsigc.

My apologies. I am surprised I messed that as well. No excuse; I'll have to rework how I check things but I submit stuff upstream.

I have one question about the following though:

Quoted 3 lines

- rename package from libcairomm to cairomm in order to match upstream name.

Was this changed to match existing Buildroot's packages naming style or
something else? I was trying to make sure I selected the right name for
these packages; a bit frustrated that I messed up on this as well. I guess
I started with trying to match gtkmm's package to gtk's packages seen in Buildroot (ie GTK 2 is libgtk2 and not gtk2), then followed suit with the
package dependencies I was adding. I guess my main question is why the GTK packages are named libgtk2/libgtk3 over gtk2/gtk3?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151216/ce7e4fbf/attachment.html>

#11 lore raw

PATCH 1/4 libcairomm: new package

James,

Quoted 4 lines · James Knight
Quoted 1 line

I was a bit surprised by the missing dependency on libsigc.

My apologies. I am surprised I messed that as well. No excuse; I'll have to rework how I check things but I submit stuff upstream.

No problem. It's anyway the sort of things that the autobuilders would have caught. If I didn't had to rename the packages, I probably wouldn't have even build tested them, leaving that work for the autobuilders.

Quoted 10 lines
Quoted 2 lines

- rename package from libcairomm to cairomm in order to match upstream name.

Was this changed to match existing Buildroot's packages naming style or something else? I was trying to make sure I selected the right name for these packages; a bit frustrated that I messed up on this as well. I guess I started with trying to match gtkmm's package to gtk's packages seen in Buildroot (ie GTK 2 is libgtk2 and not gtk2), then followed suit with the package dependencies I was adding. I guess my main question is why the GTK packages are named libgtk2/libgtk3 over gtk2/gtk3?

In general, we try to use the upstream name, which in this case was cairomm, atkmm, etc. Also another reason was that the cairo package was named cairo, not libcairo, not it was strange to have "cairo" and "libcairomm", it made more sense to have "cairo" and "cairomm".

Regarding gtk, yes we deviated from this rule. This has its origin many many years ago. Back in the time, the gtk (version 1) package was named libgtk, so we followed that for libgtk2 and then libgtk3.

Yes, it is not super consistent, but renaming all that stuff would be quite a lot of churn for no real benefit.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com