[ 
https://issues.apache.org/jira/browse/KUDU-3788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18108430#comment-18108430
 ] 

ASF subversion and git services commented on KUDU-3788:
-------------------------------------------------------

Commit 30c8c9873d05d42c3428a58c479c479274e871da in kudu's branch 
refs/heads/master from Alexey Serbin
[ https://gitbox.apache.org/repos/asf?p=kudu.git;h=30c8c9873 ]

KUDU-3788 introduce 'any' for OS, OS version, arch, toolchain

Some of the 3rd-party artifacts used by Kudu are architecture and/or
OS-independent: e.g., Java JARs, JS scripts, Python code, etc.
It doesn't make much sense to store same bits duplicated in pre-built
archives that differ only by name, especially if those
OS/arch-independent pre-built artifacts are the heaviest ones
(e.g., that's so for JARs).

This changelist introduces 'any' as a wildcard for matching against OS,
OS version, architecture, and the build toolchain.  Enabling the 'any'
wildcard is done by setting corresponding <comp>_ANY_OS,
<comp>_OS_VERSION, <comp>_ANY_ARCH, and <comp>_ANY_TOOLCHAIN variables
to non-zero in thirdparty/vars.sh.  This changelist does so for hadoop,
hive, ranger, ranger_kms, postgres_jdbcspace space hogs and for the
rest of the components that don't build any binaries and don't modify
the contents of their source tarballs: trace-viewer, gcovr, sparsepp,
sparsehash, cpplint, rapidjson.  This is also done for jwt-cpp: it's
a header-only library with a non-trivial build procedure to find proper
SSL library implementation to build against.

Prometheus is marked with PROMETHEUS_ANY_OS_VERSION and
PROMETHEUS_ANY_TOOLCHAIN.  With that, there is still duplication in
pre-built artifacts for different Linux flavors/distros.  A follow-up
changelist may take care of this, perhaps introducing variables such as
<comp>_ANY_LINUX_DISTRO, <comp>_ANY_OS_FLAVOR, or similar.

Change-Id: I52428b8f2a558feb4d8247f37351ce2b6df1e4f7
Reviewed-on: http://gerrit.cloudera.org:8080/24710
Tested-by: Alexey Serbin <[email protected]>
Reviewed-by: Abhishek Chennaka <[email protected]>


> Allow fethcing and using pre-built 3rd-party components when building Kudu
> --------------------------------------------------------------------------
>
>                 Key: KUDU-3788
>                 URL: https://issues.apache.org/jira/browse/KUDU-3788
>             Project: Kudu
>          Issue Type: Improvement
>            Reporter: Alexey Serbin
>            Assignee: Alexey Serbin
>            Priority: Major
>             Fix For: 1.19.0
>
>
> It would be nice to allow to fetch and use pre-built 3rd-party components 
> when building Kudu.  Each of the 3rd-party components should be checked 
> against a presence of pre-built version that matches the machine architecture 
> and OS, and the matching rule should compare at least the following 
> attributes:
> * Component name (e.g., gflags)
> * Component version (minor, major, patch, or just source hash if no semantic 
> versioning is available)
> * The machine's CPU architecture that binaries/libraries are built for (e.g., 
> x86_64, arm64)
> * OS name or flavor/distro name if applicable (e.g., macOS, Ubuntu, Debian, 
> RHEL, etc.)
> * OS version: major, minor (e.g., 9.1 for RHEL, 24.04 for Ubuntu, 15.7 for 
> macOS, etc.)
> * The toolchain that the bits are built with: compiler name, major and minor 
> versions, and the standard C++ library flavor where applicable (e.g., 
> gcc-10.5-libstdc++, clang-15.0)
> * Sanitizer option: TSAN if built with tread sanitizer support, or none if a 
> regular build



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to