* [Buildroot] [PATCH 1/1] package/libpng: allow selection of older libpng versions
@ 2019-07-07 16:52 Paul Cercueil
2019-07-21 13:49 ` Thomas Petazzoni
0 siblings, 1 reply; 5+ messages in thread
From: Paul Cercueil @ 2019-07-07 16:52 UTC (permalink / raw)
To: buildroot
By allowing building an older version of libpng, we can create Buildroot
systems that are still binary-compatible with applications compiled with
older Buildroot toolchains.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
---
.../0001-Disable-pngfix-and-png-fix-itxt.patch | 0
package/libpng/Config.in | 15 +++++++++++++++
package/libpng/libpng.hash | 2 ++
package/libpng/libpng.mk | 11 +++++++++++
4 files changed, 28 insertions(+)
rename package/libpng/{ => 1.6.37}/0001-Disable-pngfix-and-png-fix-itxt.patch (100%)
diff --git a/package/libpng/0001-Disable-pngfix-and-png-fix-itxt.patch b/package/libpng/1.6.37/0001-Disable-pngfix-and-png-fix-itxt.patch
similarity index 100%
rename from package/libpng/0001-Disable-pngfix-and-png-fix-itxt.patch
rename to package/libpng/1.6.37/0001-Disable-pngfix-and-png-fix-itxt.patch
diff --git a/package/libpng/Config.in b/package/libpng/Config.in
index b0a3646078..099492c07c 100644
--- a/package/libpng/Config.in
+++ b/package/libpng/Config.in
@@ -6,3 +6,18 @@ config BR2_PACKAGE_LIBPNG
images.
http://www.libpng.org/
+
+choice
+ prompt "libpng version series"
+ default BR2_PACKAGE_LIBPNG_16
+
+config BR2_PACKAGE_LIBPNG_16
+ bool "libpng 1.6"
+
+config BR2_PACKAGE_LIBPNG_14
+ bool "libpng 1.4"
+
+config BR2_PACKAGE_LIBPNG_12
+ bool "libpng 1.2"
+
+endchoice
diff --git a/package/libpng/libpng.hash b/package/libpng/libpng.hash
index e86b8c65ce..c4bfc812cb 100644
--- a/package/libpng/libpng.hash
+++ b/package/libpng/libpng.hash
@@ -2,5 +2,7 @@
md5 015e8e15db1eecde5f2eb9eb5b6e59e9 libpng-1.6.37.tar.xz
sha1 3ab93fabbf4c27e1c4724371df408d9a1bd3f656 libpng-1.6.37.tar.xz
# Locally computed:
+sha256 b4635f15b8adccc8ad0934eea485ef59cc4cae24d0f0300a9a941e51974ffcc7 libpng-1.2.59.tar.xz
+sha256 8d419a8b2a5edddda5cbcb897ded92205344a3249fa7a00d6384ea23ac3ccbd8 libpng-1.4.22.tar.xz
sha256 505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca libpng-1.6.37.tar.xz
sha256 bf5e22b9dce8464064ae17a48ea1133c3369ac9e1d80ef9e320e5219aa14ea9b LICENSE
diff --git a/package/libpng/libpng.mk b/package/libpng/libpng.mk
index 5c30a4f9ad..2a89595006 100644
--- a/package/libpng/libpng.mk
+++ b/package/libpng/libpng.mk
@@ -4,8 +4,19 @@
#
################################################################################
+ifeq ($(BR2_PACKAGE_LIBPNG_16),y)
LIBPNG_VERSION = 1.6.37
LIBPNG_SERIES = 16
+else
+ifeq ($(BR2_PACKAGE_LIBPNG_14),y)
+LIBPNG_VERSION = 1.4.22
+LIBPNG_SERIES = 14
+else
+LIBPNG_VERSION = 1.2.59
+LIBPNG_SERIES = 12
+endif
+endif
+
LIBPNG_SOURCE = libpng-$(LIBPNG_VERSION).tar.xz
LIBPNG_SITE = http://downloads.sourceforge.net/project/libpng/libpng$(LIBPNG_SERIES)/$(LIBPNG_VERSION)
LIBPNG_LICENSE = Libpng-2.0
--
2.21.0.593.g511ec345e18
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 1/1] package/libpng: allow selection of older libpng versions
2019-07-07 16:52 [Buildroot] [PATCH 1/1] package/libpng: allow selection of older libpng versions Paul Cercueil
@ 2019-07-21 13:49 ` Thomas Petazzoni
2019-07-21 14:22 ` Yann E. MORIN
0 siblings, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2019-07-21 13:49 UTC (permalink / raw)
To: buildroot
Hello Paul,
+Yann, Arnout, Peter in Cc.
On Sun, 7 Jul 2019 12:52:24 -0400
Paul Cercueil <paul@crapouillou.net> wrote:
> By allowing building an older version of libpng, we can create Buildroot
> systems that are still binary-compatible with applications compiled with
> older Buildroot toolchains.
>
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
While I understand what you're trying to do, I'm not sure it's a
reasonable goal for Buildroot to be able to provide binary
compatibility between systems generated by different Buildroot
versions. We regularly update libraries to their latest upstream
versions, and sometimes they break the ABI compatibility. I don't think
we want to enter the game of ensuring that ABI compatibility is ensured
between Buildroot versions.
If you're building a program with a given Buildroot SDK, it should be
executed on the Buildroot system that matches that SDK.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 1/1] package/libpng: allow selection of older libpng versions
2019-07-21 13:49 ` Thomas Petazzoni
@ 2019-07-21 14:22 ` Yann E. MORIN
2019-07-21 16:51 ` Paul Cercueil
0 siblings, 1 reply; 5+ messages in thread
From: Yann E. MORIN @ 2019-07-21 14:22 UTC (permalink / raw)
To: buildroot
Thomas, Paul, Al,
On 2019-07-21 15:49 +0200, Thomas Petazzoni spake thusly:
> On Sun, 7 Jul 2019 12:52:24 -0400
> Paul Cercueil <paul@crapouillou.net> wrote:
> > By allowing building an older version of libpng, we can create Buildroot
> > systems that are still binary-compatible with applications compiled with
> > older Buildroot toolchains.
> While I understand what you're trying to do, I'm not sure it's a
> reasonable goal for Buildroot to be able to provide binary
> compatibility between systems generated by different Buildroot
> versions. We regularly update libraries to their latest upstream
> versions, and sometimes they break the ABI compatibility. I don't think
> we want to enter the game of ensuring that ABI compatibility is ensured
> between Buildroot versions.
Agreed.
> If you're building a program with a given Buildroot SDK, it should be
> executed on the Buildroot system that matches that SDK.
Agreed.
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 1/1] package/libpng: allow selection of older libpng versions
2019-07-21 14:22 ` Yann E. MORIN
@ 2019-07-21 16:51 ` Paul Cercueil
2019-07-21 17:15 ` Yann E. MORIN
0 siblings, 1 reply; 5+ messages in thread
From: Paul Cercueil @ 2019-07-21 16:51 UTC (permalink / raw)
To: buildroot
Le dim. 21 juil. 2019 ? 10:22, "Yann E. MORIN"
<yann.morin.1998@free.fr> a ?crit :
> Thomas, Paul, Al,
>
> On 2019-07-21 15:49 +0200, Thomas Petazzoni spake thusly:
>> On Sun, 7 Jul 2019 12:52:24 -0400
>> Paul Cercueil <paul@crapouillou.net> wrote:
>> > By allowing building an older version of libpng, we can create
>> Buildroot
>> > systems that are still binary-compatible with applications
>> compiled with
>> > older Buildroot toolchains.
>> While I understand what you're trying to do, I'm not sure it's a
>> reasonable goal for Buildroot to be able to provide binary
>> compatibility between systems generated by different Buildroot
>> versions. We regularly update libraries to their latest upstream
>> versions, and sometimes they break the ABI compatibility. I don't
>> think
>> we want to enter the game of ensuring that ABI compatibility is
>> ensured
>> between Buildroot versions.
>
> Agreed.
Honestly, in our case the only thing needed to support apps compiled
with Buildroot 2014.05 with the new Buildroot 2019.02.1 is this patch,
and a few symlinks in /lib (since libm/librt/etc. are gone).
Thanksfully the major version of libraries doesn't change that often.
>> If you're building a program with a given Buildroot SDK, it should
>> be
>> executed on the Buildroot system that matches that SDK.
>
> Agreed.
Then that means we're stuck with a 2014.05 Buildroot and cannot
contribute to upstream Buildroot development. It's not ideal.
> Regards,
> Yann E. MORIN.
>
> --
> .-----------------.--------------------.------------------.--------------------.
> | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics'
> conspiracy: |
> | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___
> |
> | +33 561 099 427 `------------.-------: X AGAINST | \e/
> There is no |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v
> conspiracy. |
> '------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 1/1] package/libpng: allow selection of older libpng versions
2019-07-21 16:51 ` Paul Cercueil
@ 2019-07-21 17:15 ` Yann E. MORIN
0 siblings, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2019-07-21 17:15 UTC (permalink / raw)
To: buildroot
Paul, All,
On 2019-07-21 12:51 -0400, Paul Cercueil spake thusly:
> Le dim. 21 juil. 2019 ? 10:22, "Yann E. MORIN" <yann.morin.1998@free.fr> a
> ?crit :
> >On 2019-07-21 15:49 +0200, Thomas Petazzoni spake thusly:
> >> On Sun, 7 Jul 2019 12:52:24 -0400
> >> Paul Cercueil <paul@crapouillou.net> wrote:
> >> > By allowing building an older version of libpng, we can create
> >>Buildroot
> >> > systems that are still binary-compatible with applications compiled
> >>with
> >> > older Buildroot toolchains.
> >> While I understand what you're trying to do, I'm not sure it's a
> >> reasonable goal for Buildroot to be able to provide binary
> >> compatibility between systems generated by different Buildroot
> >> versions. We regularly update libraries to their latest upstream
> >> versions, and sometimes they break the ABI compatibility. I don't think
> >> we want to enter the game of ensuring that ABI compatibility is ensured
> >> between Buildroot versions.
> >
> >Agreed.
>
> Honestly, in our case the only thing needed to support apps compiled with
As you said yourself, this is in *your* case. Other may have other
cases, see below...
> Buildroot 2014.05 with the new Buildroot 2019.02.1 is this patch, and a few
> symlinks in /lib (since libm/librt/etc. are gone). Thanksfully the major
> version of libraries doesn't change that often.
Well, then you'll probably also want to do the same for openssl, as
openssl 1.1 is not entirely compatible with older versions. And what is
the next library?
> >> If you're building a program with a given Buildroot SDK, it should be
> >> executed on the Buildroot system that matches that SDK.
> >
> >Agreed.
>
> Then that means we're stuck with a 2014.05 Buildroot and cannot contribute
> to upstream Buildroot development. It's not ideal.
But then why don't you recompile your applications in the new Buildroot?
If you really, like really-really, are stuck with applications that you
can't recompile, then create a new package in your br2-external tree,
libpgn12 (or 14...) and enable that. Still in _your_ case, you are
lucky: the actual SONAME of the library is libpng16.so.16 and so will
not conflict with the real libpng (should you have to _also_ enable it).
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-07-21 17:15 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-07 16:52 [Buildroot] [PATCH 1/1] package/libpng: allow selection of older libpng versions Paul Cercueil
2019-07-21 13:49 ` Thomas Petazzoni
2019-07-21 14:22 ` Yann E. MORIN
2019-07-21 16:51 ` Paul Cercueil
2019-07-21 17:15 ` 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