diff mbox series

[19.07,4/4] treewide: mark selected packages nonshared

Message ID 20210701130955.2315-5-ynezz@true.cz
State Accepted
Delegated to: Petr Štetiar
Headers show
Series ubus fixes backports | expand

Commit Message

Petr Štetiar July 1, 2021, 1:09 p.m. UTC
From: Hannu Nyman <hannu.nyman@iki.fi>

Mark uci, ubus, libubox, lua, libnl-tiny and libjson-c
as nonshared packages. This helps to keep coherent dependencies
if these ABI versioned packages are later updated.

Before this commit it is possible to get missing dependencies
in target-specific nonshared packages (like iwinfo) that depend
on these shared ABI versioned packages. If these are later updated
and rebuilt, only the new ABI version will be available for download,
while the target-specific packages in releases continue to depend on
the old ABI version.

After this commit the packages are built along the other nonshared
packages by the phase1 images buildbot and will be available at the
target/ download directories instead of packages/base dir. That will
help to keep a coherent set available.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Signed-off-by: Petr Štetiar <ynezz@true.cz> [backport]
(backported from commit 72cc44958ef4e0df1a152178514c92899d6a957a)
Signed-off-by: Petr Štetiar <ynezz@true.cz>
---
 package/libs/libjson-c/Makefile  | 3 ++-
 package/libs/libnl-tiny/Makefile | 4 +++-
 package/libs/libubox/Makefile    | 4 +++-
 package/system/ubus/Makefile     | 3 ++-
 package/system/uci/Makefile      | 3 ++-
 package/utils/lua/Makefile       | 3 ++-
 6 files changed, 14 insertions(+), 6 deletions(-)

Comments

