Compare commits

...
Sign in to create a new pull request.

149 commits

Author SHA1 Message Date
Benjamin A. Beasley
952167e474 Update to version 2316 2026-01-11 22:33:26 +00:00
Benjamin A. Beasley
0875b2d02d Update to version 2315 2026-01-07 20:06:56 +00:00
Benjamin A. Beasley
4af9583045 Update to version 2311 2025-12-24 14:40:30 +00:00
Benjamin A. Beasley
c1afa58f48 Update to version 2308 2025-12-09 22:03:45 +00:00
Benjamin A. Beasley
36064405dc Update to version 2295
- In the version number, change the style of the snapshot information
2025-11-20 13:16:54 +00:00
Benjamin A. Beasley
f43f0ad9a6 Improve .rpmlintrc file
[skip changelog]
2025-11-20 13:16:54 +00:00
Benjamin A. Beasley
65ffbd3649 Update to version 2291 2025-11-11 22:16:23 +00:00
Benjamin A. Beasley
fd3fd4fe6c Update to version 2288 2025-11-04 11:37:19 +00:00
Benjamin A. Beasley
1abba8dfb8 Update to version 2287 2025-10-09 11:34:48 +01:00
Benjamin A. Beasley
27a42b99aa Update to version 2285 2025-09-24 22:45:08 +01:00
Benjamin A. Beasley
86fcbb4d33 Update to version 2281 2025-09-13 07:11:22 +01:00
Benjamin A. Beasley
c84c6200e3 Update to version 2279 2025-09-01 00:54:40 +01:00
Benjamin A. Beasley
d8716d8543 Update to version 2276 2025-08-11 22:01:54 -04:00
Fedora Release Engineering
32594252bd Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 22:37:29 +00:00
Benjamin A. Beasley
b589f6b8c1 Update to version 2256 2025-07-09 21:48:13 -04:00
Benjamin A. Beasley
e07e515ea4 Update to version 2251 2025-06-14 09:12:01 -04:00
Benjamin A. Beasley
3e7b741305 Update to version 2239 2025-05-30 16:43:15 -04:00
Benjamin A. Beasley
189a3fae75 Update to version 2237 2025-05-24 20:18:16 -04:00
Benjamin A. Beasley
de01fbb531 Update to version 2236 2025-05-20 23:06:44 -04:00
Benjamin A. Beasley
adeca33697 Update to version 2235 2025-05-16 12:12:30 -04:00
Benjamin A. Beasley
32331d0f91 Update to version 2234 2025-05-02 08:24:47 -04:00
Benjamin A. Beasley
aed177ba72 Update to version 2232 2025-04-25 07:02:10 -04:00
Benjamin A. Beasley
8e45169c73 Update to version 2223 2025-04-03 18:00:30 -04:00
Benjamin A. Beasley
0824ade5b3 Update to version 2222 2025-03-16 10:04:16 -04:00
Benjamin A. Beasley
ecbc7af8e1 Update to version 2221 2025-03-08 08:28:06 -05:00
Benjamin A. Beasley
8aa638799f Update to version 2214 2025-03-03 11:07:47 -05:00
Benjamin A. Beasley
74053eb733 Update to version 2213 2025-03-03 09:54:05 -05:00
Benjamin A. Beasley
58ffccddb8 Update to version 2209 2025-01-29 07:45:56 -05:00
Fedora Release Engineering
83c011845b Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 22:32:24 +00:00
Benjamin A. Beasley
ecef2bd637 Update to version 2207 2025-01-15 20:26:21 -05:00
Benjamin A. Beasley
ede18da20f Update to version 2206 2024-12-27 08:01:58 -05:00
Benjamin A. Beasley
2e04899e00 Add a SourceLicense field 2024-12-12 11:15:26 -05:00
Benjamin A. Beasley
5218a44220 Update to version 2204 2024-11-29 10:32:11 -05:00
Benjamin A. Beasley
53eabfdf43 Invoke build/gen.py in %conf rather than in %build 2024-10-31 21:32:50 -04:00
Benjamin A. Beasley
0149e67155 Update to version 2201 2024-10-17 13:59:35 -04:00
Benjamin A. Beasley
2188dff3ba Update to version 2200 2024-09-25 16:13:14 -04:00
Benjamin A. Beasley
4b8d2a4b43 Update to version 2198 2024-09-12 16:56:40 -04:00
Benjamin A. Beasley
a83342dc49 Update to version 2190 2024-08-24 16:36:15 -04:00
Benjamin A. Beasley
821e02b799 Update to version 2188 2024-08-21 10:24:53 -04:00
Benjamin A. Beasley
5337f604c9 Update to version 2187 2024-08-18 21:58:39 -04:00
Benjamin A. Beasley
0df6aee3ca Update to version 2185 2024-08-15 11:23:58 -04:00
Benjamin A. Beasley
d3129fb59d Update to version 2180 2024-08-12 13:38:55 -04:00
Benjamin A. Beasley
8db10957a3 Update to version 2179 2024-08-07 17:17:24 -04:00
Benjamin A. Beasley
afe29b86f3 Update to version 2178 2024-08-06 10:16:34 -04:00
Benjamin A. Beasley
2aa978dede Update to version 2177 2024-07-31 17:13:08 -04:00
Fedora Release Engineering
b13eb7cbc8 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 02:51:15 +00:00
Benjamin A. Beasley
e263b3ca60 Update to version 2175 2024-06-11 15:28:01 -04:00
Benjamin A. Beasley
8fbfb6e52b Update to version 2174 2024-06-07 09:07:44 -04:00
Benjamin A. Beasley
8b4da0ec43 Correct SPDX License expression 2024-05-31 15:21:30 -04:00
Benjamin A. Beasley
a694624c92 Update to version 2171 2024-05-30 08:59:48 -04:00
Benjamin A. Beasley
9b0e720ff7 Use git to generate downstream patches 2024-05-30 08:52:26 -04:00
Benjamin A. Beasley
2b9adbe9ec Update to version 2168 2024-05-14 13:55:50 -04:00
Benjamin A. Beasley
0ff3abb704 Update to version 2166 2024-05-09 11:30:17 -04:00
Benjamin A. Beasley
1b02b7ebf3 Update to version 2164 2024-04-18 23:46:32 -04:00
Benjamin A. Beasley
ce54ea6a3e Update to version 2163 2024-04-10 16:26:18 -04:00
Benjamin A. Beasley
45774367ae Update to version 2161 2024-04-03 10:10:16 -04:00
Benjamin A. Beasley
c5b262b90c Update to version 2160 2024-03-29 00:49:31 -04:00
Benjamin A. Beasley
9fd5e144a3 Update to version 2159 2024-03-26 20:28:59 -04:00
Benjamin A. Beasley
e023865fd8 Update to version 2157 2024-03-15 08:18:22 -04:00
Benjamin A. Beasley
f68c848ec7 Add an rpmlintrc file
[skip changelog]
2024-03-15 08:18:05 -04:00
Benjamin A. Beasley
0833fd4bfe Update to version 2155 2024-03-08 10:19:49 -05:00
Benjamin A. Beasley
7ae417918f Bump release to upgrade F38 2024-03-04 11:31:40 -05:00
Benjamin A. Beasley
e370032a44 Update to version 2154 2024-02-29 19:18:32 -05:00
Benjamin A. Beasley
0bd1f7b3a0 Respect %_smp_build_ncpus 2024-02-29 19:18:16 -05:00
Benjamin A. Beasley
2ae74ed7d3 F39+: Form short commit hash without a subshell
[skip changelog]
2024-02-26 23:27:32 -05:00
Benjamin A. Beasley
f2e556b4ca Update to version 2150 2024-02-26 13:04:53 -05:00
Benjamin A. Beasley
801aa1a1fa Update to version 2149 2024-02-22 16:31:09 -05:00
Benjamin A. Beasley
3de364052b Update to version 2146 2024-02-16 08:52:08 -05:00
Benjamin A. Beasley
fce8500fca Update to version 2145 2024-02-15 13:32:16 -05:00
Benjamin A. Beasley
38c9cf4a46 Update to version 2144 2024-02-14 16:11:47 -05:00
Benjamin A. Beasley
a30b0c8bbd Update to version 2143 2024-01-27 10:27:29 -05:00
Benjamin A. Beasley
8cbfbdeed3 Update to version 2140 2024-01-22 19:56:25 -05:00
Benjamin A. Beasley
2936107dff Update to version 2139 2024-01-20 12:29:18 -05:00
Fedora Release Engineering
b8935c60e7 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 22:47:32 +00:00
Benjamin A. Beasley
c8b6e02d7e Update to version 2136 2024-01-16 11:12:59 -05:00
Benjamin A. Beasley
ad4d54a2cb Update to version 2135 2024-01-15 08:20:17 -05:00
Benjamin A. Beasley
85273bf546 Update to version 2134 2024-01-13 10:19:57 -05:00
Benjamin A. Beasley
23fe95aa33 Update to version 2131 2023-12-19 16:43:58 -05:00
Benjamin A. Beasley
30c7672ba4 Update to version 2130 2023-11-28 12:16:04 -05:00
Benjamin A. Beasley
10ef398a63 Update to version 2129 2023-11-23 09:14:51 -05:00
Benjamin A. Beasley
a847223663 Update to version 2128 2023-11-20 10:52:47 -05:00
Benjamin A. Beasley
de17e6799e Update to version 2127 2023-11-15 09:42:16 -05:00
Benjamin A. Beasley
a73f821b5e Update to version 2125 2023-11-13 10:48:19 -05:00
Benjamin A. Beasley
2611aec4dc Update to version 2124 2023-10-24 11:39:57 -04:00
Benjamin A. Beasley
1e5256b677 Update to version 2123 2023-10-20 16:04:07 -04:00
Benjamin A. Beasley
1c065a9c1a Update to version 2122 2023-10-12 07:37:23 -04:00
Benjamin A. Beasley
2d54be1158 Drop gn-5e19d2fb166f-redundant-move.patch
- This isn’t needed since we tolerate warnings
2023-10-12 07:36:33 -04:00
Benjamin A. Beasley
48d8421f10 Drop the “werror” bcond
- Always allow warnings
2023-10-12 07:35:49 -04:00
Benjamin A. Beasley
13bca80ef2 Update to version 2121 2023-09-13 09:13:26 -04:00
Benjamin A. Beasley
0f693cb009 Update to version 2119 2023-08-10 12:39:00 -04:00
Benjamin A. Beasley
b6ff1da1f0 Update to version 2118 2023-08-03 09:50:19 -04:00
Benjamin A. Beasley
01cc7898b4 Update to version 2117 2023-07-27 11:34:47 -04:00
Benjamin A. Beasley
30ed8a0705 Update to version 2115 2023-07-26 12:15:49 -04:00
Fedora Release Engineering
ef3f3d7ae3 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 23:27:45 +00:00
Benjamin A. Beasley
1cd6734415 Update to version 2114 2023-07-12 15:01:52 -04:00
Benjamin A. Beasley
036d689f43 Update to version 2113 2023-07-11 08:36:10 -04:00
Benjamin A. Beasley
c353fbb5f2 Update to version 2109 2023-06-18 10:00:02 -04:00
Benjamin A. Beasley
cfa88836e0 Use new (rpm 4.17.1+) bcond style 2023-06-18 09:59:17 -04:00
Benjamin A. Beasley
bda4f62a87 Remove explicit %set_build_flags, not needed since F36
https://www.fedoraproject.org/wiki/Changes/SetBuildFlagsBuildCheck
2023-06-03 10:20:34 -04:00
Benjamin A. Beasley
c35ea160b3 Update to version 2106 2023-05-29 13:24:59 -04:00
Benjamin A. Beasley
de7ba8f9d4 Form the short commit hash with only shell builtins
[skip changelog]
2023-05-25 08:49:00 -04:00
Benjamin A. Beasley
14ecfdd44b Update to version 2105 2023-05-21 09:36:42 -04:00
Benjamin A. Beasley
72d426a134 Update to version 2104 2023-05-18 14:30:19 -04:00
Benjamin A. Beasley
d7877acdfa Update to version 2092 2023-05-10 15:38:08 -04:00
Benjamin A. Beasley
f46b4d6427 Remove gn-5e19d2fb166f-stdint.patch since it is now upstream 2023-04-19 09:08:21 -04:00
Benjamin A. Beasley
b9b44a8680 Update to version 2088 2023-04-19 08:51:50 -04:00
Benjamin A. Beasley
20e9e31a70 Update to version 2087 2023-04-08 17:53:07 -04:00
Benjamin A. Beasley
a715369097 Update to version 2086 2023-04-06 07:53:29 -04:00
Benjamin A. Beasley
4b0a180b6a Update to version 2084 2023-03-19 15:53:40 -04:00
Benjamin A. Beasley
073f42d093 Fix updating access time in snapshot info 2023-03-19 15:53:32 -04:00
Benjamin A. Beasley
b8c0b4a6a9 Update to version 2082 2023-02-26 13:25:19 -05:00
Benjamin A. Beasley
457105e3cc Update to version 2081 2023-02-20 10:11:07 -05:00
Benjamin A. Beasley
b15d47c983 Update to version 2080 2023-02-09 14:58:37 -05:00
Benjamin A. Beasley
acd6b054b5 Update to version 2079 2023-01-31 10:23:20 -05:00
Benjamin A. Beasley
e9173881ee Updated comment on redundant move patch 2023-01-23 10:14:24 -05:00
Benjamin A. Beasley
12a043d8eb Add two patches for GCC 13 2023-01-19 09:42:20 -05:00
Benjamin A. Beasley
3d37155cde Build without -Werror
It makes sense for upstream CI and with carefully controlled compiler
versions, but it is too strict for downstream use.
2023-01-19 09:23:27 -05:00
Fedora Release Engineering
7b6b06a00c Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 05:20:00 +00:00
Benjamin A. Beasley
944c0d55b8 Leaf package: remove i686 support 2022-12-19 22:20:10 -05:00
Benjamin A. Beasley
d186d1e6df Indicate dirs. in files list with trailing slashes 2022-12-19 22:19:44 -05:00
Benjamin A. Beasley
84e69ea8c0 Update to version 2077 2022-12-14 17:19:50 -05:00
Benjamin A. Beasley
c997ab7a40 Update to version 2073 2022-12-02 08:10:16 -05:00
Benjamin A. Beasley
b6c13a72f3 Update to version 2072 2022-11-13 15:19:53 -05:00
Benjamin A. Beasley
81d1f1eb18 Update to version 2071 2022-10-29 08:38:17 -04:00
Benjamin A. Beasley
fd6b5123fc Update to version 2067 2022-10-22 09:11:03 -04:00
Benjamin A. Beasley
b1f7c19a40 Update to version 2066 2022-10-19 14:19:44 -04:00
Benjamin A. Beasley
4cb303c73b Update to version 2065 2022-10-08 08:51:35 -04:00
Benjamin A. Beasley
b35e707a10 Update to version 2064 2022-09-20 09:28:42 -04:00
Benjamin A. Beasley
a607f60736 Update to version 2059 2022-09-11 11:27:00 -04:00
Benjamin A. Beasley
6a82965c3c Update to version 2058 2022-09-06 08:38:23 -04:00
Benjamin A. Beasley
9972ac2bcd Update to version 2057 2022-08-30 14:21:42 -04:00
Benjamin A. Beasley
3cf93a2e74 Update to version 2056 2022-08-13 19:54:08 -04:00
Benjamin A. Beasley
0d83bbc0d3 Fix typo in SPDX expression 2022-08-04 13:08:39 -04:00
Benjamin A. Beasley
03a94356f5 Update to version 2051 2022-08-03 15:19:00 -04:00
Benjamin A. Beasley
25c56d51ef Convert License to SPDX 2022-08-03 15:19:00 -04:00
Fedora Release Engineering
a213b8f6ec Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-21 06:41:36 +00:00
Benjamin A. Beasley
3d3fbbef57 Update to version 2050 2022-07-14 11:45:37 -04:00
Benjamin A. Beasley
4be5c9c2c6 Update to version 2049 2022-07-06 20:46:12 -04:00
Benjamin A. Beasley
bf61682225 Update to version 2047 2022-06-23 12:19:34 -04:00
Benjamin A. Beasley
35350a4d19 Update to version 2043 2022-06-15 09:58:13 -04:00
Benjamin A. Beasley
88e21d727d Update to version 2042 2022-06-13 11:17:18 -04:00
Benjamin A. Beasley
f0e9021d41 Update to version 2041 2022-06-08 08:22:03 -04:00
Benjamin A. Beasley
4b9e5ec35d Add patch upstream status for gn-0153d369-no-O3.patch 2022-05-02 16:30:40 -04:00
Benjamin A. Beasley
d1b021ecaf Handle snapshot info the “modern” way, in the Version 2022-05-01 09:55:48 -04:00
Benjamin A. Beasley
6bf1caa702 Improve handling of bundled ICU components 2022-04-30 15:53:46 -04:00
Benjamin A. Beasley
fade8c242f Stop numbering patches 2022-04-16 08:24:05 -04:00
Benjamin A. Beasley
893ec9012c Update to version 2014 2022-04-13 13:26:14 -04:00
Benjamin A. Beasley
be1b65e0db Update to version 2011 2022-04-07 18:02:29 -04:00
Benjamin A. Beasley
6f46f89000 Update to version 1998 2022-03-31 17:16:36 -04:00
10 changed files with 468 additions and 90 deletions

