Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 575560 Details for
Bug 684272
<www-client/chromium-74.0.3729.108 version bump has high CVE fixes
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
FireBurn build failure.
gccfail (text/plain), 198.18 KB, created by
richard
on 2019-05-09 01:23:00 UTC
(
hide
)
Description:
FireBurn build failure.
Filename:
MIME Type:
Creator:
richard
Created:
2019-05-09 01:23:00 UTC
Size:
198.18 KB
patch
obsolete
>[71/9483] x86_64-pc-linux-gnu-gcc -MMD -MF obj/base/base/base_jumbo_c.o.d -DUSE_SYMBOLIZE -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBASE_IMPLEMENTATION -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -I. -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -pthread -m64 -march=x86-64 -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -Wno-comments -Wno-missing-field-initializers -Wno-unused-parameter -fno-omit-frame-pointer -g0 -fvisibility=hidden -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -O2 -fno-ident -fdata-sections -ffunction-sections -std=gnu11 -march=native -O2 -pipe -c gen/base/base_jumbo_c.c -o obj/base/base/base_jumbo_c.o >[72/9483] x86_64-pc-linux-gnu-g++ -MMD -MF obj/base/base/base_jumbo_7.o.d -DUSE_SYMBOLIZE -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBASE_IMPLEMENTATION -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -I. -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -pthread -m64 -march=x86-64 -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -Wno-comments -Wno-missing-field-initializers -Wno-unused-parameter -fno-omit-frame-pointer -g0 -fvisibility=hidden -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -O2 -fno-ident -fdata-sections -ffunction-sections -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -march=native -O2 -pipe -c gen/base/base_jumbo_7.cc -o obj/base/base/base_jumbo_7.o >FAILED: obj/base/base/base_jumbo_7.o >x86_64-pc-linux-gnu-g++ -MMD -MF obj/base/base/base_jumbo_7.o.d -DUSE_SYMBOLIZE -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBASE_IMPLEMENTATION -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -I. -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -pthread -m64 -march=x86-64 -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -Wno-comments -Wno-missing-field-initializers -Wno-unused-parameter -fno-omit-frame-pointer -g0 -fvisibility=hidden -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -O2 -fno-ident -fdata-sections -ffunction-sections -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -march=native -O2 -pipe -c gen/base/base_jumbo_7.cc -o obj/base/base/base_jumbo_7.o >In file included from ../../base/process/process_metrics.h:22, > from ./../../base/memory/protected_memory_posix.cc:21, > from gen/base/base_jumbo_7.cc:14: >../../base/values.h:421:20: warning: 'base::Value::<unnamed union>::<unnamed struct>::type_' is too small to hold all values of 'enum class base::Value::Type' > Type type_ : 8; > ^ >../../base/values.h:428:25: warning: 'base::Value::<unnamed union>::<unnamed struct>::bool_type_' is too small to hold all values of 'enum class base::Value::Type' > Type bool_type_ : 8; > ^ >../../base/values.h:433:24: warning: 'base::Value::<unnamed union>::<unnamed struct>::int_type_' is too small to hold all values of 'enum class base::Value::Type' > Type int_type_ : 8; > ^ >../../base/values.h:438:27: warning: 'base::Value::<unnamed union>::<unnamed struct>::double_type_' is too small to hold all values of 'enum class base::Value::Type' > Type double_type_ : 8; > ^ >../../base/values.h:446:27: warning: 'base::Value::<unnamed union>::<unnamed struct>::string_type_' is too small to hold all values of 'enum class base::Value::Type' > Type string_type_ : 8; > ^ >../../base/values.h:448:19: error: member 'std::__cxx11::string base::Value::<unnamed union>::<unnamed struct>::string_value_' with constructor not allowed in anonymous aggregate > std::string string_value_; > ^~~~~~~~~~~~~ >../../base/values.h:448:19: error: member 'std::__cxx11::string base::Value::<unnamed union>::<unnamed struct>::string_value_' with destructor not allowed in anonymous aggregate >../../base/values.h:448:19: error: member 'std::__cxx11::string base::Value::<unnamed union>::<unnamed struct>::string_value_' with copy assignment operator not allowed in anonymous aggregate >../../base/values.h:451:27: warning: 'base::Value::<unnamed union>::<unnamed struct>::binary_type_' is too small to hold all values of 'enum class base::Value::Type' > Type binary_type_ : 8; > ^ >../../base/values.h:453:19: error: member 'base::Value::BlobStorage base::Value::<unnamed union>::<unnamed struct>::binary_value_' with constructor not allowed in anonymous aggregate > BlobStorage binary_value_; > ^~~~~~~~~~~~~ >../../base/values.h:453:19: error: member 'base::Value::BlobStorage base::Value::<unnamed union>::<unnamed struct>::binary_value_' with destructor not allowed in anonymous aggregate >../../base/values.h:453:19: error: member 'base::Value::BlobStorage base::Value::<unnamed union>::<unnamed struct>::binary_value_' with copy assignment operator not allowed in anonymous aggregate >../../base/values.h:456:25: warning: 'base::Value::<unnamed union>::<unnamed struct>::dict_type_' is too small to hold all values of 'enum class base::Value::Type' > Type dict_type_ : 8; > ^ >../../base/values.h:458:19: error: member 'base::Value::DictStorage base::Value::<unnamed union>::<unnamed struct>::dict_' with constructor not allowed in anonymous aggregate > DictStorage dict_; > ^~~~~ >../../base/values.h:458:19: error: member 'base::Value::DictStorage base::Value::<unnamed union>::<unnamed struct>::dict_' with destructor not allowed in anonymous aggregate >../../base/values.h:458:19: error: member 'base::Value::DictStorage base::Value::<unnamed union>::<unnamed struct>::dict_' with copy assignment operator not allowed in anonymous aggregate >../../base/values.h:461:25: warning: 'base::Value::<unnamed union>::<unnamed struct>::list_type_' is too small to hold all values of 'enum class base::Value::Type' > Type list_type_ : 8; > ^ >../../base/values.h:463:19: error: member 'base::Value::ListStorage base::Value::<unnamed union>::<unnamed struct>::list_' with constructor not allowed in anonymous aggregate > ListStorage list_; > ^~~~~ >../../base/values.h:463:19: error: member 'base::Value::ListStorage base::Value::<unnamed union>::<unnamed struct>::list_' with destructor not allowed in anonymous aggregate >../../base/values.h:463:19: error: member 'base::Value::ListStorage base::Value::<unnamed union>::<unnamed struct>::list_' with copy assignment operator not allowed in anonymous aggregate >In file included from ./../../base/allocator/allocator_shim.cc:333, > from gen/base/base_jumbo_7.cc:45: >../../base/allocator/allocator_shim_override_cpp_symbols.h:56:26: warning: declaration of 'void* operator new(size_t)' with attribute 'noinline' follows inline declaration [-Wattributes] > SHIM_ALWAYS_EXPORT void* operator new(size_t size) { > ^~~~~~~~ >In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/g++-v8/ext/new_allocator.h:33, > from /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/g++-v8/x86_64-pc-linux-gnu/bits/c++allocator.h:33, > from /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/g++-v8/bits/allocator.h:46, > from /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/g++-v8/string:41, > from ../../base/version.h:11, > from ./../../base/version.cc:5, > from gen/base/base_jumbo_7.cc:5: >/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/g++-v8/new:168:14: note: previous definition of 'void* operator new(std::size_t, void*)' was here > inline void* operator new(std::size_t, void* __p) _GLIBCXX_USE_NOEXCEPT > ^~~~~~~~ >In file included from ./../../base/allocator/allocator_shim.cc:333, > from gen/base/base_jumbo_7.cc:45: >../../base/allocator/allocator_shim_override_cpp_symbols.h:64:26: warning: declaration of 'void* operator new [](size_t)' with attribute 'noinline' follows inline declaration [-Wattributes] > SHIM_ALWAYS_EXPORT void* operator new[](size_t size) { > ^~~~~~~~ >In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/g++-v8/ext/new_allocator.h:33, > from /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/g++-v8/x86_64-pc-linux-gnu/bits/c++allocator.h:33, > from /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/g++-v8/bits/allocator.h:46, > from /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/g++-v8/string:41, > from ../../base/version.h:11, > from ./../../base/version.cc:5, > from gen/base/base_jumbo_7.cc:5: >/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/g++-v8/new:170:14: note: previous definition of 'void* operator new [](std::size_t, void*)' was here > inline void* operator new[](std::size_t, void* __p) _GLIBCXX_USE_NOEXCEPT > ^~~~~~~~ >In file included from ../../base/bind.h:12, > from ./../../base/files/file_descriptor_watcher_posix.cc:7, > from gen/base/base_jumbo_7.cc:9: >../../base/bind_internal.h: In function 'bool base::internal::QueryCancellationTraitsImpl(base::internal::BindStateBase::CancellationQueryMode, const Functor&, const BoundArgsTuple&, std::index_sequence<indices ...>) [with Functor = void (base::FileDescriptorWatcher::Controller::*)(); BoundArgsTuple = std::tuple<base::WeakPtr<base::FileDescriptorWatcher::Controller> >; long unsigned int ...indices = {0}]': >../../base/bind_internal.h:735:1: warning: control reaches end of non-void function [-Wreturn-type] > } > ^ >In file included from gen/base/base_jumbo_7.cc:11: >./../../base/files/file_posix.cc: In function 'short int base::{anonymous}::FcntlFlockType(base::Optional<base::File::LockMode>)': >./../../base/files/file_posix.cc:85:1: warning: control reaches end of non-void function [-Wreturn-type] > } > ^ >[73/9483] x86_64-pc-linux-gnu-g++ -MMD -MF obj/base/base/base_jumbo_2.o.d -DUSE_SYMBOLIZE -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBASE_IMPLEMENTATION -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -I. -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -pthread -m64 -march=x86-64 -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -Wno-comments -Wno-missing-field-initializers -Wno-unused-parameter -fno-omit-frame-pointer -g0 -fvisibility=hidden -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -O2 -fno-ident -fdata-sections -ffunction-sections -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -march=native -O2 -pipe -c gen/base/base_jumbo_2.cc -o obj/base/base/base_jumbo_2.o >FAILED: obj/base/base/base_jumbo_2.o >x86_64-pc-linux-gnu-g++ -MMD -MF obj/base/base/base_jumbo_2.o.d -DUSE_SYMBOLIZE -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBASE_IMPLEMENTATION -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -I. -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -pthread -m64 -march=x86-64 -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -Wno-comments -Wno-missing-field-initializers -Wno-unused-parameter -fno-omit-frame-pointer -g0 -fvisibility=hidden -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -O2 -fno-ident -fdata-sections -ffunction-sections -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -march=native -O2 -pipe -c gen/base/base_jumbo_2.cc -o obj/base/base/base_jumbo_2.o >In file included from ../../base/trace_event/memory_allocator_dump.h:23, > from ../../base/trace_event/memory_dump_manager.h:20, > from ./../../base/memory/shared_memory_tracker.cc:10, > from gen/base/base_jumbo_2.cc:10: >../../base/values.h:421:20: warning: 'base::Value::<unnamed union>::<unnamed struct>::type_' is too small to hold all values of 'enum class base::Value::Type' > Type type_ : 8; > ^ >../../base/values.h:428:25: warning: 'base::Value::<unnamed union>::<unnamed struct>::bool_type_' is too small to hold all values of 'enum class base::Value::Type' > Type bool_type_ : 8; > ^ >../../base/values.h:433:24: warning: 'base::Value::<unnamed union>::<unnamed struct>::int_type_' is too small to hold all values of 'enum class base::Value::Type' > Type int_type_ : 8; > ^ >../../base/values.h:438:27: warning: 'base::Value::<unnamed union>::<unnamed struct>::double_type_' is too small to hold all values of 'enum class base::Value::Type' > Type double_type_ : 8; > ^ >../../base/values.h:446:27: warning: 'base::Value::<unnamed union>::<unnamed struct>::string_type_' is too small to hold all values of 'enum class base::Value::Type' > Type string_type_ : 8; > ^ >../../base/values.h:448:19: error: member 'std::__cxx11::string base::Value::<unnamed union>::<unnamed struct>::string_value_' with constructor not allowed in anonymous aggregate > std::string string_value_; > ^~~~~~~~~~~~~ >../../base/values.h:448:19: error: member 'std::__cxx11::string base::Value::<unnamed union>::<unnamed struct>::string_value_' with destructor not allowed in anonymous aggregate >../../base/values.h:448:19: error: member 'std::__cxx11::string base::Value::<unnamed union>::<unnamed struct>::string_value_' with copy assignment operator not allowed in anonymous aggregate >../../base/values.h:451:27: warning: 'base::Value::<unnamed union>::<unnamed struct>::binary_type_' is too small to hold all values of 'enum class base::Value::Type' > Type binary_type_ : 8; > ^ >../../base/values.h:453:19: error: member 'base::Value::BlobStorage base::Value::<unnamed union>::<unnamed struct>::binary_value_' with constructor not allowed in anonymous aggregate > BlobStorage binary_value_; > ^~~~~~~~~~~~~ >../../base/values.h:453:19: error: member 'base::Value::BlobStorage base::Value::<unnamed union>::<unnamed struct>::binary_value_' with destructor not allowed in anonymous aggregate >../../base/values.h:453:19: error: member 'base::Value::BlobStorage base::Value::<unnamed union>::<unnamed struct>::binary_value_' with copy assignment operator not allowed in anonymous aggregate >../../base/values.h:456:25: warning: 'base::Value::<unnamed union>::<unnamed struct>::dict_type_' is too small to hold all values of 'enum class base::Value::Type' > Type dict_type_ : 8; > ^ >../../base/values.h:458:19: error: member 'base::Value::DictStorage base::Value::<unnamed union>::<unnamed struct>::dict_' with constructor not allowed in anonymous aggregate > DictStorage dict_; > ^~~~~ >../../base/values.h:458:19: error: member 'base::Value::DictStorage base::Value::<unnamed union>::<unnamed struct>::dict_' with destructor not allowed in anonymous aggregate >../../base/values.h:458:19: error: member 'base::Value::DictStorage base::Value::<unnamed union>::<unnamed struct>::dict_' with copy assignment operator not allowed in anonymous aggregate >../../base/values.h:461:25: warning: 'base::Value::<unnamed union>::<unnamed struct>::list_type_' is too small to hold all values of 'enum class base::Value::Type' > Type list_type_ : 8; > ^ >../../base/values.h:463:19: error: member 'base::Value::ListStorage base::Value::<unnamed union>::<unnamed struct>::list_' with constructor not allowed in anonymous aggregate > ListStorage list_; > ^~~~~ >../../base/values.h:463:19: error: member 'base::Value::ListStorage base::Value::<unnamed union>::<unnamed struct>::list_' with destructor not allowed in anonymous aggregate >../../base/values.h:463:19: error: member 'base::Value::ListStorage base::Value::<unnamed union>::<unnamed struct>::list_' with copy assignment operator not allowed in anonymous aggregate >In file included from gen/base/base_jumbo_2.cc:29: >./../../base/metrics/histogram_samples.cc: In constructor 'base::HistogramSamples::LocalMetadata::LocalMetadata()': >./../../base/metrics/histogram_samples.cc:175:32: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct base::HistogramSamples::LocalMetadata'; use assignment or value-initialization instead [-Wclass-memaccess] > memset(this, 0, sizeof(*this)); > ^ >In file included from ./../../base/metrics/dummy_histogram.cc:10, > from gen/base/base_jumbo_2.cc:21: >../../base/metrics/histogram_samples.h:127:22: note: 'struct base::HistogramSamples::LocalMetadata' declared here > struct BASE_EXPORT LocalMetadata : Metadata { > ^~~~~~~~~~~~~ >ninja: build stopped: subcommand failed. > * ERROR: www-client/chromium-74.0.3729.131::x-portage failed (compile phase): > * ninja -v -j2 -l0 -C out/Release v8_context_snapshot_generator failed > * > * Call stack: > * ebuild.sh, line 124: Called src_compile > * environment, line 4273: Called eninja '-C' 'out/Release' 'v8_context_snapshot_generator' > * environment, line 1768: Called die > * The specific snippet of code: > * "$@" || die "${nonfatal_args[@]}" "${*} failed" > * > * If you need support, post the output of `emerge --info '=www-client/chromium-74.0.3729.131::x-portage'`, > * the complete build log and the output of `emerge -pqv '=www-client/chromium-74.0.3729.131::x-portage'`. > * > * MemTotal: 8063748 kB > * SwapTotal: 16777212 kB > * > * The complete build log is located at '/var/tmp/portage/www-client/chromium-74.0.3729.131/temp/build.log'. > * The ebuild environment file is located at '/var/tmp/portage/www-client/chromium-74.0.3729.131/temp/environment'. > * Working directory: '/var/tmp/portage/www-client/chromium-74.0.3729.131/work/chromium-74.0.3729.131' > * S: '/var/tmp/portage/www-client/chromium-74.0.3729.131/work/chromium-74.0.3729.131' >Portage 2.3.62 (python 3.6.5-final-0, default/linux/amd64/17.0/no-multilib, gcc-8.3.0, glibc-2.28-r6, 4.19.27-gentoo-r1 x86_64) >================================================================= > System Settings >================================================================= >System uname: Linux-4.19.27-gentoo-r1-x86_64-Intel-R-_Core-TM-_i7-4600U_CPU_@_2.10GHz-with-gentoo-2.6 >KiB Mem: 8063748 total, 3442336 free >KiB Swap: 16777212 total, 16671996 free >Timestamp of repository gentoo: Wed, 08 May 2019 23:00:01 +0000 >Head commit of repository gentoo: 0bdd7fcfe5b8212dae46b348e627c7d5b616f899 >Head commit of repository libressl: c88f8f1da607d7e3aa902863ae8ffc1ba0bfedea > >sh bash 4.4_p23-r1 >ld GNU ld (Gentoo 2.31.1 p5) 2.31.1 >app-shells/bash: 4.4_p23-r1::gentoo >dev-lang/perl: 5.26.2::gentoo >dev-lang/python: 2.7.15::gentoo, 3.6.5::gentoo >dev-util/cmake: 3.9.6::gentoo >dev-util/pkgconfig: 0.29.2::gentoo >sys-apps/baselayout: 2.6-r1::gentoo >sys-apps/openrc: 0.41.2::gentoo >sys-apps/sandbox: 2.13::gentoo >sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r4::gentoo >sys-devel/automake: 1.16.1-r1::gentoo >sys-devel/binutils: 2.31.1-r4::gentoo >sys-devel/gcc: 8.3.0-r1::gentoo >sys-devel/gcc-config: 2.0::gentoo >sys-devel/libtool: 2.4.6-r3::gentoo >sys-devel/make: 4.2.1-r4::gentoo >sys-kernel/linux-headers: 4.14-r1::gentoo (virtual/os-headers) >sys-libs/glibc: 2.28-r6::gentoo >Repositories: > >gentoo > location: /usr/portage > sync-type: rsync > sync-uri: rsync://rsync.gentoo.org/gentoo-portage > priority: -1000 > sync-rsync-verify-metamanifest: yes > sync-rsync-extra-opts: > sync-rsync-verify-max-age: 24 > sync-rsync-verify-jobs: 1 > >libressl > location: /var/lib/portage-overlays/libressl > sync-type: git > sync-uri: https://github.com/gentoo/libressl > masters: gentoo > >x-portage > location: /usr/local/portage > masters: gentoo > priority: 0 > >ACCEPT_KEYWORDS="amd64" >ACCEPT_LICENSE="* -@EULA" >CBUILD="x86_64-pc-linux-gnu" >CFLAGS="-march=native -Os -pipe" >CHOST="x86_64-pc-linux-gnu" >CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt" >CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" >CXXFLAGS="-march=native -Os -pipe" >DISTDIR="/usr/portage/distfiles" >EMERGE_DEFAULT_OPTS="--with-bdeps=y" >ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" >FCFLAGS="-O2 -pipe" >FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" >FFLAGS="-O2 -pipe" >GENTOO_MIRRORS="ftp://ftp.swin.edu.au/gentoo http://ftp.swin.edu.au/gentoo" >LANG="en_AU.UTF-8" >LDFLAGS="-Wl,-O1 -Wl,--as-needed" >MAKEOPTS="-j2" >PKGDIR="/usr/portage/packages" >PORTAGE_CONFIGROOT="/" >PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" >PORTAGE_TMPDIR="/var/tmp" >USE="X acl amd64 berkdb bzip2 cli crypt cxx dbus dri egl elogind ffmpeg fortran gdbm glamor gles iconv icu ipv6 kde libressl libtirpc ncurses networkmanager nls nptl openmp pam pcre polkit pulseaudio qt5 readline seccomp sound ssl tcpd udev udisks unicode vaapi vala wayland xattr xcb zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" CURL_SSL="libressl" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev synaptics libinput mouse keyboard" KERNEL="linux" L10N="en en-AU en-GB" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LLVM_TARGETS="BPF" NETBEANS_MODULES="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6 php7-1" POSTGRES_TARGETS="postgres9_5 postgres10" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6" RUBY_TARGETS="ruby24" USERLAND="GNU" VIDEO_CARDS="intel i965" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" >Unset: CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS > >================================================================= > Package Settings >================================================================= > >www-client/chromium-74.0.3729.131::x-portage was built with the following: >USE="jumbo-build (pic) proprietary-codecs pulseaudio system-ffmpeg system-libvpx -closure-compile -component-build -cups -custom-cflags -gnome-keyring -hangouts -kerberos (-neon) (-selinux) -suid (-system-icu) (-tcmalloc) -widevine" L10N="en-GB -am -ar -bg -bn -ca -cs -da -de -el -es -es-419 -et -fa -fi -fil -fr -gu -he -hi -hr -hu -id -it -ja -kn -ko -lt -lv -ml -mr -ms -nb -nl -pl -pt-BR -pt-PT -ro -ru -sk -sl -sr -sv -sw -ta -te -th -tr -uk -vi -zh-CN -zh-TW" >CFLAGS="-march=native -O2 -pipe" >CXXFLAGS="-march=native -O2 -pipe" > >[ebuild R ] www-client/chromium-74.0.3729.131 USE="jumbo-build (pic) proprietary-codecs pulseaudio system-ffmpeg system-libvpx vaapi%* -closure-compile -component-build -cups -custom-cflags -gnome-keyring -hangouts -kerberos (-neon) (-selinux) -suid (-system-icu) (-tcmalloc) -widevine" L10N="en-GB -am -ar -bg -bn -ca -cs -da -de -el -es -es-419 -et -fa -fi -fil -fr -gu -he -hi -hr -hu -id -it -ja -kn -ko -lt -lv -ml -mr -ms -nb -nl -pl -pt-BR -pt-PT -ro -ru -sk -sl -sr -sv -sw -ta -te -th -tr -uk -vi -zh-CN -zh-TW" >declare -x ABI="amd64" >declare -x ABI_MIPS="" >declare -x ABI_PPC="" >declare -x ABI_RISCV="" >declare -x ABI_S390="" >declare -x ABI_X86="64" >declare -x ADAFLAGS="" >declare -x ALSA_CARDS="" >declare -x APACHE2_MODULES="" >declare -x APACHE2_MPMS="" >declare -x AR="x86_64-pc-linux-gnu-ar" >declare -x ARCH="amd64" >declare BDEPEND=" > >=app-arch/gzip-1.7 > !arm? ( > dev-lang/yasm > ) > dev-lang/perl > dev-util/gn > dev-vcs/git > >=dev-util/gperf-3.0.3 > >=dev-util/ninja-1.7.2 > >=net-libs/nodejs-7.6.0[inspector] > sys-apps/hwids[usb(+)] > >=sys-devel/bison-2.4.3 > sys-devel/flex > closure-compile? ( virtual/jre ) > virtual/pkgconfig > " >declare -x BOOTSTRAP_USE="unicode internal-glib pkg-config split-usr python_targets_python3_6 python_targets_python2_7 multilib" >declare -x CALLIGRA_FEATURES="" >declare -x CAMERAS="" >declare -x CBUILD="x86_64-pc-linux-gnu" >declare -x CC="x86_64-pc-linux-gnu-gcc" >declare -x CCASFLAGS="" >declare -x CFLAGS="-march=native -O2 -pipe" >declare -x CFLAGS_amd64="-m64" >declare -x CFLAGS_default >declare -x CFLAGS_x32="-mx32" >declare -x CFLAGS_x86="-m32" >declare -- CHECKREQS_DISK_BUILD="5G" >declare -- CHECKREQS_MEMORY="3G" >declare -x CHOST="x86_64-pc-linux-gnu" >declare -x CHOST_amd64="x86_64-pc-linux-gnu" >declare -x CHOST_default="x86_64-pc-linux-gnu" >declare -x CHOST_x32="x86_64-pc-linux-gnux32" >declare -x CHOST_x86="i686-pc-linux-gnu" >declare -- CHROMIUM_FORCE_CLANG="no" >declare -- CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he > hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr > sv sw ta te th tr uk vi zh-CN zh-TW" >declare -x COLLECTD_PLUGINS="" >declare -x COLORFGBG="15;0" >declare -- COMMON_DEPEND=" > >=app-accessibility/at-spi2-atk-2.26:2 > app-arch/bzip2:= > cups? ( >=net-print/cups-1.3.11:= ) > >=dev-libs/atk-2.26 > dev-libs/expat:= > dev-libs/glib:2 > system-icu? ( >=dev-libs/icu-59:= ) > >=dev-libs/libxml2-2.9.4-r3:=[icu] > dev-libs/libxslt:= > dev-libs/nspr:= > >=dev-libs/nss-3.26:= > >=dev-libs/re2-0.2016.11.01:= > gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= ) > >=media-libs/alsa-lib-1.0.19:= > media-libs/fontconfig:= > media-libs/freetype:= > >=media-libs/harfbuzz-2.2.0:0=[icu(-)] > media-libs/libjpeg-turbo:= > media-libs/libpng:= > system-libvpx? ( >=media-libs/libvpx-1.8:=[postproc,svc] ) > >=media-libs/openh264-1.6.0:= > pulseaudio? ( media-sound/pulseaudio:= ) > system-ffmpeg? ( > >=media-video/ffmpeg-4:= > || ( > media-video/ffmpeg[-samba] > >=net-fs/samba-4.5.10-r1[-debug(-)] > ) > !=net-fs/samba-4.5.12-r0 > media-libs/opus:= > ) > sys-apps/dbus:= > sys-apps/pciutils:= > virtual/udev > x11-libs/cairo:= > x11-libs/gdk-pixbuf:2 > x11-libs/gtk+:3[X] > x11-libs/libX11:= > x11-libs/libXcomposite:= > x11-libs/libXcursor:= > x11-libs/libXdamage:= > x11-libs/libXext:= > x11-libs/libXfixes:= > >=x11-libs/libXi-1.6.0:= > x11-libs/libXrandr:= > x11-libs/libXrender:= > x11-libs/libXScrnSaver:= > x11-libs/libXtst:= > x11-libs/pango:= > app-arch/snappy:= > media-libs/flac:= > >=media-libs/libwebp-0.4.0:= > sys-libs/zlib:=[minizip] > kerberos? ( virtual/krb5 ) > vaapi? ( x11-libs/libva:= ) >" >declare -- CONFIG_CHECK="~PID_NS ~NET_NS ~SECCOMP_FILTER ~USER_NS ~ADVISE_SYSCALLS ~!COMPAT_VDSO ~!GRKERNSEC" >declare -x CPPFLAGS="" >declare -x CPU_FLAGS_ARM="" >declare -x CPU_FLAGS_X86="" >declare -x CTARGET_default="x86_64-pc-linux-gnu" >declare -x CURL_SSL="" >declare -x CXX="x86_64-pc-linux-gnu-g++" >declare -x CXXFLAGS="-march=native -O2 -pipe" >declare -x DEFAULT_ABI="amd64" >declare -x DEFINED_PHASES=" compile configure install postinst postrm prepare pretend setup" >declare DEPEND=" > >=app-accessibility/at-spi2-atk-2.26:2 > app-arch/bzip2:= > cups? ( >=net-print/cups-1.3.11:= ) > >=dev-libs/atk-2.26 > dev-libs/expat:= > dev-libs/glib:2 > system-icu? ( >=dev-libs/icu-59:= ) > >=dev-libs/libxml2-2.9.4-r3:=[icu] > dev-libs/libxslt:= > dev-libs/nspr:= > >=dev-libs/nss-3.26:= > >=dev-libs/re2-0.2016.11.01:= > gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= ) > >=media-libs/alsa-lib-1.0.19:= > media-libs/fontconfig:= > media-libs/freetype:= > >=media-libs/harfbuzz-2.2.0:0=[icu(-)] > media-libs/libjpeg-turbo:= > media-libs/libpng:= > system-libvpx? ( >=media-libs/libvpx-1.8:=[postproc,svc] ) > >=media-libs/openh264-1.6.0:= > pulseaudio? ( media-sound/pulseaudio:= ) > system-ffmpeg? ( > >=media-video/ffmpeg-4:= > || ( > media-video/ffmpeg[-samba] > >=net-fs/samba-4.5.10-r1[-debug(-)] > ) > !=net-fs/samba-4.5.12-r0 > media-libs/opus:= > ) > sys-apps/dbus:= > sys-apps/pciutils:= > virtual/udev > x11-libs/cairo:= > x11-libs/gdk-pixbuf:2 > x11-libs/gtk+:3[X] > x11-libs/libX11:= > x11-libs/libXcomposite:= > x11-libs/libXcursor:= > x11-libs/libXdamage:= > x11-libs/libXext:= > x11-libs/libXfixes:= > >=x11-libs/libXi-1.6.0:= > x11-libs/libXrandr:= > x11-libs/libXrender:= > x11-libs/libXScrnSaver:= > x11-libs/libXtst:= > x11-libs/pango:= > app-arch/snappy:= > media-libs/flac:= > >=media-libs/libwebp-0.4.0:= > sys-libs/zlib:=[minizip] > kerberos? ( virtual/krb5 ) > vaapi? ( x11-libs/libva:= ) > > " >declare DESCRIPTION="Open-source version of Google Chrome web browser" >declare -- DESKTOP_DATABASE_DIR="/usr/share/applications" >declare -x DESKTOP_SESSION="/usr/share/xsessions/plasma" >declare -x DIROPTIONS="-m0755" >declare -- DISABLE_AUTOFORMATTING="yes" >declare -- DOC_CONTENTS=" >Some web pages may require additional fonts to display properly. >Try installing some of the following packages if some characters >are not displayed properly: >- media-fonts/arphicfonts >- media-fonts/droid >- media-fonts/ipamonafont >- media-fonts/noto >- media-fonts/ja-ipafonts >- media-fonts/takao-fonts >- media-fonts/wqy-microhei >- media-fonts/wqy-zenhei > >To fix broken icons on the Downloads page, you should install an icon >theme that covers the appropriate MIME types, and configure this as your >GTK+ icon theme. >" >declare -x EAPI="7" >declare -- EBUILD_DEATH_HOOKS=" chromium_pkg_die" >declare -- EGYP_CHROMIUM_COMMAND="build/gyp_chromium" >declare -- EGYP_CHROMIUM_DEPTH="." >declare -x ELIBC="glibc" >declare -x ENLIGHTENMENT_MODULES="" >declare -x ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" >declare -x EPYTHON="python2.7" >declare -- ERROR_ADVISE_SYSCALLS="CONFIG_ADVISE_SYSCALLS is required for the renderer (bug #552576)" >declare -- ERROR_COMPAT_VDSO="CONFIG_COMPAT_VDSO causes segfaults (bug #556286)" >declare -- ERROR_GRKERNSEC="CONFIG_GRKERNSEC breaks sandbox (bug #613668)" >declare -- ERROR_NET_NS="NET_NS is required for sandbox to work" >declare -- ERROR_PID_NS="PID_NS is required for sandbox to work" >declare -- ERROR_SECCOMP_FILTER="SECCOMP_FILTER is required for sandbox to work" >declare -- ERROR_USER_NS="USER_NS is required for sandbox to work" >declare -x EXEOPTIONS="-m0755" >declare -x FCFLAGS="-O2 -pipe" >declare -x FETCHCOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port= ; exec rsync --rsh=\\\"ssh \\\${port:+-p\\\${port}} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\"" >declare -x FFLAGS="-O2 -pipe" >declare -x FFTOOLS="" >declare -x GCC_SPECS="" >declare -x GPSD_PROTOCOLS="" >declare -x GRUB_PLATFORMS="" >declare -x GSETTINGS_BACKEND="dconf" >declare -x GS_LIB="/home/sirdmz/.fonts" >declare -x GTK_MODULES="canberra-gtk-module" >declare HDEPEND="" >declare HOMEPAGE="http://chromium.org/" >declare -x INHERITED=" check-reqs eutils toolchain-funcs multilib linux-info chromium-2 desktop flag-o-matic multiprocessing ninja-utils pax-utils portability python-utils-r1 python-any-r1 readme.gentoo-r1 xdg-utils" >declare -x INPUT_DEVICES="" >declare -x INSOPTIONS="-m0644" >declare IUSE="+closure-compile component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc vaapi widevine kernel_linux custom-cflags +l10n_am +l10n_ar +l10n_bg +l10n_bn +l10n_ca +l10n_cs +l10n_da +l10n_de +l10n_el +l10n_en-GB +l10n_es +l10n_es-419 +l10n_et +l10n_fa +l10n_fi +l10n_fil +l10n_fr +l10n_gu +l10n_he +l10n_hi +l10n_hr +l10n_hu +l10n_id +l10n_it +l10n_ja +l10n_kn +l10n_ko +l10n_lt +l10n_lv +l10n_ml +l10n_mr +l10n_ms +l10n_nb +l10n_nl +l10n_pl +l10n_pt-BR +l10n_pt-PT +l10n_ro +l10n_ru +l10n_sk +l10n_sl +l10n_sr +l10n_sv +l10n_sw +l10n_ta +l10n_te +l10n_th +l10n_tr +l10n_uk +l10n_vi +l10n_zh-CN +l10n_zh-TW" >declare -x IUSE_EFFECTIVE="abi_x86_64 alpha amd64 amd64-fbsd amd64-linux arm arm64 closure-compile component-build cups custom-cflags elibc_AIX elibc_Cygwin elibc_Darwin elibc_DragonFly elibc_FreeBSD elibc_HPUX elibc_Interix elibc_NetBSD elibc_OpenBSD elibc_SunOS elibc_Winnt elibc_bionic elibc_glibc elibc_mingw elibc_mintlib elibc_musl elibc_uclibc gnome-keyring hangouts hppa ia64 jumbo-build kerberos kernel_AIX kernel_Darwin kernel_FreeBSD kernel_HPUX kernel_NetBSD kernel_OpenBSD kernel_SunOS kernel_Winnt kernel_freemint kernel_linux l10n_am l10n_ar l10n_bg l10n_bn l10n_ca l10n_cs l10n_da l10n_de l10n_el l10n_en-GB l10n_es l10n_es-419 l10n_et l10n_fa l10n_fi l10n_fil l10n_fr l10n_gu l10n_he l10n_hi l10n_hr l10n_hu l10n_id l10n_it l10n_ja l10n_kn l10n_ko l10n_lt l10n_lv l10n_ml l10n_mr l10n_ms l10n_nb l10n_nl l10n_pl l10n_pt-BR l10n_pt-PT l10n_ro l10n_ru l10n_sk l10n_sl l10n_sr l10n_sv l10n_sw l10n_ta l10n_te l10n_th l10n_tr l10n_uk l10n_vi l10n_zh-CN l10n_zh-TW m68k m68k-mint mips neon pic ppc ppc-aix ppc-macos ppc64 ppc64-linux prefix prefix-guest prefix-stack proprietary-codecs pulseaudio riscv s390 selinux sh sparc sparc-solaris sparc64-solaris suid system-ffmpeg system-icu system-libvpx tcmalloc userland_BSD userland_GNU vaapi widevine x64-cygwin x64-macos x64-solaris x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris x86-winnt" >declare -x IUSE_IMPLICIT="abi_x86_64 prefix prefix-guest prefix-stack" >declare -x KDE_FULL_SESSION="true" >declare -x KDE_SESSION_UID="1000" >declare -x KDE_SESSION_VERSION="5" >declare -x KERNEL="linux" >declare -x KERNEL_ABI="amd64" >declare -- KERNEL_DIR="/usr/src/linux" >declare -- KERNEL_MAKEFILE="/usr/src/linux/Makefile" >declare -x KEYWORDS="~amd64 ~x86" >declare -x KONSOLE_DBUS_SERVICE=":1.28" >declare -x KONSOLE_DBUS_SESSION="/Sessions/4" >declare -x KONSOLE_DBUS_WINDOW="/Windows/1" >declare -x KONSOLE_PROFILE_NAME="Default" >declare -x KONSOLE_VERSION="190400" >declare -- KV_DIR="/usr/src/linux" >declare -- KV_EXTRA="-gentoo" >declare -- KV_FULL="4.19.37-gentoo" >declare -- KV_LOCAL="" >declare -- KV_MAJOR="4" >declare -- KV_MINOR="19" >declare -- KV_OUT_DIR="/usr/src/linux" >declare -- KV_PATCH="37" >declare -x L10N="en-GB" >declare -x LADSPA_PATH="/usr/lib64/ladspa" >declare -x LANG="en_AU.UTF-8" >declare -x LANGUAGE="en_US" >declare -x LCD_DEVICES="" >declare -x LC_COLLATE="C" >declare -x LC_MESSAGES="C" >declare -x LDFLAGS="-Wl,-O1 -Wl,--as-needed" >declare -x LDFLAGS_amd64="-m elf_x86_64" >declare -x LDFLAGS_default >declare -x LDFLAGS_x32="-m elf32_x86_64" >declare -x LDFLAGS_x86="-m elf_i386" >declare -x LIBDIR_amd64="lib64" >declare -x LIBDIR_default="lib" >declare -x LIBDIR_x32="libx32" >declare -x LIBDIR_x86="lib32" >declare -x LIBOPTIONS="-m0644" >declare -x LIBREOFFICE_EXTENSIONS="" >declare -x LICENSE="BSD" >declare -x LINUX_CONFIG_EXISTS_DONE="" >declare -x LIRC_DEVICES="" >declare -x LLVM_TARGETS="" >declare -x MAIL="/var/mail/sirdmz" >declare -x MAKEOPTS="-j2" >declare -x MANPAGER="manpager" >declare -- MIMEINFO_DATABASE_DIR="/usr/share/mime" >declare -x MONKEYD_PLUGINS="" >declare -x MOZ_GMP_PATH="/usr/lib64/nsbrowser/plugins/gmp-gmpopenh264/system-installed" >declare -x MULTILIB_ABIS="amd64" >declare -x MULTILIB_STRICT_DENY="64-bit.*shared object" >declare -x MULTILIB_STRICT_DIRS="/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib" >declare -x MULTILIB_STRICT_EXEMPT="(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage|udev|systemd|clang|python-exec|llvm)" >declare -x NETBEANS_MODULES="" >declare -x NGINX_MODULES_HTTP="" >declare -x NGINX_MODULES_MAIL="" >declare -x NGINX_MODULES_STREAM="" >declare -x NM="x86_64-pc-linux-gnu-nm" >declare -x OFED_DRIVERS="" >declare -x OFFICE_IMPLEMENTATION="" >declare -x OPENGL_PROFILE="xorg-x11" >declare -x OPENMPI_FABRICS="" >declare -x OPENMPI_OFED_FEATURES="" >declare -x OPENMPI_RM="" >declare -a PATCHES=([0]="/var/tmp/portage/www-client/chromium-74.0.3729.131/files/chromium-widevine-r4.patch" [1]="/var/tmp/portage/www-client/chromium-74.0.3729.131/files/chromium-fix-char_traits.patch" [2]="/var/tmp/portage/www-client/chromium-74.0.3729.131/files/chromium-vaapi.patch" [3]="/var/tmp/portage/www-client/chromium-74.0.3729.131/files/chromium-deconst.patch") >declare -x PATH="/var/tmp/portage/www-client/chromium-74.0.3729.131/temp/python2.7/bin:/var/tmp/portage/www-client/chromium-74.0.3729.131/temp/python2.7/bin:/usr/lib/portage/python3.6/ebuild-helpers/xattr:/usr/lib/portage/python3.6/ebuild-helpers:/usr/lib/llvm/6/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin" >declare -- PAX_MARKINGS="none" >declare PDEPEND="" >declare -x PHP_TARGETS="" >declare -x PKG_CONFIG_PATH="/var/tmp/portage/www-client/chromium-74.0.3729.131/temp/python2.7/pkgconfig" >declare -x PORTAGE_COMPRESSION_COMMAND="bzip2" >declare -a PORTAGE_DOCOMPRESS=([0]="/usr/share/doc" [1]="/usr/share/info" [2]="/usr/share/man") >declare -x PORTAGE_DOCOMPRESS_SIZE_LIMIT="128" >declare -a PORTAGE_DOCOMPRESS_SKIP=([0]="/usr/share/doc/chromium-74.0.3729.131/html") >declare -a PORTAGE_DOSTRIP=([0]="/") >declare -a PORTAGE_DOSTRIP_SKIP=() >declare -x POSTGRES_TARGETS="" >declare -x PROFILEHOME="" >declare -x PROFILE_ONLY_VARIABLES="ARCH ELIBC IUSE_IMPLICIT KERNEL USERLAND USE_EXPAND_IMPLICIT USE_EXPAND_UNPREFIXED USE_EXPAND_VALUES_ARCH USE_EXPAND_VALUES_ELIBC USE_EXPAND_VALUES_KERNEL USE_EXPAND_VALUES_USERLAND" >declare -x PROPERTIES="" >declare -x PYTHON="/usr/bin/python2.7" >declare -x PYTHONDONTWRITEBYTECODE="1" >declare -a PYTHON_COMPAT=([0]="python2_7") >declare -- PYTHON_DEPS="|| ( >=dev-lang/python-2.7.5-r2:2.7 )" >declare -x PYTHON_SINGLE_TARGET="" >declare -x PYTHON_TARGETS="" >declare -x QEMU_SOFTMMU_TARGETS="" >declare -x QEMU_USER_TARGETS="" >declare -x QT_AUTO_SCREEN_SCALE_FACTOR="0" >declare -x QT_SCREEN_SCALE_FACTORS="eDP1=1.5;DP1=1.5;HDMI1=1.5;HDMI2=1.5;VIRTUAL1=1.5;" >declare RDEPEND=" > >=app-accessibility/at-spi2-atk-2.26:2 > app-arch/bzip2:= > cups? ( >=net-print/cups-1.3.11:= ) > >=dev-libs/atk-2.26 > dev-libs/expat:= > dev-libs/glib:2 > system-icu? ( >=dev-libs/icu-59:= ) > >=dev-libs/libxml2-2.9.4-r3:=[icu] > dev-libs/libxslt:= > dev-libs/nspr:= > >=dev-libs/nss-3.26:= > >=dev-libs/re2-0.2016.11.01:= > gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= ) > >=media-libs/alsa-lib-1.0.19:= > media-libs/fontconfig:= > media-libs/freetype:= > >=media-libs/harfbuzz-2.2.0:0=[icu(-)] > media-libs/libjpeg-turbo:= > media-libs/libpng:= > system-libvpx? ( >=media-libs/libvpx-1.8:=[postproc,svc] ) > >=media-libs/openh264-1.6.0:= > pulseaudio? ( media-sound/pulseaudio:= ) > system-ffmpeg? ( > >=media-video/ffmpeg-4:= > || ( > media-video/ffmpeg[-samba] > >=net-fs/samba-4.5.10-r1[-debug(-)] > ) > !=net-fs/samba-4.5.12-r0 > media-libs/opus:= > ) > sys-apps/dbus:= > sys-apps/pciutils:= > virtual/udev > x11-libs/cairo:= > x11-libs/gdk-pixbuf:2 > x11-libs/gtk+:3[X] > x11-libs/libX11:= > x11-libs/libXcomposite:= > x11-libs/libXcursor:= > x11-libs/libXdamage:= > x11-libs/libXext:= > x11-libs/libXfixes:= > >=x11-libs/libXi-1.6.0:= > x11-libs/libXrandr:= > x11-libs/libXrender:= > x11-libs/libXScrnSaver:= > x11-libs/libXtst:= > x11-libs/pango:= > app-arch/snappy:= > media-libs/flac:= > >=media-libs/libwebp-0.4.0:= > sys-libs/zlib:=[minizip] > kerberos? ( virtual/krb5 ) > vaapi? ( x11-libs/libva:= ) > > !<www-plugins/chrome-binary-plugins-57 > x11-misc/xdg-utils > virtual/opengl > virtual/ttf-fonts > selinux? ( sec-policy/selinux-chromium ) > tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 ) > widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] ) > " >declare -- README_GENTOO_SUFFIX="" >declare REPOSITORY >declare REQUIRED_USE="component-build? ( !suid ) " >declare -x RESTRICT="" >declare -x RESUMECOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port= ; exec rsync --rsh=\\\"ssh \\\${port:+-p\\\${port}} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\"" >declare -x ROS_MESSAGES="" >declare -x RUBY_TARGETS="" >declare -x S="/var/tmp/portage/www-client/chromium-74.0.3729.131/work/chromium-74.0.3729.131" >declare -x SANDBOX_DEBUG="0" >declare -x SANDBOX_DENY="" >declare -x SANDBOX_PREDICT="/var/tmp/portage/www-client/chromium-74.0.3729.131/homedir:/var/cache/fontconfig:/dev/dri/" >declare -x SANDBOX_READ="/:/var/tmp/portage" >declare -x SANDBOX_VERBOSE="1" >declare -x SANDBOX_WRITE=":/dev/console:/dev/fd:/dev/full:/dev/null:/dev/ptmx:/dev/pts/:/dev/pty:/dev/shm:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/proc/self/fd:/tmp/:/usr/lib/cf:/usr/lib/conftest:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/tmp/cf:/usr/tmp/conftest:/var/tmp/:/var/tmp/portage:/var/tmp/portage/www-client/chromium-74.0.3729.131/homedir/.bash_history" >declare -x SANE_BACKENDS="" >declare -x SESSION_MANAGER="local/k0tori:@/tmp/.ICE-unix/4161,unix/k0tori:/tmp/.ICE-unix/4161" >declare -x SHELL="/bin/bash" >declare -x SHELL_SESSION_ID="44c174e8cbf047a3aaec93b94e6ac137" >declare -x SLOT="0" >declare SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/chromium-74.0.3729.131.tar.xz" >declare -x SYMLINK_LIB="yes" >declare -x TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE="1" >declare -x USE="abi_x86_64 amd64 elibc_glibc jumbo-build kernel_linux l10n_en-GB pic proprietary-codecs pulseaudio system-ffmpeg system-libvpx userland_GNU vaapi" >declare -x USERLAND="GNU" >declare -x USE_EXPAND_IMPLICIT="ARCH ELIBC KERNEL USERLAND" >declare -x USE_EXPAND_UNPREFIXED="ARCH" >declare -x USE_EXPAND_VALUES_ARCH="alpha amd64 amd64-fbsd amd64-linux arm arm64 hppa ia64 m68k m68k-mint mips ppc ppc64 ppc64-linux ppc-aix ppc-macos riscv s390 sh sparc sparc64-solaris sparc-solaris x64-cygwin x64-macos x64-solaris x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris x86-winnt" >declare -x USE_EXPAND_VALUES_ELIBC="AIX bionic Cygwin Darwin DragonFly FreeBSD glibc HPUX Interix mingw mintlib musl NetBSD OpenBSD SunOS uclibc Winnt" >declare -x USE_EXPAND_VALUES_KERNEL="AIX Darwin FreeBSD freemint HPUX linux NetBSD OpenBSD SunOS Winnt" >declare -x USE_EXPAND_VALUES_USERLAND="BSD GNU" >declare -x UWSGI_PLUGINS="" >declare -x VBOX_APP_HOME="/usr/lib64/virtualbox" >declare -x VIDEO_CARDS="" >declare -x VOICEMAIL_STORAGE="" >declare -x WINDOWID="52428807" >declare -x XCURSOR_SIZE="0" >declare -x XCURSOR_THEME="breeze_cursors" >declare -x XDG_CONFIG_DIRS="/etc/xdg" >declare -x XDG_CURRENT_DESKTOP="KDE" >declare -x XDG_DATA_DIRS="/usr/local/share:/usr/share" >declare -x XDG_SEAT="seat0" >declare -x XDG_SEAT_PATH="/org/freedesktop/DisplayManager/Seat0" >declare -x XDG_SESSION_CLASS="user" >declare -x XDG_SESSION_DESKTOP="KDE" >declare -x XDG_SESSION_ID="1" >declare -x XDG_SESSION_PATH="/org/freedesktop/DisplayManager/Session1" >declare -x XDG_SESSION_TYPE="x11" >declare -x XDG_VTNR="7" >declare -x XFCE_PLUGINS="" >declare -x XTABLES_ADDONS="" >declare -- _CHECK_REQS_ECLASS_="1" >declare -- _DESKTOP_ECLASS="1" >declare -- _EUTILS_ECLASS="1" >declare -x _E_DESTTREE_="/usr" >declare -x _E_DOCDESTTREE_="" >declare -x _E_EXEDESTTREE_="" >declare -x _E_INSDESTTREE_="" >declare -- _FLAG_O_MATIC_ECLASS="1" >declare -x _LINUX_CONFIG_EXISTS_DONE="1" >declare -- _MULTILIB_ECLASS="1" >declare -- _MULTIPROCESSING_ECLASS="1" >declare -- _NINJA_UTILS_ECLASS="1" >declare -- _PAX_UTILS_ECLASS="1" >declare -- _PORTABILITY_ECLASS="1" >declare -a _PYTHON_ALL_IMPLS=([0]="jython2_7" [1]="pypy" [2]="pypy3" [3]="python2_7" [4]="python3_5" [5]="python3_6" [6]="python3_7") >declare -- _PYTHON_ANY_R1="1" >declare -a _PYTHON_SUPPORTED_IMPLS=([0]="python2_7") >declare -a _PYTHON_UNSUPPORTED_IMPLS=([0]="jython2_7" [1]="pypy" [2]="pypy3" [3]="python3_5" [4]="python3_6" [5]="python3_7") >declare -- _PYTHON_UTILS_R1="1" >declare -- _README_GENTOO_ECLASS="1" >declare -- _TOOLCHAIN_FUNCS_ECLASS="1" >declare -- ffmpeg_branding="Chrome" >declare -- ffmpeg_target_arch="x64" >declare -- get_version_warning_done="" >declare -- phase_func >declare -- started_applying="1" >PYTHON () >{ > die "${FUNCNAME}() is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#.24.28PYTHON.29.2C_.24.7BEPYTHON.7D" >} >__eapi6_src_install () >{ > if [[ -f Makefile || -f GNUmakefile || -f makefile ]]; then > emake DESTDIR="${D}" install; > fi; > einstalldocs >} >__eapi6_src_prepare () >{ > if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then > [[ ${#PATCHES[@]} -gt 0 ]] && eapply "${PATCHES[@]}"; > else > if [[ -n ${PATCHES} ]]; then > eapply ${PATCHES}; > fi; > fi; > eapply_user >} >__eapi7_ver_compare () >{ > local va=${1} vb=${2} a an al as ar b bn bl bs br re LC_ALL=C; > re="^([0-9]+(\.[0-9]+)*)([a-z]?)((_(alpha|beta|pre|rc|p)[0-9]*)*)(-r[0-9]+)?$"; > [[ ${va} =~ ${re} ]] || die "${FUNCNAME}: invalid version: ${va}"; > an=${BASH_REMATCH[1]}; > al=${BASH_REMATCH[3]}; > as=${BASH_REMATCH[4]}; > ar=${BASH_REMATCH[7]}; > [[ ${vb} =~ ${re} ]] || die "${FUNCNAME}: invalid version: ${vb}"; > bn=${BASH_REMATCH[1]}; > bl=${BASH_REMATCH[3]}; > bs=${BASH_REMATCH[4]}; > br=${BASH_REMATCH[7]}; > __eapi7_ver_compare_int "${an%%.*}" "${bn%%.*}" || return; > while [[ ${an} == *.* && ${bn} == *.* ]]; do > an=${an#*.}; > bn=${bn#*.}; > a=${an%%.*}; > b=${bn%%.*}; > if [[ ${a} == 0* || ${b} == 0* ]]; then > [[ ${a} =~ 0+$ ]] && a=${a%"${BASH_REMATCH[0]}"}; > [[ ${b} =~ 0+$ ]] && b=${b%"${BASH_REMATCH[0]}"}; > [[ ${a} > ${b} ]] && return 3; > [[ ${a} < ${b} ]] && return 1; > else > __eapi7_ver_compare_int "${a}" "${b}" || return; > fi; > done; > [[ ${an} == *.* ]] && return 3; > [[ ${bn} == *.* ]] && return 1; > [[ ${al} > ${bl} ]] && return 3; > [[ ${al} < ${bl} ]] && return 1; > as=${as#_}${as:+_}; > bs=${bs#_}${bs:+_}; > while [[ -n ${as} && -n ${bs} ]]; do > a=${as%%_*}; > b=${bs%%_*}; > if [[ ${a%%[0-9]*} == "${b%%[0-9]*}" ]]; then > __eapi7_ver_compare_int "${a##*[a-z]}" "${b##*[a-z]}" || return; > else > [[ ${a%%[0-9]*} == p ]] && return 3; > [[ ${b%%[0-9]*} == p ]] && return 1; > [[ ${a} > ${b} ]] && return 3 || return 1; > fi; > as=${as#*_}; > bs=${bs#*_}; > done; > if [[ -n ${as} ]]; then > [[ ${as} == p[_0-9]* ]] && return 3 || return 1; > else > if [[ -n ${bs} ]]; then > [[ ${bs} == p[_0-9]* ]] && return 1 || return 3; > fi; > fi; > __eapi7_ver_compare_int "${ar#-r}" "${br#-r}" || return; > return 2 >} >__eapi7_ver_compare_int () >{ > local a=$1 b=$2 d=$(( ${#1}-${#2} )); > if [[ ${d} -gt 0 ]]; then > printf -v b "%0${d}d%s" 0 "${b}"; > else > if [[ ${d} -lt 0 ]]; then > printf -v a "%0$(( -d ))d%s" 0 "${a}"; > fi; > fi; > [[ ${a} > ${b} ]] && return 3; > [[ ${a} == "${b}" ]] >} >__eapi7_ver_parse_range () >{ > local range=${1}; > local max=${2}; > [[ ${range} == [0-9]* ]] || die "${FUNCNAME}: range must start with a number"; > start=${range%-*}; > [[ ${range} == *-* ]] && end=${range#*-} || end=${start}; > if [[ -n ${end} ]]; then > [[ ${start} -le ${end} ]] || die "${FUNCNAME}: end of range must be >= start"; > [[ ${end} -le ${max} ]] || end=${max}; > else > end=${max}; > fi >} >__eapi7_ver_split () >{ > local v=${1} LC_ALL=C; > comp=(); > local s c; > while [[ -n ${v} ]]; do > s=${v%%[a-zA-Z0-9]*}; > v=${v:${#s}}; > [[ ${v} == [0-9]* ]] && c=${v%%[^0-9]*} || c=${v%%[^a-zA-Z]*}; > v=${v:${#c}}; > comp+=("${s}" "${c}"); > done >} >_chromium_set_l10n_IUSE () >{ > [[ ${EAPI:-0} == 0 ]] && die "EAPI=${EAPI} is not supported"; > local lang; > for lang in ${CHROMIUM_LANGS}; > do > IUSE+=" +l10n_${lang}"; > done >} >_clang_fullversion () >{ > local ver="$1"; > shift; > set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ __clang_patchlevel__"); > eval echo "$ver" >} >_dead_portability_user_funcs () >{ > die "if you really need this, please file a bug for base-system@gentoo.org" >} >_eapply_patch () >{ > local f=${1}; > local prefix=${2}; > started_applying=1; > ebegin "${prefix:-Applying }${f##*/}"; > ${patch_cmd} -p1 -f -s -g0 --no-backup-if-mismatch "${patch_options[@]}" < "${f}"; > failed=${?}; > if ! eend "${failed}"; then > __helpers_die "patch -p1 ${patch_options[*]} failed with ${f}"; > fi >} >_filter-hardened () >{ > local f; > for f in "$@"; > do > case "${f}" in > -fPIC | -fpic | -fPIE | -fpie | -Wl,pie | -pie) > gcc-specs-pie || continue; > if ! is-flagq -nopie && ! is-flagq -no-pie; then > if test-flags -nopie > /dev/null; then > append-flags -nopie; > else > append-flags -no-pie; > fi; > fi > ;; > -fstack-protector) > gcc-specs-ssp || continue; > is-flagq -fno-stack-protector || append-flags $(test-flags -fno-stack-protector) > ;; > -fstack-protector-all) > gcc-specs-ssp-to-all || continue; > is-flagq -fno-stack-protector-all || append-flags $(test-flags -fno-stack-protector-all) > ;; > -fno-strict-overflow) > gcc-specs-nostrict || continue; > is-flagq -fstrict-overflow || append-flags $(test-flags -fstrict-overflow) > ;; > esac; > done >} >_filter-var () >{ > local f x var=$1 new=(); > shift; > for f in ${!var}; > do > for x in "$@"; > do > [[ ${f} == ${x} ]] && continue 2; > done; > new+=("${f}"); > done; > export ${var}="${new[*]}" >} >_gcc-install-dir () >{ > echo "$(LC_ALL=C $(tc-getCC) -print-search-dirs 2> /dev/null | awk '$1=="install:" {print $2}')" >} >_gcc-specs-directive_raw () >{ > local cc=$(tc-getCC); > local specfiles=$(LC_ALL=C ${cc} -v 2>&1 | awk '$1=="Reading" {print $NF}'); > ${cc} -dumpspecs 2> /dev/null | cat - ${specfiles} | awk -v directive=$1 'BEGIN { pspec=""; spec=""; outside=1 } >$1=="*"directive":" { pspec=spec; spec=""; outside=0; next } > outside || NF==0 || ( substr($1,1,1)=="*" && substr($1,length($1),1)==":" ) { outside=1; next } > spec=="" && substr($0,1,1)=="+" { spec=pspec " " substr($0,2); next } > { spec=spec $0 } >END { print spec }'; > return 0 >} >_gcc-specs-exists () >{ > [[ -f $(_gcc-install-dir)/$1 ]] >} >_gcc_fullversion () >{ > local ver="$1"; > shift; > set -- $($(tc-getCPP "$@") -E -P - <<<"__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__"); > eval echo "$ver" >} >_iconins () >{ > ( insopts -m 0644; > local funcname=$1; > shift; > local size dir; > local context=apps; > local theme=hicolor; > while [[ $# -gt 0 ]]; do > case $1 in > -s | --size) > if [[ ${2%%x*}x${2%%x*} == "$2" ]]; then > size=${2%%x*}; > else > size=${2}; > fi; > case ${size} in > 16 | 22 | 24 | 32 | 36 | 48 | 64 | 72 | 96 | 128 | 192 | 256 | 512) > size=${size}x${size} > ;; > scalable) > > ;; > *) > eerror "${size} is an unsupported icon size!"; > exit 1 > ;; > esac; > shift 2 > ;; > -t | --theme) > theme=${2}; > shift 2 > ;; > -c | --context) > context=${2}; > shift 2 > ;; > *) > if [[ -z ${size} ]]; then > insinto /usr/share/pixmaps; > else > insinto /usr/share/icons/${theme}/${size}/${context}; > fi; > if [[ ${funcname} == doicon ]]; then > if [[ -f $1 ]]; then > doins "${1}"; > else > if [[ -d $1 ]]; then > shopt -s nullglob; > doins "${1}"/*.{png,svg}; > shopt -u nullglob; > else > eerror "${1} is not a valid file/directory!"; > exit 1; > fi; > fi; > else > break; > fi; > shift 1 > ;; > esac; > done; > if [[ ${funcname} == newicon ]]; then > newins "$@"; > fi ) || die >} >_is_flagq () >{ > local x var="$1[*]"; > for x in ${!var}; > do > [[ ${x} == $2 ]] && return 0; > done; > return 1 >} >_pax_list_files () >{ > local f cmd; > cmd=$1; > shift; > for f in "$@"; > do > ${cmd} " ${f}"; > done >} >_python_EPYTHON_supported () >{ > debug-print-function ${FUNCNAME} "${@}"; > local EPYTHON=${1}; > local i=${EPYTHON/./_}; > case "${i}" in > python* | jython* | pypy*) > > ;; > *) > ewarn "Invalid EPYTHON: ${EPYTHON}"; > return 1 > ;; > esac; > if has "${i}" "${_PYTHON_SUPPORTED_IMPLS[@]}"; then > if python_is_installed "${i}"; then > if declare -f python_check_deps > /dev/null; then > local PYTHON_USEDEP="python_targets_${i}(-),python_single_target_${i}(+)"; > python_check_deps; > return ${?}; > fi; > return 0; > fi; > else > if ! has "${i}" "${_PYTHON_ALL_IMPLS[@]}"; then > ewarn "Invalid EPYTHON: ${EPYTHON}"; > fi; > fi; > return 1 >} >_python_check_dead_variables () >{ > local v; > for v in PYTHON_DEPEND PYTHON_USE_WITH{,_OR,_OPT} {RESTRICT,SUPPORT}_PYTHON_ABIS; > do > if [[ -n ${!v} ]]; then > die "${v} is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#Ebuild_head"; > fi; > done; > for v in PYTHON_{CPPFLAGS,CFLAGS,CXXFLAGS,LDFLAGS}; > do > if [[ -n ${!v} ]]; then > die "${v} is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#PYTHON_CFLAGS"; > fi; > done; > for v in PYTHON_TESTS_RESTRICTED_ABIS PYTHON_EXPORT_PHASE_FUNCTIONS PYTHON_VERSIONED_{SCRIPTS,EXECUTABLES} PYTHON_NONVERSIONED_EXECUTABLES; > do > if [[ -n ${!v} ]]; then > die "${v} is invalid for python-r1 suite"; > fi; > done; > for v in DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES DISTUTILS_SETUP_FILES DISTUTILS_GLOBAL_OPTIONS DISTUTILS_SRC_TEST PYTHON_MODNAME; > do > if [[ -n ${!v} ]]; then > die "${v} is invalid for distutils-r1, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#${v}"; > fi; > done; > if [[ -n ${DISTUTILS_DISABLE_TEST_DEPENDENCY} ]]; then > die "${v} is invalid for distutils-r1, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#DISTUTILS_SRC_TEST"; > fi; > for v in PYTHON_BDEPEND PYTHON_MULTIPLE_ABIS PYTHON_ABI_TYPE PYTHON_RESTRICTED_ABIS PYTHON_TESTS_FAILURES_TOLERANT_ABIS PYTHON_CFFI_MODULES_GENERATION_COMMANDS; > do > if [[ -n ${!v} ]]; then > die "${v} is invalid for python-r1 suite"; > fi; > done >} >_python_check_locale_sanity () >{ > local -x LC_ALL=${1}; > local IFS=; > local lc=({a..z}); > local uc=({A..Z}); > local input="${lc[*]}${uc[*]}"; > local output=$(tr '[:lower:][:upper:]' '[:upper:][:lower:]' <<<"${input}"); > [[ ${output} == "${uc[*]}${lc[*]}" ]] >} >_python_impl_matches () >{ > [[ ${#} -ge 2 ]] || die "${FUNCNAME}: takes at least 2 parameters"; > local impl=${1} pattern; > shift; > for pattern in "$@"; > do > if [[ ${pattern} == -2 ]]; then > ! python_is_python3 "${impl}"; > return; > else > if [[ ${pattern} == -3 ]]; then > python_is_python3 "${impl}"; > return; > else > if [[ ${impl/./_} == ${pattern/./_} ]]; then > return 0; > fi; > fi; > fi; > done; > return 1 >} >_python_impl_supported () >{ > debug-print-function ${FUNCNAME} "${@}"; > [[ ${#} -eq 1 ]] || die "${FUNCNAME}: takes exactly 1 argument (impl)."; > local impl=${1}; > case "${impl}" in > python2_7 | python3_[567] | jython2_7) > return 0 > ;; > pypy1_[89] | pypy2_0 | python2_[56] | python3_[1234]) > return 1 > ;; > pypy | pypy3) > if [[ ${EAPI:-0} == [01234] ]]; then > die "PyPy is supported in EAPI 5 and newer only."; > fi > ;; > *) > [[ -n ${PYTHON_COMPAT_NO_STRICT} ]] && return 1; > die "Invalid implementation in PYTHON_COMPAT: ${impl}" > ;; > esac >} >_python_ln_rel () >{ > debug-print-function ${FUNCNAME} "${@}"; > local target=${1}; > local symname=${2}; > local tgpath=${target%/*}/; > local sympath=${symname%/*}/; > local rel_target=; > while [[ -n ${sympath} ]]; do > local tgseg= symseg=; > while [[ ! -n ${tgseg} && -n ${tgpath} ]]; do > tgseg=${tgpath%%/*}; > tgpath=${tgpath#${tgseg}/}; > done; > while [[ ! -n ${symseg} && -n ${sympath} ]]; do > symseg=${sympath%%/*}; > sympath=${sympath#${symseg}/}; > done; > if [[ ${tgseg} != ${symseg} ]]; then > rel_target=../${rel_target}${tgseg:+${tgseg}/}; > fi; > done; > rel_target+=${tgpath}${target##*/}; > debug-print "${FUNCNAME}: ${symname} -> ${target}"; > debug-print "${FUNCNAME}: rel_target = ${rel_target}"; > ln -fs "${rel_target}" "${symname}" >} >_python_set_impls () >{ > local i; > if ! declare -p PYTHON_COMPAT &> /dev/null; then > die 'PYTHON_COMPAT not declared.'; > fi; > if [[ $(declare -p PYTHON_COMPAT) != "declare -a"* ]]; then > die 'PYTHON_COMPAT must be an array.'; > fi; > for i in "${PYTHON_COMPAT[@]}"; > do > _python_impl_supported "${i}"; > done; > local supp=() unsupp=(); > for i in "${_PYTHON_ALL_IMPLS[@]}"; > do > if has "${i}" "${PYTHON_COMPAT[@]}"; then > supp+=("${i}"); > else > unsupp+=("${i}"); > fi; > done; > if [[ ! -n ${supp[@]} ]]; then > die "No supported implementation in PYTHON_COMPAT."; > fi; > if [[ -n ${_PYTHON_SUPPORTED_IMPLS[@]} ]]; then > if [[ ${_PYTHON_SUPPORTED_IMPLS[@]} != ${supp[@]} ]]; then > eerror "Supported impls (PYTHON_COMPAT) changed between inherits!"; > eerror "Before: ${_PYTHON_SUPPORTED_IMPLS[*]}"; > eerror "Now : ${supp[*]}"; > die "_PYTHON_SUPPORTED_IMPLS integrity check failed"; > fi; > if [[ ${_PYTHON_UNSUPPORTED_IMPLS[@]} != ${unsupp[@]} ]]; then > eerror "Unsupported impls changed between inherits!"; > eerror "Before: ${_PYTHON_UNSUPPORTED_IMPLS[*]}"; > eerror "Now : ${unsupp[*]}"; > die "_PYTHON_UNSUPPORTED_IMPLS integrity check failed"; > fi; > else > _PYTHON_SUPPORTED_IMPLS=("${supp[@]}"); > _PYTHON_UNSUPPORTED_IMPLS=("${unsupp[@]}"); > readonly _PYTHON_SUPPORTED_IMPLS _PYTHON_UNSUPPORTED_IMPLS; > fi >} >_tc-getPROG () >{ > local tuple=$1; > local v var vars=$2; > local prog=($3); > var=${vars%% *}; > for v in ${vars}; > do > if [[ -n ${!v} ]]; then > export ${var}="${!v}"; > echo "${!v}"; > return 0; > fi; > done; > local search=; > [[ -n $4 ]] && search=$(type -p $4-${prog[0]}); > [[ -z ${search} && -n ${!tuple} ]] && search=$(type -p ${!tuple}-${prog[0]}); > [[ -n ${search} ]] && prog[0]=${search##*/}; > export ${var}="${prog[*]}"; > echo "${!var}" >} >all-flag-vars () >{ > echo {ADA,C,CPP,CXX,CCAS,F,FC,LD}FLAGS >} >append-cflags () >{ > [[ $# -eq 0 ]] && return 0; > export CFLAGS+=" $*"; > return 0 >} >append-cppflags () >{ > [[ $# -eq 0 ]] && return 0; > export CPPFLAGS+=" $*"; > return 0 >} >append-cxxflags () >{ > [[ $# -eq 0 ]] && return 0; > export CXXFLAGS+=" $*"; > return 0 >} >append-fflags () >{ > [[ $# -eq 0 ]] && return 0; > export FFLAGS+=" $*"; > export FCFLAGS+=" $*"; > return 0 >} >append-flags () >{ > [[ $# -eq 0 ]] && return 0; > case " $* " in > *' '-[DIU]*) > eqawarn 'please use append-cppflags for preprocessor flags' > ;; > *' '-L* | *' '-Wl,*) > eqawarn 'please use append-ldflags for linker flags' > ;; > esac; > append-cflags "$@"; > append-cxxflags "$@"; > append-fflags "$@"; > return 0 >} >append-ldflags () >{ > [[ $# -eq 0 ]] && return 0; > local flag; > for flag in "$@"; > do > [[ ${flag} == -l* ]] && eqawarn "Appending a library link instruction (${flag}); libraries to link to should not be passed through LDFLAGS"; > done; > export LDFLAGS="${LDFLAGS} $*"; > return 0 >} >append-lfs-flags () >{ > [[ $# -ne 0 ]] && die "append-lfs-flags takes no arguments"; > append-cppflags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE >} >append-libs () >{ > [[ $# -eq 0 ]] && return 0; > local flag; > for flag in "$@"; > do > if [[ -z "${flag// }" ]]; then > eqawarn "Appending an empty argument to LIBS is invalid! Skipping."; > continue; > fi; > case $flag in > -[lL]*) > export LIBS="${LIBS} ${flag}" > ;; > -*) > eqawarn "Appending non-library to LIBS (${flag}); Other linker flags should be passed via LDFLAGS"; > export LIBS="${LIBS} ${flag}" > ;; > *) > export LIBS="${LIBS} -l${flag}" > ;; > esac; > done; > return 0 >} >check-reqs_disk () >{ > debug-print-function ${FUNCNAME} "$@"; > [[ -z ${2} ]] && die "Usage: ${FUNCNAME} [path] [size]"; > local path=${1}; > local size=${2}; > local space_kbi; > check-reqs_start_phase ${size} "disk space at \"${path}\""; > space_kbi=$(df -Pk "${1}" 2>/dev/null | awk 'FNR == 2 {print $4}'); > if [[ $? == 0 && -n ${space_kbi} ]]; then > if [[ ${space_kbi} -lt $(check-reqs_get_kibibytes ${size}) ]]; then > eend 1; > check-reqs_unsatisfied ${size} "disk space at \"${path}\""; > else > eend 0; > fi; > else > eend 1; > ewarn "Couldn't determine disk space, skipping..."; > fi >} >check-reqs_get_kibibytes () >{ > debug-print-function ${FUNCNAME} "$@"; > [[ -z ${1} ]] && die "Usage: ${FUNCNAME} [size]"; > local unit=${1:(-1)}; > local size=${1%[GMT]}; > case ${unit} in > M) > echo $((1024 * size)) > ;; > G) > echo $((1024 * 1024 * size)) > ;; > T) > echo $((1024 * 1024 * 1024 * size)) > ;; > *) > die "${FUNCNAME}: Unknown unit: ${unit}" > ;; > esac >} >check-reqs_get_number () >{ > debug-print-function ${FUNCNAME} "$@"; > [[ -z ${1} ]] && die "Usage: ${FUNCNAME} [size]"; > local size=${1%[GMT]}; > [[ ${size} == ${1} ]] && die "${FUNCNAME}: Missing unit: ${1}"; > echo ${size} >} >check-reqs_get_unit () >{ > debug-print-function ${FUNCNAME} "$@"; > [[ -z ${1} ]] && die "Usage: ${FUNCNAME} [size]"; > local unit=${1:(-1)}; > case ${unit} in > M) > echo "MiB" > ;; > G) > echo "GiB" > ;; > T) > echo "TiB" > ;; > *) > die "${FUNCNAME}: Unknown unit: ${unit}" > ;; > esac >} >check-reqs_memory () >{ > debug-print-function ${FUNCNAME} "$@"; > [[ -z ${1} ]] && die "Usage: ${FUNCNAME} [size]"; > local size=${1}; > local actual_memory; > check-reqs_start_phase ${size} "RAM"; > if [[ -r /proc/meminfo ]]; then > actual_memory=$(awk '/MemTotal/ { print $2 }' /proc/meminfo); > else > actual_memory=$(sysctl hw.physmem 2>/dev/null ); > [[ "$?" == "0" ]] && actual_memory=$(echo $actual_memory | sed -e 's/^[^:=]*[:=]//' ); > fi; > if [[ -n ${actual_memory} ]]; then > if [[ ${actual_memory} -lt $(check-reqs_get_kibibytes ${size}) ]]; then > eend 1; > check-reqs_unsatisfied ${size} "RAM"; > else > eend 0; > fi; > else > eend 1; > ewarn "Couldn't determine amount of memory, skipping..."; > fi >} >check-reqs_output () >{ > debug-print-function ${FUNCNAME} "$@"; > local msg="ewarn"; > [[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && msg="eerror"; > if [[ -n ${CHECKREQS_FAILED} ]]; then > ${msg}; > ${msg} "Space constraints set in the ebuild were not met!"; > ${msg} "The build will most probably fail, you should enhance the space"; > ${msg} "as per failed tests."; > ${msg}; > [[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && die "Build requirements not met!"; > fi >} >check-reqs_pkg_pretend () >{ > debug-print-function ${FUNCNAME} "$@"; > check-reqs_pkg_setup "$@" >} >check-reqs_pkg_setup () >{ > debug-print-function ${FUNCNAME} "$@"; > check-reqs_prepare; > check-reqs_run; > check-reqs_output >} >check-reqs_prepare () >{ > debug-print-function ${FUNCNAME} "$@"; > if [[ -z ${CHECKREQS_MEMORY} && -z ${CHECKREQS_DISK_BUILD} && -z ${CHECKREQS_DISK_USR} && -z ${CHECKREQS_DISK_VAR} ]]; then > eerror "Set some check-reqs eclass variables if you want to use it."; > eerror "If you are user and see this message file a bug against the package."; > die "${FUNCNAME}: check-reqs eclass called but not actualy used!"; > fi >} >check-reqs_run () >{ > debug-print-function ${FUNCNAME} "$@"; > unset CHECKREQS_FAILED; > [[ ${EAPI:-0} == [0123] ]] && local MERGE_TYPE=""; > if [[ ${MERGE_TYPE} != binary ]]; then > [[ -n ${CHECKREQS_MEMORY} ]] && check-reqs_memory ${CHECKREQS_MEMORY}; > [[ -n ${CHECKREQS_DISK_BUILD} ]] && check-reqs_disk "${T}" "${CHECKREQS_DISK_BUILD}"; > fi; > if [[ ${MERGE_TYPE} != buildonly ]]; then > [[ -n ${CHECKREQS_DISK_USR} ]] && check-reqs_disk "${EROOT}/usr" "${CHECKREQS_DISK_USR}"; > [[ -n ${CHECKREQS_DISK_VAR} ]] && check-reqs_disk "${EROOT}/var" "${CHECKREQS_DISK_VAR}"; > fi >} >check-reqs_start_phase () >{ > debug-print-function ${FUNCNAME} "$@"; > [[ -z ${2} ]] && die "Usage: ${FUNCNAME} [size] [location]"; > local size=${1}; > local location=${2}; > local sizeunit="$(check-reqs_get_number ${size}) $(check-reqs_get_unit ${size})"; > ebegin "Checking for at least ${sizeunit} ${location}" >} >check-reqs_unsatisfied () >{ > debug-print-function ${FUNCNAME} "$@"; > [[ -z ${2} ]] && die "Usage: ${FUNCNAME} [size] [location]"; > local msg="ewarn"; > local size=${1}; > local location=${2}; > local sizeunit="$(check-reqs_get_number ${size}) $(check-reqs_get_unit ${size})"; > [[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && msg="eerror"; > ${msg} "There is NOT at least ${sizeunit} ${location}"; > CHECKREQS_FAILED="true" >} >check_extra_config () >{ > use kernel_linux || return; > local config negate die error reworkmodulenames; > local soft_errors_count=0 hard_errors_count=0 config_required=0; > local old_LINUX_CONFIG_EXISTS_DONE="${_LINUX_CONFIG_EXISTS_DONE}"; > linux-info_get_any_version; > for config in ${CONFIG_CHECK}; > do > if [[ "${config:0:1}" != "~" ]]; then > config_required=1; > break; > fi; > done; > if [[ ${config_required} == 0 ]]; then > if ! linux_config_exists; then > ewarn "Unable to check for the following kernel config options due"; > ewarn "to absence of any configured kernel sources or compiled"; > ewarn "config:"; > for config in ${CONFIG_CHECK}; > do > config=${config#\~}; > config=${config#\!}; > local_error="ERROR_${config}"; > msg="${!local_error}"; > if [[ -z ${msg} ]]; then > local_error="WARNING_${config}"; > msg="${!local_error}"; > fi; > ewarn " - ${config}${msg:+ - }${msg}"; > done; > ewarn "You're on your own to make sure they are set if needed."; > export LINUX_CONFIG_EXISTS_DONE="${old_LINUX_CONFIG_EXISTS_DONE}"; > return 0; > fi; > else > require_configured_kernel; > fi; > einfo "Checking for suitable kernel configuration options..."; > for config in ${CONFIG_CHECK}; > do > die=1; > error=0; > negate=0; > reworkmodulenames=0; > if [[ ${config:0:1} == "~" ]]; then > die=0; > config=${config:1}; > else > if [[ ${config:0:1} == "@" ]]; then > die=0; > reworkmodulenames=1; > config=${config:1}; > fi; > fi; > if [[ ${config:0:1} == "!" ]]; then > negate=1; > config=${config:1}; > fi; > if [[ ${negate} == 1 ]]; then > linux_chkconfig_present ${config} && error=2; > else > if [[ ${reworkmodulenames} == 1 ]]; then > local temp_config="${config//*:}" i n; > config="${config//:*}"; > if linux_chkconfig_present ${config}; then > for i in ${MODULE_NAMES}; > do > n="${i//${temp_config}}"; > [[ -z ${n//\(*} ]] && MODULE_IGNORE="${MODULE_IGNORE} ${temp_config}"; > done; > error=2; > fi; > else > linux_chkconfig_present ${config} || error=1; > fi; > fi; > if [[ ${error} > 0 ]]; then > local report_func="eerror" local_error; > local_error="ERROR_${config}"; > local_error="${!local_error}"; > if [[ -z "${local_error}" ]]; then > local_error="${config}_ERROR"; > local_error="${!local_error}"; > fi; > if [[ ${die} == 0 && -z "${local_error}" ]]; then > local_error="WARNING_${config}"; > local_error="${!local_error}"; > if [[ -n "${local_error}" ]]; then > report_func="ewarn"; > fi; > fi; > if [[ -z "${local_error}" ]]; then > [[ ${error} == 1 ]] && local_error="is not set when it should be." || local_error="should not be set. But it is."; > local_error="CONFIG_${config}:\t ${local_error}"; > fi; > if [[ ${die} == 0 ]]; then > ${report_func} " ${local_error}"; > soft_errors_count=$[soft_errors_count + 1]; > else > ${report_func} " ${local_error}"; > hard_errors_count=$[hard_errors_count + 1]; > fi; > fi; > done; > if [[ ${hard_errors_count} > 0 ]]; then > eerror "Please check to make sure these options are set correctly."; > eerror "Failure to do so may cause unexpected problems."; > eerror "Once you have satisfied these options, please try merging"; > eerror "this package again."; > export LINUX_CONFIG_EXISTS_DONE="${old_LINUX_CONFIG_EXISTS_DONE}"; > die "Incorrect kernel configuration options"; > else > if [[ ${soft_errors_count} > 0 ]]; then > ewarn "Please check to make sure these options are set correctly."; > ewarn "Failure to do so may cause unexpected problems."; > else > eend 0; > fi; > fi; > export LINUX_CONFIG_EXISTS_DONE="${old_LINUX_CONFIG_EXISTS_DONE}" >} >check_kernel_built () >{ > if ! use kernel_linux; then > die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; > fi; > require_configured_kernel; > local versionh_path; > if kernel_is -ge 3 7; then > versionh_path="include/generated/uapi/linux/version.h"; > else > versionh_path="include/linux/version.h"; > fi; > if [ ! -f "${KV_OUT_DIR}/${versionh_path}" ]; then > eerror "These sources have not yet been prepared."; > eerror "We cannot build against an unprepared tree."; > eerror "To resolve this, please type the following:"; > eerror; > eerror "# cd ${KV_DIR}"; > eerror "# make oldconfig"; > eerror "# make modules_prepare"; > eerror; > eerror "Then please try merging this module again."; > die "Kernel sources need compiling first"; > fi >} >check_modules_supported () >{ > if ! use kernel_linux; then > die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; > fi; > require_configured_kernel; > if ! linux_chkconfig_builtin "MODULES"; then > eerror "These sources do not support loading external modules."; > eerror "to be able to use this module please enable \"Loadable modules support\""; > eerror "in your kernel, recompile and then try merging this module again."; > die "No support for external modules in ${KV_FULL} config"; > fi >} >check_reqs () >{ > eerror "Package calling old ${FUNCNAME} function."; > eerror "It should call check-reqs_pkg_pretend and check-reqs_pkg_setup."; > die "${FUNCNAME} is banned" >} >check_zlibinflate () >{ > if ! use kernel_linux; then > die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; > fi; > require_configured_kernel; > local INFLATE; > local DEFLATE; > einfo "Determining the usability of ZLIB_INFLATE support in your kernel"; > ebegin "checking ZLIB_INFLATE"; > linux_chkconfig_builtin CONFIG_ZLIB_INFLATE; > eend $? || die; > ebegin "checking ZLIB_DEFLATE"; > linux_chkconfig_builtin CONFIG_ZLIB_DEFLATE; > eend $? || die; > local LINENO_START; > local LINENO_END; > local SYMBOLS; > local x; > LINENO_END="$(grep -n 'CONFIG_ZLIB_INFLATE y' ${KV_DIR}/lib/Config.in | cut -d : -f 1)"; > LINENO_START="$(head -n $LINENO_END ${KV_DIR}/lib/Config.in | grep -n 'if \[' | tail -n 1 | cut -d : -f 1)"; > (( LINENO_AMOUNT = $LINENO_END - $LINENO_START )); > (( LINENO_END = $LINENO_END - 1 )); > SYMBOLS="$(head -n $LINENO_END ${KV_DIR}/lib/Config.in | tail -n $LINENO_AMOUNT | sed -e 's/^.*\(CONFIG_[^\" ]*\).*/\1/g;')"; > for x in $SYMBOLS; > do > if [ "${!x}" = "y" ]; then > einfo "${x} ensures zlib is linked into your kernel - excellent"; > return 0; > fi; > done; > eerror; > eerror "This kernel module requires ZLIB library support."; > eerror "You have enabled zlib support in your kernel, but haven't enabled"; > eerror "enabled any option that will ensure that zlib is linked into your"; > eerror "kernel."; > eerror; > eerror "Please ensure that you enable at least one of these options:"; > eerror; > for x in $SYMBOLS; > do > eerror " * $x"; > done; > eerror; > eerror "Please remember to recompile and install your kernel, and reboot"; > eerror "into your new kernel before attempting to load this kernel module."; > die "Kernel doesn't include zlib support" >} >chromium_pkg_die () >{ > if [[ "${EBUILD_PHASE}" != "compile" ]]; then > return; > fi; > if ( shopt -s extglob; > is-flagq '-g?(gdb)?([1-9])' ); then > ewarn; > ewarn "You have enabled debug info (i.e. -g or -ggdb in your CFLAGS/CXXFLAGS)."; > ewarn "This produces very large build files causes the linker to consume large"; > ewarn "amounts of memory."; > ewarn; > ewarn "Please try removing -g{,gdb} before reporting a bug."; > ewarn; > fi; > if has ccache ${FEATURES}; then > ewarn; > ewarn "You have enabled ccache. Please try disabling ccache"; > ewarn "before reporting a bug."; > ewarn; > fi; > if use_if_iuse custom-cflags; then > ewarn; > ewarn "You have enabled the custom-cflags USE flag."; > ewarn "Please disable it before reporting a bug."; > ewarn; > fi; > einfo; > einfo "$(grep MemTotal /proc/meminfo)"; > einfo "$(grep SwapTotal /proc/meminfo)"; > einfo >} >chromium_remove_language_paks () >{ > local lang pak; > for lang in ${CHROMIUM_LANGS}; > do > if [[ ! -e ${lang}.pak ]]; then > eqawarn "L10N warning: no .pak file for ${lang} (${lang}.pak not found)"; > fi; > done; > rm -f fake-bidi.pak || die; > rm -f fake-bidi.pak.info || die; > for pak in *.pak; > do > lang=${pak%.pak}; > if [[ ${lang} == en-US ]]; then > continue; > fi; > if ! has ${lang} ${CHROMIUM_LANGS}; then > eqawarn "L10N warning: no ${lang} in LANGS"; > continue; > fi; > if ! use l10n_${lang}; then > rm "${pak}" || die; > rm -f "${pak}.info" || die; > fi; > done >} >chromium_suid_sandbox_check_kernel_config () >{ > has "${EAPI:-0}" 0 1 2 3 && die "EAPI=${EAPI} is not supported"; > if [[ "${MERGE_TYPE}" == "source" || "${MERGE_TYPE}" == "binary" ]]; then > ERROR_PID_NS="PID_NS is required for sandbox to work"; > ERROR_NET_NS="NET_NS is required for sandbox to work"; > ERROR_USER_NS="USER_NS is required for sandbox to work"; > ERROR_SECCOMP_FILTER="SECCOMP_FILTER is required for sandbox to work"; > ERROR_ADVISE_SYSCALLS="CONFIG_ADVISE_SYSCALLS is required for the renderer (bug #552576)"; > ERROR_COMPAT_VDSO="CONFIG_COMPAT_VDSO causes segfaults (bug #556286)"; > ERROR_GRKERNSEC="CONFIG_GRKERNSEC breaks sandbox (bug #613668)"; > CONFIG_CHECK="~PID_NS ~NET_NS ~SECCOMP_FILTER ~USER_NS ~ADVISE_SYSCALLS ~!COMPAT_VDSO ~!GRKERNSEC"; > check_extra_config; > fi >} >clang-fullversion () >{ > _clang_fullversion '$1.$2.$3' "$@" >} >clang-major-version () >{ > _clang_fullversion '$1' "$@" >} >clang-micro-version () >{ > _clang_fullversion '$3' "$@" >} >clang-minor-version () >{ > _clang_fullversion '$2' "$@" >} >clang-version () >{ > _clang_fullversion '$1.$2' "$@" >} >dlopen_lib () >{ > case "${CHOST}" in > *-linux-gnu* | *-linux-uclibc | *-interix*) > echo "-ldl" > ;; > esac >} >doicon () >{ > _iconins ${FUNCNAME} "$@" >} >domenu () >{ > ( local i ret=0; > insopts -m 0644; > insinto /usr/share/applications; > for i in "$@"; > do > if [[ -d ${i} ]]; then > doins "${i}"/*.desktop; > ((ret|=$?)); > else > doins "${i}"; > ((ret|=$?)); > fi; > done; > exit ${ret} ) >} >eapply () >{ > local failed patch_cmd=patch; > local -x LC_COLLATE=POSIX; > type -P gpatch > /dev/null && patch_cmd=gpatch; > function _eapply_patch () > { > local f=${1}; > local prefix=${2}; > started_applying=1; > ebegin "${prefix:-Applying }${f##*/}"; > ${patch_cmd} -p1 -f -s -g0 --no-backup-if-mismatch "${patch_options[@]}" < "${f}"; > failed=${?}; > if ! eend "${failed}"; then > __helpers_die "patch -p1 ${patch_options[*]} failed with ${f}"; > fi > }; > local patch_options=() files=(); > local i found_doublehyphen; > for ((i = 1; i <= ${#@}; ++i )) > do > if [[ ${@:i:1} == -- ]]; then > patch_options=("${@:1:i-1}"); > files=("${@:i+1}"); > found_doublehyphen=1; > break; > fi; > done; > if [[ -z ${found_doublehyphen} ]]; then > for ((i = 1; i <= ${#@}; ++i )) > do > if [[ ${@:i:1} != -* ]]; then > patch_options=("${@:1:i-1}"); > files=("${@:i}"); > break; > fi; > done; > for i in "${files[@]}"; > do > if [[ ${i} == -* ]]; then > die "eapply: all options must be passed before non-options"; > fi; > done; > fi; > if [[ ${#files[@]} -eq 0 ]]; then > die "eapply: no files specified"; > fi; > local f; > for f in "${files[@]}"; > do > if [[ -d ${f} ]]; then > function _eapply_get_files () > { > local LC_ALL=POSIX; > local prev_shopt=$(shopt -p nullglob); > shopt -s nullglob; > local f; > for f in "${1}"/*; > do > if [[ ${f} == *.diff || ${f} == *.patch ]]; then > files+=("${f}"); > fi; > done; > ${prev_shopt} > }; > local files=(); > _eapply_get_files "${f}"; > [[ ${#files[@]} -eq 0 ]] && die "No *.{patch,diff} files in directory ${f}"; > einfo "Applying patches from ${f} ..."; > local f2; > for f2 in "${files[@]}"; > do > _eapply_patch "${f2}" ' '; > [[ ${failed} -ne 0 ]] && return "${failed}"; > done; > else > _eapply_patch "${f}"; > [[ ${failed} -ne 0 ]] && return "${failed}"; > fi; > done; > return 0 >} >eapply_user () >{ > [[ ${EBUILD_PHASE} == prepare ]] || die "eapply_user() called during invalid phase: ${EBUILD_PHASE}"; > local tagfile=${T}/.portage_user_patches_applied; > [[ -f ${tagfile} ]] && return; > >> "${tagfile}"; > local basedir=${PORTAGE_CONFIGROOT%/}/etc/portage/patches; > local applied d f; > local -A _eapply_user_patches; > local prev_shopt=$(shopt -p nullglob); > shopt -s nullglob; > for d in "${basedir}"/${CATEGORY}/{${P}-${PR},${P},${PN}}{:${SLOT%/*},}; > do > for f in "${d}"/*; > do > if [[ ( ${f} == *.diff || ${f} == *.patch ) && -z ${_eapply_user_patches[${f##*/}]} ]]; then > _eapply_user_patches[${f##*/}]=${f}; > fi; > done; > done; > if [[ ${#_eapply_user_patches[@]} -gt 0 ]]; then > while read -r -d '' f; do > f=${_eapply_user_patches[${f}]}; > if [[ -s ${f} ]]; then > eapply "${f}"; > applied=1; > fi; > done < <(printf -- '%s\0' "${!_eapply_user_patches[@]}" | > LC_ALL=C sort -z); > fi; > ${prev_shopt}; > [[ -n ${applied} ]] && ewarn "User patches applied." >} >ebeep () >{ > ewarn "QA Notice: ebeep is not defined in EAPI=${EAPI}, please file a bug at https://bugs.gentoo.org" >} >econf_build () >{ > local CBUILD=${CBUILD:-${CHOST}}; > tc-env_build econf --build=${CBUILD} --host=${CBUILD} "$@" >} >edos2unix () >{ > [[ $# -eq 0 ]] && return 0; > sed -i 's/\r$//' -- "$@" || die >} >egyp_chromium () >{ > set -- "${EGYP_CHROMIUM_COMMAND}" --depth="${EGYP_CHROMIUM_DEPTH}" "$@"; > echo "$@"; > "$@" >} >einstalldocs () >{ > ( if ! declare -p DOCS &> /dev/null; then > local d; > for d in README* ChangeLog AUTHORS NEWS TODO CHANGES THANKS BUGS FAQ CREDITS CHANGELOG; > do > [[ -f ${d} && -s ${d} ]] && docinto / && dodoc "${d}"; > done; > else > if [[ $(declare -p DOCS) == "declare -a"* ]]; then > [[ ${#DOCS[@]} -gt 0 ]] && docinto / && dodoc -r "${DOCS[@]}"; > else > [[ -n ${DOCS} ]] && docinto / && dodoc -r ${DOCS}; > fi; > fi ); > ( if [[ $(declare -p HTML_DOCS 2>/dev/null) == "declare -a"* ]]; then > [[ ${#HTML_DOCS[@]} -gt 0 ]] && docinto html && dodoc -r "${HTML_DOCS[@]}"; > else > [[ -n ${HTML_DOCS} ]] && docinto html && dodoc -r ${HTML_DOCS}; > fi ) >} >emktemp () >{ > local exe="touch"; > [[ $1 == -d ]] && exe="mkdir" && shift; > local topdir=$1; > if [[ -z ${topdir} ]]; then > [[ -z ${T} ]] && topdir="/tmp" || topdir=${T}; > fi; > if ! type -P mktemp > /dev/null; then > local tmp=/; > while [[ -e ${tmp} ]]; do > tmp=${topdir}/tmp.${RANDOM}.${RANDOM}.${RANDOM}; > done; > ${exe} "${tmp}" || ${exe} -p "${tmp}"; > echo "${tmp}"; > else > if [[ ${exe} == "touch" ]]; then > TMPDIR="${topdir}" mktemp -t tmp.XXXXXXXXXX; > else > TMPDIR="${topdir}" mktemp -dt tmp.XXXXXXXXXX; > fi; > fi >} >eninja () >{ > local nonfatal_args=(); > [[ ${EAPI:-0} != [245] ]] && nonfatal_args+=(-n); > if [[ -z ${NINJAOPTS+set} ]]; then > NINJAOPTS="-j$(makeopts_jobs) -l$(makeopts_loadavg "${MAKEOPTS}" 0)"; > fi; > set -- ninja -v ${NINJAOPTS} "$@"; > echo "$@" 1>&2; > "$@" || die "${nonfatal_args[@]}" "${*} failed" >} >epause () >{ > ewarn "QA Notice: epause is not defined in EAPI=${EAPI}, please file a bug at https://bugs.gentoo.org" >} >filter-flags () >{ > _filter-hardened "$@"; > local v; > for v in $(all-flag-vars); > do > _filter-var ${v} "$@"; > done; > return 0 >} >filter-ldflags () >{ > _filter-var LDFLAGS "$@"; > return 0 >} >filter-lfs-flags () >{ > [[ $# -ne 0 ]] && die "filter-lfs-flags takes no arguments"; > filter-flags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE >} >filter-mfpmath () >{ > local orig_mfpmath new_math prune_math; > orig_mfpmath=$(get-flag -mfpmath); > new_math=$(get-flag mfpmath); > new_math=${new_math/both/387,sse}; > new_math=" ${new_math//[,+]/ } "; > prune_math=""; > for prune_math in "$@"; > do > new_math=${new_math/ ${prune_math} / }; > done; > new_math=$(echo ${new_math}); > new_math=${new_math// /,}; > if [[ -z ${new_math} ]]; then > filter-flags ${orig_mfpmath}; > else > replace-flags ${orig_mfpmath} -mfpmath=${new_math}; > fi; > return 0 >} >gcc-fullversion () >{ > _gcc_fullversion '$1.$2.$3' "$@" >} >gcc-major-version () >{ > _gcc_fullversion '$1' "$@" >} >gcc-micro-version () >{ > _gcc_fullversion '$3' "$@" >} >gcc-minor-version () >{ > _gcc_fullversion '$2' "$@" >} >gcc-specs-directive () >{ > local directive subdname subdirective; > directive="$(_gcc-specs-directive_raw $1)"; > while [[ ${directive} == *%\(*\)* ]]; do > subdname=${directive/*%\(}; > subdname=${subdname/\)*}; > subdirective="$(_gcc-specs-directive_raw ${subdname})"; > directive="${directive//\%(${subdname})/${subdirective}}"; > done; > echo "${directive}"; > return 0 >} >gcc-specs-nostrict () >{ > local directive; > directive=$(gcc-specs-directive cc1); > [[ "${directive/\{!fstrict-overflow:}" != "${directive}" ]] >} >gcc-specs-now () >{ > local directive; > directive=$(gcc-specs-directive link_command); > [[ "${directive/\{!nonow:}" != "${directive}" ]] >} >gcc-specs-pie () >{ > local directive; > directive=$(gcc-specs-directive cc1); > [[ "${directive/\{!nopie:}" != "${directive}" ]] >} >gcc-specs-relro () >{ > local directive; > directive=$(gcc-specs-directive link_command); > [[ "${directive/\{!norelro:}" != "${directive}" ]] >} >gcc-specs-ssp () >{ > local directive; > directive=$(gcc-specs-directive cc1); > [[ "${directive/\{!fno-stack-protector:}" != "${directive}" ]] >} >gcc-specs-ssp-to-all () >{ > local directive; > directive=$(gcc-specs-directive cc1); > [[ "${directive/\{!fno-stack-protector-all:}" != "${directive}" ]] >} >gcc-specs-stack-check () >{ > local directive; > directive=$(gcc-specs-directive cc1); > [[ "${directive/\{!fno-stack-check:}" != "${directive}" ]] >} >gcc-version () >{ > _gcc_fullversion '$1.$2' "$@" >} >gen_usr_ldscript () >{ > local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname); > [[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/; > tc-is-static-only && return; > if [[ $(type -t multilib_is_native_abi) == "function" ]]; then > multilib_is_native_abi || return 0; > fi; > case ${CTARGET:-${CHOST}} in > *-darwin*) > > ;; > *-android*) > return 0 > ;; > *linux* | *-freebsd* | *-openbsd* | *-netbsd*) > use prefix && return 0 > ;; > *) > return 0 > ;; > esac; > dodir /usr/${libdir}; > if [[ $1 == "-a" ]]; then > auto=true; > shift; > dodir /${libdir}; > fi; > local flags=(${CFLAGS} ${LDFLAGS} -Wl,--verbose); > if $(tc-getLD) --version | grep -q 'GNU gold'; then > local d="${T}/bfd-linker"; > mkdir -p "${d}"; > ln -sf $(which ${CHOST}-ld.bfd) "${d}"/ld; > flags+=(-B"${d}"); > fi; > output_format=$($(tc-getCC) "${flags[@]}" 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p'); > [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"; > for lib in "$@"; > do > local tlib; > if ${auto}; then > lib="lib${lib}${suffix}"; > else > [[ -r ${ED}/${libdir}/${lib} ]] || continue; > fi; > case ${CTARGET:-${CHOST}} in > *-darwin*) > if ${auto}; then > tlib=$(scanmacho -qF'%S#F' "${ED}"/usr/${libdir}/${lib}); > else > tlib=$(scanmacho -qF'%S#F' "${ED}"/${libdir}/${lib}); > fi; > [[ -z ${tlib} ]] && die "unable to read install_name from ${lib}"; > tlib=${tlib##*/}; > if ${auto}; then > mv "${ED}"/usr/${libdir}/${lib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die; > if [[ ${tlib} != ${lib%${suffix}}.*${suffix#.} ]]; then > mv "${ED}"/usr/${libdir}/${tlib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die; > fi; > rm -f "${ED}"/${libdir}/${lib}; > fi; > if [[ ! -w "${ED}/${libdir}/${tlib}" ]]; then > chmod u+w "${ED}${libdir}/${tlib}"; > local nowrite=yes; > fi; > install_name_tool -id "${EPREFIX}"/${libdir}/${tlib} "${ED}"/${libdir}/${tlib} || die "install_name_tool failed"; > [[ -n ${nowrite} ]] && chmod u-w "${ED}${libdir}/${tlib}"; > pushd "${ED}/usr/${libdir}" > /dev/null; > ln -snf "../../${libdir}/${tlib}" "${lib}"; > popd > /dev/null > ;; > *) > if ${auto}; then > tlib=$(scanelf -qF'%S#F' "${ED}"/usr/${libdir}/${lib}); > [[ -z ${tlib} ]] && die "unable to read SONAME from ${lib}"; > mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die; > if [[ ${tlib} != ${lib}* ]]; then > mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die; > fi; > rm -f "${ED}"/${libdir}/${lib}; > else > tlib=${lib}; > fi; > cat > "${ED}/usr/${libdir}/${lib}" <<-END_LDSCRIPT >/* GNU ld script > Since Gentoo has critical dynamic libraries in /lib, and the static versions > in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we > run into linking problems. This "fake" dynamic lib is a linker script that > redirects the linker to the real lib. And yes, this works in the cross- > compiling scenario as the sysroot-ed linker will prepend the real path. > > See bug https://bugs.gentoo.org/4411 for more info. > */ >${output_format} >GROUP ( ${EPREFIX}/${libdir}/${tlib} ) >END_LDSCRIPT > > ;; > esac > fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}"; > done >} >get-flag () >{ > local f var findflag="$1"; > for var in $(all-flag-vars); > do > for f in ${!var}; > do > if [ "${f/${findflag}}" != "${f}" ]; then > printf "%s\n" "${f/-${findflag}=}"; > return 0; > fi; > done; > done; > return 1 >} >get_abi_CFLAGS () >{ > get_abi_var CFLAGS "$@" >} >get_abi_CHOST () >{ > get_abi_var CHOST "$@" >} >get_abi_CTARGET () >{ > get_abi_var CTARGET "$@" >} >get_abi_FAKE_TARGETS () >{ > get_abi_var FAKE_TARGETS "$@" >} >get_abi_LDFLAGS () >{ > get_abi_var LDFLAGS "$@" >} >get_abi_LIBDIR () >{ > get_abi_var LIBDIR "$@" >} >get_abi_var () >{ > local flag=$1; > local abi=${2:-${ABI:-${DEFAULT_ABI:-default}}}; > local var="${flag}_${abi}"; > echo ${!var} >} >get_all_abis () >{ > local x order="" mvar dvar; > mvar="MULTILIB_ABIS"; > dvar="DEFAULT_ABI"; > if [[ -n $1 ]]; then > mvar="$1_${mvar}"; > dvar="$1_${dvar}"; > fi; > if [[ -z ${!mvar} ]]; then > echo "default"; > return 0; > fi; > for x in ${!mvar}; > do > if [[ ${x} != ${!dvar} ]]; then > order="${order:+${order} }${x}"; > fi; > done; > order="${order:+${order} }${!dvar}"; > echo ${order}; > return 0 >} >get_all_libdirs () >{ > local libdirs abi; > for abi in ${MULTILIB_ABIS}; > do > libdirs+=" $(get_abi_LIBDIR ${abi})"; > done; > [[ " ${libdirs} " != *" lib "* ]] && libdirs+=" lib"; > echo "${libdirs}" >} >get_bmake () >{ > if [[ ${CBUILD:-${CHOST}} == *bsd* ]]; then > echo make; > else > if [[ ${CBUILD:-${CHOST}} == *darwin* ]]; then > echo bsdmake; > else > echo bmake; > fi; > fi >} >get_exeext () >{ > case ${CHOST} in > *-cygwin* | mingw* | *-mingw*) > echo ".exe" > ;; > esac >} >get_install_abis () >{ > local x order=""; > if [[ -z ${MULTILIB_ABIS} ]]; then > echo "default"; > return 0; > fi; > if [[ ${EMULTILIB_PKG} == "true" ]]; then > for x in ${MULTILIB_ABIS}; > do > if [[ ${x} != "${DEFAULT_ABI}" ]]; then > has ${x} ${ABI_DENY} || order="${order} ${x}"; > fi; > done; > has ${DEFAULT_ABI} ${ABI_DENY} || order="${order} ${DEFAULT_ABI}"; > if [[ -n ${ABI_ALLOW} ]]; then > local ordera=""; > for x in ${order}; > do > if has ${x} ${ABI_ALLOW}; then > ordera="${ordera} ${x}"; > fi; > done; > order=${ordera}; > fi; > else > order=${DEFAULT_ABI}; > fi; > if [[ -z ${order} ]]; then > die "The ABI list is empty. Are you using a proper multilib profile? Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package."; > fi; > echo ${order}; > return 0 >} >get_libdir () >{ > local libdir_var="LIBDIR_${ABI}"; > local libdir="lib"; > [[ -n ${ABI} && -n ${!libdir_var} ]] && libdir=${!libdir_var}; > echo "${libdir}" >} >get_libname () >{ > local libname; > local ver=$1; > case ${CHOST} in > *-cygwin*) > libname="dll.a" > ;; > mingw* | *-mingw*) > libname="dll" > ;; > *-darwin*) > libname="dylib" > ;; > *-mint*) > libname="irrelevant" > ;; > hppa*-hpux*) > libname="sl" > ;; > *) > libname="so" > ;; > esac; > if [[ -z $* ]]; then > echo ".${libname}"; > else > for ver in "$@"; > do > case ${CHOST} in > *-cygwin*) > echo ".${ver}.${libname}" > ;; > *-darwin*) > echo ".${ver}.${libname}" > ;; > *-mint*) > echo ".${libname}" > ;; > *) > echo ".${libname}.${ver}" > ;; > esac; > done; > fi >} >get_localversion () >{ > local lv_list i x; > local shopt_save=$(shopt -p nullglob); > shopt -s nullglob; > local files=(${1}/localversion*); > ${shopt_save}; > for i in "${files[@]}"; > do > [[ -n ${i//*~*} ]] && lv_list="${lv_list} ${i}"; > done; > for i in ${lv_list}; > do > x="${x}$(<${i})"; > done; > x=${x/ /}; > echo ${x} >} >get_makefile_extract_function () >{ > local a='' b='' mkfunc='getfilevar'; > a="$(getfilevar VERSION ${KERNEL_MAKEFILE})"; > b="$(getfilevar_noexec VERSION ${KERNEL_MAKEFILE})"; > [[ "${a}" != "${b}" ]] && mkfunc='getfilevar_noexec'; > echo "${mkfunc}" >} >get_modname () >{ > local modname; > local ver=$1; > case ${CHOST} in > *-darwin*) > modname="bundle" > ;; > *) > modname="so" > ;; > esac; > echo ".${modname}" >} >get_mounts () >{ > local point= node= fs= opts= foo=; > if [[ $(uname -s) == "Linux" ]]; then > while read node point fs opts foo; do > echo "${point} ${node} ${fs} ${opts}"; > done < /proc/mounts; > return; > fi; > local IFS=' '; > LC_ALL=C mount -p | while read node point fs foo; do > opts=${fs#* }; > fs=${fs%% *}; > echo "${point// /\040} ${node// /\040} ${fs%% *} ${opts// /\040}"; > done >} >get_nproc () >{ > local nproc; > if type -P nproc &> /dev/null; then > nproc=$(nproc); > fi; > if [[ -z ${nproc} ]] && type -P sysctl &> /dev/null; then > nproc=$(sysctl -n hw.ncpu 2>/dev/null); > fi; > if [[ -z ${nproc} ]] && type -P python &> /dev/null; then > nproc=$(python -c 'import multiprocessing; print(multiprocessing.cpu_count());' 2>/dev/null); > fi; > if [[ -n ${nproc} ]]; then > echo "${nproc}"; > else > echo "${1:-1}"; > fi >} >get_running_version () >{ > if ! use kernel_linux; then > die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; > fi; > KV_FULL=$(uname -r); > if [[ -f ${ROOT%/}/lib/modules/${KV_FULL}/source/Makefile && -f ${ROOT%/}/lib/modules/${KV_FULL}/build/Makefile ]]; then > KERNEL_DIR=$(readlink -f ${ROOT%/}/lib/modules/${KV_FULL}/source); > KBUILD_OUTPUT=$(readlink -f ${ROOT%/}/lib/modules/${KV_FULL}/build); > unset KV_FULL; > get_version; > return $?; > else > if [[ -f ${ROOT%/}/lib/modules/${KV_FULL}/source/Makefile ]]; then > KERNEL_DIR=$(readlink -f ${ROOT%/}/lib/modules/${KV_FULL}/source); > unset KV_FULL; > get_version; > return $?; > else > if [[ -f ${ROOT%/}/lib/modules/${KV_FULL}/build/Makefile ]]; then > KERNEL_DIR=$(readlink -f ${ROOT%/}/lib/modules/${KV_FULL}/build); > unset KV_FULL; > get_version; > return $?; > else > local kv_full=${KV_FULL//[-+_]*}; > KV_MAJOR=$(ver_cut 1 ${kv_full}); > KV_MINOR=$(ver_cut 2 ${kv_full}); > KV_PATCH=$(ver_cut 3 ${kv_full}); > KV_EXTRA="${KV_FULL#${KV_MAJOR}.${KV_MINOR}${KV_PATCH:+.${KV_PATCH}}}"; > : ${KV_PATCH:=0}; > fi; > fi; > fi; > return 0 >} >get_version () >{ > if ! use kernel_linux; then > die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; > fi; > local tmplocal; > [ -n "${KV_FULL}" ] && return 0; > unset KV_DIR; > [ -z "${get_version_warning_done}" ] && qeinfo "Determining the location of the kernel source code"; > [ -d "${KERNEL_DIR}" ] && KV_DIR="${KERNEL_DIR}"; > if [ -z "${KV_DIR}" ]; then > if [ -z "${get_version_warning_done}" ]; then > get_version_warning_done=1; > qewarn "Unable to find kernel sources at ${KERNEL_DIR}"; > if [ "${KERNEL_DIR}" == "/usr/src/linux" ]; then > qeinfo "Please make sure that ${KERNEL_DIR} points at your running kernel, "; > qeinfo "(or the kernel you wish to build against)."; > qeinfo "Alternatively, set the KERNEL_DIR environment variable to the kernel sources location"; > else > qeinfo "Please ensure that the KERNEL_DIR environment variable points at full Linux sources of the kernel you wish to compile against."; > fi; > fi; > return 1; > fi; > if [ -z "${KBUILD_OUTPUT}" -a -L "${KERNEL_DIR}/source" ]; then > KBUILD_OUTPUT=${KERNEL_DIR}; > KERNEL_DIR=$(readlink -f "${KERNEL_DIR}/source"); > KV_DIR=${KERNEL_DIR}; > fi; > if [ -z "${get_version_warning_done}" ]; then > qeinfo "Found kernel source directory:"; > qeinfo " ${KV_DIR}"; > fi; > if [ ! -s "${KV_DIR}/Makefile" ]; then > if [ -z "${get_version_warning_done}" ]; then > get_version_warning_done=1; > qeerror "Could not find a Makefile in the kernel source directory."; > qeerror "Please ensure that ${KERNEL_DIR} points to a complete set of Linux sources"; > fi; > return 1; > fi; > local OUTPUT_DIR=${KBUILD_OUTPUT}; > KERNEL_MAKEFILE="${KV_DIR}/Makefile"; > if [[ -z ${OUTPUT_DIR} ]]; then > local mkfunc=$(get_makefile_extract_function "${KERNEL_MAKEFILE}"); > OUTPUT_DIR=$(${mkfunc} KBUILD_OUTPUT "${KERNEL_MAKEFILE}"); > fi; > KV_MAJOR=$(getfilevar_noexec VERSION "${KERNEL_MAKEFILE}"); > KV_MINOR=$(getfilevar_noexec PATCHLEVEL "${KERNEL_MAKEFILE}"); > KV_PATCH=$(getfilevar_noexec SUBLEVEL "${KERNEL_MAKEFILE}"); > KV_EXTRA=$(getfilevar_noexec EXTRAVERSION "${KERNEL_MAKEFILE}"); > if [ -z "${KV_MAJOR}" -o -z "${KV_MINOR}" -o -z "${KV_PATCH}" ]; then > if [ -z "${get_version_warning_done}" ]; then > get_version_warning_done=1; > qeerror "Could not detect kernel version."; > qeerror "Please ensure that ${KERNEL_DIR} points to a complete set of Linux sources."; > fi; > return 1; > fi; > [ -d "${OUTPUT_DIR}" ] && KV_OUT_DIR="${OUTPUT_DIR}"; > if [ -n "${KV_OUT_DIR}" ]; then > qeinfo "Found kernel object directory:"; > qeinfo " ${KV_OUT_DIR}"; > fi; > KV_OUT_DIR="${KV_OUT_DIR:-${KV_DIR}}"; > if [ -s "${KV_OUT_DIR}"/include/config/kernel.release ]; then > KV_LOCAL=$(<"${KV_OUT_DIR}"/include/config/kernel.release); > else > if [ -s "${KV_OUT_DIR}"/.kernelrelease ]; then > KV_LOCAL=$(<"${KV_OUT_DIR}"/.kernelrelease); > else > KV_LOCAL=; > fi; > fi; > tmplocal=${KV_LOCAL#${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}}; > if [ "$KV_LOCAL" = "$tmplocal" ]; then > KV_LOCAL=; > else > KV_LOCAL=$tmplocal; > fi; > if [[ -z ${OUTPUT_DIR} ]]; then > for OUTPUT_DIR in "${SYSROOT}" "${ROOT%/}" ""; > do > OUTPUT_DIR+="/lib/modules/${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}${KV_LOCAL}/build"; > if [[ -e ${OUTPUT_DIR} ]]; then > break; > fi; > done; > fi; > KV_FULL="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}${KV_LOCAL}"; > qeinfo "Found sources for kernel version:"; > qeinfo " ${KV_FULL}"; > return 0 >} >getfilevar () >{ > local ERROR basefname basedname myARCH="${ARCH}" M="${S}"; > ERROR=0; > [ -z "${1}" ] && ERROR=1; > [ ! -f "${2}" ] && ERROR=1; > if [ "${ERROR}" = 1 ]; then > echo -e "\n"; > eerror "getfilevar requires 2 variables, with the second a valid file."; > eerror " getfilevar <VARIABLE> <CONFIGFILE>"; > else > basefname="$(basename ${2})"; > basedname="$(dirname ${2})"; > unset ARCH; > [[ ${EAPI:-0} == [0123] ]] && function nonfatal () > { > "$@" > }; > case ${EBUILD_PHASE_FUNC} in > pkg_info | pkg_nofetch | pkg_pretend) > M="${T}" > ;; > esac; > echo -e "e:\\n\\t@echo \$(${1})\\ninclude ${basefname}" | nonfatal emake -C "${basedname}" M="${M}" ${BUILD_FIXES} -s -f - 2> /dev/null; > ARCH=${myARCH}; > fi >} >getfilevar_noexec () >{ > local ERROR basefname basedname mycat myARCH="${ARCH}"; > ERROR=0; > mycat='cat'; > [ -z "${1}" ] && ERROR=1; > [ ! -f "${2}" ] && ERROR=1; > [ "${2%.gz}" != "${2}" ] && mycat='zcat'; > if [ "${ERROR}" = 1 ]; then > echo -e "\n"; > eerror "getfilevar_noexec requires 2 variables, with the second a valid file."; > eerror " getfilevar_noexec <VARIABLE> <CONFIGFILE>"; > else > ${mycat} "${2}" | sed -n -e "/^[[:space:]]*${1}[[:space:]]*:\\?=[[:space:]]*\(.*\)\$/{ > s,^[^=]*[[:space:]]*=[[:space:]]*,,g ; > s,[[:space:]]*\$,,g ; > p > }"; > fi >} >gyp_use () >{ > local gypflag="-D${2:-use_${1//-/_}}="; > usex "$1" "${gypflag}" "${gypflag}" "${3-1}" "${4-0}" >} >has_m32 () >{ > die "${FUNCNAME}: don't use this anymore" >} >has_m64 () >{ > die "${FUNCNAME}: don't use this anymore" >} >has_multilib_profile () >{ > [ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ] >} >host-is-pax () >{ > grep -qs ^PaX: /proc/self/status >} >in_iuse () >{ > local use=${1}; > if [[ -z "${use}" ]]; then > echo "!!! in_iuse() called without a parameter." 1>&2; > echo "!!! in_iuse <USEFLAG>" 1>&2; > die "in_iuse() called without a parameter"; > fi; > local liuse=(${IUSE_EFFECTIVE}); > has "${use}" "${liuse[@]#[+-]}" >} >is-flag () >{ > is-flagq "$@" && echo true >} >is-flagq () >{ > [[ -n $2 ]] && die "Usage: is-flag <flag>"; > local var; > for var in $(all-flag-vars); > do > _is_flagq ${var} "$1" && return 0; > done; > return 1 >} >is-ldflag () >{ > is-ldflagq "$@" && echo true >} >is-ldflagq () >{ > [[ -n $2 ]] && die "Usage: is-ldflag <flag>"; > _is_flagq LDFLAGS $1 >} >is-login-disabled () >{ > _dead_portability_user_funcs >} >is_final_abi () >{ > has_multilib_profile || return 0; > set -- $(get_install_abis); > local LAST_ABI=$#; > [[ ${!LAST_ABI} == ${ABI} ]] >} >kernel_is () >{ > if ! use kernel_linux; then > die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; > fi; > linux-info_get_any_version; > local operator test value; > case ${1#-} in > lt) > operator="-lt"; > shift > ;; > gt) > operator="-gt"; > shift > ;; > le) > operator="-le"; > shift > ;; > ge) > operator="-ge"; > shift > ;; > eq) > operator="-eq"; > shift > ;; > *) > operator="-eq" > ;; > esac; > [[ $# -gt 3 ]] && die "Error in kernel-2_kernel_is(): too many parameters"; > : $(( test = (KV_MAJOR << 16) + (KV_MINOR << 8) + KV_PATCH )); > : $(( value = (${1:-${KV_MAJOR}} << 16) + (${2:-${KV_MINOR}} << 8) + ${3:-${KV_PATCH}} )); > [ ${test} ${operator} ${value} ] >} >linux-info_get_any_version () >{ > if ! use kernel_linux; then > die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; > fi; > if ! get_version; then > ewarn "Unable to calculate Linux Kernel version for build, attempting to use running version"; > if ! get_running_version; then > die "Unable to determine any Linux Kernel version, please report a bug"; > fi; > fi >} >linux-info_pkg_setup () >{ > use kernel_linux || return; > linux-info_get_any_version; > if kernel_is 2 4; then > if [ "$( gcc-major-version )" -eq "4" ]; then > echo; > ewarn "Be warned !! >=sys-devel/gcc-4.0.0 isn't supported with"; > ewarn "linux-2.4 (or modules building against a linux-2.4 kernel)!"; > echo; > ewarn "Either switch to another gcc-version (via gcc-config) or use a"; > ewarn "newer kernel that supports gcc-4."; > echo; > ewarn "Also be aware that bugreports about gcc-4 not working"; > ewarn "with linux-2.4 based ebuilds will be closed as INVALID!"; > echo; > fi; > fi; > [ -n "${CONFIG_CHECK}" ] && check_extra_config >} >linux_chkconfig_builtin () >{ > linux_config_qa_check linux_chkconfig_builtin; > [[ $(getfilevar_noexec "CONFIG_$1" "$(linux_config_path)") == y ]] >} >linux_chkconfig_module () >{ > linux_config_qa_check linux_chkconfig_module; > [[ $(getfilevar_noexec "CONFIG_$1" "$(linux_config_path)") == m ]] >} >linux_chkconfig_present () >{ > linux_config_qa_check linux_chkconfig_present; > [[ $(getfilevar_noexec "CONFIG_$1" "$(linux_config_path)") == [my] ]] >} >linux_chkconfig_string () >{ > linux_config_qa_check linux_chkconfig_string; > getfilevar_noexec "CONFIG_$1" "$(linux_config_path)" >} >linux_config_bin_exists () >{ > export _LINUX_CONFIG_EXISTS_DONE=1; > use kernel_linux && [[ -s /proc/config.gz ]] >} >linux_config_exists () >{ > linux_config_src_exists || linux_config_bin_exists >} >linux_config_path () >{ > if linux_config_src_exists; then > echo "${KV_OUT_DIR}/.config"; > else > if linux_config_bin_exists; then > echo "/proc/config.gz"; > else > return 1; > fi; > fi >} >linux_config_qa_check () >{ > local f="$1"; > if [ -z "${_LINUX_CONFIG_EXISTS_DONE}" ]; then > ewarn "QA: You called $f before any linux_config_exists!"; > ewarn "QA: The return value of $f will NOT guaranteed later!"; > fi; > if ! use kernel_linux; then > die "$f called on non-Linux system, please fix the ebuild"; > fi >} >linux_config_src_exists () >{ > export _LINUX_CONFIG_EXISTS_DONE=1; > use kernel_linux && [[ -n ${KV_OUT_DIR} && -s ${KV_OUT_DIR}/.config ]] >} >list-paxables () >{ > file "$@" 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//' >} >make_desktop_entry () >{ > [[ -z $1 ]] && die "make_desktop_entry: You must specify the executable"; > local exec=${1}; > local name=${2:-${PN}}; > local icon=${3:-${PN}}; > local type=${4}; > local fields=${5}; > if [[ -z ${type} ]]; then > local catmaj=${CATEGORY%%-*}; > local catmin=${CATEGORY##*-}; > case ${catmaj} in > app) > case ${catmin} in > accessibility) > type="Utility;Accessibility" > ;; > admin) > type=System > ;; > antivirus) > type=System > ;; > arch) > type="Utility;Archiving" > ;; > backup) > type="Utility;Archiving" > ;; > cdr) > type="AudioVideo;DiscBurning" > ;; > dicts) > type="Office;Dictionary" > ;; > doc) > type=Documentation > ;; > editors) > type="Utility;TextEditor" > ;; > emacs) > type="Development;TextEditor" > ;; > emulation) > type="System;Emulator" > ;; > laptop) > type="Settings;HardwareSettings" > ;; > office) > type=Office > ;; > pda) > type="Office;PDA" > ;; > vim) > type="Development;TextEditor" > ;; > xemacs) > type="Development;TextEditor" > ;; > esac > ;; > dev) > type="Development" > ;; > games) > case ${catmin} in > action | fps) > type=ActionGame > ;; > arcade) > type=ArcadeGame > ;; > board) > type=BoardGame > ;; > emulation) > type=Emulator > ;; > kids) > type=KidsGame > ;; > puzzle) > type=LogicGame > ;; > roguelike) > type=RolePlaying > ;; > rpg) > type=RolePlaying > ;; > simulation) > type=Simulation > ;; > sports) > type=SportsGame > ;; > strategy) > type=StrategyGame > ;; > esac; > type="Game;${type}" > ;; > gnome) > type="Gnome;GTK" > ;; > kde) > type="KDE;Qt" > ;; > mail) > type="Network;Email" > ;; > media) > case ${catmin} in > gfx) > type=Graphics > ;; > *) > case ${catmin} in > radio) > type=Tuner > ;; > sound) > type=Audio > ;; > tv) > type=TV > ;; > video) > type=Video > ;; > esac; > type="AudioVideo;${type}" > ;; > esac > ;; > net) > case ${catmin} in > dialup) > type=Dialup > ;; > ftp) > type=FileTransfer > ;; > im) > type=InstantMessaging > ;; > irc) > type=IRCClient > ;; > mail) > type=Email > ;; > news) > type=News > ;; > nntp) > type=News > ;; > p2p) > type=FileTransfer > ;; > voip) > type=Telephony > ;; > esac; > type="Network;${type}" > ;; > sci) > case ${catmin} in > astro*) > type=Astronomy > ;; > bio*) > type=Biology > ;; > calc*) > type=Calculator > ;; > chem*) > type=Chemistry > ;; > elec*) > type=Electronics > ;; > geo*) > type=Geology > ;; > math*) > type=Math > ;; > physics) > type=Physics > ;; > visual*) > type=DataVisualization > ;; > esac; > type="Education;Science;${type}" > ;; > sys) > type="System" > ;; > www) > case ${catmin} in > client) > type=WebBrowser > ;; > esac; > type="Network;${type}" > ;; > *) > type= > ;; > esac; > fi; > local slot=${SLOT%/*}; > if [[ ${slot} == "0" ]]; then > local desktop_name="${PN}"; > else > local desktop_name="${PN}-${slot}"; > fi; > local desktop="${T}/$(echo ${exec} | sed 's:[[:space:]/:]:_:g')-${desktop_name}.desktop"; > type=${type%;}${type:+;}; > if [[ -n ${icon} && ${icon} != /* ]] && [[ ${icon} == *.xpm || ${icon} == *.png || ${icon} == *.svg ]]; then > ewarn "As described in the Icon Theme Specification, icon file extensions are not"; > ewarn "allowed in .desktop files if the value is not an absolute path."; > icon=${icon%.*}; > fi; > cat > "${desktop}" <<-EOF || >[Desktop Entry] >Name=${name} >Type=Application >Comment=${DESCRIPTION} >Exec=${exec} >TryExec=${exec%% *} >Icon=${icon} >Categories=${type} >EOF > die > if [[ ${fields:-=} != *=* ]]; then > ewarn "make_desktop_entry: update your 5th arg to read Path=${fields}"; > fields="Path=${fields}"; > fi; > if [[ -n ${fields} ]]; then > printf '%b\n' "${fields}" >> "${desktop}" || die; > fi; > ( insopts -m 0644; > insinto /usr/share/applications; > doins "${desktop}" ) || die "installing desktop file failed" >} >make_session_desktop () >{ > [[ -z $1 ]] && eerror "$0: You must specify the title" && return 1; > [[ -z $2 ]] && eerror "$0: You must specify the command" && return 1; > local title=$1; > local command=$2; > local desktop=${T}/${wm:-${PN}}.desktop; > shift 2; > cat > "${desktop}" <<-EOF || >[Desktop Entry] >Name=${title} >Comment=This session logs you into ${title} >Exec=${command} $* >TryExec=${command} >Type=XSession >EOF > die > ( insopts -m 0644; > insinto /usr/share/xsessions; > doins "${desktop}" ) >} >make_wrapper () >{ > local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5; > local tmpwrapper=$(emktemp); > has "${EAPI:-0}" 0 1 2 && local EPREFIX=""; > ( echo '#!/bin/sh'; > if [[ -n ${libdir} ]]; then > local var; > if [[ ${CHOST} == *-darwin* ]]; then > var=DYLD_LIBRARY_PATH; > else > var=LD_LIBRARY_PATH; > fi; > cat <<-EOF >if [ "\${${var}+set}" = "set" ] ; then >export ${var}="\${${var}}:${EPREFIX}${libdir}" >else >export ${var}="${EPREFIX}${libdir}" >fi >EOF > > fi > [[ -n ${chdir} ]] && printf 'cd "%s" &&\n' "${EPREFIX}${chdir}"; > printf 'exec %s "$@"\n' "${bin/#\//${EPREFIX}/}" ) > "${tmpwrapper}"; > chmod go+rx "${tmpwrapper}"; > if [[ -n ${path} ]]; then > ( exeopts -m 0755; > exeinto "${path}"; > newexe "${tmpwrapper}" "${wrapper}" ) || die; > else > newbin "${tmpwrapper}" "${wrapper}" || die; > fi >} >makeopts_jobs () >{ > [[ $# -eq 0 ]] && set -- "${MAKEOPTS}"; > local jobs=$(echo " $* " | sed -r -n -e 's:.*[[:space:]](-[a-z]*j|--jobs[=[:space:]])[[:space:]]*([0-9]+).*:\2:p' -e "s:.*[[:space:]](-[a-z]*j|--jobs)[[:space:]].*:${2:-999}:p"); > echo ${jobs:-1} >} >makeopts_loadavg () >{ > [[ $# -eq 0 ]] && set -- "${MAKEOPTS}"; > local lavg=$(echo " $* " | sed -r -n -e 's:.*[[:space:]](-[a-z]*l|--(load-average|max-load)[=[:space:]])[[:space:]]*([0-9]+(\.[0-9]+)?)[[:space:]].*:\3:p' -e "s:.*[[:space:]](-[a-z]*l|--(load-average|max-load))[[:space:]].*:${2:-999}:p"); > echo ${lavg:-${2:-999}} >} >multilib_env () >{ > local CTARGET=${1:-${CTARGET}}; > local cpu=${CTARGET%%*-}; > case ${cpu} in > aarch64*) > export CFLAGS_arm=${CFLAGS_arm-}; > case ${cpu} in > aarch64*be) > export CHOST_arm="armv8b-${CTARGET#*-}" > ;; > *) > export CHOST_arm="armv8l-${CTARGET#*-}" > ;; > esac; > CHOST_arm=${CHOST_arm/%-gnu/-gnueabi}; > export CTARGET_arm=${CHOST_arm}; > export LIBDIR_arm="lib"; > export CFLAGS_arm64=${CFLAGS_arm64-}; > export CHOST_arm64=${CTARGET}; > export CTARGET_arm64=${CHOST_arm64}; > export LIBDIR_arm64="lib64"; > : ${MULTILIB_ABIS=arm64}; > : ${DEFAULT_ABI=arm64} > ;; > x86_64*) > export CFLAGS_x86=${CFLAGS_x86--m32}; > export CHOST_x86=${CTARGET/x86_64/i686}; > CHOST_x86=${CHOST_x86/%-gnux32/-gnu}; > export CTARGET_x86=${CHOST_x86}; > if [[ ${SYMLINK_LIB} == "yes" ]]; then > export LIBDIR_x86="lib32"; > else > export LIBDIR_x86="lib"; > fi; > export CFLAGS_amd64=${CFLAGS_amd64--m64}; > export CHOST_amd64=${CTARGET/%-gnux32/-gnu}; > export CTARGET_amd64=${CHOST_amd64}; > export LIBDIR_amd64="lib64"; > export CFLAGS_x32=${CFLAGS_x32--mx32}; > export CHOST_x32=${CTARGET/%-gnu/-gnux32}; > export CTARGET_x32=${CHOST_x32}; > export LIBDIR_x32="libx32"; > case ${CTARGET} in > *-gnux32) > : ${MULTILIB_ABIS=x32 amd64 x86}; > : ${DEFAULT_ABI=x32} > ;; > *) > : ${MULTILIB_ABIS=amd64 x86}; > : ${DEFAULT_ABI=amd64} > ;; > esac > ;; > mips64* | mipsisa64*) > export CFLAGS_o32=${CFLAGS_o32--mabi=32}; > export CHOST_o32=${CTARGET/mips64/mips}; > export CHOST_o32=${CHOST_o32/mipsisa64/mipsisa32}; > export CTARGET_o32=${CHOST_o32}; > export LIBDIR_o32="lib"; > export CFLAGS_n32=${CFLAGS_n32--mabi=n32}; > export CHOST_n32=${CTARGET}; > export CTARGET_n32=${CHOST_n32}; > export LIBDIR_n32="lib32"; > export CFLAGS_n64=${CFLAGS_n64--mabi=64}; > export CHOST_n64=${CTARGET}; > export CTARGET_n64=${CHOST_n64}; > export LIBDIR_n64="lib64"; > : ${MULTILIB_ABIS=n64 n32 o32}; > : ${DEFAULT_ABI=n32} > ;; > powerpc64*) > export CFLAGS_ppc=${CFLAGS_ppc--m32}; > export CHOST_ppc=${CTARGET/powerpc64/powerpc}; > export CTARGET_ppc=${CHOST_ppc}; > export LIBDIR_ppc="lib"; > export CFLAGS_ppc64=${CFLAGS_ppc64--m64}; > export CHOST_ppc64=${CTARGET}; > export CTARGET_ppc64=${CHOST_ppc64}; > export LIBDIR_ppc64="lib64"; > : ${MULTILIB_ABIS=ppc64 ppc}; > : ${DEFAULT_ABI=ppc64} > ;; > riscv64*) > export CFLAGS_lp64d=${CFLAGS_lp64d--mabi=lp64d}; > export CHOST_lp64d=${CTARGET}; > export CTARGET_lp64d=${CTARGET}; > export LIBDIR_lp64d="lib64/lp64d"; > export CFLAGS_lp64=${CFLAGS_lp64--mabi=lp64}; > export CHOST_lp64=${CTARGET}; > export CTARGET_lp64=${CTARGET}; > export LIBDIR_lp64="lib64/lp64"; > : ${MULTILIB_ABIS=lp64d lp64}; > : ${DEFAULT_ABI=lp64d} > ;; > s390x*) > export CFLAGS_s390=${CFLAGS_s390--m31}; > export CHOST_s390=${CTARGET/s390x/s390}; > export CTARGET_s390=${CHOST_s390}; > export LIBDIR_s390="lib"; > export CFLAGS_s390x=${CFLAGS_s390x--m64}; > export CHOST_s390x=${CTARGET}; > export CTARGET_s390x=${CHOST_s390x}; > export LIBDIR_s390x="lib64"; > : ${MULTILIB_ABIS=s390x s390}; > : ${DEFAULT_ABI=s390x} > ;; > sparc64*) > export CFLAGS_sparc32=${CFLAGS_sparc32--m32}; > export CHOST_sparc32=${CTARGET/sparc64/sparc}; > export CTARGET_sparc32=${CHOST_sparc32}; > export LIBDIR_sparc32="lib"; > export CFLAGS_sparc64=${CFLAGS_sparc64--m64}; > export CHOST_sparc64=${CTARGET}; > export CTARGET_sparc64=${CHOST_sparc64}; > export LIBDIR_sparc64="lib64"; > : ${MULTILIB_ABIS=sparc64 sparc32}; > : ${DEFAULT_ABI=sparc64} > ;; > *) > : ${MULTILIB_ABIS=default}; > : ${DEFAULT_ABI=default} > ;; > esac; > export MULTILIB_ABIS DEFAULT_ABI >} >multilib_toolchain_setup () >{ > local v vv; > export ABI=$1; > if [[ ${_DEFAULT_ABI_SAVED} == "true" ]]; then > for v in CHOST CBUILD AS CC CXX F77 FC LD PKG_CONFIG_{LIBDIR,PATH}; > do > vv="_abi_saved_${v}"; > [[ ${!vv+set} == "set" ]] && export ${v}="${!vv}" || unset ${v}; > unset ${vv}; > done; > unset _DEFAULT_ABI_SAVED; > fi; > if [[ ${ABI} != ${DEFAULT_ABI} ]]; then > for v in CHOST CBUILD AS CC CXX F77 FC LD PKG_CONFIG_{LIBDIR,PATH}; > do > vv="_abi_saved_${v}"; > [[ ${!v+set} == "set" ]] && export ${vv}="${!v}" || unset ${vv}; > done; > export _DEFAULT_ABI_SAVED="true"; > if [[ ${CBUILD} == "${CHOST}" ]]; then > export CBUILD=$(get_abi_CHOST $1); > fi; > export CHOST=$(get_abi_CHOST ${DEFAULT_ABI}); > export CC="$(tc-getCC) $(get_abi_CFLAGS)"; > export CXX="$(tc-getCXX) $(get_abi_CFLAGS)"; > export F77="$(tc-getF77) $(get_abi_CFLAGS)"; > export FC="$(tc-getFC) $(get_abi_CFLAGS)"; > export LD="$(tc-getLD) $(get_abi_LDFLAGS)"; > export CHOST=$(get_abi_CHOST $1); > export PKG_CONFIG_LIBDIR=${EPREFIX}/usr/$(get_libdir)/pkgconfig; > export PKG_CONFIG_PATH=${EPREFIX}/usr/share/pkgconfig; > fi >} >newicon () >{ > _iconins ${FUNCNAME} "$@" >} >newmenu () >{ > ( insopts -m 0644; > insinto /usr/share/applications; > newins "$@" ) >} >no-as-needed () >{ > case $($(tc-getLD) -v 2>&1 </dev/null) in > *GNU*) > echo "-Wl,--no-as-needed" > ;; > esac >} >number_abis () >{ > set -- `get_install_abis`; > echo $# >} >optfeature () >{ > debug-print-function ${FUNCNAME} "$@"; > local i j msg; > local desc=$1; > local flag=0; > shift; > for i in "$@"; > do > for j in ${i}; > do > if has_version "${j}"; then > flag=1; > else > flag=0; > break; > fi; > done; > if [[ ${flag} -eq 1 ]]; then > break; > fi; > done; > if [[ ${flag} -eq 0 ]]; then > for i in "$@"; > do > msg=" "; > for j in ${i}; > do > msg+=" ${j} and"; > done; > msg="${msg:0: -4} for ${desc}"; > elog "${msg}"; > done; > fi >} >path_exists () >{ > eerror "path_exists has been removed. Please see the following post"; > eerror "for a replacement snippet:"; > eerror "https://blogs.gentoo.org/mgorny/2018/08/09/inlining-path_exists/"; > die "path_exists is banned" >} >pax-mark () >{ > local f; > local flags; > local ret=0; > flags="${1//[!zPpEeMmRrSs]}"; > [[ -n "${flags}" ]] || return 0; > shift; > local dodefault=""; > [[ -n "${flags//[!z]}" ]] && dodefault="yes"; > if has PT ${PAX_MARKINGS}; then > for f in "$@"; > do > if type -p paxctl > /dev/null; then > einfo "PT_PAX marking -${flags} ${f} with paxctl"; > paxctl -q${flags} "${f}" > /dev/null 2>&1 && continue; > fi; > if type -p paxctl-ng > /dev/null && paxctl-ng -L; then > einfo "PT_PAX marking -${flags} ${f} with paxctl-ng"; > flags="${flags//z}"; > [[ ${dodefault} == "yes" ]] && paxctl-ng -L -z "${f}" > /dev/null 2>&1; > [[ -n "${flags}" ]] || continue; > paxctl-ng -L -${flags} "${f}" > /dev/null 2>&1 && continue; > fi; > if type -p scanelf > /dev/null && [[ ${PAX_MARKINGS} != "none" ]]; then > einfo "PT_PAX marking -${flags} ${f} with scanelf"; > scanelf -Xxz ${flags} "$f" > /dev/null 2>&1; > else > if [[ ${PAX_MARKINGS} != "none" ]]; then > elog "Failed to set PT_PAX markings -${flags} ${f}."; > ret=1; > fi; > fi; > done; > fi; > if has XT ${PAX_MARKINGS}; then > flags="${flags//z}"; > for f in "$@"; > do > if type -p paxctl-ng > /dev/null && paxctl-ng -l; then > einfo "XATTR_PAX marking -${flags} ${f} with paxctl-ng"; > [[ ${dodefault} == "yes" ]] && paxctl-ng -d "${f}" > /dev/null 2>&1; > [[ -n "${flags}" ]] || continue; > paxctl-ng -l -${flags} "${f}" > /dev/null 2>&1 && continue; > fi; > if type -p setfattr > /dev/null; then > [[ -n "${flags//[!Ee]}" ]] || flags+="e"; > einfo "XATTR_PAX marking -${flags} ${f} with setfattr"; > [[ ${dodefault} == "yes" ]] && setfattr -x "user.pax.flags" "${f}" > /dev/null 2>&1; > setfattr -n "user.pax.flags" -v "${flags}" "${f}" > /dev/null 2>&1 && continue; > fi; > if [[ ${PAX_MARKINGS} != "none" ]]; then > elog "Failed to set XATTR_PAX markings -${flags} ${f}."; > ret=1; > fi; > done; > fi; > return ${ret} >} >pkg_nofetch () >{ > default >} >pkg_postinst () >{ > if type gtk-update-icon-cache &> /dev/null; then > ebegin "Updating GTK icon cache"; > gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"; > eend $?; > fi; > xdg_desktop_database_update; > readme.gentoo_print_elog >} >pkg_postrm () >{ > if type gtk-update-icon-cache &> /dev/null; then > ebegin "Updating GTK icon cache"; > gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"; > eend $?; > fi; > xdg_desktop_database_update >} >pkg_pretend () >{ > pre_build_checks >} >pkg_setup () >{ > pre_build_checks; > chromium_suid_sandbox_check_kernel_config >} >pre_build_checks () >{ > if [[ ${MERGE_TYPE} != binary ]]; then > local -x CPP="$(tc-getCXX) -E"; > if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then > die "At least gcc 8.0 is required"; > fi; > fi; > CHECKREQS_MEMORY="3G"; > CHECKREQS_DISK_BUILD="5G"; > if ( shopt -s extglob; > is-flagq '-g?(gdb)?([1-9])' ); then > CHECKREQS_DISK_BUILD="25G"; > if ! use component-build; then > CHECKREQS_MEMORY="16G"; > fi; > fi; > check-reqs_pkg_setup >} >python-any-r1_pkg_setup () >{ > debug-print-function ${FUNCNAME} "${@}"; > [[ ${MERGE_TYPE} != binary ]] && python_setup >} >python_abi_depend () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_byte-compile_modules () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_clean_byte-compiled_modules () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_clean_installation_image () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_clean_py-compile_files () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_convert_shebangs () >{ > die "${FUNCNAME}() is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#python_convert_shebangs" >} >python_disable_pyc () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_doexe () >{ > debug-print-function ${FUNCNAME} "${@}"; > local f; > for f in "$@"; > do > python_newexe "${f}" "${f##*/}"; > done >} >python_doheader () >{ > debug-print-function ${FUNCNAME} "${@}"; > [[ -n ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'; > if [[ ${EAPI:-0} == [0123] ]]; then > die "python_do* and python_new* helpers are banned in EAPIs older than 4."; > fi; > local d PYTHON_INCLUDEDIR=${PYTHON_INCLUDEDIR}; > [[ -n ${PYTHON_INCLUDEDIR} ]] || python_export PYTHON_INCLUDEDIR; > d=${PYTHON_INCLUDEDIR#${EPREFIX}}; > ( insopts -m 0644; > insinto "${d}"; > doins -r "${@}" || return ${?} ) >} >python_domodule () >{ > debug-print-function ${FUNCNAME} "${@}"; > [[ -n ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'; > if [[ ${EAPI:-0} == [0123] ]]; then > die "python_do* and python_new* helpers are banned in EAPIs older than 4."; > fi; > local d; > if [[ ${python_moduleroot} == /* ]]; then > d=${python_moduleroot}; > else > local PYTHON_SITEDIR=${PYTHON_SITEDIR}; > [[ -n ${PYTHON_SITEDIR} ]] || python_export PYTHON_SITEDIR; > d=${PYTHON_SITEDIR#${EPREFIX}}/${python_moduleroot//.//}; > fi; > ( insopts -m 0644; > insinto "${d}"; > doins -r "${@}" || return ${?} ); > python_optimize "${ED%/}/${d}" >} >python_doscript () >{ > debug-print-function ${FUNCNAME} "${@}"; > local _PYTHON_REWRITE_SHEBANG=1; > python_doexe "${@}" >} >python_enable_pyc () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_execute_function () >{ > die "${FUNCNAME}() is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#python_execute_function" >} >python_execute_nosetests () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_execute_py.test () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_execute_trial () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_export () >{ > debug-print-function ${FUNCNAME} "${@}"; > local impl var; > case "${1}" in > python* | jython*) > impl=${1/_/.}; > shift > ;; > pypy | pypy3) > impl=${1}; > shift > ;; > *) > impl=${EPYTHON}; > if [[ -z ${impl} ]]; then > die "python_export called without a python implementation and EPYTHON is unset"; > fi > ;; > esac; > debug-print "${FUNCNAME}: implementation: ${impl}"; > for var in "$@"; > do > case "${var}" in > EPYTHON) > export EPYTHON=${impl}; > debug-print "${FUNCNAME}: EPYTHON = ${EPYTHON}" > ;; > PYTHON) > export PYTHON=${EPREFIX}/usr/bin/${impl}; > debug-print "${FUNCNAME}: PYTHON = ${PYTHON}" > ;; > PYTHON_SITEDIR) > [[ -n ${PYTHON} ]] || die "PYTHON needs to be set for ${var} to be exported, or requested before it"; > PYTHON_SITEDIR=$("${PYTHON}" -c 'import distutils.sysconfig; print(distutils.sysconfig.get_python_lib())') || die; > export PYTHON_SITEDIR; > debug-print "${FUNCNAME}: PYTHON_SITEDIR = ${PYTHON_SITEDIR}" > ;; > PYTHON_INCLUDEDIR) > [[ -n ${PYTHON} ]] || die "PYTHON needs to be set for ${var} to be exported, or requested before it"; > PYTHON_INCLUDEDIR=$("${PYTHON}" -c 'import distutils.sysconfig; print(distutils.sysconfig.get_python_inc())') || die; > export PYTHON_INCLUDEDIR; > debug-print "${FUNCNAME}: PYTHON_INCLUDEDIR = ${PYTHON_INCLUDEDIR}"; > if [[ ! -d ${PYTHON_INCLUDEDIR} ]]; then > die "${impl} does not install any header files!"; > fi > ;; > PYTHON_LIBPATH) > [[ -n ${PYTHON} ]] || die "PYTHON needs to be set for ${var} to be exported, or requested before it"; > PYTHON_LIBPATH=$("${PYTHON}" -c 'import os.path, sysconfig; print(os.path.join(sysconfig.get_config_var("LIBDIR"), sysconfig.get_config_var("LDLIBRARY")) if sysconfig.get_config_var("LDLIBRARY") else "")') || die; > export PYTHON_LIBPATH; > debug-print "${FUNCNAME}: PYTHON_LIBPATH = ${PYTHON_LIBPATH}"; > if [[ ! -n ${PYTHON_LIBPATH} ]]; then > die "${impl} lacks a (usable) dynamic library"; > fi > ;; > PYTHON_CFLAGS) > local val; > case "${impl}" in > python*) > val=$($(tc-getPKG_CONFIG) --cflags ${impl/n/n-}) || die > ;; > *) > die "${impl}: obtaining ${var} not supported" > ;; > esac; > export PYTHON_CFLAGS=${val}; > debug-print "${FUNCNAME}: PYTHON_CFLAGS = ${PYTHON_CFLAGS}" > ;; > PYTHON_LIBS) > local val; > case "${impl}" in > python*) > val=$($(tc-getPKG_CONFIG) --libs ${impl/n/n-}) || die > ;; > *) > die "${impl}: obtaining ${var} not supported" > ;; > esac; > export PYTHON_LIBS=${val}; > debug-print "${FUNCNAME}: PYTHON_LIBS = ${PYTHON_LIBS}" > ;; > PYTHON_CONFIG) > local flags val; > case "${impl}" in > python*) > [[ -n ${PYTHON} ]] || die "PYTHON needs to be set for ${var} to be exported, or requested before it"; > flags=$("${PYTHON}" -c 'import sysconfig; print(sysconfig.get_config_var("ABIFLAGS") or "")') || die; > val=${PYTHON}${flags}-config > ;; > *) > die "${impl}: obtaining ${var} not supported" > ;; > esac; > export PYTHON_CONFIG=${val}; > debug-print "${FUNCNAME}: PYTHON_CONFIG = ${PYTHON_CONFIG}" > ;; > PYTHON_PKG_DEP) > local d; > case ${impl} in > python2.7) > PYTHON_PKG_DEP='>=dev-lang/python-2.7.5-r2:2.7' > ;; > python3.3) > PYTHON_PKG_DEP='>=dev-lang/python-3.3.2-r2:3.3' > ;; > python*) > PYTHON_PKG_DEP="dev-lang/python:${impl#python}" > ;; > pypy) > PYTHON_PKG_DEP='>=virtual/pypy-5:0=' > ;; > pypy3) > PYTHON_PKG_DEP='>=virtual/pypy3-5:0=' > ;; > jython2.7) > PYTHON_PKG_DEP='dev-java/jython:2.7' > ;; > *) > die "Invalid implementation: ${impl}" > ;; > esac; > if [[ -n ${PYTHON_REQ_USE} ]]; then > PYTHON_PKG_DEP+=[${PYTHON_REQ_USE}]; > fi; > export PYTHON_PKG_DEP; > debug-print "${FUNCNAME}: PYTHON_PKG_DEP = ${PYTHON_PKG_DEP}" > ;; > PYTHON_SCRIPTDIR) > local dir; > export PYTHON_SCRIPTDIR=${EPREFIX}/usr/lib/python-exec/${impl}; > debug-print "${FUNCNAME}: PYTHON_SCRIPTDIR = ${PYTHON_SCRIPTDIR}" > ;; > *) > die "python_export: unknown variable ${var}" > ;; > esac; > done >} >python_export_utf8_locale () >{ > debug-print-function ${FUNCNAME} "${@}"; > type locale > /dev/null || return 0; > if [[ $(locale charmap) != UTF-8 ]]; then > local lang locales="C.UTF-8 en_US.UTF-8 en_GB.UTF-8 $(locale -a)"; > for lang in ${locales}; > do > if [[ $(LC_ALL=${lang} locale charmap 2>/dev/null) == UTF-8 ]]; then > if _python_check_locale_sanity "${lang}"; then > export LC_CTYPE=${lang}; > if [[ -n ${LC_ALL} ]]; then > export LC_NUMERIC=${LC_ALL}; > export LC_TIME=${LC_ALL}; > export LC_COLLATE=${LC_ALL}; > export LC_MONETARY=${LC_ALL}; > export LC_MESSAGES=${LC_ALL}; > export LC_PAPER=${LC_ALL}; > export LC_NAME=${LC_ALL}; > export LC_ADDRESS=${LC_ALL}; > export LC_TELEPHONE=${LC_ALL}; > export LC_MEASUREMENT=${LC_ALL}; > export LC_IDENTIFICATION=${LC_ALL}; > export LC_ALL=; > fi; > return 0; > fi; > fi; > done; > ewarn "Could not find a UTF-8 locale. This may trigger build failures in"; > ewarn "some python packages. Please ensure that a UTF-8 locale is listed in"; > ewarn "/etc/locale.gen and run locale-gen."; > return 1; > fi; > return 0 >} >python_fix_shebang () >{ > debug-print-function ${FUNCNAME} "${@}"; > [[ -n ${EPYTHON} ]] || die "${FUNCNAME}: EPYTHON unset (pkg_setup not called?)"; > local force quiet; > while [[ -n ${@} ]]; do > case "${1}" in > -f | --force) > force=1; > shift > ;; > -q | --quiet) > quiet=1; > shift > ;; > --) > shift; > break > ;; > *) > break > ;; > esac; > done; > [[ -n ${1} ]] || die "${FUNCNAME}: no paths given"; > local path f; > for path in "$@"; > do > local any_correct any_fixed is_recursive; > [[ -d ${path} ]] && is_recursive=1; > while IFS= read -r -d '' f; do > local shebang i; > local error= from=; > IFS= read -r shebang < "${f}"; > if [[ ${shebang} == '#!'* ]]; then > local split_shebang=(); > read -r -a split_shebang <<< ${shebang} || die; > for i in "${split_shebang[@]}"; > do > case "${i}" in > *"${EPYTHON}") > debug-print "${FUNCNAME}: in file ${f#${D%/}}"; > debug-print "${FUNCNAME}: shebang matches EPYTHON: ${shebang}"; > any_correct=1; > from=${EPYTHON}; > break > ;; > *python | *python[23]) > debug-print "${FUNCNAME}: in file ${f#${D%/}}"; > debug-print "${FUNCNAME}: rewriting shebang: ${shebang}"; > if [[ ${i} == *python2 ]]; then > from=python2; > if [[ ! -n ${force} ]]; then > python_is_python3 "${EPYTHON}" && error=1; > fi; > else > if [[ ${i} == *python3 ]]; then > from=python3; > if [[ ! -n ${force} ]]; then > python_is_python3 "${EPYTHON}" || error=1; > fi; > else > from=python; > fi; > fi; > break > ;; > *python[23].[0123456789] | *pypy | *pypy3 | *jython[23].[0123456789]) > if [[ ! -n ${force} ]]; then > error=1; > else > case "${i}" in > *python[23].[0123456789]) > from="python[23].[0123456789]" > ;; > *pypy) > from="pypy" > ;; > *pypy3) > from="pypy3" > ;; > *jython[23].[0123456789]) > from="jython[23].[0123456789]" > ;; > *) > die "${FUNCNAME}: internal error in 2nd pattern match" > ;; > esac; > fi; > break > ;; > esac; > done; > fi; > if [[ ! -n ${error} && ! -n ${from} ]]; then > [[ -n ${is_recursive} ]] && continue; > error=1; > fi; > if [[ ! -n ${quiet} ]]; then > einfo "Fixing shebang in ${f#${D%/}}."; > fi; > if [[ ! -n ${error} ]]; then > if [[ ${shebang} == *${from}" "* ]]; then > sed -i -e "1s:${from} :${EPYTHON} :" "${f}" || die; > else > sed -i -e "1s:${from}$:${EPYTHON}:" "${f}" || die; > fi; > any_fixed=1; > else > eerror "The file has incompatible shebang:"; > eerror " file: ${f#${D%/}}"; > eerror " current shebang: ${shebang}"; > eerror " requested impl: ${EPYTHON}"; > die "${FUNCNAME}: conversion of incompatible shebang requested"; > fi; > done < <(find -H "${path}" -type f -print0 || die); > if [[ ! -n ${any_fixed} ]]; then > local cmd=eerror; > [[ ${EAPI:-0} == [012345] ]] && cmd=eqawarn; > "${cmd}" "QA warning: ${FUNCNAME}, ${path#${D%/}} did not match any fixable files."; > if [[ -n ${any_correct} ]]; then > "${cmd}" "All files have ${EPYTHON} shebang already."; > else > "${cmd}" "There are no Python files in specified directory."; > fi; > [[ ${cmd} == eerror ]] && die "${FUNCNAME} did not match any fixable files (QA warning fatal in EAPI ${EAPI})"; > fi; > done >} >python_gen_any_dep () >{ > debug-print-function ${FUNCNAME} "${@}"; > local depstr=${1}; > [[ -n ${depstr} ]] || die "No dependency string provided"; > local i PYTHON_PKG_DEP out=; > for i in "${_PYTHON_SUPPORTED_IMPLS[@]}"; > do > local PYTHON_USEDEP="python_targets_${i}(-),python_single_target_${i}(+)"; > python_export "${i}" PYTHON_PKG_DEP; > local i_depstr=${depstr//\$\{PYTHON_USEDEP\}/${PYTHON_USEDEP}}; > out="( ${PYTHON_PKG_DEP%=} ${i_depstr} ) ${out}"; > done; > echo "|| ( ${out})" >} >python_generate_cffi_modules () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_generate_wrapper_scripts () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_get_CFLAGS () >{ > debug-print-function ${FUNCNAME} "${@}"; > python_export "${@}" PYTHON_CFLAGS; > echo "${PYTHON_CFLAGS}" >} >python_get_LIBS () >{ > debug-print-function ${FUNCNAME} "${@}"; > python_export "${@}" PYTHON_LIBS; > echo "${PYTHON_LIBS}" >} >python_get_PYTHON_CONFIG () >{ > debug-print-function ${FUNCNAME} "${@}"; > python_export "${@}" PYTHON_CONFIG; > echo "${PYTHON_CONFIG}" >} >python_get_extension_module_suffix () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_get_implementation () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_get_implementation_and_version () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_get_implementational_package () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_get_includedir () >{ > debug-print-function ${FUNCNAME} "${@}"; > python_export "${@}" PYTHON_INCLUDEDIR; > echo "${PYTHON_INCLUDEDIR}" >} >python_get_libdir () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_get_library () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_get_library_path () >{ > debug-print-function ${FUNCNAME} "${@}"; > python_export "${@}" PYTHON_LIBPATH; > echo "${PYTHON_LIBPATH}" >} >python_get_scriptdir () >{ > debug-print-function ${FUNCNAME} "${@}"; > python_export "${@}" PYTHON_SCRIPTDIR; > echo "${PYTHON_SCRIPTDIR}" >} >python_get_sitedir () >{ > debug-print-function ${FUNCNAME} "${@}"; > python_export "${@}" PYTHON_SITEDIR; > echo "${PYTHON_SITEDIR}" >} >python_get_version () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_install_executables () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_is_installed () >{ > local impl=${1:-${EPYTHON}}; > [[ -n ${impl} ]] || die "${FUNCNAME}: no impl nor EPYTHON"; > local hasv_args=(); > case ${EAPI:-0} in > 0 | 1 | 2 | 3 | 4) > local -x ROOT=/ > ;; > 5 | 6) > hasv_args+=(--host-root) > ;; > *) > hasv_args+=(-b) > ;; > esac; > case "${impl}" in > pypy | pypy3) > local append=; > if [[ -n ${PYTHON_REQ_USE} ]]; then > append=[${PYTHON_REQ_USE}]; > fi; > has_version "${hasv_args[@]}" "dev-python/${impl}${append}" || has_version "${hasv_args[@]}" "dev-python/${impl}-bin${append}" > ;; > *) > local PYTHON_PKG_DEP; > python_export "${impl}" PYTHON_PKG_DEP; > has_version "${hasv_args[@]}" "${PYTHON_PKG_DEP}" > ;; > esac >} >python_is_python3 () >{ > local impl=${1:-${EPYTHON}}; > [[ -n ${impl} ]] || die "python_is_python3: no impl nor EPYTHON"; > [[ ${impl} == python3* || ${impl} == pypy3 ]] >} >python_merge_intermediate_installation_images () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_mod_cleanup () >{ > die "${FUNCNAME}() is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#Python_byte-code_compilation" >} >python_mod_optimize () >{ > die "${FUNCNAME}() is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#Python_byte-code_compilation" >} >python_moduleinto () >{ > debug-print-function ${FUNCNAME} "${@}"; > python_moduleroot=${1} >} >python_need_rebuild () >{ > die "${FUNCNAME}() is invalid for python-r1 suite" >} >python_newexe () >{ > debug-print-function ${FUNCNAME} "${@}"; > [[ -n ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'; > [[ ${#} -eq 2 ]] || die "Usage: ${FUNCNAME} <path> <new-name>"; > if [[ ${EAPI:-0} == [0123] ]]; then > die "python_do* and python_new* helpers are banned in EAPIs older than 4."; > fi; > local wrapd=${python_scriptroot:-/usr/bin}; > local f=${1}; > local newfn=${2}; > local PYTHON_SCRIPTDIR d; > python_export PYTHON_SCRIPTDIR; > d=${PYTHON_SCRIPTDIR#${EPREFIX}}; > ( dodir "${wrapd}"; > exeopts -m 0755; > exeinto "${d}"; > newexe "${f}" "${newfn}" || return ${?} ); > _python_ln_rel "${ED%/}"/usr/lib/python-exec/python-exec2 "${ED%/}/${wrapd}/${newfn}" || die; > if [[ -n ${_PYTHON_REWRITE_SHEBANG} ]]; then > python_fix_shebang -q "${ED%/}/${d}/${newfn}"; > fi >} >python_newscript () >{ > debug-print-function ${FUNCNAME} "${@}"; > local _PYTHON_REWRITE_SHEBANG=1; > python_newexe "${@}" >} >python_optimize () >{ > debug-print-function ${FUNCNAME} "${@}"; > if [[ ${EBUILD_PHASE} == pre* || ${EBUILD_PHASE} == post* ]]; then > eerror "The new Python eclasses expect the compiled Python files to"; > eerror "be controlled by the Package Manager. For this reason,"; > eerror "the python_optimize function can be used only during src_* phases"; > eerror "(src_install most commonly) and not during pkg_* phases."; > echo; > die "python_optimize is not to be used in pre/post* phases"; > fi; > [[ -n ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'; > local PYTHON=${PYTHON}; > [[ -n ${PYTHON} ]] || python_export PYTHON; > if [[ ${#} -eq 0 ]]; then > local f; > while IFS= read -r -d '' f; do > if [[ ${f} == /* && -d ${D%/}${f} ]]; then > set -- "${D%/}${f}" "${@}"; > fi; > done < <("${PYTHON}" -c 'import sys; print("\0".join(sys.path))' || die); > debug-print "${FUNCNAME}: using sys.path: ${*/%/;}"; > fi; > local d; > for d in "$@"; > do > local instpath=${d#${D%/}}; > instpath=/${instpath##/}; > case "${EPYTHON}" in > python2.7 | python3.[34]) > "${PYTHON}" -m compileall -q -f -d "${instpath}" "${d}"; > "${PYTHON}" -OO -m compileall -q -f -d "${instpath}" "${d}" > ;; > python* | pypy3) > "${PYTHON}" -m compileall -q -f -d "${instpath}" "${d}"; > "${PYTHON}" -O -m compileall -q -f -d "${instpath}" "${d}"; > "${PYTHON}" -OO -m compileall -q -f -d "${instpath}" "${d}" > ;; > *) > "${PYTHON}" -m compileall -q -f -d "${instpath}" "${d}" > ;; > esac; > done >} >python_pkg_setup () >{ > die "${FUNCNAME}() is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#pkg_setup" >} >python_scriptinto () >{ > debug-print-function ${FUNCNAME} "${@}"; > python_scriptroot=${1} >} >python_set_active_version () >{ > die "${FUNCNAME}() is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#pkg_setup" >} >python_setup () >{ > debug-print-function ${FUNCNAME} "${@}"; > if [[ -n ${PYTHON_COMPAT_OVERRIDE} ]]; then > local impls=(${PYTHON_COMPAT_OVERRIDE}); > [[ ${#impls[@]} -eq 1 ]] || die "PYTHON_COMPAT_OVERRIDE must name exactly one implementation for python-any-r1"; > ewarn "WARNING: PYTHON_COMPAT_OVERRIDE in effect. The following Python"; > ewarn "implementation will be used:"; > ewarn; > ewarn " ${PYTHON_COMPAT_OVERRIDE}"; > ewarn; > ewarn "Dependencies won't be satisfied, and EPYTHON/eselect-python will be ignored."; > python_export "${impls[0]}" EPYTHON PYTHON; > python_wrapper_setup; > return; > fi; > if [[ -n ${EPYTHON} ]]; then > if _python_EPYTHON_supported "${EPYTHON}"; then > python_export EPYTHON PYTHON; > python_wrapper_setup; > return; > fi; > fi; > local variant i; > for variant in '' '--python2' '--python3'; > do > i=$(eselect python --show ${variant} 2>/dev/null); > if [[ ! -n ${i} ]]; then > break; > else > if _python_EPYTHON_supported "${i}"; then > python_export "${i}" EPYTHON PYTHON; > python_wrapper_setup; > return; > fi; > fi; > done; > for ((i = ${#_PYTHON_SUPPORTED_IMPLS[@]} - 1; i >= 0; i-- )) > do > python_export "${_PYTHON_SUPPORTED_IMPLS[i]}" EPYTHON PYTHON; > if _python_EPYTHON_supported "${EPYTHON}"; then > python_wrapper_setup; > return; > fi; > done; > eerror "No Python implementation found for the build. This is usually"; > eerror "a bug in the ebuild. Please report it to bugs.gentoo.org"; > eerror "along with the build log."; > echo; > die "No supported Python implementation installed." >} >python_wrapper_setup () >{ > debug-print-function ${FUNCNAME} "${@}"; > local workdir=${1:-${T}/${EPYTHON}}; > local impl=${2:-${EPYTHON}}; > [[ -n ${workdir} ]] || die "${FUNCNAME}: no workdir specified."; > [[ -n ${impl} ]] || die "${FUNCNAME}: no impl nor EPYTHON specified."; > if [[ ! -x ${workdir}/bin/python ]]; then > _python_check_dead_variables; > mkdir -p "${workdir}"/{bin,pkgconfig} || die; > rm -f "${workdir}"/bin/python{,2,3}{,-config} || die; > rm -f "${workdir}"/bin/2to3 || die; > rm -f "${workdir}"/pkgconfig/python{,2,3}.pc || die; > local EPYTHON PYTHON; > python_export "${impl}" EPYTHON PYTHON; > local pyver pyother; > if python_is_python3; then > pyver=3; > pyother=2; > else > pyver=2; > pyother=3; > fi; > cat > "${workdir}/bin/python" <<-_EOF_ || >#!/bin/sh >exec "${PYTHON}" "\${@}" >_EOF_ > die > cp "${workdir}/bin/python" "${workdir}/bin/python${pyver}" || die; > chmod +x "${workdir}/bin/python" "${workdir}/bin/python${pyver}" || die; > local nonsupp=("python${pyother}" "python${pyother}-config"); > if [[ ${EPYTHON} == python* ]]; then > cat > "${workdir}/bin/python-config" <<-_EOF_ || >#!/bin/sh >exec "${PYTHON}-config" "\${@}" >_EOF_ > die > cp "${workdir}/bin/python-config" "${workdir}/bin/python${pyver}-config" || die; > chmod +x "${workdir}/bin/python-config" "${workdir}/bin/python${pyver}-config" || die; > ln -s "${PYTHON/python/2to3-}" "${workdir}"/bin/2to3 || die; > ln -s "${EPREFIX}"/usr/$(get_libdir)/pkgconfig/${EPYTHON/n/n-}.pc "${workdir}"/pkgconfig/python.pc || die; > ln -s python.pc "${workdir}"/pkgconfig/python${pyver}.pc || die; > else > nonsupp+=(2to3 python-config "python${pyver}-config"); > fi; > local x; > for x in "${nonsupp[@]}"; > do > cat > "${workdir}"/bin/${x} <<-_EOF_ || >#!/bin/sh >echo "${ECLASS}: ${FUNCNAME}: ${x} is not supported by ${EPYTHON} (PYTHON_COMPAT)" >&2 >exit 127 >_EOF_ > die > chmod +x "${workdir}"/bin/${x} || die; > done; > fi; > if [[ ${PATH##:*} != ${workdir}/bin ]]; then > PATH=${workdir}/bin${PATH:+:${PATH}}; > fi; > if [[ ${PKG_CONFIG_PATH##:*} != ${workdir}/pkgconfig ]]; then > PKG_CONFIG_PATH=${workdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}; > fi; > export PATH PKG_CONFIG_PATH >} >qeerror () >{ > qout eerror "${@}" >} >qeinfo () >{ > qout einfo "${@}" >} >qewarn () >{ > qout ewarn "${@}" >} >qout () >{ > local outputmsg type; > type=${1}; > shift; > outputmsg="${@}"; > case "${EBUILD_PHASE}" in > depend) > unset outputmsg > ;; > clean) > unset outputmsg > ;; > preinst) > unset outputmsg > ;; > esac; > [ -n "${outputmsg}" ] && ${type} "${outputmsg}" >} >raw-ldflags () >{ > local x input="$@"; > [[ -z ${input} ]] && input=${LDFLAGS}; > set --; > for x in ${input}; > do > case ${x} in > -Wl,*) > x=${x#-Wl,}; > set -- "$@" ${x//,/ } > ;; > *) > > ;; > esac; > done; > echo "$@" >} >readme.gentoo_create_doc () >{ > debug-print-function ${FUNCNAME} "${@}"; > if [[ -n "${DOC_CONTENTS}" ]]; then > if [[ -n "${DISABLE_AUTOFORMATTING}" ]]; then > echo "${DOC_CONTENTS}" > "${T}"/README.gentoo || die; > else > local saved_flags=$-; > set -f; > echo -e ${DOC_CONTENTS} | fold -s -w 70 | sed 's/[[:space:]]*$//' > "${T}"/README.gentoo; > assert; > set +f -${saved_flags}; > fi; > else > if [[ -f "${FILESDIR}/README.gentoo-${SLOT%/*}" ]]; then > cp "${FILESDIR}/README.gentoo-${SLOT%/*}" "${T}"/README.gentoo || die; > else > if [[ -f "${FILESDIR}/README.gentoo${README_GENTOO_SUFFIX}" ]]; then > cp "${FILESDIR}/README.gentoo${README_GENTOO_SUFFIX}" "${T}"/README.gentoo || die; > else > die "You are not specifying README.gentoo contents!"; > fi; > fi; > fi; > dodoc "${T}"/README.gentoo; > README_GENTOO_DOC_VALUE=$(< "${T}/README.gentoo") >} >readme.gentoo_print_elog () >{ > debug-print-function ${FUNCNAME} "${@}"; > if [[ -z "${README_GENTOO_DOC_VALUE}" ]]; then > die "readme.gentoo_print_elog invoked without matching readme.gentoo_create_doc call!"; > else > if ! [[ -n "${REPLACING_VERSIONS}" ]] || [[ -n "${FORCE_PRINT_ELOG}" ]]; then > echo -e "${README_GENTOO_DOC_VALUE}" | while read -r ELINE; do > elog "${ELINE}"; > done; > elog ""; > elog "(Note: Above message is only printed the first time package is"; > elog "installed. Please look at ${EPREFIX}/usr/share/doc/${PF}/README.gentoo*"; > elog "for future reference)"; > fi; > fi >} >replace-cpu-flags () >{ > local newcpu="$#"; > newcpu="${!newcpu}"; > while [ $# -gt 1 ]; do > replace-flags "-march=${1}" "-march=${newcpu}"; > replace-flags "-mcpu=${1}" "-mcpu=${newcpu}"; > replace-flags "-mtune=${1}" "-mtune=${newcpu}"; > shift; > done; > return 0 >} >replace-flags () >{ > [[ $# != 2 ]] && die "Usage: replace-flags <old flag> <new flag>"; > local f var new; > for var in $(all-flag-vars); > do > new=(); > for f in ${!var}; > do > [[ ${f} == ${1} ]] && f=${2}; > new+=("${f}"); > done; > export ${var}="${new[*]}"; > done; > return 0 >} >replace-sparc64-flags () >{ > local SPARC64_CPUS="ultrasparc3 ultrasparc v9"; > if [ "${CFLAGS/mtune}" != "${CFLAGS}" ]; then > for x in ${SPARC64_CPUS}; > do > CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8}"; > done; > else > for x in ${SPARC64_CPUS}; > do > CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}"; > done; > fi; > if [ "${CXXFLAGS/mtune}" != "${CXXFLAGS}" ]; then > for x in ${SPARC64_CPUS}; > do > CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8}"; > done; > else > for x in ${SPARC64_CPUS}; > do > CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}"; > done; > fi; > export CFLAGS CXXFLAGS >} >require_configured_kernel () >{ > if ! use kernel_linux; then > die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; > fi; > if ! linux_config_src_exists; then > qeerror "Could not find a usable .config in the kernel source directory."; > qeerror "Please ensure that ${KERNEL_DIR} points to a configured set of Linux sources."; > qeerror "If you are using KBUILD_OUTPUT, please set the environment var so that"; > qeerror "it points to the necessary object directory so that it might find .config."; > die "Kernel not configured; no .config found in ${KV_OUT_DIR}"; > fi; > get_version || die "Unable to determine configured kernel version" >} >seq () >{ > local p=$(type -P seq); > if [[ -n ${p} ]]; then > "${p}" "$@" || die; > return $?; > fi; > local min max step; > case $# in > 1) > min=1 max=$1 step=1 > ;; > 2) > min=$1 max=$2 step=1 > ;; > 3) > min=$1 max=$3 step=$2 > ;; > *) > die "seq called with wrong number of arguments" > ;; > esac; > p=$(type -P jot); > if [[ -n ${p} ]]; then > local reps; > if [[ ${step} != 0 ]]; then > reps=$(( (max - min) / step + 1 )); > else > reps=0; > fi; > jot $reps $min $max $step || die; > return $?; > fi; > while :; do > [[ $max < $min && $step > 0 ]] && break; > [[ $min < $max && $step < 0 ]] && break; > echo $min; > : $(( min += step )); > done; > return 0 >} >set_arch_to_kernel () >{ > export ARCH=$(tc-arch-kernel) >} >set_arch_to_portage () >{ > export ARCH=$(tc-arch) >} >setup-allowed-flags () >{ > ALLOWED_FLAGS=(-pipe -O '-O[12sg]' -mcpu -march -mtune '-fstack-protector*' '-fsanitize*' '-fstack-check*' -fno-stack-check -fbounds-check -fbounds-checking -fno-strict-overflow -fno-PIE -fno-pie -nopie -no-pie -fno-unit-at-a-time -g '-g[0-9]' -ggdb '-ggdb[0-9]' '-gdwarf-*' gstabs -gstabs+ -gz -fno-ident -fpermissive -frecord-gcc-switches '-fdiagnostics*' '-fplugin*' '-W*' -w '-[DUILR]*' '-Wl,*' '-fuse-ld'); > ALLOWED_FLAGS+=('-fno-stack-protector*' '-fabi-version=*' -fno-strict-aliasing -fno-bounds-check -fno-bounds-checking -fstrict-overflow -fno-omit-frame-pointer '-fno-builtin*'); > ALLOWED_FLAGS+=(-mregparm -mno-app-regs -mapp-regs -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-ssse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2 -mno-avx -mno-aes -mno-pclmul -mno-sse4a -mno-3dnow -mno-popcnt -mno-abm -mips1 -mips2 -mips3 -mips4 -mips32 -mips64 -mips16 -mplt -msoft-float -mno-soft-float -mhard-float -mno-hard-float -mfpu -mieee -mieee-with-inexact -mschedule -mfloat-gprs -mspe -mno-spe -mtls-direct-seg-refs -mno-tls-direct-seg-refs -mflat -mno-flat -mno-faster-structs -mfaster-structs -m32 -m64 -mx32 -mabi -mlittle-endian -mbig-endian -EL -EB -fPIC -mlive-g0 -mcmodel -mstack-bias -mno-stack-bias -msecure-plt '-m*-toc' -mfloat-abi -mfix-r10000 -mno-fix-r10000 -mthumb -marm -mno-fma4 -mno-movbe -mno-xop -mno-lwp -mno-fsgsbase -mno-rdrnd -mno-f16c -mno-bmi -mno-tbm -mno-avx2 -mno-bmi2 -mno-fma -mno-lzcnt -mno-fxsr -mno-hle -mno-rtm -mno-xsave -mno-xsaveopt -mno-avx512cd -mno-avx512er -mno-avx512f -mno-avx512pf -mno-sha); > ALLOWED_FLAGS+=(-mstackrealign) >} >src_compile () >{ > ulimit -n 2048; > python_setup; > eninja -C out/Release gen/ui/accessibility/ax_enums.mojom{,-shared}.h; > local x; > for x in mksnapshot v8_context_snapshot_generator; > do > if tc-is-cross-compiler; then > eninja -C out/Release "host/${x}"; > pax-mark m "out/Release/host/${x}"; > else > eninja -C out/Release "${x}"; > pax-mark m "out/Release/${x}"; > fi; > done; > eninja -C out/Release chrome chromedriver; > use suid && eninja -C out/Release chrome_sandbox; > pax-mark m out/Release/chrome >} >src_configure () >{ > python_setup; > local myconf_gn=""; > tc-export AR CC CXX NM; > if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then > CC=${CHOST}-clang; > CXX=${CHOST}-clang++; > strip-unsupported-flags; > fi; > if tc-is-clang; then > myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"; > else > myconf_gn+=" is_clang=false"; > fi; > myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""; > if tc-is-cross-compiler; then > tc-export BUILD_{AR,CC,CXX,NM}; > myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""; > myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""; > else > myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""; > fi; > myconf_gn+=" is_debug=false"; > myconf_gn+=" is_component_build=$(usex component-build true false)"; > myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"; > myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"; > myconf_gn+=" enable_nacl=false"; > local gn_system_libraries=(flac fontconfig freetype libdrm libjpeg libpng libwebp libxml libxslt openh264 re2 snappy yasm zlib); > if use system-ffmpeg; then > gn_system_libraries+=(ffmpeg opus); > fi; > if use system-icu; then > gn_system_libraries+=(icu); > fi; > if use system-libvpx; then > gn_system_libraries+=(libvpx); > fi; > build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die; > myconf_gn+=" use_system_harfbuzz=true"; > myconf_gn+=" closure_compile=$(usex closure-compile true false)"; > myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"; > myconf_gn+=" enable_widevine=$(usex widevine true false)"; > myconf_gn+=" use_cups=$(usex cups true false)"; > myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"; > myconf_gn+=" use_kerberos=$(usex kerberos true false)"; > myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"; > myconf_gn+=" use_vaapi=$(usex vaapi true false)"; > myconf_gn+=" fieldtrial_testing_like_official_build=true"; > myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"; > myconf_gn+=" use_lld=false"; > ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"; > myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"; > myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""; > local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"; > local google_default_client_id="329227923882.apps.googleusercontent.com"; > local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"; > myconf_gn+=" google_api_key=\"${google_api_key}\""; > myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""; > myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""; > local myarch="$(tc-arch)"; > if ! use custom-cflags; then > replace-flags "-Os" "-O2"; > strip-flags; > if use x86; then > filter-flags "-g*"; > fi; > if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then > filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2; > fi; > fi; > if [[ $myarch = amd64 ]]; then > myconf_gn+=" target_cpu=\"x64\""; > ffmpeg_target_arch=x64; > else > if [[ $myarch = x86 ]]; then > myconf_gn+=" target_cpu=\"x86\""; > ffmpeg_target_arch=ia32; > append-flags -msse2 -mfpmath=sse -mmmx; > else > if [[ $myarch = arm64 ]]; then > myconf_gn+=" target_cpu=\"arm64\""; > ffmpeg_target_arch=arm64; > else > if [[ $myarch = arm ]]; then > myconf_gn+=" target_cpu=\"arm\""; > ffmpeg_target_arch=$(usex neon arm-neon arm); > else > die "Failed to determine target arch, got '$myarch'."; > fi; > fi; > fi; > fi; > myconf_gn+=" treat_warnings_as_errors=false"; > myconf_gn+=" fatal_linker_warnings=false"; > export TMPDIR="${WORKDIR}/temp"; > mkdir -p -m 755 "${TMPDIR}" || die; > addpredict /dev/dri/; > if false; then > local build_ffmpeg_args=""; > if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then > build_ffmpeg_args+=" --disable-asm"; > fi; > einfo "Configuring bundled ffmpeg..."; > pushd third_party/ffmpeg > /dev/null || die; > chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die; > chromium/scripts/copy_config.sh || die; > chromium/scripts/generate_gn.py || die; > popd > /dev/null || die; > fi; > einfo "Configuring Chromium..."; > set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release; > echo "$@"; > "$@" || die >} >src_install () >{ > local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"; > exeinto "${CHROMIUM_HOME}"; > doexe out/Release/chrome; > if use suid; then > newexe out/Release/chrome_sandbox chrome-sandbox; > fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"; > fi; > doexe out/Release/chromedriver; > local sedargs=(-e "s:/usr/lib/:/usr/$(get_libdir)/:g"); > sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die; > doexe chromium-launcher.sh; > dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser; > dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium; > dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver; > insinto /etc/chromium; > newins "${FILESDIR}/chromium.default" "default"; > pushd out/Release/locales > /dev/null || die; > chromium_remove_language_paks; > popd; > insinto "${CHROMIUM_HOME}"; > doins out/Release/*.bin; > doins out/Release/*.pak; > doins out/Release/*.so; > if ! use system-icu; then > doins out/Release/icudtl.dat; > fi; > doins -r out/Release/locales; > doins -r out/Release/resources; > if [[ -d out/Release/swiftshader ]]; then > insinto "${CHROMIUM_HOME}/swiftshader"; > doins out/Release/swiftshader/*.so; > fi; > local branding size; > for size in 16 22 24 32 48 64 128 256; > do > case ${size} in > 16 | 32) > branding="chrome/app/theme/default_100_percent/chromium" > ;; > *) > branding="chrome/app/theme/chromium" > ;; > esac; > newicon -s ${size} "${branding}/product_logo_${size}.png" chromium-browser.png; > done; > local mime_types="text/html;text/xml;application/xhtml+xml;"; > mime_types+="x-scheme-handler/http;x-scheme-handler/https;"; > mime_types+="x-scheme-handler/ftp;"; > mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;"; > make_desktop_entry chromium-browser "Chromium" chromium-browser "Network;WebBrowser" "MimeType=${mime_types}\nStartupWMClass=chromium-browser"; > sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die; > insinto /usr/share/gnome-control-center/default-apps; > newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml; > readme.gentoo_create_doc >} >src_prepare () >{ > python_setup; > default; > mkdir -p third_party/node/linux/node-linux-x64/bin || die; > ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die; > local keeplibs=(base/third_party/dmg_fp base/third_party/dynamic_annotations base/third_party/icu base/third_party/nspr base/third_party/superfasthash base/third_party/symbolize base/third_party/valgrind base/third_party/xdg_mime base/third_party/xdg_user_dirs buildtools/third_party/libc++ buildtools/third_party/libc++abi chrome/third_party/mozilla_security_manager courgette/third_party net/third_party/mozilla_security_manager net/third_party/nss net/third_party/quic net/third_party/uri_template third_party/abseil-cpp third_party/angle third_party/angle/src/common/third_party/base third_party/angle/src/common/third_party/smhasher third_party/angle/src/common/third_party/xxhash third_party/angle/src/third_party/compiler third_party/angle/src/third_party/libXNVCtrl third_party/angle/src/third_party/trace_event third_party/angle/third_party/glslang third_party/angle/third_party/spirv-headers third_party/angle/third_party/spirv-tools third_party/angle/third_party/vulkan-headers third_party/angle/third_party/vulkan-loader third_party/angle/third_party/vulkan-tools third_party/angle/third_party/vulkan-validation-layers third_party/apple_apsl third_party/blink third_party/boringssl third_party/boringssl/src/third_party/fiat third_party/breakpad third_party/breakpad/breakpad/src/third_party/curl third_party/brotli third_party/cacheinvalidation third_party/catapult third_party/catapult/common/py_vulcanize/third_party/rcssmin third_party/catapult/common/py_vulcanize/third_party/rjsmin third_party/catapult/third_party/beautifulsoup4 third_party/catapult/third_party/html5lib-python third_party/catapult/third_party/polymer third_party/catapult/third_party/six third_party/catapult/tracing/third_party/d3 third_party/catapult/tracing/third_party/gl-matrix third_party/catapult/tracing/third_party/jszip third_party/catapult/tracing/third_party/mannwhitneyu third_party/catapult/tracing/third_party/oboe third_party/catapult/tracing/third_party/pako third_party/ced third_party/cld_3 third_party/closure_compiler third_party/crashpad third_party/crashpad/crashpad/third_party/zlib third_party/crc32c third_party/cros_system_api third_party/dav1d third_party/devscripts third_party/dom_distiller_js third_party/emoji-segmenter third_party/fips181 third_party/flatbuffers third_party/flot third_party/freetype third_party/glslang third_party/google_input_tools third_party/google_input_tools/third_party/closure_library third_party/google_input_tools/third_party/closure_library/third_party/closure third_party/googletest third_party/hunspell third_party/iccjpeg third_party/inspector_protocol third_party/jinja2 third_party/jsoncpp third_party/jstemplate third_party/khronos third_party/leveldatabase third_party/libXNVCtrl third_party/libaddressinput third_party/libaom third_party/libaom/source/libaom/third_party/vector third_party/libaom/source/libaom/third_party/x86inc third_party/libjingle third_party/libphonenumber third_party/libsecret third_party/libsrtp third_party/libsync third_party/libudev third_party/libwebm third_party/libxml/chromium third_party/libyuv third_party/llvm third_party/lss third_party/lzma_sdk third_party/markupsafe third_party/mesa third_party/metrics_proto third_party/modp_b64 third_party/nasm third_party/node third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2 third_party/openmax_dl third_party/ots third_party/pdfium third_party/pdfium/third_party/agg23 third_party/pdfium/third_party/base third_party/pdfium/third_party/bigint third_party/pdfium/third_party/freetype third_party/pdfium/third_party/lcms third_party/pdfium/third_party/libopenjpeg20 third_party/pdfium/third_party/libpng16 third_party/pdfium/third_party/libtiff third_party/pdfium/third_party/skia_shared third_party/perfetto third_party/ply third_party/polymer third_party/protobuf third_party/protobuf/third_party/six third_party/pyjson5 third_party/qcms third_party/rnnoise third_party/s2cellid third_party/sfntly third_party/simplejson third_party/skia third_party/skia/include/third_party/vulkan third_party/skia/third_party/gif third_party/skia/third_party/skcms third_party/skia/third_party/vulkan third_party/smhasher third_party/spirv-headers third_party/SPIRV-Tools third_party/sqlite third_party/swiftshader third_party/swiftshader/third_party/llvm-7.0 third_party/swiftshader/third_party/llvm-subzero third_party/swiftshader/third_party/subzero third_party/unrar third_party/usrsctp third_party/vulkan third_party/web-animations-js third_party/webdriver third_party/webrtc third_party/webrtc/common_audio/third_party/fft4g third_party/webrtc/common_audio/third_party/spl_sqrt_floor third_party/webrtc/modules/third_party/fft third_party/webrtc/modules/third_party/g711 third_party/webrtc/modules/third_party/g722 third_party/webrtc/rtc_base/third_party/base64 third_party/webrtc/rtc_base/third_party/sigslot third_party/widevine third_party/woff2 third_party/zlib/google url/third_party/mozilla v8/src/third_party/siphash v8/src/third_party/valgrind v8/src/third_party/utf8-decoder v8/third_party/inspector_protocol v8/third_party/v8 base/third_party/libevent third_party/adobe third_party/speech-dispatcher third_party/usb_ids third_party/xdg-utils third_party/yasm/run_yasm.py); > if ! use system-ffmpeg; then > keeplibs+=(third_party/ffmpeg third_party/opus); > fi; > if ! use system-icu; then > keeplibs+=(third_party/icu); > fi; > if ! use system-libvpx; then > keeplibs+=(third_party/libvpx); > keeplibs+=(third_party/libvpx/source/libvpx/third_party/x86inc); > fi; > if use tcmalloc; then > keeplibs+=(third_party/tcmalloc); > fi; > build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die >} >src_test () >{ > default >} >src_unpack () >{ > default >} >strip-flags () >{ > local x y var; > local ALLOWED_FLAGS; > setup-allowed-flags; > set -f; > for var in $(all-flag-vars); > do > local new=(); > for x in ${!var}; > do > local flag=${x%%=*}; > for y in "${ALLOWED_FLAGS[@]}"; > do > if [[ -z ${flag%%${y}} ]]; then > new+=("${x}"); > break; > fi; > done; > done; > if _is_flagq ${var} "-O*" && ! _is_flagq new "-O*"; then > new+=(-O2); > fi; > if [[ ${!var} != "${new[*]}" ]]; then > einfo "strip-flags: ${var}: changed '${!var}' to '${new[*]}'"; > fi; > export ${var}="${new[*]}"; > done; > set +f; > return 0 >} >strip-linguas () >{ > local ls newls nols; > if [[ $1 == "-i" ]] || [[ $1 == "-u" ]]; then > local op=$1; > shift; > ls=$(find "$1" -name '*.po' -exec basename {} .po ';'); > shift; > local d f; > for d in "$@"; > do > if [[ ${op} == "-u" ]]; then > newls=${ls}; > else > newls=""; > fi; > for f in $(find "$d" -name '*.po' -exec basename {} .po ';'); > do > if [[ ${op} == "-i" ]]; then > has ${f} ${ls} && newls="${newls} ${f}"; > else > has ${f} ${ls} || newls="${newls} ${f}"; > fi; > done; > ls=${newls}; > done; > else > ls="$@"; > fi; > nols=""; > newls=""; > for f in ${LINGUAS}; > do > if has ${f} ${ls}; then > newls="${newls} ${f}"; > else > nols="${nols} ${f}"; > fi; > done; > [[ -n ${nols} ]] && einfo "Sorry, but ${PN} does not support the LINGUAS:" ${nols}; > export LINGUAS=${newls:1} >} >strip-unsupported-flags () >{ > export CFLAGS=$(test-flags-CC ${CFLAGS}); > export CXXFLAGS=$(test-flags-CXX ${CXXFLAGS}); > export FFLAGS=$(test-flags-F77 ${FFLAGS}); > export FCFLAGS=$(test-flags-FC ${FCFLAGS}); > export LDFLAGS=$(test-flags-CC ${LDFLAGS}) >} >tc-arch () >{ > tc-ninja_magic_to_arch portage "$@" >} >tc-arch-kernel () >{ > tc-ninja_magic_to_arch kern "$@" >} >tc-check-openmp () >{ > if ! tc-has-openmp; then > eerror "Your current compiler does not support OpenMP!"; > if tc-is-gcc; then > eerror "Enable OpenMP support by building sys-devel/gcc with USE=\"openmp\"."; > else > if tc-is-clang; then > eerror "OpenMP support in sys-devel/clang is provided by sys-libs/libomp."; > fi; > fi; > die "Active compiler does not have required support for OpenMP"; > fi >} >tc-cpp-is-true () >{ > local CONDITION=${1}; > shift; > local RESULT=$($(tc-getTARGET_CPP) "${@}" -P - <<-EOF 2>/dev/null > #if ${CONDITION} > true > #endif > EOF > ); > [[ ${RESULT} == true ]] >} >tc-detect-is-softfloat () >{ > [[ $(tc-getTARGET_CPP) == "gcc -E" ]] && return 1; > case ${CTARGET:-${CHOST}} in > *-newlib | *-elf | *-eabi) > return 1 > ;; > arm*) > if tc-cpp-is-true "defined(__ARM_PCS_VFP)"; then > echo "no"; > else > if tc-cpp-is-true "defined(__SOFTFP__)"; then > echo "yes"; > else > echo "softfp"; > fi; > fi; > return 0 > ;; > *) > return 1 > ;; > esac >} >tc-enables-pie () >{ > tc-cpp-is-true "defined(__PIE__)" ${CPPFLAGS} ${CFLAGS} >} >tc-enables-ssp () >{ > tc-cpp-is-true "defined(__SSP__) || defined(__SSP_STRONG__) || defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS} >} >tc-enables-ssp-all () >{ > tc-cpp-is-true "defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS} >} >tc-enables-ssp-strong () >{ > tc-cpp-is-true "defined(__SSP_STRONG__) || defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS} >} >tc-endian () >{ > local host=$1; > [[ -z ${host} ]] && host=${CTARGET:-${CHOST}}; > host=${host%%-*}; > case ${host} in > aarch64*be) > echo big > ;; > aarch64) > echo little > ;; > alpha*) > echo little > ;; > arm*b*) > echo big > ;; > arm*) > echo little > ;; > cris*) > echo little > ;; > hppa*) > echo big > ;; > i?86*) > echo little > ;; > ia64*) > echo little > ;; > m68*) > echo big > ;; > mips*l*) > echo little > ;; > mips*) > echo big > ;; > powerpc*le) > echo little > ;; > powerpc*) > echo big > ;; > s390*) > echo big > ;; > sh*b*) > echo big > ;; > sh*) > echo little > ;; > sparc*) > echo big > ;; > x86_64*) > echo little > ;; > *) > echo wtf > ;; > esac >} >tc-env_build () >{ > tc-export_build_env; > CFLAGS=${BUILD_CFLAGS} CXXFLAGS=${BUILD_CXXFLAGS} CPPFLAGS=${BUILD_CPPFLAGS} LDFLAGS=${BUILD_LDFLAGS} AR=$(tc-getBUILD_AR) AS=$(tc-getBUILD_AS) CC=$(tc-getBUILD_CC) CPP=$(tc-getBUILD_CPP) CXX=$(tc-getBUILD_CXX) LD=$(tc-getBUILD_LD) NM=$(tc-getBUILD_NM) PKG_CONFIG=$(tc-getBUILD_PKG_CONFIG) RANLIB=$(tc-getBUILD_RANLIB) "$@" >} >tc-export () >{ > local var; > for var in "$@"; > do > [[ $(type -t "tc-get${var}") != "function" ]] && die "tc-export: invalid export variable '${var}'"; > "tc-get${var}" > /dev/null; > done >} >tc-export_build_env () >{ > tc-export "$@"; > if tc-is-cross-compiler; then > : ${BUILD_CFLAGS:=-O1 -pipe}; > : ${BUILD_CXXFLAGS:=-O1 -pipe}; > : ${BUILD_CPPFLAGS:= }; > : ${BUILD_LDFLAGS:= }; > else > : ${BUILD_CFLAGS:=${CFLAGS}}; > : ${BUILD_CXXFLAGS:=${CXXFLAGS}}; > : ${BUILD_CPPFLAGS:=${CPPFLAGS}}; > : ${BUILD_LDFLAGS:=${LDFLAGS}}; > fi; > export BUILD_{C,CXX,CPP,LD}FLAGS; > local v; > for v in BUILD_{C,CXX,CPP,LD}FLAGS; > do > export ${v#BUILD_}_FOR_BUILD="${!v}"; > done >} >tc-get-compiler-type () >{ > local code=' >#if defined(__PATHSCALE__) > HAVE_PATHCC >#elif defined(__clang__) > HAVE_CLANG >#elif defined(__GNUC__) > HAVE_GCC >#endif >'; > local res=$($(tc-getCPP "$@") -E -P - <<<"${code}"); > case ${res} in > *HAVE_PATHCC*) > echo pathcc > ;; > *HAVE_CLANG*) > echo clang > ;; > *HAVE_GCC*) > echo gcc > ;; > *) > echo unknown > ;; > esac >} >tc-getAR () >{ > tc-getPROG AR ar "$@" >} >tc-getAS () >{ > tc-getPROG AS as "$@" >} >tc-getBUILD_AR () >{ > tc-getBUILD_PROG AR ar "$@" >} >tc-getBUILD_AS () >{ > tc-getBUILD_PROG AS as "$@" >} >tc-getBUILD_CC () >{ > tc-getBUILD_PROG CC gcc "$@" >} >tc-getBUILD_CPP () >{ > tc-getBUILD_PROG CPP "$(tc-getBUILD_CC) -E" "$@" >} >tc-getBUILD_CXX () >{ > tc-getBUILD_PROG CXX g++ "$@" >} >tc-getBUILD_LD () >{ > tc-getBUILD_PROG LD ld "$@" >} >tc-getBUILD_NM () >{ > tc-getBUILD_PROG NM nm "$@" >} >tc-getBUILD_OBJCOPY () >{ > tc-getBUILD_PROG OBJCOPY objcopy "$@" >} >tc-getBUILD_PKG_CONFIG () >{ > tc-getBUILD_PROG PKG_CONFIG pkg-config "$@" >} >tc-getBUILD_PROG () >{ > local vars="BUILD_$1 $1_FOR_BUILD HOST$1"; > tc-is-cross-compiler || vars+=" $1"; > _tc-getPROG CBUILD "${vars}" "${@:2}" >} >tc-getBUILD_RANLIB () >{ > tc-getBUILD_PROG RANLIB ranlib "$@" >} >tc-getBUILD_STRIP () >{ > tc-getBUILD_PROG STRIP strip "$@" >} >tc-getCC () >{ > tc-getPROG CC gcc "$@" >} >tc-getCPP () >{ > tc-getPROG CPP "${CC:-gcc} -E" "$@" >} >tc-getCXX () >{ > tc-getPROG CXX g++ "$@" >} >tc-getDLLWRAP () >{ > tc-getPROG DLLWRAP dllwrap "$@" >} >tc-getF77 () >{ > tc-getPROG F77 gfortran "$@" >} >tc-getFC () >{ > tc-getPROG FC gfortran "$@" >} >tc-getGCJ () >{ > tc-getPROG GCJ gcj "$@" >} >tc-getGO () >{ > tc-getPROG GO gccgo "$@" >} >tc-getLD () >{ > tc-getPROG LD ld "$@" >} >tc-getNM () >{ > tc-getPROG NM nm "$@" >} >tc-getOBJCOPY () >{ > tc-getPROG OBJCOPY objcopy "$@" >} >tc-getOBJDUMP () >{ > tc-getPROG OBJDUMP objdump "$@" >} >tc-getPKG_CONFIG () >{ > tc-getPROG PKG_CONFIG pkg-config "$@" >} >tc-getPROG () >{ > _tc-getPROG CHOST "$@" >} >tc-getRANLIB () >{ > tc-getPROG RANLIB ranlib "$@" >} >tc-getRC () >{ > tc-getPROG RC windres "$@" >} >tc-getSTRIP () >{ > tc-getPROG STRIP strip "$@" >} >tc-getTARGET_CPP () >{ > if [[ -n ${CTARGET} ]]; then > _tc-getPROG CTARGET TARGET_CPP "gcc -E" "$@"; > else > tc-getCPP "$@"; > fi >} >tc-has-openmp () >{ > local base="${T}/test-tc-openmp"; > cat > "${base}.c" <<-EOF >#include <omp.h> >int main() { >int nthreads, tid, ret = 0; >#pragma omp parallel private(nthreads, tid) >{ >tid = omp_get_thread_num(); >nthreads = omp_get_num_threads(); ret += tid + nthreads; >} >return ret; >} >EOF > > $(tc-getCC "$@") -fopenmp "${base}.c" -o "${base}" &> /dev/null; > local ret=$?; > rm -f "${base}"*; > return ${ret} >} >tc-has-tls () >{ > local base="${T}/test-tc-tls"; > cat > "${base}.c" <<-EOF >int foo(int *i) { >static __thread int j = 0; >return *i ? j : *i; >} >EOF > > local flags; > case $1 in > -s) > flags="-S" > ;; > -c) > flags="-c" > ;; > -l) > > ;; > -*) > die "Usage: tc-has-tls [-c|-l] [toolchain prefix]" > ;; > esac; > : ${flags:=-fPIC -shared -Wl,-z,defs}; > [[ $1 == -* ]] && shift; > $(tc-getCC "$@") ${flags} "${base}.c" -o "${base}" &> /dev/null; > local ret=$?; > rm -f "${base}"*; > return ${ret} >} >tc-is-clang () >{ > [[ $(tc-get-compiler-type) == clang ]] >} >tc-is-cross-compiler () >{ > [[ ${CBUILD:-${CHOST}} != ${CHOST} ]] >} >tc-is-gcc () >{ > [[ $(tc-get-compiler-type) == gcc ]] >} >tc-is-softfloat () >{ > tc-detect-is-softfloat || tc-tuple-is-softfloat >} >tc-is-static-only () >{ > local host=${CTARGET:-${CHOST}}; > [[ ${host} == *-mint* ]] >} >tc-ld-disable-gold () >{ > if ! tc-ld-is-gold "$@"; then > return; > fi; > ewarn "Forcing usage of the BFD linker instead of GOLD"; > local ld=$(tc-getLD "$@"); > local bfd_ld="${ld%% *}.bfd"; > local path_ld=$(which "${bfd_ld}" 2>/dev/null); > [[ -e ${path_ld} ]] && export LD=${bfd_ld}; > local fallback="true"; > if tc-is-gcc; then > local major=$(gcc-major-version "$@"); > local minor=$(gcc-minor-version "$@"); > if [[ ${major} -gt 4 ]] || [[ ${major} -eq 4 && ${minor} -ge 8 ]]; then > export LDFLAGS="${LDFLAGS} -fuse-ld=bfd"; > fallback="false"; > fi; > else > if tc-is-clang; then > local major=$(clang-major-version "$@"); > local minor=$(clang-minor-version "$@"); > if [[ ${major} -gt 3 ]] || [[ ${major} -eq 3 && ${minor} -ge 5 ]]; then > export LDFLAGS="${LDFLAGS} -fuse-ld=bfd"; > fallback="false"; > fi; > fi; > fi; > if [[ ${fallback} == "true" ]]; then > if [[ -e ${path_ld} ]]; then > local d="${T}/bfd-linker"; > mkdir -p "${d}"; > ln -sf "${path_ld}" "${d}"/ld; > export LDFLAGS="${LDFLAGS} -B${d}"; > else > die "unable to locate a BFD linker to bypass gold"; > fi; > fi >} >tc-ld-is-gold () >{ > local out; > out=$($(tc-getLD "$@") --version 2>&1); > if [[ ${out} == *"GNU gold"* ]]; then > return 0; > fi; > local base="${T}/test-tc-gold"; > cat > "${base}.c" <<-EOF >int main() { return 0; } >EOF > > out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1); > rm -f "${base}"*; > if [[ ${out} == *"GNU gold"* ]]; then > return 0; > fi; > return 1 >} >tc-ninja_magic_to_arch () >{ > function ninj () > { > [[ ${type} == "kern" ]] && echo $1 || echo $2 > }; > local type=$1; > local host=$2; > [[ -z ${host} ]] && host=${CTARGET:-${CHOST}}; > case ${host} in > aarch64*) > echo arm64 > ;; > alpha*) > echo alpha > ;; > arm*) > echo arm > ;; > avr*) > ninj avr32 avr > ;; > bfin*) > ninj blackfin bfin > ;; > c6x*) > echo c6x > ;; > cris*) > echo cris > ;; > frv*) > echo frv > ;; > hexagon*) > echo hexagon > ;; > hppa*) > ninj parisc hppa > ;; > i?86*) > if [[ ${type} == "kern" && ${host} == *freebsd* ]]; then > echo i386; > else > echo x86; > fi > ;; > ia64*) > echo ia64 > ;; > m68*) > echo m68k > ;; > metag*) > echo metag > ;; > microblaze*) > echo microblaze > ;; > mips*) > echo mips > ;; > nios2*) > echo nios2 > ;; > nios*) > echo nios > ;; > or1k | or32*) > echo openrisc > ;; > powerpc*) > if [[ ${type} == "kern" ]]; then > echo powerpc; > else > if [[ ${host} == powerpc64* ]]; then > echo ppc64; > else > echo ppc; > fi; > fi > ;; > riscv*) > echo riscv > ;; > s390*) > echo s390 > ;; > score*) > echo score > ;; > sh64*) > ninj sh64 sh > ;; > sh*) > echo sh > ;; > sparc64*) > ninj sparc64 sparc > ;; > sparc*) > [[ ${PROFILE_ARCH} == "sparc64" ]] && ninj sparc64 sparc || echo sparc > ;; > tile*) > echo tile > ;; > vax*) > echo vax > ;; > x86_64*freebsd*) > echo amd64 > ;; > x86_64*) > if [[ ${type} == "kern" ]]; then > echo x86; > else > echo amd64; > fi > ;; > xtensa*) > echo xtensa > ;; > *) > echo unknown > ;; > esac >} >tc-stack-grows-down () >{ > case ${ARCH} in > hppa | metag) > return 1 > ;; > esac; > return 0 >} >tc-tuple-is-softfloat () >{ > local CTARGET=${CTARGET:-${CHOST}}; > case ${CTARGET//_/-} in > bfin* | h8300*) > echo "only" > ;; > *-softfloat-*) > echo "yes" > ;; > *-softfp-*) > echo "softfp" > ;; > arm*-hardfloat-* | arm*eabihf) > echo "no" > ;; > *-newlib | *-elf | *-eabi) > echo "no" > ;; > arm*) > echo "yes" > ;; > *) > echo "no" > ;; > esac >} >test-flag-CC () >{ > test-flag-PROG "CC" c "$@" >} >test-flag-CXX () >{ > test-flag-PROG "CXX" c++ "$@" >} >test-flag-F77 () >{ > test-flag-PROG "F77" f77 "$@" >} >test-flag-FC () >{ > test-flag-PROG "FC" f95 "$@" >} >test-flag-PROG () >{ > local comp=$1; > local lang=$2; > shift 2; > [[ -z ${comp} || -z $1 ]] && return 1; > local cmdline=($(tc-get${comp}) -Werror -c -o /dev/null); > if "${cmdline[@]}" -x${lang} - < /dev/null &> /dev/null; then > cmdline+=("$@" -x${lang} -); > else > cmdline+=("$@" -c -o /dev/null /dev/null); > fi; > if ! "${cmdline[@]}" < /dev/null &> /dev/null; then > cmdline+=(-Qunused-arguments); > "${cmdline[@]}" < /dev/null &> /dev/null; > fi >} >test-flags () >{ > test-flags-CC "$@" >} >test-flags-CC () >{ > test-flags-PROG "CC" "$@" >} >test-flags-CXX () >{ > test-flags-PROG "CXX" "$@" >} >test-flags-F77 () >{ > test-flags-PROG "F77" "$@" >} >test-flags-FC () >{ > test-flags-PROG "FC" "$@" >} >test-flags-PROG () >{ > local comp=$1; > local flags=(); > local x; > shift; > [[ -z ${comp} ]] && return 1; > while (( $# )); do > case "$1" in > --param) > if test-flag-${comp} "$1" "$2"; then > flags+=("$1" "$2"); > fi; > shift 2 > ;; > *) > if test-flag-${comp} "$1"; then > flags+=("$1"); > fi; > shift 1 > ;; > esac; > done; > echo "${flags[*]}"; > [[ ${#flags[@]} -gt 0 ]] >} >test_version_info () >{ > if [[ $($(tc-getCC) --version 2>&1) == *$1* ]]; then > return 0; > else > return 1; > fi >} >treecopy () >{ > local dest=${!#}; > local files_count=$#; > while (( $# > 1 )); do > local dirstruct=$(dirname "$1"); > mkdir -p "${dest}/${dirstruct}" || die; > cp -pPR "$1" "${dest}/${dirstruct}" || die; > shift; > done >} >use_if_iuse () >{ > in_iuse $1 || return 1; > use $1 >} >ver_cut () >{ > local range=${1}; > local v=${2:-${PV}}; > local start end; > local -a comp; > __eapi7_ver_split "${v}"; > local max=$((${#comp[@]}/2)); > __eapi7_ver_parse_range "${range}" "${max}"; > local IFS=; > if [[ ${start} -gt 0 ]]; then > start=$(( start*2 - 1 )); > fi; > echo "${comp[*]:start:end*2-start}" >} >ver_rs () >{ > local v; > (( ${#} & 1 )) && v=${@: -1} || v=${PV}; > local start end i; > local -a comp; > __eapi7_ver_split "${v}"; > local max=$((${#comp[@]}/2 - 1)); > while [[ ${#} -ge 2 ]]; do > __eapi7_ver_parse_range "${1}" "${max}"; > for ((i = start*2; i <= end*2; i+=2 )) > do > [[ ${i} -eq 0 && -z ${comp[i]} ]] && continue; > comp[i]=${2}; > done; > shift 2; > done; > local IFS=; > echo "${comp[*]}" >} >ver_test () >{ > local va op vb; > if [[ $# -eq 3 ]]; then > va=${1}; > shift; > else > va=${PVR}; > fi; > [[ $# -eq 2 ]] || die "${FUNCNAME}: bad number of arguments"; > op=${1}; > vb=${2}; > case ${op} in > -eq | -ne | -lt | -le | -gt | -ge) > > ;; > *) > die "${FUNCNAME}: invalid operator: ${op}" > ;; > esac; > __eapi7_ver_compare "${va}" "${vb}"; > test $? "${op}" 2 >} >xdg_desktop_database_update () >{ > if [[ ${EBUILD_PHASE} != post* ]]; then > die "xdg_desktop_database_update must be used in pkg_post* phases."; > fi; > if ! type update-desktop-database &> /dev/null; then > debug-print "update-desktop-database is not found"; > return; > fi; > ebegin "Updating .desktop files database"; > update-desktop-database -q "${EROOT%/}${DESKTOP_DATABASE_DIR}"; > eend $? >} >xdg_environment_reset () >{ > export XDG_DATA_HOME="${HOME}/.local/share"; > export XDG_CONFIG_HOME="${HOME}/.config"; > export XDG_CACHE_HOME="${HOME}/.cache"; > export XDG_RUNTIME_DIR="${T}/run"; > mkdir -p "${XDG_DATA_HOME}" "${XDG_CONFIG_HOME}" "${XDG_CACHE_HOME}" "${XDG_RUNTIME_DIR}" || die; > chmod 0700 "${XDG_RUNTIME_DIR}" || die; > unset DBUS_SESSION_BUS_ADDRESS >} >xdg_icon_cache_update () >{ > if [[ ${EBUILD_PHASE} != post* ]]; then > die "xdg_icon_cache_update must be used in pkg_post* phases."; > fi; > if ! type gtk-update-icon-cache &> /dev/null; then > debug-print "gtk-update-icon-cache is not found"; > return; > fi; > ebegin "Updating icons cache"; > local retval=0; > local fails=(); > for dir in "${EROOT%/}"/usr/share/icons/*; > do > if [[ -f "${dir}/index.theme" ]]; then > local rv=0; > gtk-update-icon-cache -qf "${dir}"; > rv=$?; > if [[ ! $rv -eq 0 ]]; then > debug-print "Updating cache failed on ${dir}"; > fails+=("${dir}"); > retval=2; > fi; > else > if [[ $(ls "${dir}") = "icon-theme.cache" ]]; then > rm "${dir}/icon-theme.cache"; > fi; > fi; > if [[ -z $(ls "${dir}") ]]; then > rmdir "${dir}"; > fi; > done; > eend ${retval}; > for f in "${fails[@]}"; > do > eerror "Failed to update cache with icon $f"; > done >} >xdg_mimeinfo_database_update () >{ > if [[ ${EBUILD_PHASE} != post* ]]; then > die "xdg_mimeinfo_database_update must be used in pkg_post* phases."; > fi; > if ! type update-mime-database &> /dev/null; then > debug-print "update-mime-database is not found"; > return; > fi; > ebegin "Updating shared mime info database"; > update-mime-database "${EROOT%/}${MIMEINFO_DATABASE_DIR}"; > eend $? >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 684272
:
575526
|
575558
|
575560
|
576244
|
576776
|
576976
|
577140
|
577142