Loading pkgs/by-name/ki/kitty/fix-fish-completion-ordering.patch 0 → 100644 +18 −0 Original line number Diff line number Diff line --- a/tools/cli/fish.go 2025-04-04 23:43:16 +++ b/tools/cli/fish.go 2025-04-04 23:44:13 @@ -4,6 +4,7 @@ import ( "fmt" + "sort" "strings" "kitty/tools/cli/markup" @@ -22,6 +23,7 @@ } if len(commands) == 0 { commands = append(commands, utils.Keys(all_commands)...) + sort.Strings(commands) } script := strings.Builder{} script.WriteString(`function __ksi_completions pkgs/by-name/ki/kitty/fix-timestamp-reproducibility.patch 0 → 100644 +35 −0 Original line number Diff line number Diff line --- a/tools/cli/help.go 2025-04-04 23:55:53 +++ b/tools/cli/help.go 2025-04-04 23:56:59 @@ -9,6 +9,7 @@ "os/exec" "slices" "strings" + "strconv" "time" "golang.org/x/sys/unix" @@ -133,6 +134,15 @@ pager.Stdout = os.Stdout pager.Stderr = os.Stderr _ = pager.Run() +} + +func getDeterministicTimestamp() time.Time { + if epochStr, exists := os.LookupEnv("SOURCE_DATE_EPOCH"); exists { + if epoch, err := strconv.ParseInt(epochStr, 10, 64); err == nil { + return time.Unix(epoch, 0).UTC() + } + } + return time.Now() } func (self *Command) GenerateManPages(level int, recurse bool) (err error) { @@ -149,7 +159,7 @@ return err } defer outf.Close() - fmt.Fprintf(outf, `.TH "%s" "1" "%s" "%s" "%s"`, name, time.Now().Format("Jan 02, 2006"), kitty.VersionString, "kitten Manual") + fmt.Fprintf(outf, `.TH "%s" "1" "%s" "%s" "%s"`, name, getDeterministicTimestamp().Format("Jan 02, 2006"), kitty.VersionString, "kitten Manual") fmt.Fprintln(outf) fmt.Fprintln(outf, ".SH Name") fmt.Fprintln(outf, name, "\\-", escape_text_for_man(self.ShortDescription)) pkgs/by-name/ki/kitty/package.nix +6 −0 Original line number Diff line number Diff line Loading @@ -159,6 +159,12 @@ buildPythonApplication rec { # Skip `test_ssh_bootstrap_with_different_launchers` when launcher is `zsh` since it causes: # OSError: master_fd is in error condition ./disable-test_ssh_bootstrap_with_different_launchers.patch # Makes man page generation respect SOURCE_DATE_EPOCH. Drop on next kitty release https://github.com/kovidgoyal/kitty/pull/8509 ./fix-timestamp-reproducibility.patch # Ensures deterministic ordering of fish shell completions. Drop on next kitty release https://github.com/kovidgoyal/kitty/pull/8509 ./fix-fish-completion-ordering.patch ]; hardeningDisable = [ Loading Loading
pkgs/by-name/ki/kitty/fix-fish-completion-ordering.patch 0 → 100644 +18 −0 Original line number Diff line number Diff line --- a/tools/cli/fish.go 2025-04-04 23:43:16 +++ b/tools/cli/fish.go 2025-04-04 23:44:13 @@ -4,6 +4,7 @@ import ( "fmt" + "sort" "strings" "kitty/tools/cli/markup" @@ -22,6 +23,7 @@ } if len(commands) == 0 { commands = append(commands, utils.Keys(all_commands)...) + sort.Strings(commands) } script := strings.Builder{} script.WriteString(`function __ksi_completions
pkgs/by-name/ki/kitty/fix-timestamp-reproducibility.patch 0 → 100644 +35 −0 Original line number Diff line number Diff line --- a/tools/cli/help.go 2025-04-04 23:55:53 +++ b/tools/cli/help.go 2025-04-04 23:56:59 @@ -9,6 +9,7 @@ "os/exec" "slices" "strings" + "strconv" "time" "golang.org/x/sys/unix" @@ -133,6 +134,15 @@ pager.Stdout = os.Stdout pager.Stderr = os.Stderr _ = pager.Run() +} + +func getDeterministicTimestamp() time.Time { + if epochStr, exists := os.LookupEnv("SOURCE_DATE_EPOCH"); exists { + if epoch, err := strconv.ParseInt(epochStr, 10, 64); err == nil { + return time.Unix(epoch, 0).UTC() + } + } + return time.Now() } func (self *Command) GenerateManPages(level int, recurse bool) (err error) { @@ -149,7 +159,7 @@ return err } defer outf.Close() - fmt.Fprintf(outf, `.TH "%s" "1" "%s" "%s" "%s"`, name, time.Now().Format("Jan 02, 2006"), kitty.VersionString, "kitten Manual") + fmt.Fprintf(outf, `.TH "%s" "1" "%s" "%s" "%s"`, name, getDeterministicTimestamp().Format("Jan 02, 2006"), kitty.VersionString, "kitten Manual") fmt.Fprintln(outf) fmt.Fprintln(outf, ".SH Name") fmt.Fprintln(outf, name, "\\-", escape_text_for_man(self.ShortDescription))
pkgs/by-name/ki/kitty/package.nix +6 −0 Original line number Diff line number Diff line Loading @@ -159,6 +159,12 @@ buildPythonApplication rec { # Skip `test_ssh_bootstrap_with_different_launchers` when launcher is `zsh` since it causes: # OSError: master_fd is in error condition ./disable-test_ssh_bootstrap_with_different_launchers.patch # Makes man page generation respect SOURCE_DATE_EPOCH. Drop on next kitty release https://github.com/kovidgoyal/kitty/pull/8509 ./fix-timestamp-reproducibility.patch # Ensures deterministic ordering of fish shell completions. Drop on next kitty release https://github.com/kovidgoyal/kitty/pull/8509 ./fix-fish-completion-ordering.patch ]; hardeningDisable = [ Loading