| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to you 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. |
| */ |
| |
| import java.util.* |
| |
| dependencyResolutionManagement { |
| repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) |
| repositories { |
| // TODO: support enableMavenLocal |
| gradlePluginPortal() |
| } |
| } |
| |
| rootProject.name = "build-logic" |
| |
| enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") |
| |
| buildscript { |
| dependencies { |
| classpath("com.github.vlsi.gradle:checksum-dependency-plugin:${settings.extra["com.github.vlsi.checksum-dependency.version"]}") { |
| // Gradle ships kotlin-stdlib which is good enough |
| exclude("org.jetbrains.kotlin", "kotlin-stdlib") |
| } |
| } |
| repositories { |
| gradlePluginPortal() |
| } |
| } |
| |
| includeBuild("../build-logic-commons") |
| include("basics") |
| include("batchtest") |
| include("build-parameters") |
| include("jvm") |
| include("publishing") |
| include("root-build") |
| include("verification") |
| |
| // Note: we need to verify the checksum for checksum-dependency-plugin itself |
| val expectedSha512 = mapOf( |
| "4E240B7811EF90C090E83A181DACE41DA487555E4136221861B0060F9AF6D8B316F2DD0472F747ADB98CA5372F46055456EF04BDC0C3992188AB13302922FCE9" |
| to "bcpg-jdk15on-1.70.jar", |
| "7DCCFC636EE4DF1487615818CFA99C69941081DF95E8EF1EAF4BCA165594DFF9547E3774FD70DE3418ABACE77D2C45889F70BCD2E6823F8539F359E68EAF36D1" |
| to "bcprov-jdk15on-1.70.jar", |
| "17DAAF511BE98F99007D7C6B3762C9F73ADD99EAB1D222985018B0258EFBE12841BBFB8F213A78AA5300F7A3618ACF252F2EEAD196DF3F8115B9F5ED888FE827" |
| to "okhttp-4.1.0.jar", |
| "93E7A41BE44CC17FB500EA5CD84D515204C180AEC934491D11FC6A71DAEA761FB0EECEF865D6FD5C3D88AAF55DCE3C2C424BE5BA5D43BEBF48D05F1FA63FA8A7" |
| to "okio-2.2.2.jar", |
| settings.extra["com.github.vlsi.checksum-dependency.sha512"].toString() |
| to "checksum-dependency-plugin.jar" |
| ) |
| |
| fun File.sha512(): String { |
| val md = java.security.MessageDigest.getInstance("SHA-512") |
| forEachBlock { buffer, bytesRead -> |
| md.update(buffer, 0, bytesRead) |
| } |
| return BigInteger(1, md.digest()).toString(16).uppercase(Locale.ROOT) |
| } |
| |
| val violations = |
| buildscript.configurations["classpath"] |
| .resolve() |
| .sortedBy { it.name } |
| .associateWith { it.sha512() } |
| .filterNot { (_, sha512) -> expectedSha512.contains(sha512) } |
| .entries |
| .joinToString("\n ") { (file, sha512) -> "SHA-512(${file.name}) = $sha512 ($file)" } |
| |
| apply(plugin = "com.github.vlsi.checksum-dependency") |