All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 00/35] Package based 'source', 'legal-info', 'source-check' and 'external-deps'
@ 2015-03-29 17:33 Thomas Petazzoni
  2015-03-29 17:33 ` [Buildroot] [PATCH 01/35] linux: use the package infrastructure to download patches Thomas Petazzoni
                   ` (37 more replies)
  0 siblings, 38 replies; 73+ messages in thread
From: Thomas Petazzoni @ 2015-03-29 17:33 UTC (permalink / raw)
  To: buildroot

Hello,

The initial goal of this series was to change the way we recursively
go through host dependencies for the implementation of the 'source',
'external-deps', 'legal-info' and 'source-check' targets.

The implementation of such targets currently do not rely on the
package infrastructure, and the main Makefile tries to iterate through
the dependencies of all packages using the TARGETS, TARGETS_HOST_DEPS
and HOST_DEPS variable, but it does so with only a two-level
recursion, which does not guarantee that all dependencies will have
been taken into account. It is also not at all in the spirit of the
rest of the package infrastructure.

So our final goal is simply that all those targets are implemented
using per-package make targets that recursively go through their own
dependencies.

Along the way, a number of other related changes or cleanups have been
made, and we try to describe below the overall logic of the patch
series:

 - Currently, some packages do directly use the 'DOWNLOAD' macro to
   download files. This has the unfortunate effect that the package
   infrastructure is not aware that those files are being downloaded,
   which is bad.

   To fix this, patches 1 to 7 fixes the two problematic packages: the
   'linux' and 'perl' packages. In the case of the 'perl' package, an
   addition was needed to the package infrastructure: supporting full
   URLs in <pkg>_EXTRA_DOWNLOADS. Some related cleanups and
   improvements are done as part of these changes.

   Compared to the v1 of those patches: I've fixed the typos found by
   Baruch and Romain, added the Reviewed-by tags that were given,
   fixed the manual line-break issue reported by Arnout, and adjusted
   the order of the variables in perl.mk as suggested by Arnout.

 - As part of the review of the first version of this series (which
   only included patches 1 to 7), a comment was made that packages
   like Linux were only applying patches named linux-*.patch, while we
   have moved for all other packages to a convention that consists in
   applying *.patch. Therefore, patches 8 and 9 make the Linux,
   U-Boot, Barebox, AT91Bootstrap and AT91Bootstrap3 follow this
   convention, and fix the user manual accordingly.

 - Patches 10 and 11 start extending the package infrastructure by
   adding the <pkg>-external-deps, <pkg>-all-external-deps,
   <pkg>-all-source and <pkg>-all-legal-info targets.

 - Patch 12 is doing some silly cleanup of the main Makefile.

 - Patches 13 to 17 clarify and fix the way we declare the PHONY make
   targets, by making the package infrastructure responsible for doing
   that for package targets.

 - Patches 18 and 19 make some not very important cleanups (variable
   renaming, etc.)

 - Patch 20 switches the 'legal-info' target to fully use the package
   infrastructure, thanks to the <pkg>-all-legal-info target added
   previously.

 - Patch 21 simplifies show-targets a bit.

 - Patch 22, like patch 20, switches the global 'external-deps' target
   to fully use the package infrastructure, thanks to the
   <pkg>-all-external-deps target added previously.

 - Patch 23 cleans up the download infra by removing the support for
   the SHOW_EXTERNAL_DEPS DL_MODE, unneeded now that the package infra
   is in charge of the 'external-deps' feature.

 - Patches 24, 25, 26, 27, 28, 29 and 30 take care of the global
   'source-check' target, also moved to use the package infrastructure
   through newly introduced <pkg>-source-check and
   <pkg>-all-source-check targets.

 - Patch 31 does some indentation cleanup.

 - Patch 32 and 33 make some improvements to the package
   infrastructure in terms of downloading source, patches and extra
   downloads.

 - Patch 34 implements the global 'source' target using the package
   infrastructrure, thanks to <pkg>-source and <pkg>-all-source.

 - Patch 35 removes the now unneeded variables from the main Makefile,
   which was our original goal.

Thomas

