diff --git a/config/os.go b/config/os.go index 0257fa36..ba958d13 100644 --- a/config/os.go +++ b/config/os.go @@ -287,6 +287,7 @@ func GetEOL(family, release string) (eol EOL, found bool) { "3.14": {StandardSupportUntil: time.Date(2023, 5, 1, 23, 59, 59, 0, time.UTC)}, "3.15": {StandardSupportUntil: time.Date(2023, 11, 1, 23, 59, 59, 0, time.UTC)}, "3.16": {StandardSupportUntil: time.Date(2024, 5, 23, 23, 59, 59, 0, time.UTC)}, + "3.17": {StandardSupportUntil: time.Date(2024, 11, 22, 23, 59, 59, 0, time.UTC)}, }[majorDotMinor(release)] case constant.FreeBSD: // https://www.freebsd.org/security/ @@ -296,17 +297,19 @@ func GetEOL(family, release string) (eol EOL, found bool) { "9": {Ended: true}, "10": {Ended: true}, "11": {StandardSupportUntil: time.Date(2021, 9, 30, 23, 59, 59, 0, time.UTC)}, - "12": {StandardSupportUntil: time.Date(2024, 6, 30, 23, 59, 59, 0, time.UTC)}, + "12": {StandardSupportUntil: time.Date(2023, 12, 31, 23, 59, 59, 0, time.UTC)}, "13": {StandardSupportUntil: time.Date(2026, 1, 31, 23, 59, 59, 0, time.UTC)}, }[major(release)] case constant.Fedora: // https://docs.fedoraproject.org/en-US/releases/eol/ // https://endoflife.date/fedora eol, found = map[string]EOL{ - "32": {StandardSupportUntil: time.Date(2021, 5, 25, 23, 59, 59, 0, time.UTC)}, - "33": {StandardSupportUntil: time.Date(2021, 11, 30, 23, 59, 59, 0, time.UTC)}, - "34": {StandardSupportUntil: time.Date(2022, 5, 17, 23, 59, 59, 0, time.UTC)}, - "35": {StandardSupportUntil: time.Date(2022, 12, 7, 23, 59, 59, 0, time.UTC)}, + "32": {StandardSupportUntil: time.Date(2021, 5, 24, 23, 59, 59, 0, time.UTC)}, + "33": {StandardSupportUntil: time.Date(2021, 11, 29, 23, 59, 59, 0, time.UTC)}, + "34": {StandardSupportUntil: time.Date(2022, 6, 6, 23, 59, 59, 0, time.UTC)}, + "35": {StandardSupportUntil: time.Date(2022, 12, 12, 23, 59, 59, 0, time.UTC)}, + "36": {StandardSupportUntil: time.Date(2023, 5, 16, 23, 59, 59, 0, time.UTC)}, + "37": {StandardSupportUntil: time.Date(2023, 12, 15, 23, 59, 59, 0, time.UTC)}, }[major(release)] } return diff --git a/config/os_test.go b/config/os_test.go index 60d9b6cb..1fbdfd7a 100644 --- a/config/os_test.go +++ b/config/os_test.go @@ -446,14 +446,30 @@ func TestEOL_IsStandardSupportEnded(t *testing.T) { found: true, }, { - name: "Alpine 3.17 not found", + name: "Alpine 3.17 supported", fields: fields{family: Alpine, release: "3.17"}, now: time.Date(2022, 1, 14, 23, 59, 59, 0, time.UTC), stdEnded: false, extEnded: false, + found: true, + }, + { + name: "Alpine 3.18 not found", + fields: fields{family: Alpine, release: "3.18"}, + now: time.Date(2022, 1, 14, 23, 59, 59, 0, time.UTC), + stdEnded: false, + extEnded: false, found: false, }, // freebsd + { + name: "freebsd 10 eol", + fields: fields{family: FreeBSD, release: "10"}, + now: time.Date(2021, 1, 6, 23, 59, 59, 0, time.UTC), + stdEnded: true, + extEnded: true, + found: true, + }, { name: "freebsd 11 supported", fields: fields{family: FreeBSD, release: "11"}, @@ -486,27 +502,19 @@ func TestEOL_IsStandardSupportEnded(t *testing.T) { extEnded: false, found: true, }, - { - name: "freebsd 10 eol", - fields: fields{family: FreeBSD, release: "10"}, - now: time.Date(2021, 1, 6, 23, 59, 59, 0, time.UTC), - stdEnded: true, - extEnded: true, - found: true, - }, // Fedora { name: "Fedora 32 supported", fields: fields{family: Fedora, release: "32"}, - now: time.Date(2021, 5, 25, 23, 59, 59, 0, time.UTC), + now: time.Date(2021, 5, 24, 23, 59, 59, 0, time.UTC), stdEnded: false, extEnded: false, found: true, }, { - name: "Fedora 32 eol on 2021-5-25", + name: "Fedora 32 eol since 2021-5-25", fields: fields{family: Fedora, release: "32"}, - now: time.Date(2021, 5, 26, 23, 59, 59, 0, time.UTC), + now: time.Date(2021, 5, 25, 0, 0, 0, 0, time.UTC), stdEnded: true, extEnded: true, found: true, @@ -514,15 +522,15 @@ func TestEOL_IsStandardSupportEnded(t *testing.T) { { name: "Fedora 33 supported", fields: fields{family: Fedora, release: "33"}, - now: time.Date(2021, 11, 30, 23, 59, 59, 0, time.UTC), + now: time.Date(2021, 11, 29, 23, 59, 59, 0, time.UTC), stdEnded: false, extEnded: false, found: true, }, { - name: "Fedora 33 eol on 2021-5-26", + name: "Fedora 33 eol since 2021-11-30", fields: fields{family: Fedora, release: "32"}, - now: time.Date(2021, 5, 27, 23, 59, 59, 0, time.UTC), + now: time.Date(2021, 11, 30, 0, 0, 0, 0, time.UTC), stdEnded: true, extEnded: true, found: true, @@ -530,15 +538,15 @@ func TestEOL_IsStandardSupportEnded(t *testing.T) { { name: "Fedora 34 supported", fields: fields{family: Fedora, release: "34"}, - now: time.Date(2022, 5, 17, 23, 59, 59, 0, time.UTC), + now: time.Date(2022, 6, 6, 23, 59, 59, 0, time.UTC), stdEnded: false, extEnded: false, found: true, }, { - name: "Fedora 32 eol on 2022-5-17", + name: "Fedora 34 eol since 2022-6-7", fields: fields{family: Fedora, release: "34"}, - now: time.Date(2022, 5, 18, 23, 59, 59, 0, time.UTC), + now: time.Date(2022, 6, 7, 0, 0, 0, 0, time.UTC), stdEnded: true, extEnded: true, found: true, @@ -546,19 +554,59 @@ func TestEOL_IsStandardSupportEnded(t *testing.T) { { name: "Fedora 35 supported", fields: fields{family: Fedora, release: "35"}, - now: time.Date(2022, 12, 7, 23, 59, 59, 0, time.UTC), + now: time.Date(2022, 12, 12, 23, 59, 59, 0, time.UTC), stdEnded: false, extEnded: false, found: true, }, { - name: "Fedora 35 eol on 2022-12-7", + name: "Fedora 35 eol since 2022-12-13", fields: fields{family: Fedora, release: "35"}, - now: time.Date(2022, 12, 8, 23, 59, 59, 0, time.UTC), + now: time.Date(2022, 12, 13, 0, 0, 0, 0, time.UTC), stdEnded: true, extEnded: true, found: true, }, + { + name: "Fedora 36 supported", + fields: fields{family: Fedora, release: "36"}, + now: time.Date(2023, 5, 16, 23, 59, 59, 0, time.UTC), + stdEnded: false, + extEnded: false, + found: true, + }, + { + name: "Fedora 36 eol since 2023-05-17", + fields: fields{family: Fedora, release: "36"}, + now: time.Date(2023, 5, 17, 0, 0, 0, 0, time.UTC), + stdEnded: true, + extEnded: true, + found: true, + }, + { + name: "Fedora 37 supported", + fields: fields{family: Fedora, release: "37"}, + now: time.Date(2023, 12, 15, 23, 59, 59, 0, time.UTC), + stdEnded: false, + extEnded: false, + found: true, + }, + { + name: "Fedora 37 eol since 2023-12-16", + fields: fields{family: Fedora, release: "37"}, + now: time.Date(2023, 12, 16, 0, 0, 0, 0, time.UTC), + stdEnded: true, + extEnded: true, + found: true, + }, + { + name: "Fedora 38 not found", + fields: fields{family: Fedora, release: "38"}, + now: time.Date(2023, 12, 15, 23, 59, 59, 0, time.UTC), + stdEnded: false, + extEnded: false, + found: false, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {