Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 949716 - dev-libs/nng new package that will be required by KiCAD v9
Summary: dev-libs/nng new package that will be required by KiCAD v9
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal major
Assignee: Default Assignee for New Packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 943018 949967
  Show dependency tree
 
Reported: 2025-02-13 20:53 UTC by Alex Orange
Modified: 2025-03-18 17:58 UTC (History)
7 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Ebuild for nng 1.10.0 (nng-1.10.0.ebuild,1.92 KB, application/vnd.gentoo.ebuild)
2025-02-13 20:54 UTC, Alex Orange
Details
nng-1.10.0.ebuild (nng-1.10.0.ebuild,985 bytes, application/vnd.gentoo.ebuild)
2025-02-14 18:30 UTC, Alex Orange
Details
nng-1.10.0.ebuild (nng-1.10.0.ebuild,987 bytes, application/vnd.gentoo.ebuild)
2025-02-14 21:00 UTC, Alex Orange
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Orange 2025-02-13 20:53:24 UTC
As explained in #943018 there will be a requirement for a new package (nng) with KiCAD v9. This is to support the new IPC API that many/most people will want.

I'm filing this bug as the old bug was filed under the sci-electronics/kicad name along with "Current Packages". I'm hoping this is the more appropriate way to request this. Please note however this *is* to support an existing package. The 9.0.0_rc3 has been released (building it right now) and according to the KiCAD organization if no problems are found 9.0.0 should be release very soon.

File I am posting is just taken directly from #943018.

P.S. I'm marking this a Major severity because it will be blocking the IPC API feature of KiCAD which is a major new feature (they're deprecating the old python API and moving everything to this, which is a very good idea given the state of the python API/docs, etc).

Reproducible: Always
Comment 1 Alex Orange 2025-02-13 20:54:16 UTC
Created attachment 918897 [details]
Ebuild for nng 1.10.0

As previously mentioned, not my work, just taking from https://bugs.gentoo.org/943018
Comment 2 Paul Zander 2025-02-14 16:33:46 UTC
Note that the attached ebuild is unsuitable.

There is no stated reason to do multilib nor multibuild, unless you can prove a need for 32bit or static libraries.
Comment 3 Alex Orange 2025-02-14 18:30:58 UTC
Created attachment 918937 [details]
nng-1.10.0.ebuild

Updated to remove multilib/multibuild
Comment 4 Alex Orange 2025-02-14 18:31:26 UTC
Okay, thanks for the feedback. Is the new version better? I removed the multilib stuff, and it still builds.
Comment 5 jospezial 2025-02-14 19:10:09 UTC
You lost := on net-libs/mbedtls:=
Comment 6 Alex Orange 2025-02-14 21:00:03 UTC
You're right, I thought that was part of the MULTILIB stuff. Fixed.
Comment 7 Alex Orange 2025-02-14 21:00:30 UTC
Created attachment 918939 [details]
nng-1.10.0.ebuild

Fixed to add back the :=
Comment 8 Paul Zander 2025-02-14 21:30:14 UTC
Better. :)

We have 2025 so line 1 becomes 2024-2025

We set BUILD_SHARED_LIBS by default in cmake.eclass -> https://gitweb.gentoo.org/repo/gentoo.git/tree/eclass/cmake.eclass#n542 no need to set it (and the indent is broken).

Style only notes: 
You don't have to pass ON/OFF in `usex compat ON OFF`, the default values yes/no work just as good. `usex deprecated OFF ON` can become `usex !deprecated` to yield the same result.