Thomas Petazzoni (35):
  linux: use the package infrastructure to download patches
  pkg-generic: fix the logic showing the "Downloading" message
  pkg-generic: take into account <pkg>_EXTRA_DOWNLOADS to display
    "Downloading" message
  pkg-generic: refactor the "Downloading" message logic
  pkg-generic: allow full URLs for <pkg>_EXTRA_DOWNLOADS
  docs/manual: update documentation about <pkg>_SOURCE, <pkg>_PATCH and
    <pkg>_EXTRA_DOWNLOADS
  perl: use <pkg>_EXTRA_DOWNLOADS
  packages: apply custom patches using *.patch instead of <pkg>-*.patch
  docs/manual: update documentation about applying patches
  pkg-generic: implement a <pkg>-external-deps target
  pkg-generic: implement <pkg>-all-{source,legal-info,external-deps}
    targets
  Makefile: remove dubious comment
  Makefile: directories are not PHONY targets
  pkg-generic: declare phony targets as such
  pkg-kconfig: declare phony targets as such
  fs: declare phony targets as such
  Makefile: targets are now declared phony by the appropriate
    infrastructures
  Makefile: rename TARGETS to PACKAGES
  fs: add rootfs dependencies to PACKAGES
  Makefile: use <pkg>-all-legal-info to implement the legal-info target
  Makefile: simplify show-targets
  Makefile: use the package infra based external-deps
  pkg-download: remove support for the SHOW_EXTERNAL_DEPS DL_MODE
  Makefile: move source-check outside of noconfig_targets
  pkg-download: extend DOWNLOAD_INNER, add a SOURCE_CHECK macro
  pkg-generic: implement source-check targets
  Makefile: implement a package based source-check target
  pkg-generic: remove the .stamp_rsync_sourced fake stamp file
  pkg-generic: don't use DL_MODE in .stamp_downloaded
  pkg-download: get rid of DL_MODE
  pkg-download: fix indentation for SOURCE_CHECK_* macros
  pkg-generic: propagate <pkg>_EXTRA_DOWNLOADS from target to host
    package
  pkg-generic: introduce a <pkg>_ALL_DOWNLOADS variable and factorize
    code
  Makefile: implement the 'source' target using the package
    infrastructure
  Makefile: remove unneeded variables

 Makefile                                | 58 +++++----------------
 boot/at91bootstrap/at91bootstrap.mk     |  3 +-
 boot/at91bootstrap3/at91bootstrap3.mk   |  3 +-
 boot/barebox/barebox.mk                 |  5 +-
 boot/uboot/uboot.mk                     |  3 +-
 docs/manual/adding-packages-generic.txt | 32 +++++++-----
 docs/manual/customize-patches.txt       | 11 ++--
 fs/common.mk                            |  3 ++
 fs/initramfs/initramfs.mk               |  2 +
 fs/iso9660/iso9660.mk                   |  2 +
 linux/Config.in                         |  2 +-
 linux/linux.mk                          | 27 ++++------
 package/perl/perl.mk                    | 12 +----
 package/pkg-download.mk                 | 83 ++++++++----------------------
 package/pkg-generic.mk                  | 91 +++++++++++++++++++--------------
 package/pkg-kconfig.mk                  |  2 +
 system/system.mk                        |  2 +-
 17 files changed, 138 insertions(+), 203 deletions(-)

-- 
2.1.0

^ permalink raw reply	[flat|nested] 73+ messages in thread

end of thread, other threads:[~2015-05-10 18:42 UTC | newest]