155
.gitignore vendored
View file

@ -1,37 +1,118 @@
/64b3b9401c1c3ed5f3c43c1cac00b91f83597ab8.tar.gz
/gn-64b3b940.tar.gz
/gn-b2e3d862.tar.gz
/gn-a95c8a3c.tar.gz
/gn-dba01723.tar.gz
/gn-6771ce56.tar.gz
/gn-39a87c0b.tar.gz
/gn-d2dce752.tar.gz
/gn-e9b84332.tar.gz
/gn-d924640c.tar.gz
/gn-4d207c94.tar.gz
/gn-24e2f7df.tar.gz
/gn-d565aa3e.tar.gz
/gn-eea3906f.tar.gz
/gn-69ec4fca.tar.gz
/gn-46b572ce.tar.gz
/gn-07e2e1b9.tar.gz
/gn-de86ec41.tar.gz
/gn-0153d369.tar.gz
/gn-693f9fb8.tar.gz
/gn-8926696a.tar.gz
/gn-90294ccd.tar.gz
/gn-18512455.tar.gz
/gn-4aa9bdfa.tar.gz
/gn-b7903130.tar.gz
/gn-e0afadf7.tar.gz
/gn-d417bc7e.tar.gz
/gn-2e56c317.tar.gz
/gn-281ba2c9.tar.gz
/gn-f1b14125.tar.gz
/gn-80a40b07.tar.gz
/gn-4b613b10.tar.gz
/gn-377f566a.tar.gz
/gn-6109f626.tar.gz
/gn-d7c2209c.tar.gz
/gn-f27bae88.tar.gz
/gn-bd99dbf9.tar.gz
*.bak
*.gypcmd
*.mk
*.ncb
*.opensdf
*.orig
*.pdb
*.props
*.pyc
*.pyproj
*.rules
*.sdf
*.sln
*.sublime-project
*.sublime-workspace
*.suo
*.targets
*.user
*.vc.opendb
*.vcproj
*.vcxproj
*.vcxproj.filters
*.vpj
*.vpw
*.vpwhistu
*.vtg
*.xcodeproj
*.xcworkspace
*.VC.db
*_proto.xml
*_proto_cpp.xml
*~
!Android.mk
.*.sw?
.DS_Store
.cache
.cipd
.classpath
.cproject
.gdb_history
.gdbinit
.landmines
.metadata
.project
.pydevproject
.recipe_deps
.checkstyle
/clang
compile_commands.json
cscope.*
out/
GPATH
GRTAGS
GSYMS
GTAGS
Session.vim
tags
Thumbs.db
# Settings directories for eclipse
/.externalToolBuilders/
/.settings/
/.vs/
# Visual Studio Code
/.vscode/
/_out
# VSChromium configuration file
vs-chromium-project.txt
/gn-22581fb46c0c.tar.gz
/gn-cfddfffb7913.tar.gz
/gn-93ee9b91423c.tar.gz
/gn-415b3b19e094.tar.gz
/gn-d823fd85da3f.tar.gz
/gn-155c53952ec2.tar.gz
/gn-b0c2742896b6.tar.gz
/gn-df98b86690c8.tar.gz
/gn-d010969ecc31.tar.gz
/gn-b3a0bff47dd8.tar.gz
/gn-b2afae122eeb.tar.gz
/gn-0ee833e823f2.tar.gz
/gn-8f2193f70793.tar.gz
/gn-05eed8f6252e.tar.gz
/gn-449f3e4dfb45.tar.gz
/gn-54f5b539df8c.tar.gz
/gn-32f63e70484f.tar.gz
/gn-d010e218ca70.tar.gz
/gn-225e90c5025b.tar.gz
/gn-20806f79c6b4.tar.gz
/gn-95b0f8fe31a9.tar.gz
/gn-feafd1012a32.tar.gz
/gn-468c6128db7f.tar.gz
/gn-c97a86a72105.tar.gz
/gn-ed1abc107815.tar.gz
/gn-ab638bd7cbb9.tar.gz
/gn-4a8016dc3915.tar.gz
/gn-3d0d3445f67d.tar.gz
/gn-7a8aa3a08a13.tar.gz
/gn-18602f6cf116.tar.gz
/gn-6e8e0d6d4a15.tar.gz
/gn-90478db6b59b.tar.gz
/gn-487f8353f154.tar.gz
/gn-0c25d1bbde6e.tar.gz
/gn-cad8f67e2dd0.tar.gz
/gn-ebc8f16ca7b0.tar.gz
/gn-afd24ed11bc5.tar.gz
/gn-54169531ed6d.tar.gz
/gn-635a71e20e99.tar.gz
/gn-c15bfa41e526.tar.gz
/gn-5d0a4153b0bc.tar.gz
/gn-aa3ecaecac29.tar.gz
/gn-81b24e01531e.tar.gz
/gn-07d3c6f4dc29.tar.gz
/gn-092f4f0d612e.tar.gz
/gn-e7f3202128bd.tar.gz
/gn-c5a0003bcc2a.tar.gz
/gn-5964f4997670.tar.gz
/gn-64d35867ca0a.tar.gz
/gn-5550ba0f4053.tar.gz
/gn-9673115bc14c.tar.gz

