From 9d7eaf020d75a970c216e95f6c7cd256e7300d4b Mon Sep 17 00:00:00 2001 From: Reiner Herrmann Date: Fri, 29 Sep 2017 20:00:21 +0200 Subject: [PATCH] Use reproducible timestamp during build During build svg images of the calendar widget are generated, which differ based on the current date. By honouring the environment variable SOURCE_DATE_EPOCH, which is set by distributions during build, a deterministic date can be used at build time while keeping the normal behaviour during runtime. See also: https://reproducible-builds.org/specs/source-date-epoch/ --- tests/examples/shims/_date.lua | 11 +++++++++++ .../examples/wibox/widget/calendar/fn_embed_cell.lua | 1 + tests/examples/wibox/widget/calendar/font.lua | 1 + .../examples/wibox/widget/calendar/long_weekdays.lua | 1 + tests/examples/wibox/widget/calendar/month.lua | 1 + tests/examples/wibox/widget/calendar/start_sunday.lua | 1 + tests/examples/wibox/widget/calendar/week_numbers.lua | 1 + tests/examples/wibox/widget/calendar/year.lua | 1 + tests/examples/wibox/widget/defaults/calendar.lua | 1 + 9 files changed, 19 insertions(+) create mode 100644 tests/examples/shims/_date.lua diff --git a/tests/examples/shims/_date.lua b/tests/examples/shims/_date.lua new file mode 100644 index 000000000..8236b3270 --- /dev/null +++ b/tests/examples/shims/_date.lua @@ -0,0 +1,11 @@ +local source_date_epoch = os.getenv("SOURCE_DATE_EPOCH") +if source_date_epoch then + local old_osdate = os.date + os.date = function(format, timestamp) -- luacheck: ignore + if timestamp then + return old_osdate(format, timestamp) + end + format = "!" .. format + return old_osdate(format, source_date_epoch) + end +end diff --git a/tests/examples/wibox/widget/calendar/fn_embed_cell.lua b/tests/examples/wibox/widget/calendar/fn_embed_cell.lua index 91155e8c5..0a56d3c0f 100644 --- a/tests/examples/wibox/widget/calendar/fn_embed_cell.lua +++ b/tests/examples/wibox/widget/calendar/fn_embed_cell.lua @@ -3,6 +3,7 @@ local wibox = require("wibox") --DOC_HIDE local gears = require("gears") --DOC_HIDE local beautiful = require( "beautiful" ) --DOC_HIDE local Pango = require("lgi").Pango --DOC_HIDE +require("_date") --DOC_HIDE -- Beautiful fake get_font --DOC_HIDE local f = Pango.FontDescription.from_string("monospace 10") --DOC_HIDE diff --git a/tests/examples/wibox/widget/calendar/font.lua b/tests/examples/wibox/widget/calendar/font.lua index 5c42571fa..35542121f 100644 --- a/tests/examples/wibox/widget/calendar/font.lua +++ b/tests/examples/wibox/widget/calendar/font.lua @@ -2,6 +2,7 @@ local parent = ... --DOC_HIDE local wibox = require("wibox") --DOC_HIDE local beautiful = require( "beautiful" ) --DOC_HIDE local Pango = require("lgi").Pango --DOC_HIDE +require("_date") --DOC_HIDE -- Beautiful fake get_font --DOC_HIDE local f = Pango.FontDescription.from_string("sans 12") --DOC_HIDE diff --git a/tests/examples/wibox/widget/calendar/long_weekdays.lua b/tests/examples/wibox/widget/calendar/long_weekdays.lua index a4a671bc2..cad855c8a 100644 --- a/tests/examples/wibox/widget/calendar/long_weekdays.lua +++ b/tests/examples/wibox/widget/calendar/long_weekdays.lua @@ -2,6 +2,7 @@ local parent = ... --DOC_HIDE local wibox = require("wibox") --DOC_HIDE local beautiful = require( "beautiful" ) --DOC_HIDE local Pango = require("lgi").Pango --DOC_HIDE +require("_date") --DOC_HIDE -- Beautiful fake get_font --DOC_HIDE local f = Pango.FontDescription.from_string("monospace 10") --DOC_HIDE diff --git a/tests/examples/wibox/widget/calendar/month.lua b/tests/examples/wibox/widget/calendar/month.lua index 38167f28a..0a77a343b 100644 --- a/tests/examples/wibox/widget/calendar/month.lua +++ b/tests/examples/wibox/widget/calendar/month.lua @@ -2,6 +2,7 @@ local parent = ... --DOC_HIDE_ALL local wibox = require("wibox") --DOC_HIDE local beautiful = require( "beautiful" ) --DOC_HIDE local Pango = require("lgi").Pango --DOC_HIDE +require("_date") --DOC_HIDE -- Beautiful fake get_font --DOC_HIDE local f = Pango.FontDescription.from_string("monospace 10") --DOC_HIDE diff --git a/tests/examples/wibox/widget/calendar/start_sunday.lua b/tests/examples/wibox/widget/calendar/start_sunday.lua index 346b587b1..3f21ee6eb 100644 --- a/tests/examples/wibox/widget/calendar/start_sunday.lua +++ b/tests/examples/wibox/widget/calendar/start_sunday.lua @@ -2,6 +2,7 @@ local parent = ... --DOC_HIDE local wibox = require("wibox") --DOC_HIDE local beautiful = require( "beautiful" ) --DOC_HIDE local Pango = require("lgi").Pango --DOC_HIDE +require("_date") --DOC_HIDE -- Beautiful fake get_font --DOC_HIDE local f = Pango.FontDescription.from_string("monospace 10") --DOC_HIDE diff --git a/tests/examples/wibox/widget/calendar/week_numbers.lua b/tests/examples/wibox/widget/calendar/week_numbers.lua index b319a7564..5d4a163a1 100644 --- a/tests/examples/wibox/widget/calendar/week_numbers.lua +++ b/tests/examples/wibox/widget/calendar/week_numbers.lua @@ -2,6 +2,7 @@ local parent = ... --DOC_HIDE local wibox = require("wibox") --DOC_HIDE local beautiful = require( "beautiful" ) --DOC_HIDE local Pango = require("lgi").Pango --DOC_HIDE +require("_date") --DOC_HIDE -- Beautiful fake get_font --DOC_HIDE local f = Pango.FontDescription.from_string("monospace 10") --DOC_HIDE diff --git a/tests/examples/wibox/widget/calendar/year.lua b/tests/examples/wibox/widget/calendar/year.lua index 4274a0e28..dbb5a8a18 100644 --- a/tests/examples/wibox/widget/calendar/year.lua +++ b/tests/examples/wibox/widget/calendar/year.lua @@ -2,6 +2,7 @@ local parent = ... --DOC_HIDE local wibox = require("wibox") --DOC_HIDE local beautiful = require( "beautiful" ) --DOC_HIDE local Pango = require("lgi").Pango --DOC_HIDE +require("_date") --DOC_HIDE -- Beautiful fake get_font --DOC_HIDE local f = Pango.FontDescription.from_string("monospace 10") --DOC_HIDE diff --git a/tests/examples/wibox/widget/defaults/calendar.lua b/tests/examples/wibox/widget/defaults/calendar.lua index ea57daad9..67e8b487a 100644 --- a/tests/examples/wibox/widget/defaults/calendar.lua +++ b/tests/examples/wibox/widget/defaults/calendar.lua @@ -2,6 +2,7 @@ local parent = ... --DOC_HIDE local wibox = require("wibox") --DOC_HIDE local beautiful = require( "beautiful" ) --DOC_HIDE local Pango = require("lgi").Pango --DOC_HIDE +require("_date") --DOC_HIDE -- Beautiful fake get_font --DOC_HIDE local f = Pango.FontDescription.from_string("monospace 10") --DOC_HIDE