Thread overview: 73+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-29 17:33 [Buildroot] [PATCH 00/35] Package based 'source', 'legal-info', 'source-check' and 'external-deps' Thomas Petazzoni
2015-03-29 17:33 ` [Buildroot] [PATCH 01/35] linux: use the package infrastructure to download patches Thomas Petazzoni
2015-03-29 20:47   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 02/35] pkg-generic: fix the logic showing the "Downloading" message Thomas Petazzoni
2015-03-29 20:48   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 03/35] pkg-generic: take into account <pkg>_EXTRA_DOWNLOADS to display " Thomas Petazzoni
2015-03-29 20:49   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 04/35] pkg-generic: refactor the "Downloading" message logic Thomas Petazzoni
2015-03-29 20:50   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 05/35] pkg-generic: allow full URLs for <pkg>_EXTRA_DOWNLOADS Thomas Petazzoni
2015-03-29 21:08   ` Yann E. MORIN
2015-03-30  7:26     ` Thomas Petazzoni
2015-05-10 18:42   ` Bernd Kuhls
2015-03-29 17:33 ` [Buildroot] [PATCH 06/35] docs/manual: update documentation about <pkg>_SOURCE, <pkg>_PATCH and <pkg>_EXTRA_DOWNLOADS Thomas Petazzoni
2015-03-29 21:10   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 07/35] perl: use <pkg>_EXTRA_DOWNLOADS Thomas Petazzoni
2015-03-29 21:15   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 08/35] packages: apply custom patches using *.patch instead of <pkg>-*.patch Thomas Petazzoni
2015-03-29 21:35   ` Yann E. MORIN
2015-03-30  7:29     ` Thomas Petazzoni
2015-03-30 16:22       ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 09/35] docs/manual: update documentation about applying patches Thomas Petazzoni
2015-03-29 21:40   ` Yann E. MORIN
2015-04-06  9:06     ` Thomas Petazzoni
2015-03-29 17:33 ` [Buildroot] [PATCH 10/35] pkg-generic: implement a <pkg>-external-deps target Thomas Petazzoni
2015-03-29 21:44   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 11/35] pkg-generic: implement <pkg>-all-{source, legal-info, external-deps} targets Thomas Petazzoni
2015-03-29 21:47   ` Yann E. MORIN
2015-03-30 17:45     ` Yann E. MORIN
2015-03-30 18:56       ` Thomas Petazzoni
2015-04-06  9:14       ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 12/35] Makefile: remove dubious comment Thomas Petazzoni
2015-03-29 21:50   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 13/35] Makefile: directories are not PHONY targets Thomas Petazzoni
2015-03-29 21:56   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 14/35] pkg-generic: declare phony targets as such Thomas Petazzoni
2015-03-29 22:05   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 15/35] pkg-kconfig: " Thomas Petazzoni
2015-03-29 22:08   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 16/35] fs: " Thomas Petazzoni
2015-03-29 22:16   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 17/35] Makefile: targets are now declared phony by the appropriate infrastructures Thomas Petazzoni
2015-03-29 22:22   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 18/35] Makefile: rename TARGETS to PACKAGES Thomas Petazzoni
2015-03-30 16:31   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 19/35] fs: add rootfs dependencies " Thomas Petazzoni
2015-03-30 16:33   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 20/35] Makefile: use <pkg>-all-legal-info to implement the legal-info target Thomas Petazzoni
2015-03-30 20:59   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 21/35] Makefile: simplify show-targets Thomas Petazzoni
2015-03-30 21:21   ` Yann E. MORIN
2015-03-30 21:40     ` Yann E. MORIN
2015-04-06  9:40     ` Thomas Petazzoni
2015-04-06  9:44   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 22/35] Makefile: use the package infra based external-deps Thomas Petazzoni
2015-03-30 21:43   ` Yann E. MORIN
2015-03-29 17:33 ` [Buildroot] [PATCH 23/35] pkg-download: remove support for the SHOW_EXTERNAL_DEPS DL_MODE Thomas Petazzoni
2015-03-29 17:33 ` [Buildroot] [PATCH 24/35] Makefile: move source-check outside of noconfig_targets Thomas Petazzoni
2015-03-29 17:33 ` [Buildroot] [PATCH 25/35] pkg-download: extend DOWNLOAD_INNER, add a SOURCE_CHECK macro Thomas Petazzoni
2015-03-29 17:33 ` [Buildroot] [PATCH 26/35] pkg-generic: implement source-check targets Thomas Petazzoni
2015-03-29 17:33 ` [Buildroot] [PATCH 27/35] Makefile: implement a package based source-check target Thomas Petazzoni
2015-03-29 17:33 ` [Buildroot] [PATCH 28/35] pkg-generic: remove the .stamp_rsync_sourced fake stamp file Thomas Petazzoni
2015-03-29 17:33 ` [Buildroot] [PATCH 29/35] pkg-generic: don't use DL_MODE in .stamp_downloaded Thomas Petazzoni
2015-03-29 17:33 ` [Buildroot] [PATCH 30/35] pkg-download: get rid of DL_MODE Thomas Petazzoni
2015-03-29 17:33 ` [Buildroot] [PATCH 31/35] pkg-download: fix indentation for SOURCE_CHECK_* macros Thomas Petazzoni
2015-03-29 17:33 ` [Buildroot] [PATCH 32/35] pkg-generic: propagate <pkg>_EXTRA_DOWNLOADS from target to host package Thomas Petazzoni
2015-03-29 17:33 ` [Buildroot] [PATCH 33/35] pkg-generic: introduce a <pkg>_ALL_DOWNLOADS variable and factorize code Thomas Petazzoni
2015-03-29 17:33 ` [Buildroot] [PATCH 34/35] Makefile: implement the 'source' target using the package infrastructure Thomas Petazzoni
2015-03-29 17:33 ` [Buildroot] [PATCH 35/35] Makefile: remove unneeded variables Thomas Petazzoni
2015-03-29 22:28 ` [Buildroot] [PATCH 00/35] Package based 'source', 'legal-info', 'source-check' and 'external-deps' Yann E. MORIN
2015-03-30  7:23   ` Thomas Petazzoni
2015-03-30 21:42 ` Thomas Petazzoni
2015-04-06  9:33 ` Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.