Paul Spooren July 1, 2021, 5:45 p.m. UTC | #1
On 7/1/21 3:09 AM, Petr Štetiar wrote:
> From: Hannu Nyman <hannu.nyman@iki.fi>
>
> Mark uci, ubus, libubox, lua, libnl-tiny and libjson-c
> as nonshared packages. This helps to keep coherent dependencies
> if these ABI versioned packages are later updated.
>
> Before this commit it is possible to get missing dependencies
> in target-specific nonshared packages (like iwinfo) that depend
> on these shared ABI versioned packages. If these are later updated
> and rebuilt, only the new ABI version will be available for download,
> while the target-specific packages in releases continue to depend on
> the old ABI version.
>
> After this commit the packages are built along the other nonshared
> packages by the phase1 images buildbot and will be available at the
> target/ download directories instead of packages/base dir. That will
> help to keep a coherent set available.
>
> Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
> Signed-off-by: Petr Štetiar <ynezz@true.cz> [backport]
> (backported from commit 72cc44958ef4e0df1a152178514c92899d6a957a)
> Signed-off-by: Petr Štetiar <ynezz@true.cz>
> ---
>   package/libs/libjson-c/Makefile  | 3 ++-
>   package/libs/libnl-tiny/Makefile | 4 +++-
>   package/libs/libubox/Makefile    | 4 +++-
>   package/system/ubus/Makefile     | 3 ++-
>   package/system/uci/Makefile      | 3 ++-
>   package/utils/lua/Makefile       | 3 ++-
>   6 files changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/package/libs/libjson-c/Makefile b/package/libs/libjson-c/Makefile
> index 522de0698423..49e9d01a12a9 100644
> --- a/package/libs/libjson-c/Makefile
> +++ b/package/libs/libjson-c/Makefile
> @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
>   
>   PKG_NAME:=json-c
>   PKG_VERSION:=0.12.1
> -PKG_RELEASE:=3.1
> +PKG_RELEASE:=3.2
I've never seen a non integer release, is there a special reason for this?
>   
>   PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-nodoc.tar.gz
>   PKG_SOURCE_URL:=https://s3.amazonaws.com/json-c_releases/releases/
> @@ -21,6 +21,7 @@ PKG_LICENSE:=MIT
>   PKG_LICENSE_FILES:=COPYING
>   PKG_CPE_ID:=cpe:/a:json-c_project:json-c
>   
> +PKG_FLAGS:=nonshared
>   PKG_FIXUP:=autoreconf
>   PKG_INSTALL:=1
>   
> diff --git a/package/libs/libnl-tiny/Makefile b/package/libs/libnl-tiny/Makefile
> index cabbb084218f..79c3bdcb2eef 100644
> --- a/package/libs/libnl-tiny/Makefile
> +++ b/package/libs/libnl-tiny/Makefile
> @@ -9,7 +9,9 @@ include $(TOPDIR)/rules.mk
>   
>   PKG_NAME:=libnl-tiny
>   PKG_VERSION:=0.1
> -PKG_RELEASE:=5
> +PKG_RELEASE:=6
> +
> +PKG_FLAGS:=nonshared
>   
>   PKG_LICENSE:=LGPL-2.1
>   PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
> diff --git a/package/libs/libubox/Makefile b/package/libs/libubox/Makefile
> index 49bf58374266..8f1ce50b5827 100644
> --- a/package/libs/libubox/Makefile
> +++ b/package/libs/libubox/Makefile
> @@ -1,7 +1,7 @@
>   include $(TOPDIR)/rules.mk
>   
>   PKG_NAME:=libubox
> -PKG_RELEASE=1
> +PKG_RELEASE=2
>   
>   PKG_SOURCE_PROTO:=git
>   PKG_SOURCE_URL=$(PROJECT_GIT)/project/libubox.git
> @@ -10,6 +10,8 @@ PKG_SOURCE_DATE:=2020-05-25
>   PKG_SOURCE_VERSION:=66195aee50424cbda0c2d858014e4cc58a2dc029
>   CMAKE_INSTALL:=1
>   
> +PKG_FLAGS:=nonshared
> +
>   PKG_LICENSE:=ISC
>   PKG_LICENSE_FILES:=
>   
> diff --git a/package/system/ubus/Makefile b/package/system/ubus/Makefile
> index 2c116ae6f852..f0833663a8a9 100644
> --- a/package/system/ubus/Makefile
> +++ b/package/system/ubus/Makefile
> @@ -1,7 +1,7 @@
>   include $(TOPDIR)/rules.mk
>   
>   PKG_NAME:=ubus
> -PKG_RELEASE:=1
> +PKG_RELEASE:=2
>   
>   PKG_SOURCE_PROTO:=git
>   PKG_SOURCE_URL=$(PROJECT_GIT)/project/ubus.git
> @@ -13,6 +13,7 @@ CMAKE_INSTALL:=1
>   
>   PKG_LICENSE:=LGPL-2.1
>   PKG_LICENSE_FILES:=
> +PKG_FLAGS:=nonshared
>   
>   PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
>   
> diff --git a/package/system/uci/Makefile b/package/system/uci/Makefile
> index 903d4c50ca3a..2c75f270c078 100644
> --- a/package/system/uci/Makefile
> +++ b/package/system/uci/Makefile
> @@ -9,7 +9,7 @@
>   include $(TOPDIR)/rules.mk
>   
>   PKG_NAME:=uci
> -PKG_RELEASE:=4
> +PKG_RELEASE:=5
>   
>   PKG_SOURCE_URL=$(PROJECT_GIT)/project/uci.git
>   PKG_SOURCE_PROTO:=git
> @@ -23,6 +23,7 @@ PKG_LICENSE_FILES:=
>   PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
>   
>   PKG_BUILD_PARALLEL:=0
> +PKG_FLAGS:=nonshared
>   
>   include $(INCLUDE_DIR)/package.mk
>   include $(INCLUDE_DIR)/cmake.mk
> diff --git a/package/utils/lua/Makefile b/package/utils/lua/Makefile
> index 077a60fbf3e8..73358c540714 100644
> --- a/package/utils/lua/Makefile
> +++ b/package/utils/lua/Makefile
> @@ -9,13 +9,14 @@ include $(TOPDIR)/rules.mk
>   
>   PKG_NAME:=lua
>   PKG_VERSION:=5.1.5
> -PKG_RELEASE:=3
> +PKG_RELEASE:=4
>   
>   PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
>   PKG_SOURCE_URL:=http://www.lua.org/ftp/ \
>   	http://www.tecgraf.puc-rio.br/lua/ftp/
>   PKG_HASH:=2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333
>   PKG_BUILD_PARALLEL:=1
> +PKG_FLAGS:=nonshared
>   
>   PKG_LICENSE:=MIT
>   PKG_LICENSE_FILES:=COPYRIGHT
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Petr Štetiar July 1, 2021, 7:51 p.m. UTC | #2
Paul Spooren <mail@aparcar.org> [2021-07-01 07:45:02]:

> > +++ b/package/libs/libjson-c/Makefile
> > @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
> >   PKG_NAME:=json-c
> >   PKG_VERSION:=0.12.1
> > -PKG_RELEASE:=3.1
> > +PKG_RELEASE:=3.2
>
> I've never seen a non integer release, is there a special reason for this?