View file

@ -0,0 +1,31 @@
From 8969bb39cc827bd36a9fd5b5742eb645fb2c4bf6 Mon Sep 17 00:00:00 2001
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
Date: Thu, 30 May 2024 08:49:32 -0400
Subject: [PATCH 1/2] Downstream-only: do not override optimization flags
Stop overriding optimization flags; not sent upstream because this is
intentional on their part.
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_compiler_flags
---
build/gen.py | 2 --
1 file changed, 2 deletions(-)
diff --git a/build/gen.py b/build/gen.py
index 6f3652ee..2cb433bc 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -432,10 +432,8 @@ def WriteGNNinja(path, platform, host, options, args_list):
cflags.extend(['-D_LIBCPP_DEBUG=1', '-D_GLIBCXX_DEBUG=1'])
else:
cflags.append('-DNDEBUG')
- cflags.append('-O3')
if options.no_strip:
cflags.append('-g')
- ldflags.append('-O3')
# Use -fdata-sections and -ffunction-sections to place each function
# or data item into its own section so --gc-sections can eliminate any
# unused functions and data items.
--
2.44.0

View file

@ -0,0 +1,25 @@
From 8bbbd89be97178be941bd11071c009145d3caf4b Mon Sep 17 00:00:00 2001
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
Date: Thu, 30 May 2024 08:56:58 -0400
Subject: [PATCH 2/2] Downstream-only: do not build with -Wno-format
This conflicts with -Werror=format-security.
---
build/gen.py | 1 -
1 file changed, 1 deletion(-)
diff --git a/build/gen.py b/build/gen.py
index 2cb433bc..155c579f 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -513,7 +513,6 @@ def WriteGNNinja(path, platform, host, options, args_list):
'-Wno-implicit-fallthrough',
'-Wno-redundant-move',
'-Wno-unused-variable',
- '-Wno-format', # Use of %llx, which is supported by _UCRT, false positive
'-Wno-strict-aliasing', # Dereferencing punned pointer
'-Wno-cast-function-type', # Casting FARPROC to RegDeleteKeyExPtr
])
--
2.44.0

