367 Commits

Author SHA1 Message Date
Philip Taron
f454526a40 requireFile: set unfree license by default (#515536) 2026-05-28 00:06:54 +00:00
Tom Hunze
009aa0c916 doc: clarify effect of meta.hydraPlatforms on reverse dependencies 2026-05-27 15:02:42 +02:00
Ethan Carter Edwards
9d2f2d71e4 doc: add meta.donationPage
This might be a nice way to use our reach to remind users to donate to
FLOSS projects that they use and love.

Signed-off-by: Ethan Carter Edwards <ethan@ethancedwards.com>
2026-05-27 00:36:21 -07:00
Hans Joachim Kliemeck
8478c2384b stdenv: Package URL (PURL) metadata fields 2026-05-26 21:47:54 +02:00
Doron Behar
1fdac5afd2 doc/stdenv/cross-compilation: expand a bit emulation example 2026-05-05 11:17:23 +03:00
Ben Siraphob
0e825df664 doc/stdenv/cross-compilation: revamp and add emulation Q&A 2026-05-05 00:05:04 -07:00
Jack Rosenberg
4683c143f3 doc/stdenv: add a note about __structuredAttrs 2026-04-15 22:32:46 +02:00
nikstur
8b1ea2652a stdenv.meta: Fix erroneous CPE generation and documentation (#508061) 2026-04-11 00:44:48 +00:00
Samuel Dionne-Riel
95584fa133 doc/meta: Drop incorrect cpePatchVersionInUpdateWithVendor
See the previous commit for the explanation as to why this is an invalid
value. See the follow-up commits for the complete removal of the
helpers.
2026-04-08 16:18:27 -04:00
Samuel Dionne-Riel
8b81adddcd doc/meta: Fix documentation and example for update CPE field
The previous claims are unsourced, since they are not supported by the
source given for CPEs.

Quoting from the 5.3.3.5 section of the NISTIR 7695 document:

> Values for this attribute SHOULD be vendor-specific alphanumeric
> strings characterizing the particular update, service pack, or
> point release of the product.

So, first, they should be ***vendor-specific***, and dare I say,
vendor-specified. But let's not trip on the carpet's flower pattern, and
instead look at evidence from data.

Using the data from `official-cpe-dictionary_v2.3.xml`, gently massaged
into a form that can be queried, we can list all known CPE expressions
for glibc.

There is only one known entry using the `update` field. It's:

```
cpe:2.3:a:gnu:glibc:2.0.5🅱️*:*:*:*:*:*
```

As such, the current example is plainly and demonstrably wrong.

```
SELECT * FROM cpe
WHERE cpe_update != ''
   AND cpe_vendor = 'gnu'
   AND cpe_product = 'glibc'
ORDER BY cpe_vendor, cpe_product, cpe_version

id    |title            |cpe_part|cpe_vendor|cpe_product|cpe_version|cpe_update|cpe_edition|cpe_language|cpe_sw_edition|cpe_target_sw|cpe_target_hw|cpe_other|
------+-----------------+--------+----------+-----------+-----------+----------+-----------+------------+--------------+-------------+-------------+---------+
460867|GNU glibc 2.0.5 B|a       |gnu       |glibc      |2.0.5      |b         |           |            |              |             |             |         |
```

Let's see good examples of `cpe_product` in contrast:

```
SELECT * FROM cpe
WHERE cpe_update != ''
   AND cpe_vendor = 'gnu'
   AND cpe_product = 'bash'
ORDER BY cpe_vendor, cpe_product, cpe_version DESC
LIMIT 10

id    |title                                                         |cpe_part|cpe_vendor|cpe_product|cpe_version|cpe_update|cpe_edition|cpe_language|cpe_sw_edition|cpe_target_sw|cpe_target_hw|cpe_other|
------+--------------------------------------------------------------+--------+----------+-----------+-----------+----------+-----------+------------+--------------+-------------+-------------+---------+
460088|GNU Bourne-Again SHell bash (GNU Bash) 4.3.30 Beta 1          |a       |gnu       |bash       |4.3.30     |beta1     |           |            |              |             |             |         |
460086|GNU Bourne-Again SHell bash (GNU Bash) 4.2.53 Beta 1          |a       |gnu       |bash       |4.2.53     |beta1     |           |            |              |             |             |         |
460081|GNU Bourne-Again SHell bash (GNU Bash) 3.2.57 Beta 1          |a       |gnu       |bash       |3.2.57     |beta1     |           |            |              |             |             |         |
460140|GNU Bourne-Again SHell bash (GNU Bash) 5.2                    |a       |gnu       |bash       |5.2        |-         |           |            |              |             |             |         |
460141|GNU Bourne-Again SHell bash (GNU Bash) 5.2 Alpha              |a       |gnu       |bash       |5.2        |alpha     |           |            |              |             |             |         |
460142|GNU Bourne-Again SHell bash (GNU Bash) 5.2 Beta               |a       |gnu       |bash       |5.2        |beta      |           |            |              |             |             |         |
460143|GNU Bourne-Again SHell bash (GNU Bash) 5.2 Release Candidate 1|a       |gnu       |bash       |5.2        |rc1       |           |            |              |             |             |         |
460144|GNU Bourne-Again SHell bash (GNU Bash) 5.2 Release Candidate 2|a       |gnu       |bash       |5.2        |rc2       |           |            |              |             |             |         |
460145|GNU Bourne-Again SHell bash (GNU Bash) 5.2 Release Candidate 3|a       |gnu       |bash       |5.2        |rc3       |           |            |              |             |             |         |
460146|GNU Bourne-Again SHell bash (GNU Bash) 5.2 Release Candidate 4|a       |gnu       |bash       |5.2        |rc4       |           |            |              |             |             |         |
```
2026-04-08 16:18:11 -04:00
Samuel Dionne-Riel
e52e23f041 doc/meta: Fix documentation for edition CPE field
The field could have been simply removed from the list, as it is not
used, but it should be present in that form at least for *some
undefined* length of time to present as a correction for anyone using
the `edition` field mistakenly.

My claim comes from the literal source listed in the next paragraph
(NISTIR 7695), the first few words of `5.3.3.6` are:

> The edition attribute is considered deprecated

Thus we consider it deprecated.

Furthermore the section documents that it should be using the value
`ANY`. It could be considered debatable as `NA` should be used “when
there is no legal or meaningful value for that attribute, or when
that attribute is not used as part of the description”... But the spec
states that `ANY` should be used, so we state `ANY` should be used.
2026-04-08 16:18:09 -04:00
Samuel Dionne-Riel
9ac62ecd61 doc/meta: Reword *logical values* for CPEs
The original wording missed the *not meaningful* nuance, and adding an
`or` clause within the sentence would have made it hard to understand.

Instead, it is now split into a list, and ordered in the same order as
found in `5.3.1` in NISTIR 7695.

The logical name used by the specification (ANY/NA) was also added.
2026-04-08 16:18:06 -04:00
Philip Taron
9bc7474da5 doc: document pkgs<theirHost><theirTarget> better (#506577) 2026-04-06 22:56:14 +00:00
Axel Karjalainen
9fdde482ab doc: document pkgs<theirHost><theirTarget> better
Inspiration taken from code comments in `pkgs/top-level/stage.nix`.
2026-04-04 14:20:54 +03:00
Ulysses Zhan
ef398065f1 lib.sourceTypes: add obfuscatedCode 2026-04-02 20:42:34 -07:00
Connor Baker
b6eb3c45b6 Marry meta.broken with meta.problems (#494416) 2026-03-24 20:29:27 +00:00
Silvan Mosberger
2e97caa6d3 stdenv: Use meta.problems for meta.broken underneath
And add tests for it
2026-03-13 19:36:57 +01:00
Robert Scott
d8d07a0e82 bintools-wrapper: disable libcxxhardeningextensive hardening flag by default 2026-02-14 11:40:27 +00:00
Robert Scott
9a6599e26f bintools-wrapper: enable strictflexarrays1 hardening flag by default (#473648) 2026-02-11 22:11:13 +00:00
Notarin Steele
34513330fc doc/stdenv: revise line in Fixed-point arguments of mkDerivation
The line was in grammatical error or plain confusing, it has been revised to be grammatically correct, as well as revised to be a bit more technically correct, as well as useful to the reader.
Fixes #488258

Co-authored-by: Robert Hensing <robert@roberthensing.nl>
2026-02-08 10:36:03 -05:00
Tobias Mayer
cda3c8a1d5 doc/stdenv: add a note about strictDeps 2025-12-26 15:04:24 +01:00
Robert Scott
6980bafab2 bintools-wrapper: enable strictflexarrays1 hardening flag by default 2025-12-23 19:06:56 +00:00
André Schröder
69c7504aa6 doc: align formatting in dependency type tables 2025-12-10 11:32:28 +01:00
Randy Eckenrode
8cb151b37a doc/stdenv/platform-notes: update default minimum and SDK versions 2025-11-27 20:11:46 -05:00
Randy Eckenrode
ad49226f57 doc/stdenv/platform-notes: add Xcode 26 to the SDK version table 2025-11-27 20:11:46 -05:00
nixpkgs-ci[bot]
6c808af182 Merge staging-next into staging 2025-10-20 00:18:46 +00:00
d068328
e47455f51d Revert "stdenv: pURL implementation (#421125)"
This reverts commit 5427115670, reversing
changes made to 88ee2ac331.
2025-10-18 20:41:01 +00:00
nixpkgs-ci[bot]
a0b480d243 Merge staging-next into staging 2025-10-17 12:08:07 +00:00
Arian van Putten
5427115670 stdenv: pURL implementation (#421125) 2025-10-17 09:30:32 +00:00
Hans Joachim Kliemeck
81dc446ee3 stdenv: pURL review suggestions - align naming
Co-authored-by: Philippe Ombredanne <pombredanne@gmail.com>
2025-10-10 17:17:13 +02:00
Hans Joachim Kliemeck
25f90d7d20 stdenv: pURL review suggestions - part 3 2025-10-10 14:38:19 +02:00
Randy Eckenrode
56ac9bffa3 doc/stdenv/platform-notes: update Xcode version to SDK version table 2025-10-09 18:23:26 -04:00
Randy Eckenrode
5c2b79edfa cc-wrapper: make availability warnings into errors (#445119) 2025-10-09 13:19:04 -04:00
Robert Scott
2a45fd1039 cc-wrapper: add support for libcxxhardeningfast/extensive hardening flags
as with glibcxxassertions, we don't yet have a nice mechanism
for deferring support decisions to the c++ library in use, so
for now at least enabling this hardening flag will cause
_LIBCPP_HARDENING_MODE to be defined on all compilers
2025-10-08 18:53:17 +01:00
Hans Joachim Kliemeck
2e46d00d76 stdenv: pURL docu enhancements & list interface 2025-10-03 21:19:09 +00:00
h0nIg
4e2614fc07 stdenv: pURL implementation 2025-10-03 21:19:09 +00:00
Luna Nova
834e9652c3 doc: drop pie flag from sec-hardening-in-nixpkgs 2025-09-30 09:21:41 -07:00
Randy Eckenrode
2045438314 doc/stdenv/platform-notes: add section about availability checks 2025-09-29 21:33:09 -04:00
Randy Eckenrode
cdb5d3a13c doc/stdenv/platform-notes: add section about libc++ 2025-09-15 19:24:08 +01:00
Yuriy Taraday
dd12290517 Reapply "stdenv: Add CPE fields to meta"
This reverts commit de74f9caf0.
2025-09-15 17:25:11 +02:00
Vladimír Čunát
d95b37aeac Merge branch 'staging' into staging-next 2025-08-30 17:06:43 +02:00
K900
de74f9caf0 Revert "stdenv: Add CPE fields to meta" 2025-08-30 09:29:43 +03:00
K900
e4f14776e7 Merge remote-tracking branch 'origin/staging-next' into staging 2025-08-30 09:19:01 +03:00
Silvan Mosberger
e83e8dacb1 stdenv: Add CPE fields to meta (#409797) 2025-08-29 21:47:54 +02:00
Fabián Heredia Montiel
3e04a8f0a8 Merge remote-tracking branch 'origin/staging-next' into staging 2025-08-29 13:28:18 -06:00
Robert Scott
d3afbb6da9 cc-wrapper: add glibcxxassertions hardening flag (#414987) 2025-08-29 20:20:39 +01:00
winston
7fd2872828 doc: replace path import path in separateDebugInfo with channel 2025-08-29 16:21:18 +02:00
winston
42882346bf doc: prefer makeSearchPathOutput over symlinkJoin for separateDebugInfo
Avoids building an intermediate derivation and just uses a
colon-separated environment variable instead.
2025-08-29 16:21:18 +02:00
Yuriy Taraday
b0ce3dc09f stdenv: Add CPE fields to meta
Add `identifiers` attr to `meta` attribute with following attrs:
* `cpe` with the full CPE string when available
* `possibleCPEs` with the list of potential CPEs when not all
  information is provided
* `cpeParts` with the destructured CPE string, allowing to override it
  whenever needed
* `v1` attribute set with `cpe` and `cpeParts` from above and a
  guarantee of a backwards-compatible interface

Related issue: https://github.com/NixOS/nixpkgs/issues/354012
2025-08-29 15:40:03 +02:00
Ben Siraphob
cc5b731ed3 doc: fix typos 2025-08-27 11:46:26 -07:00