package/base-files/Makefile:PKG_RELEASE:=204.4
package/boot/uboot-envtools/Makefile:PKG_RELEASE:=3.1
package/libs/libjson-c/Makefile:PKG_RELEASE:=3.2
package/libs/libpcap/Makefile:PKG_RELEASE:=2.1
package/network/services/dnsmasq/Makefile:PKG_RELEASE:=16.3
package/network/utils/iproute2/Makefile:PKG_RELEASE:=2.1
Paul Spooren July 1, 2021, 7:57 p.m. UTC | #3
On 7/1/21 9:51 AM, Petr Štetiar wrote:
> Paul Spooren <mail@aparcar.org> [2021-07-01 07:45:02]:
>
>>> +++ b/package/libs/libjson-c/Makefile
>>> @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
>>>    PKG_NAME:=json-c
>>>    PKG_VERSION:=0.12.1
>>> -PKG_RELEASE:=3.1
>>> +PKG_RELEASE:=3.2
>> I've never seen a non integer release, is there a special reason for this?
> package/base-files/Makefile:PKG_RELEASE:=204.4
> package/boot/uboot-envtools/Makefile:PKG_RELEASE:=3.1
> package/libs/libjson-c/Makefile:PKG_RELEASE:=3.2
> package/libs/libpcap/Makefile:PKG_RELEASE:=2.1
> package/network/services/dnsmasq/Makefile:PKG_RELEASE:=16.3
> package/network/utils/iproute2/Makefile:PKG_RELEASE:=2.1
Thanks for the lookup.
Jo-Philipp Wich July 3, 2021, 7:39 p.m. UTC | #4
Hi,

> I've never seen a non integer release, is there a special reason for this?

I used to do that in the past when backporting master changes to
branches that didn't apply cleanly anymore.

In this case the package contents between master and release branches
deviated while keeping the same software version. To denote that fact I
kept the last common PKG_RELEASE as appended a minor version instead.

So assuming a package "foo" had version 1.2.3 with PKG_RELEASE 4 in
master and branch, and that the contents deviated over time (different
patches, init script fixes, system integrations) while both remaining at
version 1.2.3, the master package would've get bumped to 1.2.3-5,
1.2.3-6 and so on while the "forked" branch version gets bumped from
1.2.3-4 to 1.2.3-4.1, 1.2.3-4.2 etc.

HTH,
Jo
Adrian Schmutzler July 4, 2021, 12:46 p.m. UTC | #5
> >   PKG_NAME:=json-c
> >   PKG_VERSION:=0.12.1
> > -PKG_RELEASE:=3.1
> > +PKG_RELEASE:=3.2
> I've never seen a non integer release, is there a special reason for this?

I've also used this as standard scheme for changes in stable branches. The advantage is that you immediately see up to which version the changes are shared with master, and when it starts to deviate.

Best

Adrian
Giovanni Giacobbi July 9, 2021, 7:36 a.m. UTC | #6
On 04/07/2021 14:46, Adrian Schmutzler wrote:
>>>    PKG_NAME:=json-c
>>>    PKG_VERSION:=0.12.1
>>> -PKG_RELEASE:=3.1
>>> +PKG_RELEASE:=3.2
>> I've never seen a non integer release, is there a special reason for this?
> I've also used this as standard scheme for changes in stable branches. The advantage is that you immediately see up to which version the changes are shared with master, and when it starts to deviate.

What would you do then if the upstream version is bumped, but the 
patchset/Makefile would still differ between the master and branch? In 
this case, you bump PKG_VERSION to 0.12.2, but if you restart the 
PKG_RELEASE from 1 for both the branch and the master you end up with 
two different "0.12.2-1" packages in let's say 21.02 and 19.07.
Adrian Schmutzler July 9, 2021, 2:42 p.m. UTC | #7
> -----Original Message-----
> From: Giovanni Giacobbi [mailto:giovanni@giacobbi.net]
> Sent: Freitag, 9. Juli 2021 09:37
> To: Adrian Schmutzler <mail@adrianschmutzler.de>; 'Paul Spooren'
> <mail@aparcar.org>; 'Petr Štetiar' <ynezz@true.cz>; openwrt-
> devel@lists.openwrt.org
> Cc: 'Hannu Nyman' <hannu.nyman@iki.fi>
> Subject: Re: [PATCH 19.07 4/4] treewide: mark selected packages nonshared
> 
> On 04/07/2021 14:46, Adrian Schmutzler wrote:
> >>>    PKG_NAME:=json-c
> >>>    PKG_VERSION:=0.12.1
> >>> -PKG_RELEASE:=3.1
> >>> +PKG_RELEASE:=3.2
> >> I've never seen a non integer release, is there a special reason for this?
> > I've also used this as standard scheme for changes in stable branches. The
> advantage is that you immediately see up to which version the changes are
> shared with master, and when it starts to deviate.
> 
> What would you do then if the upstream version is bumped, but the
> patchset/Makefile would still differ between the master and branch? In this