I haven't build tested it yet. But this should probably go into a PR to update kicad-9999
Comment 9 Alex Orange 2025-02-15 17:20:59 UTC
On Tuesday I can add my 9.0.0 rc3 ebuild and tweak 9999 for the same nng dependency. We can also see if they release by Tuesday and put out 9.0.0 at the same time (might as well not do rc3 if that's the case) and put of rc3 if they haven't got the release out.
Comment 10 Zoltan Puskas 2025-02-25 09:28:58 UTC
Currently KiCad is keyworded for (~)amd64, ~arm64, ~riscv, and ~x86. Since this library is going to be a hard dependency for plugins to work in the KiCad v9 series, I think we will also have to make this library keyworded for those arches, unless we want to drop KiCad to amd64 only or disable plugin features on non amd64 arches.
Comment 11 Alex Orange 2025-02-25 17:30:33 UTC
To clarify, I won't be able to do anything more on this. I can say the ebuilds as I took from elsewhere work for me on amd64. I won't be able to test arm64 or riscv.
Comment 12 gentoo2020 2025-03-01 17:31:05 UTC
it seems there is a dependency issue with mbedtls...

-- Configuring for NNG version 1.10.0

        ************************************************************
        Linking against Mbed TLS may change license terms.
        Consult a lawyer and the license files for details.
        ************************************************************
Mbed TLS too old (must be version 2 or newer)  UP
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:233 (message):
  Could NOT find MbedTLS (missing: MbedTLS_VERSION)
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:603 (_FPHSA_FAILURE_MESSAGE)
  cmake/FindMbedTLS.cmake:117 (find_package_handle_standard_args)
  src/supplemental/tls/mbedtls/CMakeLists.txt:35 (find_package)


-- Configuring incomplete, errors occurred!
 * ERROR: dev-libs/nng-1.10.0::engrenage-overlay failed (configure phase):
 *   cmake failed
 *
 * Call stack:
 *     ebuild.sh, line  136:  Called src_configure
 *   environment, line 2122:  Called cmake_src_configure
 *   environment, line 1029:  Called die
 * The specific snippet of code:
 *       "${CMAKE_BINARY}" "${cmakeargs[@]}" "${CMAKE_USE_DIR}" || die "cmake failed";
 *
 * If you need support, post the output of `emerge --info '=dev-libs/nng-1.10.0::engrenage-overlay'`,
 * the complete build log and the output of `emerge -pqv '=dev-libs/nng-1.10.0::engrenage-overlay'`.
 * The complete build log is located at '/var/tmp/portage/dev-libs/nng-1.10.0/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-libs/nng-1.10.0/temp/environment'.
 * Working directory: '/var/tmp/portage/dev-libs/nng-1.10.0/work/nng-1.10.0_build'
 * S: '/var/tmp/portage/dev-libs/nng-1.10.0/work/nng-1.10.0'
Comment 13 gentoo2020 2025-03-01 17:32:44 UTC
note: net-libs/mbedtls-2.28.9-r1 was emerged later and it did not help
Comment 14 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-03-01 17:41:58 UTC
(In reply to Zoltan Puskas from comment #10)
> Currently KiCad is keyworded for (~)amd64, ~arm64, ~riscv, and ~x86. Since
> this library is going to be a hard dependency for plugins to work in the
> KiCad v9 series, I think we will also have to make this library keyworded
> for those arches, unless we want to drop KiCad to amd64 only or disable
> plugin features on non amd64 arches.

See https://devmanual.gentoo.org/keywording/index.html#keywording-on-upgrades.

Especially:
"""
Note that it is preferred to drop keywords on the package and request rekeywording of it together with its new dependencies within the same bug to allow the new code path(s) in your package to be tested. This won't happen if the new dependency is requested for keywording by itself and package.use.mask is used to mask the relevant new USE flag: only the new package dependency will be tested by arch testers. Also, the mask has to be manually removed during the testing process, which is cumbersome. 
"""

You should submit a PR with a commit adding nng, then another commit (same PR) with kicad including a dep on nng, with dropped keywords for anything you didn't test nng on.

Then once merged, file a bug for rekeywording of kicad together with nng.
Comment 15 jospezial 2025-03-02 01:07:06 UTC
(In reply to gentoo2020 from comment #12)
> it seems there is a dependency issue with mbedtls...
> 
> -- Configuring for NNG version 1.10.0
> 
>         ************************************************************
>         Linking against Mbed TLS may change license terms.
>         Consult a lawyer and the license files for details.
>         ************************************************************
> Mbed TLS too old (must be version 2 or newer)  UP
> CMake Error at
> /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:233 (message):
>   Could NOT find MbedTLS (missing: MbedTLS_VERSION)
> Call Stack (most recent call first):
>   /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:603
> (_FPHSA_FAILURE_MESSAGE)
>   cmake/FindMbedTLS.cmake:117 (find_package_handle_standard_args)
>   src/supplemental/tls/mbedtls/CMakeLists.txt:35 (find_package)
> 

https://github.com/nanomsg/nng/commit/818b5b600578f63de94822ea423dd41a06cf3209
"cmake: ensure that MbedTLS and WolfSSL can be found properly as subprojects
Using nng_find_package as the helper fixes this, by ensuring that the
dependency gets properly added to incorporating projects."

in
https://github.com/nanomsg/nng/releases/tag/v2.0.0-alpha.4
Comment 16 jospezial 2025-03-18 17:58:47 UTC
https://github.com/gentoo/gentoo/commit/d49c5a8b26e450592be27f637fa4a2e362550bce
"dev-libs/nng: new package, add 1.10.1"

I think we can close this.