diff mbox series

[7/8] package/opkg-utils: add opkg-utils as target pkg

Message ID 20210312200534.923-8-ryan.barnett@rockwellcollins.com
State Accepted
Headers show
Series package/opkg-utils: add target build | expand

Commit Message

Ryan Barnett March 12, 2021, 8:05 p.m. UTC
Supports a use case of building container rootfs images where a matching
target version of the tools is required for repackaging of a installer
 archive.

Signed-off-by: Ryan Barnett <ryan.barnett@rockwellcollins.com>
---
 package/Config.in                |  1 +
 package/opkg-utils/Config.in     | 33 ++++++++++++++++++++++++++++++++
 package/opkg-utils/opkg-utils.mk | 20 +++++++++++++++++++
 3 files changed, 54 insertions(+)
 create mode 100644 package/opkg-utils/Config.in

Comments

Yann E. MORIN March 12, 2021, 10:56 p.m. UTC | #1
Ryan, All,

On 2021-03-12 14:05 -0600, Ryan Barnett spake thusly:
> Supports a use case of building container rootfs images where a matching
> target version of the tools is required for repackaging of a installer
>  archive.
> 
> Signed-off-by: Ryan Barnett <ryan.barnett@rockwellcollins.com>
> ---
[--SNIP--]
> diff --git a/package/opkg-utils/opkg-utils.mk b/package/opkg-utils/opkg-utils.mk
> index d7f68b8555..a445c9f49e 100644
> --- a/package/opkg-utils/opkg-utils.mk
> +++ b/package/opkg-utils/opkg-utils.mk
> @@ -10,6 +10,21 @@ OPKG_UTILS_SITE_METHOD = git
>  OPKG_UTILS_LICENSE = GPL-2.0+
>  OPKG_UTILS_LICENSE_FILES = COPYING
>  
> +OPKG_UTILS_DEPENDENCIES += \
> +	bash \
> +	binutils \
> +	bzip2 \
> +	coreutils \
> +	diffutils \
> +	findutils \
> +	grep \
> +	gzip \
> +	lz4 \
> +	python3 \
> +	sed \
> +	tar \
> +	xz

As you explained in a previous commit, opkg-utils only contains scripts
(in various languages, but still scripts), so the dependencies are not
needed at build time.

Regards,
Yann E. MORIN.

>  HOST_OPKG_UTILS_DEPENDENCIES += \
>  	host-coreutils \
>  	host-diffutils \
> @@ -19,8 +34,13 @@ HOST_OPKG_UTILS_DEPENDENCIES += \
>  	$(BR2_PYTHON3_HOST_DEPENDENCY) \
>  	host-xz
>  
> +define OPKG_UTILS_INSTALL_CMDS
> +	$(MAKE) -C $(@D) PREFIX=$(TARGET_DIR) install-utils
> +endef
> +
>  define HOST_OPKG_UTILS_INSTALL_CMDS
>  	$(MAKE) -C $(@D) PREFIX=$(HOST_DIR) install-utils
>  endef
>  
> +$(eval $(generic-package))
>  $(eval $(host-generic-package))
> -- 
> 2.17.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Yann E. MORIN March 14, 2021, 6:38 p.m. UTC | #2
Ryan, All,

On 2021-03-12 14:05 -0600, Ryan Barnett spake thusly:
> Supports a use case of building container rootfs images where a matching
> target version of the tools is required for repackaging of a installer
>  archive.
> 
> Signed-off-by: Ryan Barnett <ryan.barnett@rockwellcollins.com>

Applied to master, with the following changes:

  - only select full-blown packages if busybox is not enabled
  - select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS, instead of 'depends on'
  - allow on nios2 when busybox is enabled
  - add binutils binaries on target (for 'ar')
  - drop _DEPENDENCIES: they all are only runtime-dpeendencies
  - add comment when python(2) is enabled

Thanks!

Regards,
Yann E. MORIN.