I'd have to think about that.

But changing PKG_VERSION or PKG_SOURCE_DATE is rare in release branches. 

Best

Adrian

> case, you bump PKG_VERSION to 0.12.2, but if you restart the PKG_RELEASE
> from 1 for both the branch and the master you end up with two different
> "0.12.2-1" packages in let's say 21.02 and 19.07.
>
diff mbox series

Patch

diff --git a/package/libs/libjson-c/Makefile b/package/libs/libjson-c/Makefile
index 522de0698423..49e9d01a12a9 100644
--- a/package/libs/libjson-c/Makefile
+++ b/package/libs/libjson-c/Makefile
@@ -9,7 +9,7 @@  include $(TOPDIR)/rules.mk
 
 PKG_NAME:=json-c
 PKG_VERSION:=0.12.1
-PKG_RELEASE:=3.1
+PKG_RELEASE:=3.2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-nodoc.tar.gz
 PKG_SOURCE_URL:=https://s3.amazonaws.com/json-c_releases/releases/
@@ -21,6 +21,7 @@  PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:json-c_project:json-c
 
+PKG_FLAGS:=nonshared
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
diff --git a/package/libs/libnl-tiny/Makefile b/package/libs/libnl-tiny/Makefile
index cabbb084218f..79c3bdcb2eef 100644
--- a/package/libs/libnl-tiny/Makefile
+++ b/package/libs/libnl-tiny/Makefile
@@ -9,7 +9,9 @@  include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnl-tiny
 PKG_VERSION:=0.1
-PKG_RELEASE:=5
+PKG_RELEASE:=6
+
+PKG_FLAGS:=nonshared
 
 PKG_LICENSE:=LGPL-2.1
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
diff --git a/package/libs/libubox/Makefile b/package/libs/libubox/Makefile
index 49bf58374266..8f1ce50b5827 100644
--- a/package/libs/libubox/Makefile
+++ b/package/libs/libubox/Makefile
@@ -1,7 +1,7 @@ 
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libubox
-PKG_RELEASE=1
+PKG_RELEASE=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/libubox.git
@@ -10,6 +10,8 @@  PKG_SOURCE_DATE:=2020-05-25
 PKG_SOURCE_VERSION:=66195aee50424cbda0c2d858014e4cc58a2dc029
 CMAKE_INSTALL:=1
 
+PKG_FLAGS:=nonshared
+
 PKG_LICENSE:=ISC
 PKG_LICENSE_FILES:=
 
diff --git a/package/system/ubus/Makefile b/package/system/ubus/Makefile
index 2c116ae6f852..f0833663a8a9 100644
--- a/package/system/ubus/Makefile
+++ b/package/system/ubus/Makefile
@@ -1,7 +1,7 @@ 
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ubus
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/ubus.git
@@ -13,6 +13,7 @@  CMAKE_INSTALL:=1
 
 PKG_LICENSE:=LGPL-2.1
 PKG_LICENSE_FILES:=
+PKG_FLAGS:=nonshared
 
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 
diff --git a/package/system/uci/Makefile b/package/system/uci/Makefile
index 903d4c50ca3a..2c75f270c078 100644
--- a/package/system/uci/Makefile
+++ b/package/system/uci/Makefile
@@ -9,7 +9,7 @@ 
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=uci
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/uci.git
 PKG_SOURCE_PROTO:=git
@@ -23,6 +23,7 @@  PKG_LICENSE_FILES:=
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 
 PKG_BUILD_PARALLEL:=0
+PKG_FLAGS:=nonshared
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/cmake.mk
diff --git a/package/utils/lua/Makefile b/package/utils/lua/Makefile
index 077a60fbf3e8..73358c540714 100644
--- a/package/utils/lua/Makefile
+++ b/package/utils/lua/Makefile
@@ -9,13 +9,14 @@  include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lua
 PKG_VERSION:=5.1.5
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.lua.org/ftp/ \
 	http://www.tecgraf.puc-rio.br/lua/ftp/
 PKG_HASH:=2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333
 PKG_BUILD_PARALLEL:=1
+PKG_FLAGS:=nonshared
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYRIGHT