aboutsummaryrefslogtreecommitdiff
path: root/paludis
AgeCommit message (Collapse)AuthorLines
2021-09-20tests: Replace deprecated INSTANTIATE_TEST_CASE_P with INSTANTIATE_TEST_SUITE_PAvatar Marvin Schmidt -16/+16
paludis/repositories/e/e_repository_TEST_pbin.cc:192:1: error: 'InstantiateTestCase_P_IsDeprecated' is deprecated: INSTANTIATE_TEST_CASE_P is deprecated, please use INSTANTIATE_TEST_SUITE_P [clang-diagnostic-deprecated-declarations,-warnings-as-errors] INSTANTIATE_TEST_CASE_P(Works, ERepositoryInstallEAPIPBinTest, testing::Values( ^
2021-09-17process: Mark send_error noreturnAvatar Marvin Schmidt -0/+1
send_error either throws or calls `_exit(1)` > paludis/util/process.cc:434:5: warning: function 'send_error' could be declared with attribute 'noreturn' [-Wmissing-noreturn] > { > ^
2021-09-17process: Remove unreachable codeAvatar Marvin Schmidt -2/+0
The prior call of `ProcessCommand::exec` will either call `send_error` or `_exit(1)` causing the following warning/error with clang: > paludis/util/process.cc:1187:9: warning: code will never be executed [-Wunreachable-code] > _exit(1); > ^~~~~
2021-09-17process: Remove extra semicolonAvatar Marvin Schmidt -1/+1
[171/1263] Building CXX object paludis/util/CMakeFiles/libpaludisutil.dir/process.cc.o ../paludis/util/process.cc:100:2: warning: extra ';' [-Wpedantic] 100 | }; | ^
2021-09-17process_TEST: silence warning on unused return valueAvatar Arthur Nascimento -1/+1
2021-09-17Make TarMerger handle directories correctlyAvatar Marvin Schmidt -6/+53
The TarMerger has to handle directories explicitly in order to preserve the permissions and ownerships they were given
2021-09-17Test if TarMerger preserves directory permissionsAvatar Marvin Schmidt -1/+6
This exposes the problem described in ticket #1314 where the created tarball will not preserve the permissions and ownerships of the original directories
2021-09-17modernize: Annotate more functions with override (NFC)Avatar Marvin Schmidt -66/+66
They slipped through because of the wrong header-filter for clang-tidy
2021-09-17gemcutter_id: Fix wrong indentation (NFC)Avatar Marvin Schmidt -32/+32
2021-09-17build: Resolver tests use fake installed repositoryAvatar Marvin Schmidt -1/+4
I encountered the following build error trying to build an Exherbo musl stage: make[2]: Leaving directory '/var/tmp/paludis/build/sys-apps-paludis-scm/work/build' make[1]: Leaving directory '/var/tmp/paludis/build/sys-apps-paludis-scm/work/build' In file included from /var/tmp/paludis/build/sys-apps-paludis-scm/work/paludis-scm/paludis/repository.hh:39, from /var/tmp/paludis/build/sys-apps-paludis-scm/work/paludis-scm/paludis/repositories/fake/fake_repository_base.hh:23, from /var/tmp/paludis/build/sys-apps-paludis-scm/work/paludis-scm/paludis/repositories/fake/fake_installed_repository.hh:23, from /var/tmp/paludis/build/sys-apps-paludis-scm/work/paludis-scm/paludis/resolver/resolver_test.hh:64, from /var/tmp/paludis/build/sys-apps-paludis-scm/work/paludis-scm/paludis/resolver/resolver_test.cc:20: /var/tmp/paludis/build/sys-apps-paludis-scm/work/paludis-scm/paludis/output_manager-fwd.hh:29:10: fatal error: paludis/output_manager-se.hh: No such file or directory 29 | #include <paludis/output_manager-se.hh> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [paludis/resolver/CMakeFiles/libpaludisresolvertest.dir/build.make:85: paludis/resolver/CMakeFiles/libpaludisresolvertest.dir/resolver_test.cc.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:8980: paludis/resolver/CMakeFiles/libpaludisresolvertest.dir/all] Error 2 make: *** [Makefile:185: all] Error 2 fake_installed_repository.hh is used by resolver_test.{cc,hh} but there's no dependency for it specified (libpaludisresolvertest is built statically so it just needs the headers to be available). Add a dependency on libpaludisfakerepository which in turn depends on libpaludis{,util}_SE
2021-09-17build: repositories depend on libpaludis_SEAvatar Marvin Schmidt -8/+8
In file included from /var/tmp/paludis/build/sys-apps-paludis-scm/work/paludis-scm/paludis/package_id.hh:38, from /var/tmp/paludis/build/sys-apps-paludis-scm/work/paludis-scm/paludis/repositories/unpackaged/unpackaged_id.hh:23, from /var/tmp/paludis/build/sys-apps-paludis-scm/work/paludis-scm/paludis/repositories/unpackaged/unpackaged_id.cc:20: /var/tmp/paludis/build/sys-apps-paludis-scm/work/paludis-scm/paludis/metadata_key-fwd.hh:43:10: fatal error: paludis/metadata_key-se.hh: No such file or directory 43 | #include <paludis/metadata_key-se.hh> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [paludis/repositories/unpackaged/CMakeFiles/libpaludisunpackagedrepository.dir/build.make:98: paludis/repositories/unpackaged/CMakeFiles/libpaludisunpackage drepository.dir/unpackaged_id.cc.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:8127: paludis/repositories/unpackaged/CMakeFiles/libpaludisunpackagedrepository.dir/all] Error 2 make: *** [Makefile:185: all] Error 2
2021-09-17build: libpaludispaludisenvironment depends on libpaludis_SEAvatar Marvin Schmidt -1/+1
In file included from /var/tmp/paludis/build/sys-apps-paludis-scm/work/paludis-scm/paludis/environment.hh:25, from /var/tmp/paludis/build/sys-apps-paludis-scm/work/paludis-scm/paludis/environments/paludis/keywords_conf.cc:21: /var/tmp/paludis/build/sys-apps-paludis-scm/work/paludis-scm/paludis/output_manager-fwd.hh:29:10: fatal error: paludis/output_manager-se.hh: No such file or directory 29 | #include <paludis/output_manager-se.hh> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [paludis/environments/paludis/CMakeFiles/libpaludispaludisenvironment.dir/build.make:111: paludis/environments/paludis/CMakeFiles/libpaludispaludisenvironment.dir/keywords_conf.cc.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:8427: paludis/environments/paludis/CMakeFiles/libpaludispaludisenvironment.dir/all] Error 2 make: *** [Makefile:185: all] Error 2
2021-09-17build: libpaludisresolver depends on libpaludis_SEAvatar Marvin Schmidt -1/+1
$ ninja -j1 libpaludisresolver [30/104] Building CXX object paludis/resolver/CMakeFiles/libpaludisresolver.dir/accumulate_deps.cc.o FAILED: paludis/resolver/CMakeFiles/libpaludisresolver.dir/accumulate_deps.cc.o /usr/x86_64-pc-linux-gnu/bin/g++ -DDATADIR=\"/usr/share\" -DENABLE_PBINS -DENABLE_PYTHON_HOOKS -DENABLE_STRIPPER -DLIBDIR=\"/usr/x86_64-pc-linux-gnu/lib\" -DLIBEXECDIR=\"/usr/x86_64-pc-linux-gnu/libexec\" -DPALUDIS_NO_EXPLICIT_FULLY_SPECIALISED=1 -DPALUDIS_VERSION_MAJOR=3 -DPALUDIS_VERSION_MINOR=0 -DSYSCONFDIR=\"/etc\" -I. -I../ -pipe -O0 -pedantic -g3 -Wall -Wextra -Wold-style-cast -Wredundant-decls -Wstrict-null-sentinel -Wmissing-noreturn -Woverloaded-virtual -Winit-self -Wunreachable-code -Wunused -Wshadow -Wwrite-strings -Wfloat-equal -Wno-ignored-qualifiers -Wno-non-virtual-dtor -fvisibility=hidden -fvisibility-inlines-hidden -g -fPIC -std=gnu++11 -MD -MT paludis/resolver/CMakeFiles/libpaludisresolver.dir/accumulate_deps.cc.o -MF paludis/resolver/CMakeFiles/libpaludisresolver.dir/accumulate_deps.cc.o.d -o paludis/resolver/CMakeFiles/libpaludisresolver.dir/accumulate_deps.cc.o -c ../paludis/resolver/accumulate_deps.cc In file included from ../paludis/resolver/accumulate_deps-fwd.hh:25, from ../paludis/resolver/accumulate_deps.hh:23, from ../paludis/resolver/accumulate_deps.cc:23: ../paludis/package_id-fwd.hh:59:10: fatal error: paludis/package_id-se.hh: No such file or directory 59 | #include <paludis/package_id-se.hh> | ^~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. ninja: build stopped: subcommand failed.
2021-09-17python: Assure Py_Initialize is called before static members are initializedAvatar Marvin Schmidt -2/+10
The python hooker test segfaulted because the static member variable of type `boost::python::dict` caused a call to `PyDict_New` and subsequently `_PyObject_GC_Alloc` before `Py_Initialize` was called: > [==========] Running 6 tests from 1 test suite. > [----------] Global test environment set-up. > [----------] 6 tests from Hooker > [ RUN ] Hooker.Works > > Program received signal SIGSEGV, Segmentation fault. > 0x00007ffff67863ac in _PyObject_GC_Alloc () from /usr/x86_64-pc-linux-gnu/lib/libpython3.9.so.1.0 > #0 0x00007ffff67863ac in _PyObject_GC_Alloc () from /usr/x86_64-pc-linux-gnu/lib/libpython3.9.so.1.0 > #1 0x00007ffff6786ac3 in _PyObject_GC_New () from /usr/x86_64-pc-linux-gnu/lib/libpython3.9.so.1.0 > #2 0x00007ffff669156c in PyDict_New () from /usr/x86_64-pc-linux-gnu/lib/libpython3.9.so.1.0 > #3 0x00007ffff64abafe in boost::python::detail::dict_base::dict_base() () from /usr/x86_64-pc-linux-gnu/lib/libboost_python39.so.1.76.0 > #4 0x00007ffff6ea3100 in boost::python::dict::dict (this=0x7ffff6eba728 <(anonymous namespace)::PyHookFile::_output_wrapper_namespace>) at /usr/x86_64-pc-linux-gnu/include/boost/python/dict.hpp:89 > #5 0x00007ffff6ea25bb in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at ../paludis/python_hooks.cc:82 > #6 0x00007ffff6ea2ac3 in _GLOBAL__sub_I_python_hooks.cc(void) () at ../paludis/python_hooks.cc:445 > #7 0x00007ffff7fdb0be in call_init () from /usr/x86_64-pc-linux-gnu/lib/ld-linux-x86-64.so.2 > #8 0x00007ffff7fdb1ac in _dl_init () from /usr/x86_64-pc-linux-gnu/lib/ld-linux-x86-64.so.2 > #9 0x00007ffff69cff55 in _dl_catch_exception () from /usr/x86_64-pc-linux-gnu/lib/libc.so.6 > #10 0x00007ffff7fdf474 in dl_open_worker () from /usr/x86_64-pc-linux-gnu/lib/ld-linux-x86-64.so.2 > #11 0x00007ffff69cfef8 in _dl_catch_exception () from /usr/x86_64-pc-linux-gnu/lib/libc.so.6 > #12 0x00007ffff7fdec4b in _dl_open () from /usr/x86_64-pc-linux-gnu/lib/ld-linux-x86-64.so.2 > #13 0x00007ffff687f3cc in dlopen_doit () from /usr/x86_64-pc-linux-gnu/lib/libdl.so.2 > #14 0x00007ffff69cfef8 in _dl_catch_exception () from /usr/x86_64-pc-linux-gnu/lib/libc.so.6 > #15 0x00007ffff69cffc3 in _dl_catch_error () from /usr/x86_64-pc-linux-gnu/lib/libc.so.6 > #16 0x00007ffff687fbf9 in _dlerror_run () from /usr/x86_64-pc-linux-gnu/lib/libdl.so.2 > #17 0x00007ffff687f458 in dlopen () from /usr/x86_64-pc-linux-gnu/lib/libdl.so.2 > #18 0x00007ffff78f1041 in paludis::Hooker::_find_hooks (this=0x7fffffffde08, hook=...) at ../paludis/hooker.cc:634 > #19 0x00007ffff78f3145 in paludis::Hooker::perform_hook (this=0x7fffffffde08, hook=..., optional_output_manager=...) at ../paludis/hooker.cc:782 > #20 0x000055555555886b in Hooker_Works_Test::TestBody (this=0x55555558af80) at ../paludis/hooker_TEST.cc:44 > #21 0x00007ffff6e8368f in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) () from /usr/x86_64-pc-linux-gnu/lib/libgtest.so > #22 0x00007ffff6e7374e in testing::Test::Run() () from /usr/x86_64-pc-linux-gnu/lib/libgtest.so > #23 0x00007ffff6e738a5 in testing::TestInfo::Run() () from /usr/x86_64-pc-linux-gnu/lib/libgtest.so > #24 0x00007ffff6e7398d in testing::TestSuite::Run() () from /usr/x86_64-pc-linux-gnu/lib/libgtest.so > #25 0x00007ffff6e73e9b in testing::internal::UnitTestImpl::RunAllTests() () from /usr/x86_64-pc-linux-gnu/lib/libgtest.so > #26 0x00007ffff6e83b6f in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) () > from /usr/x86_64-pc-linux-gnu/lib/libgtest.so > #27 0x00007ffff6e740a6 in testing::UnitTest::Run() () from /usr/x86_64-pc-linux-gnu/lib/libgtest.so > #28 0x00007ffff6e919ab in main () from /usr/x86_64-pc-linux-gnu/lib/libgtest_main.so > #29 0x00007ffff68beb25 in __libc_start_main () from /usr/x86_64-pc-linux-gnu/lib/libc.so.6 > #30 0x000055555555859e in _start () > (gdb) Calling `Py_Initialize` from PyHookFile's ctor is too late since static members are initialized before the construction of the first PyHookFile instance. Fix this by introducing a RAII-style initializer class that calls `Py_Initialize` on construction and add a static member variable of that type to PyHookFile before its other static member variable.
2021-06-16fix tests for ruby >= 2.6Avatar Marc-Antoine Perennou -2/+17
Somehow with ruby >= 2.6 waitpid sometimes gets interrupted by a signal. Ignoring EINTR and reissuing waitpid fixes the issue. Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2020-10-24Fix symbol visibility errors with clangAvatar Marvin Schmidt -2/+6
LabelsDepSpec visibility: 133: >>> test action_TEST 133: Traceback (most recent call last): 133: File "/home/marv/devel/paludis-worktrees/master/python/action_TEST.py", line 21, in <module> 133: from paludis import * 133: ImportError: /home/marv/devel/paludis-worktrees/master/build-clang/python/libpaludispython_3.0.so.300: undefined symbol: _ZN7paludis19spec_tree_internals14BasicInne rNodeINS_8SpecTreeINS_13TypeListEntryINS_20SpecTreeLeafNodeTypeINS_14PackageDepSpecEEENS3_INS4_INS_12BlockDepSpecEEENS3_INS4_INS_13LabelsDepSpecINS_17DependenciesLabelEE EEENS3_INS4_INS_15NamedSetDepSpecEEENS3_INS_21SpecTreeInnerNodeTypeINS_10AllDepSpecEEENS3_INSF_INS_10AnyDepSpecEEENS3_INSF_INS_18ConditionalDepSpecEEENS_12TypeListTailEE EEEEEEEEEEEEESG_EEE6appendISB_EESt10shared_ptrINSU_8NodeTypeIT_E4TypeEERKSX_ISZ_E 133: >>> test action_TEST returned 1 [1s] 133: >>> exiting with error for test action_TEST 1/1 Test #133: python_action ....................***Failed 0.03 sec The missing symbol is: std::shared_ptr<DependencySpecTree::NodeType<paludis::LabelsDepSpec<paludis::DependenciesLabel>>::Type> paludis::spec_tree_internals::BasicInnerNode<paludis::SpecTree<...>>::append< paludis::LabelsDepSpec<paludis::DependenciesLabel>>( std::shared_ptr<paludis::LabelsDepSpec<paludis::DependenciesLabel> > const&) => Move LabelsDepSpec<DependenciesLabel> instantiation to header file Missing dep_spec.hh include: 133: >>> test action_TEST 133: Traceback (most recent call last): 133: File "/home/marv/devel/paludis-worktrees/master/python/action_TEST.py", line 21, in <module> 133: from paludis import * 133: ImportError: /home/marv/devel/paludis-worktrees/master/build-clang/python/libpaludispython_3.0.so.300: undefined symbol: _ZN7paludis19spec_tree_internals14BasicInnerNodeINS_8SpecTreeINS_13TypeListEntryINS_20SpecTreeLeafNodeTypeINS_14PackageDepSpecEEENS3_INS4_INS_12BlockDepSpecEEENS3_INS4_INS_13LabelsDepSpecINS_17DependenciesLabelEEEEENS3_INS4_INS_15NamedSetDepSpecEEENS3_INS_21SpecTreeInnerNodeTypeINS_10AllDepSpecEEENS3_INSF_INS_10AnyDepSpecEEENS3_INSF_INS_18ConditionalDepSpecEEENS_12TypeListTailEEEEEEEEEEEEEEESG_EEE6appendISD_EESt10shared_ptrINSU_8NodeTypeIT_E4TypeEERKSX_ISZ_E 133: >>> test action_TEST returned 1 [0s] 133: >>> exiting with error for test action_TEST 1/1 Test #133: python_action ....................***Failed 0.03 sec The missing symbol is: std::shared_ptr<DependencySpecTree::NodeType<paludis::NamedSetDepSpec>::Type> paludis::spec_tree_internals::BasicInnerNode<DependencySpecTree>::append< paludis::NamedSetDepSpec>(std::shared_ptr<paludis::NamedSetDepSpec> const&) => Provide full type for NamedSetDepSpec
2020-10-16modernize: Mark overriding functions as suchAvatar Marvin Schmidt -1930/+1930
Done using clang-tidy's `modernize-use-override` check
2020-02-19emagicdocs: Also install CONTRIBUTING* filesAvatar Heiko Becker -1/+1
It is quite common for projects to have such a file and it (hopefully) is a good start when you're looking for information where and how to submit a patch.
2019-10-24Use the versioned component and imported target for boost pythonAvatar Heiko Becker -1/+1
2019-10-22hooker_TEST: make ordering/py_hook Python3 compatibleAvatar Marvin Schmidt -1/+1
Otherwise the test fails with the following error when using Python 3: 13: [ RUN ] Hooker.Ordering 13: paludis@1565848657: [WARNING hook.python.failure] Hook 'hooker_TEST_dir/ordering/py_hook.py': running hook_run_ordering function failed: 'Traceback (most recent call last): 13: File "hooker_TEST_dir/ordering/py_hook.py", line 2, in hook_run_ordering 13: file("hooker_TEST_dir/ordering.out", "a").write("py_hook\n") 13: NameError: name 'file' is not defined' 13: ../paludis/hooker_TEST.cc:76: Failure 13: Expected equality of these values: 13: 0 13: result.max_exit_status() 13: Which is: 1 13: ../paludis/hooker_TEST.cc:83: Failure 13: Expected equality of these values: 13: "e\nc\nf\nd\nb\na\npy_hook\ng\ni\nh\nsohook\nk\nj\n" 13: line 13: Which is: "e\nc\nf\nd\nb\na\ng\ni\nh\nsohook\nk\nj\n" 13: With diff: 13: @@ -5,5 @@ 13: b 13: a 13: -py_hook 13: g 13: i 13: 13: [ FAILED ] Hooker.Ordering (184 ms)
2019-10-22python: Normalize exceptionsAvatar Marvin Schmidt -0/+1
The python 3 incompatible call of `file` in the python hook caused an exception. Trying to get the traceback failed because the exception isn't normalized: 13: [ RUN ] Hooker.Ordering 13: paludis@1565848332: [WARNING hook.python.traceback_failed] In thread ID '13623': 13: ... When triggering hook 'ordering': 13: ... When running hook 'hooker_TEST_dir/ordering/py_hook.py' for hook 'ordering': 13: ... When getting traceback 13: ... Hook 'hooker_TEST_dir/ordering/py_hook.py': _get_traceback(): traceback.format_exception failed 13: paludis@1565848332: [WARNING hook.python.failure] Hook 'hooker_TEST_dir/ordering/py_hook.py': running hook_run_ordering function failed: 'Getting traceback failed' 13: paludis@1565848332: [WARNING hook.python.failure] Hook 'hooker_TEST_dir/ordering/py_hook.py' failed unexpectedly: 'Traceback (most recent call last): 13: File "/usr/x86_64-pc-linux-gnu/lib/python3.7/traceback.py", line 121, in format_exception 13: type(value), value, tb, limit=limit).format(chain=chain)) 13: File "/usr/x86_64-pc-linux-gnu/lib/python3.7/traceback.py", line 476, in __init__ 13: if (exc_value and exc_value.__cause__ is not None 13: AttributeError: 'str' object has no attribute '__cause__' 13: 13: The above exception was the direct cause of the following exception: 13: 13: Traceback (most recent call last): 13: File "/home/marv/devel/paludis-worktrees/cross/python/paludis_output_wrapper.py", line 101, in restore_prefix 13: restore("both") 13: File "/home/marv/devel/paludis-worktrees/cross/python/paludis_output_wrapper.py", line 80, in restore 13: if len(stderr_cache): 13: SystemError: <built-in function len> returned a result with an error set' 13: ../paludis/hooker_TEST.cc:76: Failure 13: Expected equality of these values: 13: 0 13: result.max_exit_status() 13: Which is: 1 13: ../paludis/hooker_TEST.cc:83: Failure 13: Expected equality of these values: 13: "e\nc\nf\nd\nb\na\npy_hook\ng\ni\nh\nsohook\nk\nj\n" 13: line 13: Which is: "e\nc\nf\nd\nb\na\ng\ni\nh\nsohook\nk\nj\n" 13: With diff: 13: @@ -5,5 @@ 13: b 13: a 13: -py_hook 13: g 13: i 13: 13: [ FAILED ] Hooker.Ordering (195 ms)
2019-04-18tests: fix BASH_COMPAT tests with bash 5Avatar Marc-Antoine Perennou -2/+2
Bash now overrides this with a new value with no dot Fixes #2 Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2019-03-11tests: Allow Linux 5.xAvatar Heiko Becker -1/+1
2018-12-22build: Generate an import target for Jansson and use itAvatar Heiko Becker -4/+1
2018-07-23Adjust the stripper for file>=5.33 and PIE executablesAvatar Heiko Becker -1/+2
It can recognize executables built with PIE now, which are just shared objects with the executable bit set (and were recognized by stripper via the "shared object" text returned from earlier versions). With file 5.32: $ file .../file: ".../file: ELF 64-bit LSB shared object" $ file .../libmagic.so.1.0.0: ".../libmagic.so.1.0.0: ELF 64-bit LSB shared object" With file 5.33: $ file .../file: ".../file: ELF 64-bit LSB pie executable x86-64" $ file .../libmagic.so.1.0.0: ".../libmagic.so.1.0.0: ELF 64-bit LSB pie executable x86-64"
2018-06-13process.cc: don't allocate after forkAvatar Johannes Nixdorf -176/+567
In multithreaded processes POSIX specifies that after fork only AS-safe functions may be called. [1] This fixes a race condition I observed in "cave generate-metadata" with musl libc. This does happen regularily with musl libc, but the general problem also affects glibc. (test [2] if you don't believe me - with glibc it happens more rarely and causes a deadlock inside of malloc locks instead of a crash). This does not fix these problems for as_main_process, as there never will be an exec in the child process that way, which makes it impossible to do safely this way. [1]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/fork.html [2]: https://shadowice.org/~mixi/examples/never-fork-and-malloc-in-multiple-threads.c
2018-04-09set USER and LOGNAME when running with userprivAvatar Benedikt Morbach -1/+4
some builds/tests get confused when running as paludisbuild with USER=root.
2018-04-09add reduced_username() to EnvironmentAvatar Benedikt Morbach -1/+28
2018-02-04build: fix compile against libc++ using clangAvatar Bjorn Pagen -1/+4
added several includes, such as time.h, iostream, and string, as libc++ requires explicit including of these files. tr1/memory is replaced with POSIX defined memory Change-Id: Id859f33f78343d814f47b1e1e34a3dbe23d174e3 Reviewed-on: https://galileo.mailstation.de/gerrit/11152 Reviewed-by: Saleem Abdulrasool <compnerd@compnerd.org>
2018-01-29use correct type when stringifying whirlpool checksumAvatar Łukasz P. Michalik -1/+1
Patch-URL: https://paste.pound-python.org/raw/3MLCZhW0maomtLa2IOy5/ Change-Id: I7d56ff2388c5f9e4455bf830ef926500431ad9d2 Reviewed-on: https://galileo.mailstation.de/gerrit/8793 Reviewed-by: Saleem Abdulrasool <compnerd@compnerd.org>
2017-08-08resolver: use range based for loops (NFC)Avatar Saleem Abdulrasool -14/+10
Convert a few loops to range based for loops instead of standard for loops.
2017-08-07fuzzy-finder: convert to c++11, hoist checkAvatar Saleem Abdulrasool -8/+9
Hoist the length check out of the loop. This avoids an unnecessary call each iteration through the loop. Use some C++11 constructs to simplify the logic a bit.
2017-06-11test: silence a __attribute__((__unused_return_value__)) checkAvatar Saleem Abdulrasool -1/+1
2017-06-11resolver: add fallthrough attribute to silence -Wimplicit-fallthroughAvatar Saleem Abdulrasool -2/+2
2017-06-10paludis: add missing include (NFC)Avatar Saleem Abdulrasool -0/+1
2017-06-10util: sort includes (NFC)Avatar Saleem Abdulrasool -5/+5
2017-05-23disallow unexported phasesAvatar Benedikt Morbach -3/+9
avoids bugs and confusion that happen occasionally when phases are accidentally left around but not exported so they don't do anything. This is also the first step if we want to make the exporting automatic in the future to make sure that doesn't suddenly activate previously unexported phases. Change-Id: I4f7c5de4974e547c2596d138839dd41738d61e68
2017-05-04Add missing includes to fix building with libstdc++7Avatar Heiko Becker -0/+2
2017-01-18build: add missing dependencies on generated headersAvatar Bo Ørsted Andresen -0/+2
These depend upon libpaludisutils' generated headers. Found by the Jenkins build bot.
2017-01-16paludis: c++11-ify repository iterationAvatar Saleem Abdulrasool -134/+107
Add a `repositories` in `Environment` which provides an iterator range for the repositories, allowing C++11 style range based iteration.
2017-01-09build: *repository depend on libpaludisutil_SEAvatar Heiko Becker -0/+3
2016-12-21build: libpaludisrepositoryrepository depends on libpaludisutil_SEAvatar Heiko Becker -0/+1
Found by Jenkins: https://galileo.mailstation.de/jenkins/job/stage_x86/954/console
2016-12-16build: Add missing linkage between shared librariesAvatar Michał Górny -0/+14
2016-12-15build: Add missing linkage for Python libsAvatar Michał Górny -0/+1
2016-12-14Mark loop variable const (NFC)Avatar Marvin Schmidt -1/+1
Change-Id: Ib7fb03ca19f60114b54ec928d2134d205e693819
2016-12-14Remove some dead code (NFC)Avatar Marvin Schmidt -13/+0
There is no MetadataSpecTreeKey<SetSpecTree> Change-Id: If17a855e700408c8b23a70af375fc01e5544e309
2016-12-14Add missing exception specification to declaration (NFC)Avatar Marvin Schmidt -1/+1
[302/1198] Building CXX object paludis/CMakeFiles/libpaludis.dir/ipc_output_manager.cc.o /home/marv/devel/paludis/paludis/ipc_output_manager.cc:128:19: warning: function previously declared with an implicit exception specification redeclared with an explicit exception specification [-Wimplicit-exc eption-spec-mismatch] IPCOutputManager::~IPCOutputManager() noexcept(false) ^ /home/marv/devel/paludis/paludis/ipc_output_manager.hh:48:13: note: previous declaration is here ~IPCOutputManager(); ^ 1 warning generated. Change-Id: Idc9f7cbf953230449ff273468b90461328d9b4fb
2016-12-14build: Install headers generated from .se filesAvatar Marvin Schmidt -7/+8
Change-Id: I66a5594bbce99d6fae533f967af767c9cede3457
2016-12-14build: Install missing fwd/impl headersAvatar Marvin Schmidt -7/+140
Change-Id: I68dcabbd37a414b90b8d0070140fb83964ea985f
2016-12-13repositories: ensure that the destructor is materialisedAvatar Saleem Abdulrasool -0/+1