diff mbox series

[v2] UBUNTU: snapcraft.yaml: copy retpoline-extract-one to scripts before build

Message ID 1531842636-15301-2-git-send-email-paolo.pisati@canonical.com
State New
Headers show
Series [v2] UBUNTU: snapcraft.yaml: copy retpoline-extract-one to scripts before build | expand

Commit Message

Paolo Pisati July 17, 2018, 3:50 p.m. UTC
BugLink: http://bugs.launchpad.net/bugs/1782116

The Ubuntu kernel source code depends on the presence of the
retpoline-extract-one file in the script directory during build (see
scripts/Makefile.build::cmd_ubuntu_retpoline) - such a file lives in the debian
directory and is copied to scripts during the 'debian/rules clean' phase.

Snapcraft is oblivious to the debian details, and the clean target is never
invoked, breaking the normal kernel build (make defconfig; make ...).

To workaround that, before starting the build, make snapcraft do the copy and
fix the build.

Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
---
 snapcraft.yaml | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Colin Ian King July 17, 2018, 3:54 p.m. UTC | #1
On 17/07/18 16:50, Paolo Pisati wrote:
> BugLink: http://bugs.launchpad.net/bugs/1782116
> 
> The Ubuntu kernel source code depends on the presence of the
> retpoline-extract-one file in the script directory during build (see
> scripts/Makefile.build::cmd_ubuntu_retpoline) - such a file lives in the debian
> directory and is copied to scripts during the 'debian/rules clean' phase.
> 
> Snapcraft is oblivious to the debian details, and the clean target is never
> invoked, breaking the normal kernel build (make defconfig; make ...).
> 
> To workaround that, before starting the build, make snapcraft do the copy and
> fix the build.
> 
> Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
> ---
>  snapcraft.yaml | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/snapcraft.yaml b/snapcraft.yaml
> index 9eb3f40..f96d4aa 100644
> --- a/snapcraft.yaml
> +++ b/snapcraft.yaml
> @@ -17,6 +17,10 @@ parts:
>      kconfigflavour: generic
>      kconfigs:
>        - CONFIG_DEBUG_INFO=n
> +    override-build: |
> +      cp debian/scripts/retpoline-extract-one \
> +        $SNAPCRAFT_PART_BUILD/scripts/ubuntu-retpoline-extract-one
> +      snapcraftctl build
>    firmware:
>      plugin: nil
>      stage-packages:
> 

Seems like a sane workaround.

Acked-by: Colin Ian King <colin.king@canonical.com>
Kleber Sacilotto de Souza July 18, 2018, 2:54 p.m. UTC | #2
On 07/17/18 17:50, Paolo Pisati wrote:
> BugLink: http://bugs.launchpad.net/bugs/1782116
> 
> The Ubuntu kernel source code depends on the presence of the
> retpoline-extract-one file in the script directory during build (see
> scripts/Makefile.build::cmd_ubuntu_retpoline) - such a file lives in the debian
> directory and is copied to scripts during the 'debian/rules clean' phase.
> 
> Snapcraft is oblivious to the debian details, and the clean target is never
> invoked, breaking the normal kernel build (make defconfig; make ...).
> 
> To workaround that, before starting the build, make snapcraft do the copy and
> fix the build.
> 
> Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
> ---
>  snapcraft.yaml | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/snapcraft.yaml b/snapcraft.yaml
> index 9eb3f40..f96d4aa 100644
> --- a/snapcraft.yaml
> +++ b/snapcraft.yaml
> @@ -17,6 +17,10 @@ parts:
>      kconfigflavour: generic
>      kconfigs:
>        - CONFIG_DEBUG_INFO=n
> +    override-build: |
> +      cp debian/scripts/retpoline-extract-one \
> +        $SNAPCRAFT_PART_BUILD/scripts/ubuntu-retpoline-extract-one
> +      snapcraftctl build
>    firmware:
>      plugin: nil
>      stage-packages:
> 

Makes sense to me.

Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
diff mbox series

Patch

diff --git a/snapcraft.yaml b/snapcraft.yaml
index 9eb3f40..f96d4aa 100644
--- a/snapcraft.yaml
+++ b/snapcraft.yaml
@@ -17,6 +17,10 @@  parts:
     kconfigflavour: generic
     kconfigs:
       - CONFIG_DEBUG_INFO=n
+    override-build: |
+      cp debian/scripts/retpoline-extract-one \
+        $SNAPCRAFT_PART_BUILD/scripts/ubuntu-retpoline-extract-one
+      snapcraftctl build
   firmware:
     plugin: nil
     stage-packages: