Commit Graph
2240 Commits
Author SHA1 Message Date
Michael Weiss 57f0574595 cmake: Add a patch to fix a regression since CMake 3.18
This fixes all CMake builds that use target_precompile_headers() and
as a result fail since CMake 3.18 with e.g.:
g++: error: unrecognized command line option '-Xarch_x86_64'; did you mean '-march=x86-64'?

Fix #94905.

CMake references:
- https://gitlab.kitware.com/cmake/cmake/-/issues/21072
- https://gitlab.kitware.com/cmake/cmake/-/merge_requests/5118
2020-08-13 12:50:12 +02:00
Frederik Rietdijk 7e189c56a1 Merge staging-next into staging 2020-08-13 08:52:48 +02:00
Wael Nasreddine 866eedcb69 bazel_3: use less resources when building Bazel (#95214)
Limit the resources Bazel is allowed to use during the build to 1/2 the
available RAM and 3/4 the available CPU cores. This should help avoid
overwhelming the build machine.
2020-08-12 10:47:01 -07:00
Florian Klink 0c46d8f140 Merge remote-tracking branch 'origin/staging-next' into master 2020-08-12 18:44:25 +02:00
Jan Tojnar 74ea2b2123 meson: Fix rpath clearing
Meson allows projects to set `build_rpath` property, containing paths
that will be added during build but will be removed when installing.

When Meson removes build_rpath from `DT_RUNPATH` entry, it just writes
the shorter ␀-terminated new rpath over the old one to reduce
the risk of potentially breaking the ELF files
(when the linker does string de-duplication or something).
But this can cause much bigger problem for Nix, as it can produce
cut-in-half-by-␀ store path references.

For example, in systemd’s libudev, it was removing three `$ORIGIN`-relative paths from

    $ORIGIN/../libsystemd:$ORIGIN/../basic:$ORIGIN/../shared:…␀

resulting in the following `DT_RUNPATH` entry:

    …␀store/v589pqjhvxrj73g3r0xb41yr84z5pwb7-gcc-9.3.0-lib/lib␀

We previously handled this in `fix-rpath.patch` but the method we prevent
Meson from removing paths added to rpath through `NIX_LDFLAGS` was changed
during 0.55.0 update and I forgot about this second purpose of the patch.

Let’s re-add this clearing code, as it worked without issues for a long time.
2020-08-12 12:17:39 +02:00
Jan Tojnar e8bfa708c4 meson: Fix rpath clearing
Meson allows projects to set `build_rpath` property, containing paths
that will be added during build but will be removed when installing.

When Meson removes build_rpath from `DT_RUNPATH` entry, it just writes
the shorter ␀-terminated new rpath over the old one to reduce
the risk of potentially breaking the ELF files
(when the linker does string de-duplication or something).
But this can cause much bigger problem for Nix, as it can produce
cut-in-half-by-␀ store path references.

For example, in systemd’s libudev, it was removing three `$ORIGIN`-relative paths from

    $ORIGIN/../libsystemd:$ORIGIN/../basic:$ORIGIN/../shared:…␀

resulting in the following `DT_RUNPATH` entry:

    …␀store/v589pqjhvxrj73g3r0xb41yr84z5pwb7-gcc-9.3.0-lib/lib␀

We previously handled this in `fix-rpath.patch` but the method we prevent
Meson from removing paths added to rpath through `NIX_LDFLAGS` was changed
during 0.55.0 update and I forgot about this second purpose of the patch.

Let’s re-add this clearing code, as it worked without issues for a long time.
2020-08-11 17:48:18 +02:00
Frederik Rietdijk 46ee7ddcad Merge staging-next into staging 2020-08-11 10:26:59 +02:00
Frederik Rietdijk f707715136 Merge master into staging-next 2020-08-11 10:26:35 +02:00
zowoq cea7cd902e buildGoModule packages: set doCheck = false 2020-08-10 16:02:30 +10:00
Alyssa Ross cec26d6391 cmake: fix grep in setupHook
This produced a warning:

> grep: Invalid range end

In a [], - has to come last.

Reported-by: Daniël de Kok <me@danieldk.eu>
Fixes: 75fdc1ced6
2020-08-08 15:12:12 +00:00
Vladimír Čunát 01c2ba8575 Merge branch 'staging-next' into staging 2020-08-04 21:38:08 +02:00
Frederik Rietdijk 26c481b435 Merge master into staging-next 2020-08-04 12:48:50 +02:00
Daniël de Kok 5e7fb7699c Merge pull request #94526 from r-ryantm/auto-update/mill
mill: 0.7.4 -> 0.8.0
2020-08-04 09:17:29 +02:00
Jan Tojnar 5b543ef214 Merge pull request #93011 from jtojnar/meson-0.55.0 2020-08-04 04:04:50 +02:00
R. RyanTM 882179ef72 mill: 0.7.4 -> 0.8.0 2020-08-02 06:42:01 +00:00
R. RyanTM f792659486 bmake: 20200629 -> 20200710 2020-08-01 21:00:22 -07:00
Frederik Rietdijk cee7df4846 Merge staging-next into staging 2020-07-30 18:28:15 +02:00
Matthew Bauer 1a3b07cf8e Merge commit 'b53902f535f2c63d71e916b9de22dbcfeec9d99e' into staging 2020-07-29 18:24:08 -05:00
Matthew Bauer 22f82fc8ca Revert "Merge pull request #94090 from sikmir/fix-cmake-hook"
This reverts commit e36b1d4ad1, reversing
changes made to c2ea7318be.

Should go to staging.
2020-07-29 18:20:56 -05:00
Matthew Bauer e36b1d4ad1 Merge pull request #94090 from sikmir/fix-cmake-hook
cmake: fix CMAKE_FIND_FRAMEWORK
2020-07-29 18:19:57 -05:00
Vladimír Čunát 60d89e5793 Merge branch 'master' into staging 2020-07-29 18:40:28 +02:00
Kevin Rauscher df6e489c4b Bloop: adapt derivation to darwin 2020-07-28 11:36:42 -07:00
Kevin Rauscher 147cab1ee5 Bloop: 1.4.1 -> 1.4.3 2020-07-28 11:36:42 -07:00
Karol Chmist 58f609160c Bloop: rework bloop packaging
* Include all completions
* Update derivation to make it similar to archlinux packaging
2020-07-28 11:36:42 -07:00
Karol Chmist 9a6386fd6f Bloop: 1.3.4 -> 1.4.1 2020-07-28 11:36:42 -07:00
Nikolay Korotkiy b53902f535 cmake: fix CMAKE_FIND_FRAMEWORK 2020-07-28 19:05:43 +03:00
Ryan Burns 3a57356721 cmake: 3.17.3 -> 3.18.0 2020-07-26 18:57:06 +02:00
Michael Weiss b9de39c2a1 scons: 4.0.0 -> 4.0.1 (#93415) 2020-07-19 11:41:41 +02:00
Vladimír Čunát 4244b73917 Merge branch 'master' into staging 2020-07-18 17:50:23 +02:00
Michael Weiss 5b14758d31 Merge pull request #92920 from primeos/scons
scons: 3.1.2 -> 4.0.0
2020-07-18 13:36:29 +02:00
Michael Weiss d41cd156d0 scons: 3.1.2 -> 4.0.0 2020-07-18 10:48:13 +02:00
Jan Tojnar 7dff6d6681 Merge pull request #93166 from jtojnar/cmake-docdir 2020-07-18 06:51:29 +02:00
Profpatsch 595afc2c3f bazel: use installShellCompletion for completions 2020-07-17 15:38:49 +02:00
Profpatsch a06fda4c5d bazel: add fish completions
bazel 3.3 adds a first version of completions for fish shell.

Tested manually whether fish is able to load the completions.
2020-07-17 15:38:49 +02:00
Profpatsch 2ba87b6e79 bazel: use install for completions
Preserving existing behavior: the bash completion was not executable,
the zsh completion was; according to lukegb the fish completion does
not have to be executable.
2020-07-17 15:38:49 +02:00
Jan Tojnar 75fdc1ced6 cmake.setupHook: define shareDocName
The docdir flag needs to include `PROJECT_NAME` according to [GNU guidelines]. We are passing
`-DCMAKE_INSTALL_DOCDIR=${!outputDoc}/share/doc/${shareDocName}` but `$shareDocName` was unset.

The `multiple-outputs.sh` setup hook actually only defines `shareDocName` as a local variable
so it was not available for cmake setup hook. Making it global would be of limited usability,
since it primarily tries to extract the project name from configure script.
Additionally, it would not be set because the setup hook defines `setOutputFlags=`,
preventing the function defining `shareDocName` from running. And lastly, the function
would not run for single-output derivations.

Previously, we tried [not disabling `setOutputFlags`] and passing the directory flags
only for multi-output derivations that do not disable `setOutputFlags` but that meant having
two different branches of code, making it harder to check correctness. The multi-output
one did in fact not work due to aforementioned undefined `shareDocName`. It also broke
derivations that set `setOutputFlags=` like [`qtModule` function does] (probably
because some Qt modules have configure scripts incompatible with `configureFlags` defined
by `multiple-outputs.sh` setup hook). For that reason, it was [reverted], putting us back to start.

Let’s try to extract the project name from CMake in the cmake setup hook.

CMake has a `-L` flag for dumping variables but `PROJECT_NAME` did not seem to be among them
when I tested, so I had to resort to parsing the `CMakeLists.txt` file.

The extraction function is limited, it does not deal with

* project name on different line from the `project(` command opening
    - that will just not get matched so we will fall back to
      using the derivation name
* variable interpolation
    - we will just fall back to using derivation name when the extracted
      `project_name` contains a dollar character
* multiple [`project`] commands
    - The command sets `PROJECT_NAME` variable anew with each call, so the
      last `project` call before `include(GNUInstallDirs)` command will be used
      when the included module would [cache the `CMAKE_INSTALL_DOCDIR` variable].
      We will just take the first discovered `project` command for simplicity.
      Hopefully, there are not many projects that use multiple `project` calls
      before including `GNUInstallDirs`.

In either case, we will have some subdirectory so the conflicts will be minimized.

[GNU guidelines]: https://www.gnu.org/prep/standards/html_node/Directory-Variables.html#index-docdir
[not disabling `setOutputFlags`]: https://github.com/NixOS/nixpkgs/commit/be1b22538a60e52987d238bb11f93043682b6e9a
[`qtModule` function  does]: https://github.com/NixOS/nixpkgs/pull/12740
[reverted]: https://github.com/NixOS/nixpkgs/pull/92298
[`PROJECT_NAME`]: https://cmake.org/cmake/help/v3.18/variable/PROJECT_NAME.html
[`project`]: https://cmake.org/cmake/help/v3.18/command/project.html
[cache the `CMAKE_INSTALL_DOCDIR` variable]: https://github.com/Kitware/CMake/blob/92e30d576d66ac05254bba0f0ff7d655947beb0f/Modules/GNUInstallDirs.cmake#L298-L299
2020-07-16 04:38:07 +02:00
Daniël de Kok d2754e07bb Merge pull request #92914 from danieldk/rocm-opencl
rocm-opencl-icd: init at 3.5.0
2020-07-15 18:55:53 +02:00
Daniël de Kok 4ba7e9aa8e rocm-cmake: init at 3.5.0 2020-07-13 20:00:20 +02:00
Daniël de Kok 9730290b77 Merge pull request #92939 from RaghavSood/mage/1.10.0
mage: 1.9.0 -> 1.10.0
2020-07-13 15:56:40 +02:00
Vladimír Čunát 377324ca6d Merge branch 'staging-next' (PR #91090) 2020-07-13 07:13:56 +02:00
Jan Tojnar d8ac41f863 meson: 0.54.2 → 0.55.0
https://mesonbuild.com/Release-notes-for-0-55-0.html
https://github.com/mesonbuild/meson/releases/tag/0.55.0
https://github.com/mesonbuild/meson/compare/0.54.2...0.55.0
2020-07-12 19:56:33 +02:00
Jan Tojnar c19222143e meson: clean up 2020-07-12 19:56:24 +02:00
Raghav Sood 881c92f68f mage: 1.9.0 -> 1.10.0 2020-07-11 16:06:12 +00:00
Frederik Rietdijk ae8eee9c3f Merge master into staging-next 2020-07-11 08:59:54 +02:00
Christian Kögler 30a2f40336 redo-c: Initial 0.2 2020-07-10 00:48:57 +02:00
Mario Rodas a6fad046a8 Merge pull request #92555 from r-ryantm/auto-update/redo-apenwarr
redo-apenwarr: 0.42a -> 0.42c
2020-07-07 19:33:19 -05:00
R. RyanTM ed9f1b36b3 mill: 0.7.3 -> 0.7.4 2020-07-07 10:04:15 -07:00
Mario Rodas 005b5770f4 redo-apenwarr: install bash completion 2020-07-07 04:20:00 -05:00
Mario Rodas a12ccb7f3e redo-apenwarr: update meta 2020-07-07 04:20:00 -05:00
R. RyanTM abe8394a5b redo-apenwarr: 0.42a -> 0.42c 2020-07-07 08:01:26 +00:00