Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 903121 - dev-libs/Ice-3.7.8 : allow the C++11 mapping to be enabled
Summary: dev-libs/Ice-3.7.8 : allow the C++11 mapping to be enabled
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal enhancement
Assignee: Robert Förster
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2023-03-26 13:23 UTC by Bill Binder
Modified: 2024-10-12 11:41 UTC (History)
3 users (show)

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


Attachments
Enable C++11 mapping (Ice-ebuild-enable-cpp11-mappings.patch,483 bytes, patch)
2023-03-26 13:32 UTC, Bill Binder
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Bill Binder 2023-03-26 13:23:54 UTC
Ice supports two different mappings (sets of libraries) for C++: C++98 and C++11. The current ebuild (3.7.8-r2) only builds C++98 mapping.

The ebuild should allow both C++ mappings to be built.
  - the current Ice documentation examples and the demos mostly assume the C++11 mapping.
  - C++98 is subtly awkward these days, e.g. callbacks are function ptr rather than lambda/std::function.

The Ice build already has the option to build any/all of the different mappings, by setting the CONFIGS value for make. The "C++11 Mapping" section in the cpp/README.md says to do the following to get the c++11 mappings:
    make CONFIGS=cpp11-shared
    
CONFIGS can also be a list, so the following generates the libraries for both mappings:
    make "CONFIGS=shared cpp11-shared"

The bin/lib files generated for the C++11 mapping are suffixed with "++11", so they can co-exist in the same directories as ones from the default C++98 mapping. As a result, the install does the right thing.

Reproducible: Always
Comment 1 Bill Binder 2023-03-26 13:32:44 UTC
Created attachment 859037 [details, diff]
Enable C++11 mapping

Based on dev-libs/Ice-3.7.8-r2

Adds a local use flag to control whether to additionally build the C++11 mapping.

If the new use flag is set, modify the MAKE_RULES to build the default C++98 and C++11 mapping. Retains C++98 mapping to avoid disturbing dependent packages.
Comment 2 Larry the Git Cow gentoo-dev 2024-03-16 11:53:34 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4af926673d04287d7471056d9d32333a92c650ba

commit 4af926673d04287d7471056d9d32333a92c650ba
Author:     Robert Förster <Dessa@gmake.de>
AuthorDate: 2024-02-18 23:36:05 +0000
Commit:     Conrad Kostecki <conikost@gentoo.org>
CommitDate: 2024-03-16 11:52:38 +0000

    dev-libs/Ice: version bump
    
    Bug: https://bugs.gentoo.org/905874
    Bug: https://bugs.gentoo.org/903121
    Closes: https://bugs.gentoo.org/908387
    
    Signed-off-by: Robert Förster <Dessa@gmake.de>
    Closes: https://github.com/gentoo/gentoo/pull/35417
    Signed-off-by: Conrad Kostecki <conikost@gentoo.org>

 dev-libs/Ice/Ice-3.7.10-r1.ebuild | 258 ++++++++++++++++++++++++++++++++++++++
 dev-libs/Ice/Ice-3.7.10-r2.ebuild | 258 ++++++++++++++++++++++++++++++++++++++
 dev-libs/Ice/Ice-3.7.10.ebuild    | 258 ++++++++++++++++++++++++++++++++++++++
 dev-libs/Ice/Manifest             |   1 +
 4 files changed, 775 insertions(+)
Comment 3 Bill Binder 2024-10-12 11:41:28 UTC
Yes that's fine