> ---
>  package/Config.in                |  1 +
>  package/opkg-utils/Config.in     | 33 ++++++++++++++++++++++++++++++++
>  package/opkg-utils/opkg-utils.mk | 20 +++++++++++++++++++
>  3 files changed, 54 insertions(+)
>  create mode 100644 package/opkg-utils/Config.in
> 
> diff --git a/package/Config.in b/package/Config.in
> index 992e46a319..fb77ba134e 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -2337,6 +2337,7 @@ comment "See the manual:                                        "
>  comment "http://buildroot.org/manual.html#faq-no-binary-packages"
>  comment "-------------------------------------------------------"
>  	source "package/opkg/Config.in"
> +	source "package/opkg-utils/Config.in"
>  	source "package/rpm/Config.in"
>  endmenu
>  
> diff --git a/package/opkg-utils/Config.in b/package/opkg-utils/Config.in
> new file mode 100644
> index 0000000000..b60a48c19d
> --- /dev/null
> +++ b/package/opkg-utils/Config.in
> @@ -0,0 +1,33 @@
> +config BR2_PACKAGE_OPKG_UTILS
> +	bool "opkg-utils"
> +	depends on BR2_USE_MMU # bash, coreutils, findutils, tar
> +	depends on !BR2_nios2 # binutils
> +	# binutils, coreutils, diffutils, findutils, grep, gzip, python3, sed,
> +	# tar
> +	depends on BR2_USE_WCHAR
> +	depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
> +	depends on BR2_TOOLCHAIN_HAS_THREADS # libffi
> +	depends on !BR2_STATIC_LIBS # python3
> +	depends on !BR2_PACKAGE_PYTHON # python3
> +	select BR2_PACKAGE_BASH
> +	select BR2_PACKAGE_BINUTILS
> +	select BR2_PACKAGE_BZIP2
> +	select BR2_PACKAGE_COREUTILS
> +	select BR2_PACKAGE_DIFFUTILS
> +	select BR2_PACKAGE_FINDUTILS
> +	select BR2_PACKAGE_GREP
> +	select BR2_PACKAGE_GZIP
> +	select BR2_PACKAGE_LZ4
> +	select BR2_PACKAGE_PYTHON3
> +	select BR2_PACKAGE_SED
> +	select BR2_PACKAGE_TAR
> +	select BR2_PACKAGE_XZ
> +	help
> +	  Helper scripts for use with the opkg package manager.
> +
> +	  https://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/
> +
> +comment "opkg-utils needs a toolchain w/ wchar, threads, dynamic library"
> +	depends on BR2_USE_MMU
> +	depends on !BR2_nios2
> +	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
> diff --git a/package/opkg-utils/opkg-utils.mk b/package/opkg-utils/opkg-utils.mk
> index d7f68b8555..a445c9f49e 100644
> --- a/package/opkg-utils/opkg-utils.mk
> +++ b/package/opkg-utils/opkg-utils.mk
> @@ -10,6 +10,21 @@ OPKG_UTILS_SITE_METHOD = git
>  OPKG_UTILS_LICENSE = GPL-2.0+
>  OPKG_UTILS_LICENSE_FILES = COPYING
>  
> +OPKG_UTILS_DEPENDENCIES += \
> +	bash \
> +	binutils \
> +	bzip2 \
> +	coreutils \
> +	diffutils \
> +	findutils \
> +	grep \
> +	gzip \
> +	lz4 \
> +	python3 \
> +	sed \
> +	tar \
> +	xz
> +
>  HOST_OPKG_UTILS_DEPENDENCIES += \
>  	host-coreutils \
>  	host-diffutils \
> @@ -19,8 +34,13 @@ HOST_OPKG_UTILS_DEPENDENCIES += \
>  	$(BR2_PYTHON3_HOST_DEPENDENCY) \
>  	host-xz
>  
> +define OPKG_UTILS_INSTALL_CMDS
> +	$(MAKE) -C $(@D) PREFIX=$(TARGET_DIR) install-utils
> +endef
> +
>  define HOST_OPKG_UTILS_INSTALL_CMDS
>  	$(MAKE) -C $(@D) PREFIX=$(HOST_DIR) install-utils
>  endef
>  
> +$(eval $(generic-package))
>  $(eval $(host-generic-package))
> -- 
> 2.17.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
diff mbox series

