mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Roland Hieber <rhi@pengutronix.de>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH 1/2] doc: dev manual: proof-read and update the "Patching Packages" section
Date: Fri, 30 Aug 2019 15:27:20 +0200	[thread overview]
Message-ID: <20190830132720.toj7nvaqrsv2np3b@pengutronix.de> (raw)
In-Reply-To: <20190830131730.11850-1-rhi@pengutronix.de>

On Fri, Aug 30, 2019 at 03:17:29PM +0200, Roland Hieber wrote:
> Remind the reader to upstream their patches, mention the layer
> mechanism for search order, fix the logical structure of the whole
> chapter by removing the superfluous "Creating Patches for a Package"
> header, mention why `--git` can break packages, and general
> proof-reading and typo correction.
> 
> Signed-off-by: Roland Hieber <rhi@pengutronix.de>
> ---
>  doc/dev_manual.rst | 44 ++++++++++++++++++++++++++++----------------
>  1 file changed, 28 insertions(+), 16 deletions(-)
> 
> diff --git a/doc/dev_manual.rst b/doc/dev_manual.rst
> index d79ebdba780d..e0ba6baab367 100644
> --- a/doc/dev_manual.rst
> +++ b/doc/dev_manual.rst
> @@ -494,7 +494,7 @@ At this stage things can fail:
>  
>  If the ``configure`` script is not cross compile aware, we are out of
>  luck. We must patch the source archive in this case to make it work.
> -Refer to section :ref:`configure_rebuild` on how to use
> +Refer to the section :ref:`configure_rebuild` on how to use
>  PTXdist’s features to simplify this task.
>  If the package depends on external components, these components might
>  be already part of PTXdist. In this case we just have to add this
> @@ -1255,15 +1255,27 @@ There can be various reasons why a package must be patched:
>  
>  -  or anything else (this case is the most common one)
>  
> -PTXdist handles patching automatically. After extracting the archive,
> -PTXdist checks for the existence of a patch directory with the same name
> -as the package. If our package’s name is ``foo-1.1.0``, PTXdist searches
> -for patches in:
> +Ideally, those problems should be adressed in the original project,
> +so any patches you add to your BSP or to PTXdist should also be submitted upstream.
> +The upstream project can often provide better feedback, they can integrate your
> +patch into a new release, and also maintain your changes as part of the project.
> +This way we make sure that all advantages of the open source idea work for us;
> +and your patch can be removed again later when a new release of the project is
> +integrated into your BSP or into PTXdist.
> +
> +PTXdist handles patching automatically.
> +After extracting the archive of a package, PTXdist checks for the existence of
> +a patch directory named like its `<PKG>` variable.
> +Take an exemplary package `foo` with version `1.1.0`:
> +The variable `FOO` will have the value ``foo-1.1.0``, so PTXdist will look for
> +a patch directory named ``foo-1.1.0`` in the following locations:
>  
>  #. project (``./patches/foo-1.1.0``)
>  
>  #. platform (``./configs/|ptxdistPlatformConfigDir|/patches/foo-1.1.0``)
>  
> +#. the base layer (see :ref:`layers-in-ptxdist`)
> +
>  #. ptxdist (``<ptxdist/installation/path>/patches/foo-1.1.0``)
>  
>  The patches from the first location found are used. Note: Due to this
> @@ -1272,9 +1284,6 @@ PTXdist installation. This can be useful if a project sticks to a
>  specific PTXdist revision but fixes from a more recent revision of
>  PTXdist should be used.
>  
> -Creating Patches for a Package
> -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -
>  PTXdist uses the utilities *git*, *patch* or *quilt* to work with
>  patches or patch series. We recommend *git*, as it can manage patch
>  series in a very easy way.
> @@ -1331,7 +1340,7 @@ Using Git
>  """""""""
>  
>  Create the patch directory like above for *quilt*,
> -but only add an empty series file
> +but only add an empty series file:
>  
>  .. code-block:: text
>  
> @@ -1352,7 +1361,8 @@ and import the package source as the first commit.
>    use git to apply patches* in `ptxdist setup` to get this behaviour
>    as a default for every package.
>    However, note that this setting is still experimental and can lead to
> -  failures for some packages.
> +  failures – some packages try to determine if they are being compiled
> +  from a Git source tree, and behave differently in that case.
>  
>  Then you can change into the package build directory
>  (``platform-<name>/build-target/foo-1.1.0``),
> @@ -1367,8 +1377,8 @@ The Git history should now look something like this:
>      * 65a360c2bd60 strfry.c: frobnicate the excusator
>      * fdc315f6844c (tag: foobar-1.1.0, tag: base) initial commit
>  
> -Finally, call ``git ptx-patches`` to regenerate the patch series in the
> -``patches/foo-1.1.0`` folder.
> +Finally, call ``git ptx-patches`` to transform those Git commits into the patch
> +series in the ``patches/foo-1.1.0`` folder.
>  This way they don't get lost when cleaning the package.
>  
>  .. note:: PTXdist will only create a Git repository for packages with
> @@ -1379,7 +1389,7 @@ This way they don't get lost when cleaning the package.
>  
>  Both approaches (Git and quilt) are not suitable for modifying files
>  that are autogenerated in autotools-based buildsystems.
> -Refer to section :ref:`configure_rebuild` on how PTXdist can
> +Refer to the section :ref:`configure_rebuild` on how PTXdist can
>  handle this special task.
>  
>  Adding More Patches to a Package
> @@ -1393,17 +1403,17 @@ installation directories, NEVER, NEVER, NEVER). Due to the search order
>  in which PTXdist searches for patches for a specific package, we can
>  copy the global patch series to our local project directory. Now we have
>  the permissions to add more patches or modify the existing ones. Also
> -*quilt* is our friend here to manage the patch series.
> +*quilt* and *Git* are our friends here to manage the patch series.
>  
>  If we think that our new patches are valuable also for others, or they
>  fix an error, it could be a good idea to send these patches to PTXdist
> -mainline.
> +mainliner, and to the upstream project too.

Oops, vim-not-in-command-mode bug, will send v2.

 - Roland

>  
>  
>  .. _configure_rebuild:
>  
>  Modifying Autotoolized Packages
> -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>  
>  Autotoolized packages are very picky when automatically generated files
>  get patched. The patch order is very important in this case and
> @@ -1631,6 +1641,8 @@ convenient way to crate simple templates. It is also possible to create
>  more files. For examples, the builtin ``genimage`` template creates a extra
>  config file for the new package.
>  
> +.. _layers-in-ptxdist:
> +
>  Layers in PTXdist
>  -----------------
>  
> -- 
> 2.23.0
> 
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de

-- 
Roland Hieber                     | r.hieber@pengutronix.de     |
Pengutronix e.K.                  | https://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim | Phone: +49-5121-206917-5086 |
Amtsgericht Hildesheim, HRA 2686  | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

      parent reply	other threads:[~2019-08-30 13:27 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-30 13:17 Roland Hieber
2019-08-30 13:17 ` [ptxdist] [PATCH 2/2] doc: remove empty chapter "Working with GIT sources" Roland Hieber
2019-08-30 13:27 ` Roland Hieber [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190830132720.toj7nvaqrsv2np3b@pengutronix.de \
    --to=rhi@pengutronix.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox