nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 344 lines 10 kB view raw
1{ 2 lib, 3 fetchFromGitHub, 4 buildGoModule, 5 testers, 6 boulder, 7 nix-update-script, 8}: 9 10buildGoModule rec { 11 pname = "boulder"; 12 version = "2025-04-17"; 13 14 src = fetchFromGitHub { 15 owner = "letsencrypt"; 16 repo = "boulder"; 17 tag = "release-${version}"; 18 leaveDotGit = true; 19 postFetch = '' 20 pushd $out 21 git rev-parse --short=8 HEAD 2>/dev/null >$out/COMMIT 22 find $out -name .git -print0 | xargs -0 rm -rf 23 popd 24 ''; 25 hash = "sha256-FXk+JZJ1azpgN6IQ9aYmpUEO1CGs9/3sog1NjrfB4d8="; 26 }; 27 28 vendorHash = null; 29 30 subPackages = [ "cmd/boulder" ]; 31 32 ldflags = [ 33 "-s" 34 "-w" 35 "-X github.com/letsencrypt/boulder/core.BuildHost=nixbld@localhost" 36 ]; 37 38 preBuild = '' 39 ldflags+=" -X \"github.com/letsencrypt/boulder/core.BuildID=${version} +$(cat COMMIT)\"" 40 ldflags+=" -X \"github.com/letsencrypt/boulder/core.BuildTime=$(date -u -d @0)\"" 41 ''; 42 43 preCheck = '' 44 # Test all targets. 45 unset subPackages 46 ''; 47 48 # Tests that fail or require additional services. 49 disabledTests = [ 50 "TestARI" 51 "TestAccount" 52 "TestAddBlockedKeyUnknownSource" 53 "TestAddCertificate" 54 "TestAddCertificateDuplicate" 55 "TestAddCertificateRenewalBit" 56 "TestAddPreCertificateDuplicate" 57 "TestAddPrecertificate" 58 "TestAddPrecertificateIncomplete" 59 "TestAddPrecertificateKeyHash" 60 "TestAddPrecertificateNoOCSP" 61 "TestAddRegistration" 62 "TestAddReplacementOrder" 63 "TestAddSerial" 64 "TestAdministrativelyRevokeCertificate" 65 "TestAuthorization500" 66 "TestAuthorizationChallengeNamespace" 67 "TestAuthzFailedRateLimitingNewOrder" 68 "TestAutoIncrementSchema" 69 "TestBadNonce" 70 "TestBlockedKey" 71 "TestBlockedKeyRevokedBy" 72 "TestBuildID" 73 "TestCTPolicyMeasurements" 74 "TestCertIsRenewed" 75 "TestCertificateAbsent" 76 "TestCertificateKeyNotEqualAccountKey" 77 "TestCertificatesTableContainsDuplicateSerials" 78 "TestCertsPerNameRateLimitTable" 79 "TestChallenge" 80 "TestCheckCert" 81 "TestCheckCert" 82 "TestCheckCertReturnsDNSNames" 83 "TestCheckCertReturnsDNSNames" 84 "TestCheckExactCertificateLimit" 85 "TestCheckFQDNSetRateLimitOverride" 86 "TestCheckIdentifiersPaused" 87 "TestCheckWildcardCert" 88 "TestCheckWildcardCert" 89 "TestClientTransportCredentials" 90 "TestContactAuditor" 91 "TestCountCertificatesByNamesParallel" 92 "TestCountCertificatesByNamesTimeRange" 93 "TestCountCertificatesRenewalBit" 94 "TestCountInvalidAuthorizations2" 95 "TestCountNewOrderWithReplaces" 96 "TestCountOrders" 97 "TestCountPendingAuthorizations2" 98 "TestCountRegistrationsByIP" 99 "TestCountRegistrationsByIPRange" 100 "TestDbSettings" 101 "TestDeactivateAccount" 102 "TestDeactivateAuthorization" 103 "TestDeactivateRegistration" 104 "TestDedupOnRegistration" 105 "TestDialerTimeout" 106 "TestDirectory" 107 "TestDontFindRevokedCert" 108 "TestEarlyOrderRateLimiting" 109 "TestEmptyAccount" 110 "TestEnforceJWSAuthType" 111 "TestExactPublicSuffixCertLimit" 112 "TestExtractJWK" 113 "TestFQDNSetExists" 114 "TestFQDNSetTimestampsForWindow" 115 "TestFQDNSets" 116 "TestFQDNSetsExists" 117 "TestFQDNSetsExists" 118 "TestFailExit" 119 "TestFasterGetOrderForNames" 120 "TestFinalizeAuthorization2" 121 "TestFinalizeOrder" 122 "TestFinalizeOrderWildcard" 123 "TestFinalizeOrderWithMixedSANAndCN" 124 "TestFinalizeSCTError" 125 "TestFinalizeWithMustStaple" 126 "TestFindCertsAtCapacity" 127 "TestFindExpiringCertificates" 128 "TestFindIDs" 129 "TestFindIDsForHostnames" 130 "TestFindIDsWithExampleHostnames" 131 "TestFindUnrevoked" 132 "TestFindUnrevokedNoRows" 133 "TestGETAPIAuthz" 134 "TestGETAPIChallenge" 135 "TestGenerateOCSP" 136 "TestGenerateOCSPLongExpiredSerial" 137 "TestGenerateOCSPUnknownSerial" 138 "TestGetAndProcessCerts" 139 "TestGetAndProcessCerts" 140 "TestGetAuthorization" 141 "TestGetAuthorization2NoRows" 142 "TestGetAuthorizations2" 143 "TestGetCertificate" 144 "TestGetCertificateHEADHasCorrectBodyLength" 145 "TestGetCertificateNew" 146 "TestGetCertificateServerError" 147 "TestGetCertsEmptyResults" 148 "TestGetCertsEmptyResults" 149 "TestGetChallenge" 150 "TestGetChallengeUpRel" 151 "TestGetMaxExpiration" 152 "TestGetOrder" 153 "TestGetOrderExpired" 154 "TestGetOrderForNames" 155 "TestGetPausedIdentifiers" 156 "TestGetPausedIdentifiersOnlyUnpausesOneAccount" 157 "TestGetPendingAuthorization2" 158 "TestGetRevokedCerts" 159 "TestGetSerialMetadata" 160 "TestGetSerialsByAccount" 161 "TestGetSerialsByKey" 162 "TestGetStartingID" 163 "TestGetValidAuthorizations2" 164 "TestGetValidOrderAuthorizations2" 165 "TestHTTPDialTimeout" 166 "TestHTTPMethods" 167 "TestHandleFunc" 168 "TestHeaderBoulderRequester" 169 "TestIgnoredLint" 170 "TestIgnoredLint" 171 "TestIncidentARI" 172 "TestIncidentSerialModel" 173 "TestIncidentsForSerial" 174 "TestIndex" 175 "TestIndexGet404" 176 "TestInvoke" 177 "TestInvokeRevokerHasNoExtantCerts" 178 "TestIssueCertificateAuditLog" 179 "TestIssueCertificateCAACheckLog" 180 "TestIssueCertificateInnerErrs" 181 "TestIssueCertificateInnerWithProfile" 182 "TestIssueCertificateOuter" 183 "TestKeyRollover" 184 "TestKeyRolloverMismatchedJWSURLs" 185 "TestLeaseOldestCRLShard" 186 "TestLeaseSpecificCRLShard" 187 "TestLifetimeOfACert" 188 "TestLimiter_CheckWithLimitOverrides" 189 "TestLimiter_DefaultLimits" 190 "TestLimiter_InitializationViaCheckAndSpend" 191 "TestLimiter_RefundAndReset" 192 "TestLoadFromDB" 193 "TestLookupJWK" 194 "TestMatchJWSURLs" 195 "TestNewAccount" 196 "TestNewAccountNoID" 197 "TestNewAccountWhenAccountHasBeenDeactivated" 198 "TestNewAccountWhenGetRegByKeyFails" 199 "TestNewAccountWhenGetRegByKeyNotFound" 200 "TestNewECDSAAccount" 201 "TestNewLookup" 202 "TestNewLookupWithAllFailingSRV" 203 "TestNewLookupWithOneFailingSRV" 204 "TestNewOrder" 205 "TestNewOrderAuthzReuseSafety" 206 "TestNewOrderCheckFailedAuthorizationsFirst" 207 "TestNewOrderExpiry" 208 "TestNewOrderFailedAuthzRateLimitingExempt" 209 "TestNewOrderMaxNames" 210 "TestNewOrderRateLimiting" 211 "TestNewOrderRateLimitingExempt" 212 "TestNewOrderReplacesSerialCarriesThroughToSA" 213 "TestNewOrderReuse" 214 "TestNewOrderReuseInvalidAuthz" 215 "TestNewOrderWildcard" 216 "TestNewRegistration" 217 "TestNewRegistrationBadKey" 218 "TestNewRegistrationContactsPresent" 219 "TestNewRegistrationNoFieldOverwrite" 220 "TestNewRegistrationRateLimit" 221 "TestNewRegistrationSAFailure" 222 "TestNoContactCertIsNotRenewed" 223 "TestNoContactCertIsRenewed" 224 "TestNoSuchRegistrationErrors" 225 "TestNonceEndpoint" 226 "TestOldTLSInbound" 227 "TestOrderMatchesReplacement" 228 "TestOrderToOrderJSONV2Authorizations" 229 "TestOrderWithOrderModelv1" 230 "TestPOST404" 231 "TestPanicStackTrace" 232 "TestParseJWSRequest" 233 "TestPauseIdentifiers" 234 "TestPendingAuthorizationsUnlimited" 235 "TestPerformValidationAlreadyValid" 236 "TestPerformValidationBadChallengeType" 237 "TestPerformValidationExpired" 238 "TestPerformValidationSuccess" 239 "TestPerformValidationVAError" 240 "TestPerformValidation_FailedThenSuccessfulValidationResetsPauseIdentifiersRatelimit" 241 "TestPerformValidation_FailedValidationsTriggerPauseIdentifiersRatelimit" 242 "TestPrepAuthzForDisplay" 243 "TestPreresolvedDialerTimeout" 244 "TestProcessCerts" 245 "TestProcessCertsConnectError" 246 "TestProcessCertsParallel" 247 "TestRecheckCAADates" 248 "TestRecheckCAAEmpty" 249 "TestRecheckCAAFail" 250 "TestRecheckCAAInternalServerError" 251 "TestRecheckCAASuccess" 252 "TestRedisSource_BatchSetAndGet" 253 "TestRedisSource_Ping" 254 "TestRegistrationsPerIPOverrideUsage" 255 "TestRehydrateHostPort" 256 "TestRelativeDirectory" 257 "TestReplacementOrderExists" 258 "TestReplicationLagRetries" 259 "TestResolveContacts" 260 "TestRevokeCertByApplicant_Controller" 261 "TestRevokeCertByApplicant_Subscriber" 262 "TestRevokeCertByKey" 263 "TestRevokeCertificate" 264 "TestRevokeCerts" 265 "TestRollback" 266 "TestSPKIHashFromPrivateKey" 267 "TestSPKIHashesFromFile" 268 "TestSelectRegistration" 269 "TestSelectUncheckedRows" 270 "TestSendEarliestCertInfo" 271 "TestSerialsForIncident" 272 "TestSerialsFromFile" 273 "TestSerialsFromPrivateKey" 274 "TestSetAndGet" 275 "TestSetOrderProcessing" 276 "TestSetReplacementOrderFinalized" 277 "TestSingleton" 278 "TestStart" 279 "TestStatusForOrder" 280 "TestStoreResponse" 281 "TestStrictness" 282 "TestTLSALPN01DialTimeout" 283 "TestTLSConfigLoad" 284 "TestTimeouts" 285 "TestUnpauseAccount" 286 "TestUpdateCRLShard" 287 "TestUpdateChallengeFinalizedAuthz" 288 "TestUpdateChallengeRAError" 289 "TestUpdateChallengesDeleteUnused" 290 "TestUpdateMissingAuthorization" 291 "TestUpdateNowWithAllFailingSRV" 292 "TestUpdateNowWithOneFailingSRV" 293 "TestUpdateRegistrationContact" 294 "TestUpdateRegistrationKey" 295 "TestUpdateRegistrationSame" 296 "TestUpdateRevokedCertificate" 297 "TestValidJWSForKey" 298 "TestValidNonce" 299 "TestValidNonce_NoMatchingBackendFound" 300 "TestValidPOSTAsGETForAccount" 301 "TestValidPOSTForAccount" 302 "TestValidPOSTForAccountSwappedKey" 303 "TestValidPOSTRequest" 304 "TestValidPOSTURL" 305 "TestValidSelfAuthenticatedPOST" 306 "TestValidSelfAuthenticatedPOSTGoodKeyErrors" 307 "TestValidateContacts" 308 "TestWrappedMap" 309 "Test_sendError" 310 ]; 311 312 checkFlags = [ 313 "-skip ${lib.strings.concatStringsSep "|" disabledTests}" 314 ]; 315 316 postInstall = '' 317 for i in $($out/bin/boulder --list); do 318 ln -s $out/bin/boulder $out/bin/$i 319 done 320 ''; 321 322 passthru = { 323 tests.version = testers.testVersion { 324 package = boulder; 325 inherit version; 326 }; 327 updateScript = nix-update-script { }; 328 }; 329 330 meta = { 331 homepage = "https://github.com/letsencrypt/boulder"; 332 description = "ACME-based certificate authority, written in Go"; 333 longDescription = '' 334 This is an implementation of an ACME-based CA. The ACME protocol allows 335 the CA to automatically verify that an applicant for a certificate 336 actually controls an identifier, and allows domain holders to issue and 337 revoke certificates for their domains. Boulder is the software that runs 338 Let's Encrypt. 339 ''; 340 license = lib.licenses.mpl20; 341 mainProgram = "boulder"; 342 maintainers = [ ]; 343 }; 344}