Patch

diff --git a/package/Config.in b/package/Config.in
index 992e46a319..fb77ba134e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2337,6 +2337,7 @@  comment "See the manual:                                        "
 comment "http://buildroot.org/manual.html#faq-no-binary-packages"
 comment "-------------------------------------------------------"
 	source "package/opkg/Config.in"
+	source "package/opkg-utils/Config.in"
 	source "package/rpm/Config.in"
 endmenu
 
diff --git a/package/opkg-utils/Config.in b/package/opkg-utils/Config.in
new file mode 100644
index 0000000000..b60a48c19d
--- /dev/null
+++ b/package/opkg-utils/Config.in
@@ -0,0 +1,33 @@ 
+config BR2_PACKAGE_OPKG_UTILS
+	bool "opkg-utils"
+	depends on BR2_USE_MMU # bash, coreutils, findutils, tar
+	depends on !BR2_nios2 # binutils
+	# binutils, coreutils, diffutils, findutils, grep, gzip, python3, sed,
+	# tar
+	depends on BR2_USE_WCHAR
+	depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
+	depends on BR2_TOOLCHAIN_HAS_THREADS # libffi
+	depends on !BR2_STATIC_LIBS # python3
+	depends on !BR2_PACKAGE_PYTHON # python3
+	select BR2_PACKAGE_BASH
+	select BR2_PACKAGE_BINUTILS
+	select BR2_PACKAGE_BZIP2
+	select BR2_PACKAGE_COREUTILS
+	select BR2_PACKAGE_DIFFUTILS
+	select BR2_PACKAGE_FINDUTILS
+	select BR2_PACKAGE_GREP
+	select BR2_PACKAGE_GZIP
+	select BR2_PACKAGE_LZ4
+	select BR2_PACKAGE_PYTHON3
+	select BR2_PACKAGE_SED
+	select BR2_PACKAGE_TAR
+	select BR2_PACKAGE_XZ
+	help
+	  Helper scripts for use with the opkg package manager.
+
+	  https://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/
+
+comment "opkg-utils needs a toolchain w/ wchar, threads, dynamic library"
+	depends on BR2_USE_MMU
+	depends on !BR2_nios2
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
diff --git a/package/opkg-utils/opkg-utils.mk b/package/opkg-utils/opkg-utils.mk
index d7f68b8555..a445c9f49e 100644
--- a/package/opkg-utils/opkg-utils.mk
+++ b/package/opkg-utils/opkg-utils.mk
@@ -10,6 +10,21 @@  OPKG_UTILS_SITE_METHOD = git
 OPKG_UTILS_LICENSE = GPL-2.0+
 OPKG_UTILS_LICENSE_FILES = COPYING
 
+OPKG_UTILS_DEPENDENCIES += \
+	bash \
+	binutils \
+	bzip2 \
+	coreutils \
+	diffutils \
+	findutils \
+	grep \
+	gzip \
+	lz4 \
+	python3 \
+	sed \
+	tar \
+	xz
+
 HOST_OPKG_UTILS_DEPENDENCIES += \
 	host-coreutils \
 	host-diffutils \
@@ -19,8 +34,13 @@  HOST_OPKG_UTILS_DEPENDENCIES += \
 	$(BR2_PYTHON3_HOST_DEPENDENCY) \
 	host-xz
 
+define OPKG_UTILS_INSTALL_CMDS
+	$(MAKE) -C $(@D) PREFIX=$(TARGET_DIR) install-utils
+endef
+
 define HOST_OPKG_UTILS_INSTALL_CMDS
 	$(MAKE) -C $(@D) PREFIX=$(HOST_DIR) install-utils
 endef
 
+$(eval $(generic-package))
 $(eval $(host-generic-package))