diff mbox series

[meta-oe,1/3] jansson: Honour multilib paths

Message ID 20221003170623.26207-1-alex.kiernan@gmail.com
State Under Review
Headers show
Series [meta-oe,1/3] jansson: Honour multilib paths | expand

Commit Message

Alex Kiernan Oct. 3, 2022, 5:06 p.m. UTC
When multilib is enabled, builds fail during package_qa:

ERROR: jansson-2.14-r0 do_package: QA Issue: jansson: Files/directories were installed but not shipped in any package:
  /usr/lib
  /usr/lib/libjansson.a
  /usr/lib/pkgconfig
  /usr/lib/cmake
  /usr/lib/pkgconfig/jansson.pc
  /usr/lib/cmake/jansson
  /usr/lib/cmake/jansson/janssonTargets-noconfig.cmake
  /usr/lib/cmake/jansson/janssonConfig.cmake
  /usr/lib/cmake/jansson/janssonConfigVersion.cmake
  /usr/lib/cmake/jansson/janssonTargets.cmake
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
jansson: 10 installed and not shipped files. [installed-vs-shipped]
ERROR: jansson-2.14-r0 do_package: Fatal QA errors were found, failing task.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
---
 .../jansson/0001-Honour-multilib-paths.patch  | 63 +++++++++++++++++++
 .../recipes-extended/jansson/jansson_2.14.bb  |  4 +-
 2 files changed, 66 insertions(+), 1 deletion(-)
 create mode 100644 meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch

Comments

Khem Raj Oct. 3, 2022, 9:36 p.m. UTC | #1
Should it be using GNUInstallDirs cmake module I wonder

On Mon, Oct 3, 2022 at 10:06 AM Alex Kiernan <alex.kiernan@gmail.com> wrote:
>
> When multilib is enabled, builds fail during package_qa:
>
> ERROR: jansson-2.14-r0 do_package: QA Issue: jansson: Files/directories were installed but not shipped in any package:
>   /usr/lib
>   /usr/lib/libjansson.a
>   /usr/lib/pkgconfig
>   /usr/lib/cmake
>   /usr/lib/pkgconfig/jansson.pc
>   /usr/lib/cmake/jansson
>   /usr/lib/cmake/jansson/janssonTargets-noconfig.cmake
>   /usr/lib/cmake/jansson/janssonConfig.cmake
>   /usr/lib/cmake/jansson/janssonConfigVersion.cmake
>   /usr/lib/cmake/jansson/janssonTargets.cmake
> Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
> jansson: 10 installed and not shipped files. [installed-vs-shipped]
> ERROR: jansson-2.14-r0 do_package: Fatal QA errors were found, failing task.
>
> Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
> ---
>  .../jansson/0001-Honour-multilib-paths.patch  | 63 +++++++++++++++++++
>  .../recipes-extended/jansson/jansson_2.14.bb  |  4 +-
>  2 files changed, 66 insertions(+), 1 deletion(-)
>  create mode 100644 meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch
>
> diff --git a/meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch b/meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch
> new file mode 100644
> index 000000000000..513d1094593a
> --- /dev/null
> +++ b/meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch
> @@ -0,0 +1,63 @@
> +From e66885e66a2ce7fd916933b12d1ba523a25141e4 Mon Sep 17 00:00:00 2001
> +From: Alex Kiernan <alex.kiernan@gmail.com>
> +Date: Mon, 3 Oct 2022 13:25:05 +0100
> +Subject: [PATCH] Honour multilib paths
> +
> +Upstream-Status: Pending
> +Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
> +---
> + CMakeLists.txt | 14 +++++++-------
> + 1 file changed, 7 insertions(+), 7 deletions(-)
> +
> +diff --git a/CMakeLists.txt b/CMakeLists.txt
> +index 39b9ad365f78..bf297e936a72 100644
> +--- a/CMakeLists.txt
> ++++ b/CMakeLists.txt
> +@@ -20,8 +20,8 @@ endif ()
> +
> + # Set some nicer output dirs.
> + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
> +-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
> +-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
> ++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
> ++set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
> + set(JANSSON_TEMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/tmp)
> +
> + # Give the debug version a different postfix for windows,
> +@@ -573,14 +573,14 @@ endif ()
> + #
> +
> + # Allow the user to override installation directories.
> +-set(JANSSON_INSTALL_LIB_DIR       lib CACHE PATH "Installation directory for libraries")
> ++set(JANSSON_INSTALL_LIB_DIR       ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory for libraries")
> + set(JANSSON_INSTALL_BIN_DIR       bin CACHE PATH "Installation directory for executables")
> + set(JANSSON_INSTALL_INCLUDE_DIR   include CACHE PATH "Installation directory for header files")
> +
> + if(WIN32 AND NOT CYGWIN)
> +   set(DEF_INSTALL_CMAKE_DIR cmake)
> + else()
> +-  set(DEF_INSTALL_CMAKE_DIR lib/cmake/jansson)
> ++  set(DEF_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/jansson)
> + endif()
> +
> + set(JANSSON_INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files")
> +@@ -633,8 +633,8 @@ option(JANSSON_INSTALL "Generate installation target" ON)
> + if (JANSSON_INSTALL)
> +   install(TARGETS jansson
> +           EXPORT janssonTargets
> +-          LIBRARY DESTINATION "lib"
> +-          ARCHIVE DESTINATION "lib"
> ++          LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
> ++          ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
> +           RUNTIME DESTINATION "bin"
> +           INCLUDES DESTINATION "include")
> +
> +@@ -644,7 +644,7 @@ if (JANSSON_INSTALL)
> +   # Install the pkg-config.
> +   install(FILES
> +           ${CMAKE_CURRENT_BINARY_DIR}/jansson.pc
> +-          DESTINATION lib/pkgconfig)
> ++          DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
> +
> +   # Install the configs.
> +   install(FILES
> diff --git a/meta-oe/recipes-extended/jansson/jansson_2.14.bb b/meta-oe/recipes-extended/jansson/jansson_2.14.bb
> index 94bb99ab71a9..68e24c890726 100644
> --- a/meta-oe/recipes-extended/jansson/jansson_2.14.bb
> +++ b/meta-oe/recipes-extended/jansson/jansson_2.14.bb
> @@ -4,7 +4,9 @@ BUGTRACKER = "https://github.com/akheron/jansson/issues"
>  LICENSE = "MIT"
>  LIC_FILES_CHKSUM = "file://LICENSE;md5=afd92c4cfc08f4896003251b878cc0bf"
>
> -SRC_URI = "https://github.com/akheron/${BPN}/releases/download/v${PV}/${BP}.tar.bz2"
> +SRC_URI = "https://github.com/akheron/${BPN}/releases/download/v${PV}/${BP}.tar.bz2 \
> +           file://0001-Honour-multilib-paths.patch \
> +           "
>  SRC_URI[sha256sum] = "fba956f27c6ae56ce6dfd52fbf9d20254aad42821f74fa52f83957625294afb9"
>
>  UPSTREAM_CHECK_URI = "https://github.com/akheron/${BPN}/releases"
> --
> 2.35.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#99040): https://lists.openembedded.org/g/openembedded-devel/message/99040
> Mute This Topic: https://lists.openembedded.org/mt/94095620/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Alex Kiernan Oct. 4, 2022, 7:56 a.m. UTC | #2
Probably, only cmake scares me every time I have to touch it :) When I
was digging through all of this, I wondered if going back to autotools
would be preferable and fixing up the lld case (the --default-symver
test exists in CMakeLists.txt, but not configure.ac).

On Mon, Oct 3, 2022 at 10:37 PM Khem Raj <raj.khem@gmail.com> wrote:
>
> Should it be using GNUInstallDirs cmake module I wonder
>
> On Mon, Oct 3, 2022 at 10:06 AM Alex Kiernan <alex.kiernan@gmail.com> wrote:
> >
> > When multilib is enabled, builds fail during package_qa:
> >
> > ERROR: jansson-2.14-r0 do_package: QA Issue: jansson: Files/directories were installed but not shipped in any package:
> >   /usr/lib
> >   /usr/lib/libjansson.a
> >   /usr/lib/pkgconfig
> >   /usr/lib/cmake
> >   /usr/lib/pkgconfig/jansson.pc
> >   /usr/lib/cmake/jansson
> >   /usr/lib/cmake/jansson/janssonTargets-noconfig.cmake
> >   /usr/lib/cmake/jansson/janssonConfig.cmake
> >   /usr/lib/cmake/jansson/janssonConfigVersion.cmake
> >   /usr/lib/cmake/jansson/janssonTargets.cmake
> > Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
> > jansson: 10 installed and not shipped files. [installed-vs-shipped]
> > ERROR: jansson-2.14-r0 do_package: Fatal QA errors were found, failing task.
> >
> > Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
> > ---
> >  .../jansson/0001-Honour-multilib-paths.patch  | 63 +++++++++++++++++++
> >  .../recipes-extended/jansson/jansson_2.14.bb  |  4 +-
> >  2 files changed, 66 insertions(+), 1 deletion(-)
> >  create mode 100644 meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch
> >
> > diff --git a/meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch b/meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch
> > new file mode 100644
> > index 000000000000..513d1094593a
> > --- /dev/null
> > +++ b/meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch
> > @@ -0,0 +1,63 @@
> > +From e66885e66a2ce7fd916933b12d1ba523a25141e4 Mon Sep 17 00:00:00 2001
> > +From: Alex Kiernan <alex.kiernan@gmail.com>
> > +Date: Mon, 3 Oct 2022 13:25:05 +0100
> > +Subject: [PATCH] Honour multilib paths
> > +
> > +Upstream-Status: Pending
> > +Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
> > +---
> > + CMakeLists.txt | 14 +++++++-------
> > + 1 file changed, 7 insertions(+), 7 deletions(-)
> > +
> > +diff --git a/CMakeLists.txt b/CMakeLists.txt
> > +index 39b9ad365f78..bf297e936a72 100644
> > +--- a/CMakeLists.txt
> > ++++ b/CMakeLists.txt
> > +@@ -20,8 +20,8 @@ endif ()
> > +
> > + # Set some nicer output dirs.
> > + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
> > +-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
> > +-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
> > ++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
> > ++set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
> > + set(JANSSON_TEMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/tmp)
> > +
> > + # Give the debug version a different postfix for windows,
> > +@@ -573,14 +573,14 @@ endif ()
> > + #
> > +
> > + # Allow the user to override installation directories.
> > +-set(JANSSON_INSTALL_LIB_DIR       lib CACHE PATH "Installation directory for libraries")
> > ++set(JANSSON_INSTALL_LIB_DIR       ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory for libraries")
> > + set(JANSSON_INSTALL_BIN_DIR       bin CACHE PATH "Installation directory for executables")
> > + set(JANSSON_INSTALL_INCLUDE_DIR   include CACHE PATH "Installation directory for header files")
> > +
> > + if(WIN32 AND NOT CYGWIN)
> > +   set(DEF_INSTALL_CMAKE_DIR cmake)
> > + else()
> > +-  set(DEF_INSTALL_CMAKE_DIR lib/cmake/jansson)
> > ++  set(DEF_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/jansson)
> > + endif()
> > +
> > + set(JANSSON_INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files")
> > +@@ -633,8 +633,8 @@ option(JANSSON_INSTALL "Generate installation target" ON)
> > + if (JANSSON_INSTALL)
> > +   install(TARGETS jansson
> > +           EXPORT janssonTargets
> > +-          LIBRARY DESTINATION "lib"
> > +-          ARCHIVE DESTINATION "lib"
> > ++          LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
> > ++          ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
> > +           RUNTIME DESTINATION "bin"
> > +           INCLUDES DESTINATION "include")
> > +
> > +@@ -644,7 +644,7 @@ if (JANSSON_INSTALL)
> > +   # Install the pkg-config.
> > +   install(FILES
> > +           ${CMAKE_CURRENT_BINARY_DIR}/jansson.pc
> > +-          DESTINATION lib/pkgconfig)
> > ++          DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
> > +
> > +   # Install the configs.
> > +   install(FILES
> > diff --git a/meta-oe/recipes-extended/jansson/jansson_2.14.bb b/meta-oe/recipes-extended/jansson/jansson_2.14.bb
> > index 94bb99ab71a9..68e24c890726 100644
> > --- a/meta-oe/recipes-extended/jansson/jansson_2.14.bb
> > +++ b/meta-oe/recipes-extended/jansson/jansson_2.14.bb
> > @@ -4,7 +4,9 @@ BUGTRACKER = "https://github.com/akheron/jansson/issues"
> >  LICENSE = "MIT"
> >  LIC_FILES_CHKSUM = "file://LICENSE;md5=afd92c4cfc08f4896003251b878cc0bf"
> >
> > -SRC_URI = "https://github.com/akheron/${BPN}/releases/download/v${PV}/${BP}.tar.bz2"
> > +SRC_URI = "https://github.com/akheron/${BPN}/releases/download/v${PV}/${BP}.tar.bz2 \
> > +           file://0001-Honour-multilib-paths.patch \
> > +           "
> >  SRC_URI[sha256sum] = "fba956f27c6ae56ce6dfd52fbf9d20254aad42821f74fa52f83957625294afb9"
> >
> >  UPSTREAM_CHECK_URI = "https://github.com/akheron/${BPN}/releases"
> > --
> > 2.35.1
> >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#99040): https://lists.openembedded.org/g/openembedded-devel/message/99040
> > Mute This Topic: https://lists.openembedded.org/mt/94095620/1997914
> > Group Owner: openembedded-devel+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
diff mbox series

Patch

diff --git a/meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch b/meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch
new file mode 100644
index 000000000000..513d1094593a
--- /dev/null
+++ b/meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch
@@ -0,0 +1,63 @@ 
+From e66885e66a2ce7fd916933b12d1ba523a25141e4 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Mon, 3 Oct 2022 13:25:05 +0100
+Subject: [PATCH] Honour multilib paths
+
+Upstream-Status: Pending
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ CMakeLists.txt | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 39b9ad365f78..bf297e936a72 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -20,8 +20,8 @@ endif ()
+ 
+ # Set some nicer output dirs.
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
+-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
+-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
++set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
+ set(JANSSON_TEMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/tmp)
+ 
+ # Give the debug version a different postfix for windows,
+@@ -573,14 +573,14 @@ endif ()
+ #
+ 
+ # Allow the user to override installation directories.
+-set(JANSSON_INSTALL_LIB_DIR       lib CACHE PATH "Installation directory for libraries")
++set(JANSSON_INSTALL_LIB_DIR       ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory for libraries")
+ set(JANSSON_INSTALL_BIN_DIR       bin CACHE PATH "Installation directory for executables")
+ set(JANSSON_INSTALL_INCLUDE_DIR   include CACHE PATH "Installation directory for header files")
+ 
+ if(WIN32 AND NOT CYGWIN)
+   set(DEF_INSTALL_CMAKE_DIR cmake)
+ else()
+-  set(DEF_INSTALL_CMAKE_DIR lib/cmake/jansson)
++  set(DEF_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/jansson)
+ endif()
+ 
+ set(JANSSON_INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files")
+@@ -633,8 +633,8 @@ option(JANSSON_INSTALL "Generate installation target" ON)
+ if (JANSSON_INSTALL)
+   install(TARGETS jansson
+           EXPORT janssonTargets
+-          LIBRARY DESTINATION "lib"
+-          ARCHIVE DESTINATION "lib"
++          LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
++          ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+           RUNTIME DESTINATION "bin"
+           INCLUDES DESTINATION "include")
+ 
+@@ -644,7 +644,7 @@ if (JANSSON_INSTALL)
+   # Install the pkg-config.
+   install(FILES
+           ${CMAKE_CURRENT_BINARY_DIR}/jansson.pc
+-          DESTINATION lib/pkgconfig)
++          DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+ 
+   # Install the configs.
+   install(FILES
diff --git a/meta-oe/recipes-extended/jansson/jansson_2.14.bb b/meta-oe/recipes-extended/jansson/jansson_2.14.bb
index 94bb99ab71a9..68e24c890726 100644
--- a/meta-oe/recipes-extended/jansson/jansson_2.14.bb
+++ b/meta-oe/recipes-extended/jansson/jansson_2.14.bb
@@ -4,7 +4,9 @@  BUGTRACKER = "https://github.com/akheron/jansson/issues"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=afd92c4cfc08f4896003251b878cc0bf"
 
-SRC_URI = "https://github.com/akheron/${BPN}/releases/download/v${PV}/${BP}.tar.bz2"
+SRC_URI = "https://github.com/akheron/${BPN}/releases/download/v${PV}/${BP}.tar.bz2 \
+           file://0001-Honour-multilib-paths.patch \
+           "
 SRC_URI[sha256sum] = "fba956f27c6ae56ce6dfd52fbf9d20254aad42821f74fa52f83957625294afb9"
 
 UPSTREAM_CHECK_URI = "https://github.com/akheron/${BPN}/releases"