From 1e1f61b9e6461cef21cf23979ff4fab7a6c914bd Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Sun, 2 Mar 2025 23:32:33 +0100 Subject: License handling with rules_license, and upgrade SDL --- BUILD.bazel | 10 ++ MODULE.bazel | 5 +- MODULE.bazel.lock | 6 +- hk21/game/BUILD.bazel | 1 + hk21/vulkan_loader/BUILD.bazel | 1 + vendor/vulkan/BUILD.bazel | 13 +++ vendor/vulkan/LICENSE.txt | 208 +++++++++++++++++++++++++++++++++++++++++ 7 files changed, 239 insertions(+), 5 deletions(-) create mode 100644 vendor/vulkan/LICENSE.txt diff --git a/BUILD.bazel b/BUILD.bazel index 6106368..e7c6daf 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -3,6 +3,16 @@ # SPDX-License-Identifier: BSD-3-Clause load("@hedron_compile_commands//:refresh_compile_commands.bzl", "refresh_compile_commands") +load("@rules_license//rules:license.bzl", "license") + +license( + name = "license", + license_kinds = [ + "@rules_license//licenses/spdx:BSD-3-Clause", + ], + license_text = "LICENSE.txt", + package_name = "HK-21", +) refresh_compile_commands( name = "refresh_clangd", diff --git a/MODULE.bazel b/MODULE.bazel index bcf9269..59252ff 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -6,6 +6,7 @@ module(name = "hk21") bazel_dep(name = "platforms", version = "0.0.10") bazel_dep(name = "rules_cc", version = "0.0.17") +bazel_dep(name = "rules_license", version = "1.0.0") bazel_dep(name = "hedron_compile_commands", dev_dependency = True) git_override( @@ -14,12 +15,12 @@ git_override( commit = "4f28899228fb3ad0126897876f147ca15026151e", ) -bazel_dep(name = "sdl3_windows", version = "3.2.0") +bazel_dep(name = "sdl3_windows", version = "3.2.6") bazel_dep(name = "asl") git_override( module_name = "asl", - commit = "62cc4b468b4e8653d8ef523fc4081572c6c1c7d8", + commit = "8604c98df53486208cdc15424aae9d9b2fef2d8e", remote = "https://git.stevenlr.com/460nm/asl.git/", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 7c08156..f849593 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -125,7 +125,7 @@ "https://bcr.bazel.build/modules/rules_python/1.1.0/source.json": "29f1fdfd23a40808c622f813bc93e29c3aae277333f03293f667e76159750a0f", "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", "https://bcr.bazel.build/modules/rules_shell/0.2.0/source.json": "7f27af3c28037d9701487c4744b5448d26537cc66cdef0d8df7ae85411f8de95", - "https://bcr.bazel.build/modules/sdl3_windows/3.2.0/MODULE.bazel": "not found", + "https://bcr.bazel.build/modules/sdl3_windows/3.2.6/MODULE.bazel": "not found", "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", @@ -139,8 +139,8 @@ "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d", "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198", "https://git.stevenlr.com/460nm/bazel-registry.git/plain/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", - "https://git.stevenlr.com/460nm/bazel-registry.git/plain/modules/sdl3_windows/3.2.0/MODULE.bazel": "e1be125c3d3bf91dd39a10a3c7512bc0f9fde42dd8a1c7ec0504e857e9ff2a2a", - "https://git.stevenlr.com/460nm/bazel-registry.git/plain/modules/sdl3_windows/3.2.0/source.json": "1d4e64e46ecfb65a7895bd05509eed04e28adffbb9fd57ee9bb3cc4e126ea85b" + "https://git.stevenlr.com/460nm/bazel-registry.git/plain/modules/sdl3_windows/3.2.6/MODULE.bazel": "857507d99ce37f1a4cb331a7888cec8511f38b0bfd46adb55d1b70a9cbe4e86f", + "https://git.stevenlr.com/460nm/bazel-registry.git/plain/modules/sdl3_windows/3.2.6/source.json": "5196961bbdfc230463ce7ea9049f7bab62b5ea7bccbfd376b85d07b2f909f98b" }, "selectedYankedVersions": {}, "moduleExtensions": { diff --git a/hk21/game/BUILD.bazel b/hk21/game/BUILD.bazel index 9689d67..d784b70 100644 --- a/hk21/game/BUILD.bazel +++ b/hk21/game/BUILD.bazel @@ -19,4 +19,5 @@ cc_binary( "@sdl3_windows//:sdl3", "//hk21/vulkan_loader", ], + applicable_licenses = ["//:license"], ) diff --git a/hk21/vulkan_loader/BUILD.bazel b/hk21/vulkan_loader/BUILD.bazel index 8532db3..30a8770 100644 --- a/hk21/vulkan_loader/BUILD.bazel +++ b/hk21/vulkan_loader/BUILD.bazel @@ -17,4 +17,5 @@ cc_library( "@asl//asl/types:status", ], visibility = ["//:__subpackages__"], + applicable_licenses = ["//:license"], ) diff --git a/vendor/vulkan/BUILD.bazel b/vendor/vulkan/BUILD.bazel index 791ed15..0a1a15a 100644 --- a/vendor/vulkan/BUILD.bazel +++ b/vendor/vulkan/BUILD.bazel @@ -2,6 +2,18 @@ # # SPDX-License-Identifier: BSD-3-Clause +load("@rules_license//rules:license.bzl", "license") + +license( + name = "license", + license_kinds = [ + "@rules_license//licenses/spdx:Apache-2.0", + ], + license_text = "LICENSE.txt", + package_name = "Vulkan", + package_url = "https://github.com/KhronosGroup/Vulkan-Docs", +) + cc_library( name = "vulkan", hdrs = [ @@ -13,4 +25,5 @@ cc_library( ".", ], visibility = ["//:__subpackages__"], + applicable_licenses = [":license"], ) diff --git a/vendor/vulkan/LICENSE.txt b/vendor/vulkan/LICENSE.txt new file mode 100644 index 0000000..de2bc8f --- /dev/null +++ b/vendor/vulkan/LICENSE.txt @@ -0,0 +1,208 @@ +Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, +AND DISTRIBUTION + + 1. Definitions. + + + +"License" shall mean the terms and conditions for use, reproduction, and distribution +as defined by Sections 1 through 9 of this document. + + + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + + + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct +or indirect, to cause the direction or management of such entity, whether +by contract or otherwise, or (ii) ownership of fifty percent (50%) or more +of the outstanding shares, or (iii) beneficial ownership of such entity. + + + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions +granted by this License. + + + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + + + +"Object" form shall mean any form resulting from mechanical transformation +or translation of a Source form, including but not limited to compiled object +code, generated documentation, and conversions to other media types. + + + +"Work" shall mean the work of authorship, whether in Source or Object form, +made available under the License, as indicated by a copyright notice that +is included in or attached to the work (an example is provided in the Appendix +below). + + + +"Derivative Works" shall mean any work, whether in Source or Object form, +that is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative +Works shall not include works that remain separable from, or merely link (or +bind by name) to the interfaces of, the Work and Derivative Works thereof. + + + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative +Works thereof, that is intentionally submitted to Licensor for inclusion in +the Work by the copyright owner or by an individual or Legal Entity authorized +to submit on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication +sent to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor +for the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + + + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently incorporated +within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable copyright license to reproduce, prepare +Derivative Works of, publicly display, publicly perform, sublicense, and distribute +the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, +each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) patent +license to make, have made, use, offer to sell, sell, import, and otherwise +transfer the Work, where such license applies only to those patent claims +licensable by such Contributor that are necessarily infringed by their Contribution(s) +alone or by combination of their Contribution(s) with the Work to which such +Contribution(s) was submitted. If You institute patent litigation against +any entity (including a cross-claim or counterclaim in a lawsuit) alleging +that the Work or a Contribution incorporated within the Work constitutes direct +or contributory patent infringement, then any patent licenses granted to You +under this License for that Work shall terminate as of the date such litigation +is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or +Derivative Works thereof in any medium, with or without modifications, and +in Source or Object form, provided that You meet the following conditions: + +(a) You must give any other recipients of the Work or Derivative Works a copy +of this License; and + +(b) You must cause any modified files to carry prominent notices stating that +You changed the files; and + +(c) You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source +form of the Work, excluding those notices that do not pertain to any part +of the Derivative Works; and + +(d) If the Work includes a "NOTICE" text file as part of its distribution, +then any Derivative Works that You distribute must include a readable copy +of the attribution notices contained within such NOTICE file, excluding those +notices that do not pertain to any part of the Derivative Works, in at least +one of the following places: within a NOTICE text file distributed as part +of the Derivative Works; within the Source form or documentation, if provided +along with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works +that You distribute, alongside or as an addendum to the NOTICE text from the +Work, provided that such additional attribution notices cannot be construed +as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, +or distribution of Your modifications, or for any such Derivative Works as +a whole, provided Your use, reproduction, and distribution of the Work otherwise +complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any +Contribution intentionally submitted for inclusion in the Work by You to the +Licensor shall be under the terms and conditions of this License, without +any additional terms or conditions. Notwithstanding the above, nothing herein +shall supersede or modify the terms of any separate license agreement you +may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, +trademarks, service marks, or product names of the Licensor, except as required +for reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to +in writing, Licensor provides the Work (and each Contributor provides its +Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied, including, without limitation, any warranties +or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR +A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness +of using or redistributing the Work and assume any risks associated with Your +exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether +in tort (including negligence), contract, or otherwise, unless required by +applicable law (such as deliberate and grossly negligent acts) or agreed to +in writing, shall any Contributor be liable to You for damages, including +any direct, indirect, special, incidental, or consequential damages of any +character arising as a result of this License or out of the use or inability +to use the Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all other commercial +damages or losses), even if such Contributor has been advised of the possibility +of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work +or Derivative Works thereof, You may choose to offer, and charge a fee for, +acceptance of support, warranty, indemnity, or other liability obligations +and/or rights consistent with this License. However, in accepting such obligations, +You may act only on Your own behalf and on Your sole responsibility, not on +behalf of any other Contributor, and only if You agree to indemnify, defend, +and hold each Contributor harmless for any liability incurred by, or claims +asserted against, such Contributor by reason of your accepting any such warranty +or additional liability. END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own identifying +information. (Don't include the brackets!) The text should be enclosed in +the appropriate comment syntax for the file format. We also recommend that +a file or class name and description of purpose be included on the same "printed +page" as the copyright notice for easier identification within third-party +archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); + +you may not use this file except in compliance with the License. + +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software + +distributed under the License is distributed on an "AS IS" BASIS, + +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +See the License for the specific language governing permissions and + +limitations under the License. \ No newline at end of file -- cgit