219
README.md
View file

@ -1,3 +1,218 @@
# gn
# GN
The gn package
GN is a meta-build system that generates build files for
[Ninja](https://ninja-build.org).
Related resources:
* Documentation in [docs/](https://gn.googlesource.com/gn/+/main/docs/). In
particular:
* [GN quick start guide](https://gn.googlesource.com/gn/+/main/docs/quick_start.md).
* [Frequently asked questions](https://gn.googlesource.com/gn/+/main/docs/faq.md)
* [Reference](https://gn.googlesource.com/gn/+/main/docs/reference.md)
(all builtin help converted to a single file).
* An introductory [presentation](https://docs.google.com/presentation/d/15Zwb53JcncHfEwHpnG_PoIbbzQ3GQi_cpujYwbpcbZo/edit?usp=sharing).
* The [mailing list](https://groups.google.com/a/chromium.org/forum/#!forum/gn-dev).
* The [bug database](https://bugs.chromium.org/p/gn/issues/list).
## What GN is for
GN is currently used as the build system for Chromium, Fuchsia, and related
projects. Some strengths of GN are:
* It is designed for large projects and large teams. It scales efficiently to
many thousands of build files and tens of thousands of source files.
* It has a readable, clean syntax. Once a build is set-up, it is generally
easy for people with no backround in GN to make basic edits to the build.
* It is designed for multi-platform projects. It can cleanly express many
complicated build variants across different platforms. A single build
invocation can target multiple platforms.
* It supports multiple parallel output directories, each with their own
configuration. This allows a developer to maintain builds targeting debug,
release, or different platforms in parallel without forced rebuilds when
switching.
* It has a focus on correctness. GN checks for the correct dependencies,
inputs, and outputs to the extent possible, and has a number of tools to
allow developers to ensure the build evolves as desired (for example, `gn
check`, `testonly`, `assert_no_deps`).
* It has comprehensive build-in help available from the command-line.
Although small projects successfully use GN, the focus on large projects has
some disadvanages:
* GN has the goal of being minimally expressive. Although it can be quite
flexible, a design goal is to direct members of a large team (who may not
have much knowledge about the build) down an easy-to-understand, well-lit
path. This isn't necessarily the correct trade-off for smaller projects.
* The minimal build configuration is relatively heavyweight. There are several
files required and the exact way all compilers and linkers are run must be
specified in the configuration (see "Examples" below). There is no default
compiler configuration.
* It is not easily composable. GN is designed to compile a single large
project with relatively uniform settings and rules. Projects like Chromium
do bring together multiple repositories from multiple teams, but the
projects must agree on some conventions in the build files to allow this to
work.
* GN is designed with the expectation that the developers building a project
want to compile an identical configuration. So while builds can integrate
with the user's environment like the CXX and CFLAGS variables if they want,
this is not the default and most project's builds do not do this. The result
is that many GN projects do not integrate well with other systems like
ebuild.
* There is no simple release scheme (see "Versioning and distribution" below).
Projects are expected to manage the version of GN they require. Getting an
appropriate GN binary can be a hurdle for new contributors to a project.
Since GN is relatively uncommon, it can be more difficult to find
information and examples.
GN can generate Ninja build files for C, C++, Rust, Objective C, and Swift
source on most popular platforms. Other languages can be compiled using the
general "action" rules which are executed by Python or another scripting
language (Google does this to compile Java and Go). But because this is not as
clean, generally GN is only used when the bulk of the build is in one of the
main built-in languages.
## Getting a binary
You can download the latest version of GN binary for
[Linux](https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+/latest),
[macOS](https://chrome-infra-packages.appspot.com/dl/gn/gn/mac-amd64/+/latest) and
[Windows](https://chrome-infra-packages.appspot.com/dl/gn/gn/windows-amd64/+/latest)
from Google's build infrastructure (see "Versioning and distribution" below for
how this is expected to work).
Alternatively, you can build GN from source with a C++17 compiler:
git clone https://gn.googlesource.com/gn
cd gn
python build/gen.py # --allow-warning if you want to build with warnings.
ninja -C out
# To run tests:
out/gn_unittests
On Windows, it is expected that `cl.exe`, `link.exe`, and `lib.exe` can be found
in `PATH`, so you'll want to run from a Visual Studio command prompt, or
similar.
On Linux, Mac and z/OS, the default compiler is `clang++`, a recent version is
expected to be found in `PATH`. This can be overridden by setting the `CC`, `CXX`,
and `AR` environment variables.
On z/OS, building GN requires [ZOSLIB](https://github.com/ibmruntimes/zoslib) to be
installed, as described at that URL. When building with `build/gen.py`, use the option
`--zoslib-dir` to specify the path to [ZOSLIB](https://github.com/ibmruntimes/zoslib):
cd gn
python build/gen.py --zoslib-dir /path/to/zoslib
By default, if you don't specify `--zoslib-dir`, `gn/build/gen.py` expects to find
`zoslib` directory under `gn/third_party/`.
## Examples
There is a simple example in [examples/simple_build](examples/simple_build)
directory that is a good place to get started with the minimal configuration.
To build and run the simple example with the default gcc compiler:
cd examples/simple_build
../../out/gn gen -C out
ninja -C out
./out/hello
For a maximal configuration see the Chromium setup:
* [.gn](https://cs.chromium.org/chromium/src/.gn)
* [BUILDCONFIG.gn](https://cs.chromium.org/chromium/src/build/config/BUILDCONFIG.gn)
* [Toolchain setup](https://cs.chromium.org/chromium/src/build/toolchain/)
* [Compiler setup](https://cs.chromium.org/chromium/src/build/config/compiler/BUILD.gn)
and the Fuchsia setup:
* [.gn](https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/.gn)
* [BUILDCONFIG.gn](https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/build/config/BUILDCONFIG.gn)
* [Toolchain setup](https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/build/toolchain/)
* [Compiler setup](https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/build/config/BUILD.gn)
## Reporting bugs
If you find a bug, you can see if it is known or report it in the [bug
database](https://bugs.chromium.org/p/gn/issues/list).
## Sending patches
GN uses [Gerrit](https://www.gerritcodereview.com/) for code review hosted at
[gn-review.googlesource.com](https://gn-review.googlesource.com/). The short
version of how to patch is:
Register at https://gn-review.googlesource.com.
... edit code ...
ninja -C out && out/gn_unittests
Then, to upload a change for review:
git commit
git push origin HEAD:refs/for/main
The first time you do this you'll get an error from the server about a missing
change-ID. Follow the directions in the error message to install the change-ID
hook and run `git commit --amend` to apply the hook to the current commit.
When revising a change, use:
git commit --amend
git push origin HEAD:refs/for/main
which will add the new changes to the existing code review, rather than creating
a new one.
We ask that all contributors
[sign Google's Contributor License Agreement](https://cla.developers.google.com/)
(either individual or corporate as appropriate, select 'any other Google
project').
## Community
You may ask questions and follow along with GN's development on Chromium's
[gn-dev@](https://groups.google.com/a/chromium.org/forum/#!forum/gn-dev)
Google Group.
## Versioning and distribution
Most open-source projects are designed to use the developer's computer's current
toolchain such as compiler, linker, and build tool. But the large
centrally controlled projects that GN is designed for typically want a more
hermetic environment. They will ensure that developers are using a specific
compatible toolchain that is versioned with the code.
As a result, GN expects that the project choose the appropriate version of GN
that will work with each version of the project. There is no "current stable
version" of GN that is expected to work for all projects.
As a result, the GN developers do not maintain any packages in any of the
various packaging systems (Debian, RedHat, HomeBrew, etc.). Some of these
systems to have GN packages, but they are maintained by third parties and you
should use them at your own risk. Instead, we recommend you refer your checkout
tooling to download binaries for a specific hash from [Google's build
infrastructure](https://chrome-infra-packages.appspot.com/p/gn/gn) or compile
your own.
GN does not guarantee the backwards-compatibility of new versions and has no
branches or versioning scheme beyond the sequence of commits to the main git
branch (which is expected to be stable).
In practice, however, GN is very backwards-compatible. The core functionality
has been stable for many years and there is enough GN code at Google alone to
make non-backwards-compatible changes very difficult, even if they were
desirable.
There have been discussions about adding a versioning scheme with some
guarantees about backwards-compatibility, but nothing has yet been implemented.

View file

@ -1,14 +0,0 @@
diff -Naur gn-0153d369bbccc908f4da4993b1ba82728055926a-original/build/gen.py gn-0153d369bbccc908f4da4993b1ba82728055926a/build/gen.py
--- gn-0153d369bbccc908f4da4993b1ba82728055926a-original/build/gen.py 2021-09-27 14:58:14.000000000 -0400
+++ gn-0153d369bbccc908f4da4993b1ba82728055926a/build/gen.py 2021-09-27 15:59:42.330405195 -0400
@@ -344,10 +344,8 @@
cflags.extend(['-O0', '-g'])
else:
cflags.append('-DNDEBUG')
- cflags.append('-O3')
if options.no_strip:
cflags.append('-g')
- ldflags.append('-O3')
# Use -fdata-sections and -ffunction-sections to place each function
# or data item into its own section so --gc-sections can eliminate any
# unused functions and data items.

View file

@ -1,8 +1,15 @@
# This is a maintainer script, so it should indeed be executable:
addFilter(r' strange-permission update-version 775$')
# The source URL exports a tarball directly from git; while the contents are
# stable since it references a particular commit, the tarball checksum and even
# file size are different every time. I havent looked too closely, but I
# suspect this is due to timestamps in the tar stream being based on the access
# time rather than the time of the commit.
addFilter(r' file-size-mismatch gn-[0-9A-Fa-f]{8}\.tar\.gz = ')
# Hardinking duplicates is not worthwhile because these files are small and few
# in number.
addFilter(r"gn-doc\..*: files-duplicate /.*\.json")
# This script is for documentation only; it has a weird polyglot self-exec
# trick.
addFilter(r"gn-doc\..*: (potential-bashisms|bin-sh-syntax-error) /.*/infra/recipes\.py")
# These are all acceptable in the context of sample projects in the docs:
addFilter(r"gn-doc\..*: (zero-length|version-control-internal-file) /.*/examples/")
addFilter(r"gn-doc\..*: hidden-file-or-dir /.*/examples/.*/\.(gitignore|gn)")
# This script is for looking at, not for executing:
addFilter(r"gn-doc\..*: env-script-interpreter /.*/infra/config/main\.star .*")
# This is as prescribed in
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Emacs/, and the
# macro is not unexpanded in practice.
addFilter(r"Possible unexpanded macro in: Requires:\s+emacs-filesystem")

83
gn.spec
View file

@ -1,5 +1,5 @@
# Build HTML docs from markdown using pandoc?
%bcond_without html_docs
%bcond html_docs 1
Name: gn
# Upstream uses the number of commits in the git history as the version number.
@ -24,30 +24,45 @@ Name: gn
# 7. Commit the changes
#
# See https://gn.googlesource.com/gn/+log for the latest changes.
%global commit bd99dbf98cbdefe18a4128189665c5761263bcfb
%global access 20220321
%global shortcommit %(echo %{commit} | cut -b -8)
Version: 1985
Release: %autorelease -s %{access}git%{shortcommit}
%global commit 9673115bc14c8630da5b7f6fe07e0b362ac49dcb
%global access 20260111
%global shortcommit %{sub %{commit} 1 12}
%global position 2316
Version: %{position}^%{access}.%{shortcommit}
Release: %autorelease
Summary: Meta-build system that generates build files for Ninja
# BSD except for src/base/third_party/icu/, which is (Unicode and MIT); note
# that the “ICU License” is MIT,
# https://fedoraproject.org/wiki/Licensing:MIT#Modern_style_.28ICU_Variant.29
# The entire source is BSD-3-Clause, except:
# - src/base/third_party/icu/ is (Unicode-DFS-2016 AND ICU); see
# src/base/third_party/icu/LICENSE and also the header comment in
# src/base/third_party/icu/icu_utf.h.
#
# Note that src/util/test/gn_test.cc, which is licensed ASL 2.0, does not
# contribute to the installed RPM, only to the gn_unittests executable; you may
# verify this with:
# Note that src/util/test/gn_test.cc, which is licensed Apache-2.0, does not
# contribute to the binary RPMs, only to the gn_unittests executable, which is
# not installed; you may verify this with:
# gdb -ex 'set pagination off' -ex 'info sources' gn | grep -F gn_test.cc
License: BSD and Unicode and MIT
License: BSD-3-Clause AND Unicode-DFS-2016 AND ICU
SourceLicense: %{license} AND Apache-2.0
URL: https://gn.googlesource.com/gn
Source0: %{url}/+archive/%{commit}.tar.gz#/gn-%{shortcommit}.tar.gz
# Generated using script update-version:
Source1: last_commit_position.h
Source2: update-version
# Stop overriding optimization flags
Patch0: gn-0153d369-no-O3.patch
# Downstream-only: do not override optimization flags
#
# Stop overriding optimization flags; not sent upstream because this is
# intentional on their part.
#
# https://docs.fedoraproject.org/en-US/packaging-guidelines/#_compiler_flags
Patch: 0001-Downstream-only-do-not-override-optimization-flags.patch
# Downstream-only: do not build with -Wno-format
#
# This conflicts with -Werror=format-security.
Patch: 0002-Downstream-only-do-not-build-with-Wno-format.patch
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}
BuildRequires: python3-devel
BuildRequires: ninja-build
@ -69,6 +84,19 @@ Provides: vim-gn = %{version}-%{release}
Requires: emacs-filesystem >= %{_emacs_version}
Provides: emacs-gn = %{version}-%{release}
# src/base/third_party/icu/icu_utf.h:
#
# This file has the relevant components from ICU copied to handle basic
# UTF8/16/32 conversions. Components are copied from umachine.h, utf.h,
# utf8.h, and utf16.h into icu_utf.h.
#
# The forked, bundled ICU components are copied from Chromium. Because of the
# downstream changes (primarily, changing namespaces and symbol prefixes),
# there is no clear path to unbundling.
#
# See src/base/third_party/icu/README.chromium, from which the version number
# is taken.
Provides: bundled(icu) = 60
%description
GN is a meta-build system that generates build files for Ninja.
@ -97,17 +125,22 @@ cp -vp misc/vim/README.md README-vim.md
%py3_shebang_fix .
%build
%conf
AR='gcc-ar'; export AR
%set_build_flags
# Treating warnings as errors is too strict for downstream builds.
#
# Both --use-icf and --use-lto add compiler flags that only work with clang++,
# not with g++. We do get LTO on Fedora anyway, since we respect the
# distributions build flags.
%{python3} build/gen.py \
--allow-warnings \
--no-last-commit-position \
--no-strip \
--no-static-libstdc++
ninja -C out -v
%build
ninja -j %{_smp_build_ncpus} -C out -v
%if %{with html_docs}
# There is a script, misc/help_as_html.py, that generates some HTML help, but
@ -147,10 +180,10 @@ out/gn_unittests
# Verify consistency of the version header with the spec file
grep -E '^#define[[:blank:]]+LAST_COMMIT_POSITION_NUM[[:blank:]]+'\
'%{version}[[:blank:]]*' \
'%{position}[[:blank:]]*' \
'out/last_commit_position.h' >/dev/null
grep -E '^#define[[:blank:]]+LAST_COMMIT_POSITION[[:blank:]]+'\
'"%{version} \(%{shortcommit}\)"[[:blank:]]*' \
'"%{position} \(%{shortcommit}\)"[[:blank:]]*' \
'out/last_commit_position.h' >/dev/null
@ -170,17 +203,17 @@ grep -E '^#define[[:blank:]]+LAST_COMMIT_POSITION[[:blank:]]+'\
%files doc
%license LICENSE
%license LICENSE src/base/third_party/icu/README.chromium
%doc AUTHORS
%doc OWNERS
%doc README*.md
%if %{with html_docs}
%doc README*.html
%endif
%doc docs
%doc examples
%doc infra
%doc tools
%doc docs/
%doc examples/
%doc infra/
%doc tools/
%changelog

View file

@ -3,7 +3,7 @@
#ifndef OUT_LAST_COMMIT_POSITION_H_
#define OUT_LAST_COMMIT_POSITION_H_
#define LAST_COMMIT_POSITION_NUM 1985
#define LAST_COMMIT_POSITION "1985 (bd99dbf9)"
#define LAST_COMMIT_POSITION_NUM 2316
#define LAST_COMMIT_POSITION "2316 (9673115bc14c)"
#endif // OUT_LAST_COMMIT_POSITION_H_

View file

@ -1 +1 @@
SHA512 (gn-bd99dbf9.tar.gz) = 03dfbcc105cb8e52d33081ebf301b74c2abdfc52061ebce8d6ed9f172216facbdb50ca6e216153084b2c1d04ca58870d8dfce90fee8e46b6889a0cf9f7b7f98d
SHA512 (gn-9673115bc14c.tar.gz) = b05e287b5e700e1cd725ef75a0af6088abd51be0a0c072f42daa61e39f6d159355ef95130a9f4478d7c62129a17c51f341624cfc4b58fb7d29e1c77a2e2cf3af

View file

@ -83,7 +83,7 @@ sed -r -i \
-e 's/(%global[[:blank:]]+access[[:blank:]]+)[[:digit:]]{8}[[:blank:]]*$/\1'"$(
date -u '+%Y%m%d'
)/" \
-e 's/(Version:[[:blank:]]+)[[:digit:]]+[[:blank:]]*$/\1'"${POSITION}/" \
-e 's/(%global[[:blank:]]+position[[:blank:]]+)[[:digit:]]+[[:blank:]]*$/\1'"${POSITION}/" \
"${SPEC}"
# Download the new tarball