Commit graph

600 commits

Author SHA1 Message Date
Kovid Goyal
46bb027d14
Fix building on old gcc/clang 2024-01-15 11:23:42 +05:30
Kovid Goyal
d4ff54e0d8
Dont use branch-protection=standard on linux ARM as it reportedly causes crashes
See https://github.com/kovidgoyal/kitty/issues/6845#issuecomment-1835886938
2023-12-01 16:48:30 +05:30
Kovid Goyal
f2075f99fd
More comprehensive is_arm check
Apparently on some Linux machines platform.machine() is 'aarch64' not
'arm64'.
2023-12-01 16:36:34 +05:30
Kovid Goyal
788295e534
Turn on control flow protection build options 2023-12-01 07:36:02 +05:30
Kovid Goyal
2047ea8eec
Allow package build to complete without docs if user chose to skip building kitten 2023-11-12 08:16:26 +05:30
Kovid Goyal
a3c8f32c1a
Fix Linux CI build 2023-11-11 17:36:10 +05:30
Kovid Goyal
0f2196357c
Make mypy happy 2023-11-11 16:07:18 +05:30
Kovid Goyal
2759ec1fe1
Add an option to setup.py to skip building kitten
Fixes #6809
2023-11-11 15:55:56 +05:30
Kovid Goyal
77292a16d6
Make shebangs consistent
Follow PEP 0394 and use /usr/bin/env python so that the python in the
users venv is respected. Not that the kitty python files are meant to be
executed standalone anyway, but, whatever.

Fixes #6810
2023-11-11 08:32:05 +05:30
Kovid Goyal
a9b412baba
Fix a regression that broke kitten update-self
Fixes #6729
2023-10-18 19:19:35 +05:30
Kovid Goyal
56063b96fd
Move gen scripts into their own package 2023-10-14 07:44:18 +05:30
Bernhard M. Wiedemann
50968c12b1
Make build reproducible
This needs 3 fixes:
* for an ordering issue in docs_ref_map_generated.h
* for a filesystem-order issue in uniforms_generated.h
* to normalize mtimes in the data_generated.bin tar

This patch was done while working on reproducible builds for openSUSE.
2023-10-08 04:48:51 +02:00
Kovid Goyal
dda5771ccd
Yet another stupid entry in Info.plist for Apple's security theatre
Fixes #6632
2023-09-18 22:31:52 +05:30
Jeff Pitman
0626c0f5d9 Handles go versions like go1.22-YYYYMMDD-RCXX. 2023-09-10 17:49:24 -07:00
Kovid Goyal
193c2542bd
Make mypy 1.5.0 happy 2023-08-11 08:34:22 +05:30
Kovid Goyal
05373c6e2a
Get the new rsync code building 2023-07-30 19:49:43 +05:30
Kovid Goyal
d485d487ea
Use pkg_config for xxhash flags 2023-07-30 19:49:42 +05:30
Kovid Goyal
fabb6bd8cc
Start work on porting Go rsync implementation to C 2023-07-30 19:49:42 +05:30
Kovid Goyal
52ffc417b6
Build a minimal kitty.app in develop mode 2023-07-29 11:10:54 +05:30
Kovid Goyal
b2c1afdcbb
Use an absolute path to python code for develop builds on macOS 2023-07-29 10:46:22 +05:30
Kovid Goyal
f8fd6031c9
Get develop builds working on macOS as well 2023-07-28 21:14:31 +05:30
Kovid Goyal
aab1bf305a
Move include path logic for develop into setup.py 2023-07-28 10:23:54 +05:30
Kovid Goyal
916ce43475
make develop now builds on Linux 2023-07-28 10:07:07 +05:30
Kovid Goyal
db0b524aa3
Cleanup compile_python to use facilities from modern python 2023-07-27 11:50:53 +05:30
Kovid Goyal
22dd8ecb62
Apparently people out there want to build kitty with rc Go versions
Fixes #6499
2023-07-26 02:14:50 +05:30
Kovid Goyal
2b6b0ea9d5
Make mypy happy 2023-06-22 19:57:15 +05:30
Kovid Goyal
248301f8b3
Cleanup a bunch of shader infrastructure
1) No longer us glScissor. It's an awful API and is not available in
   Vulkan. Instead the graphics drawing code ensures the graphic is
   drawn within the current viewport

2) Use generated code to automatically get the locations of uniforms
   from shaders. Greatly simplifies adding new uniforms to a shader.

3) Dont use a VAO for loading graphics vertices. Greatly simplifies
   a bunch of book keeping code.
2023-06-22 19:38:05 +05:30
Kovid Goyal
a5a7db6ce5
Add command line options to setup.py to override the python build flags 2023-06-14 10:53:44 +05:30
Kovid Goyal
88a5086f71
Add rudimentary support for cross-compilation
Not really tested, actual cross compilers, feel free to send patches.
Fixes #6354
2023-06-13 07:56:16 +05:30
Kovid Goyal
12efff6d08
Fix #6185 2023-04-15 20:43:58 +05:30
Kovid Goyal
912dcc0a6e
Nicer error message when the version of go on the system is too old 2023-04-10 11:31:53 +05:30
Kovid Goyal
073b47a236
Revert #6114
Frozen kitty builds dont have python files (they are loaded from a
single mmmaped archive), so the test will prevent any
kittens from being found.

Have make clean remove leftover kittens directories
2023-03-18 15:26:33 +05:30
Kovid Goyal
6794ec1de7
Wire up the new subseq match code 2023-03-14 12:29:44 +05:30
Kovid Goyal
cd8bb462c3
Add KITTY_VCS_REV for release builds as well 2023-02-28 19:41:28 +05:30
Kovid Goyal
935a36f5a8
Allow specifying VCS revision on the build command line 2023-02-28 13:05:43 +05:30
Kovid Goyal
d656017f27
Move SSH askpass implementation into kitten 2023-02-26 08:01:02 +05:30
Kovid Goyal
e41897f93f
Also clean *_generated.bin files 2023-02-23 21:24:59 +05:30
Kovid Goyal
79e99f7e3a
Dont pass PWD to go build
Fixes #6051
2023-02-23 14:31:30 +05:30
Jonathan Lestrelin
9ce11499de
Add x-scheme-handler/ssh to mimetypes
Add x-scheme-handler/ssh to mimetypes so that kitty open can be used to open ssh links by default.
2023-02-15 16:24:47 +00:00
Kovid Goyal
ce6dacd0d4
Also build 32-bit kitten for Linux 2023-01-31 10:48:56 +05:30
Kovid Goyal
b408abe304
Move compile_commands.json to build directory 2023-01-26 14:25:22 +05:30
Kovid Goyal
6b8e5ea225
Rename kitty-tool to kitten
It's easier to type, and cuter.

Also, most, if not all of the TUI parts of
kitty's kittens will eventually be re-written into kitten.

The only downside I can see is that we cant tab complete kitty
anymore, but hopefully there will be less reason to run kitty
from the shell as command line tools migrate to kitten.

Meowrrrr!!!
2023-01-14 15:44:52 +05:30
Kovid Goyal
60310ced05
Also build 32-bit ARM kitty-tool for Linux 2023-01-14 11:20:31 +05:30
Kovid Goyal
7fe5d7b58f
Replace isort with ruff 2023-01-09 16:47:42 +05:30
Kovid Goyal
5c9c9a67bc
Fix make asan
Suppress leak detection when running gen-go-code.py otherwise it fails
since python always leaks
2022-12-03 12:34:32 +05:30
Kovid Goyal
375fa73826
Delegate kitty +kitten clipboard to kitty-tool 2022-11-26 20:09:43 +05:30
Kovid Goyal
5eb2142d70
Use a define rather than a generated file for wrapped kittens 2022-11-26 16:16:45 +05:30
Kovid Goyal
4d3f3b5e91
Start moving clipboard kitten to kitty-tool 2022-11-25 12:58:10 +05:30
Kovid Goyal
8d12e60f62
Set a flag available at runtime when cross compiling kitty-tool 2022-11-15 15:04:28 +05:30
Kovid Goyal
e3b22a87e4
Upload static kitty-tool builds when publishing 2022-11-14 17:07:32 +05:30
Kovid Goyal
7eae176b88
Code to build static versions of kitty-tool 2022-11-14 16:27:19 +05:30
Kovid Goyal
67b12159f4
make clean should also clean go caches 2022-11-14 15:42:07 +05:30
Kovid Goyal
d27cf045e5
... 2022-11-14 15:42:05 +05:30
Kovid Goyal
f7d44330a2
remove unused code 2022-11-14 15:42:05 +05:30
Kovid Goyal
c07dc220a8
Fix frozen builds 2022-11-14 15:42:01 +05:30
Kovid Goyal
21b572d69a
Allow building kitty-tool as a static binary 2022-11-14 15:41:57 +05:30
Kovid Goyal
441e4edfb2
Also ensure kitty-tool bootstrap is executable 2022-11-14 15:41:53 +05:30
Kovid Goyal
f103f8d5db
Create a in src symlink for kitty-tool as well 2022-11-14 15:41:52 +05:30
Kovid Goyal
b382587776
another attempt 2022-11-14 15:41:52 +05:30
Kovid Goyal
6fe0c8ba2f
dump tree 2022-11-14 15:41:52 +05:30
Kovid Goyal
7b2991de02
... 2022-11-14 15:41:52 +05:30
Kovid Goyal
5412a0126c
we generate more than just rc commands 2022-11-14 15:41:52 +05:30
Kovid Goyal
841b368021
DRYer 2022-11-14 15:41:52 +05:30
Kovid Goyal
4b18b575cd
Misc fixes for TUI 2022-11-14 15:41:50 +05:30
Kovid Goyal
7bb310d3af
Port recent changes from cli.py to Go 2022-11-14 15:41:49 +05:30
Kovid Goyal
e599a2c87f
The stupid term package is not EINTR safe 2022-11-14 15:41:48 +05:30
Kovid Goyal
74b768bfc2
... 2022-11-14 15:41:47 +05:30
Kovid Goyal
a5876e5231
Refactor conversion of py opt to go opt 2022-11-14 15:41:46 +05:30
Kovid Goyal
a0bff4abab
Let kitty-tool know if it was built for a frozen kitty 2022-11-14 15:41:46 +05:30
Kovid Goyal
e356af2dc4
Build kitty-tool as a universal binary for freeze builds on macOS 2022-11-14 15:41:45 +05:30
Kovid Goyal
e9e7b97c48
And we have frozen builds working with kitty-tool 2022-11-14 15:41:45 +05:30
Kovid Goyal
54fd2c6773
Get linux freeze working 2022-11-14 15:41:45 +05:30
Kovid Goyal
c85af36116
Simplify cleanup and ignoring of generated go files 2022-11-14 15:41:45 +05:30
Kovid Goyal
4ac4ee643e
Have the rc command wrapper sauto-generated on build 2022-11-14 15:41:45 +05:30
Kovid Goyal
4b69a600e5
Nicer error when go is not found during build 2022-11-14 15:41:44 +05:30
Kovid Goyal
ce9a5528bc
Pass verbose to go build 2022-11-14 15:41:44 +05:30
Kovid Goyal
083deec663
Build kitty-tool via the build system 2022-11-14 15:41:44 +05:30
Kovid Goyal
c68b82e4d0
ssh kitten: Fix executable permission missing from kitty bootstrap script
Fixes #5438
2022-08-29 18:20:09 +05:30
Kovid Goyal
9e9aa52553
Ensure extract_rt_targets is run only once per build 2022-08-24 14:00:44 +05:30
Kovid Goyal
44ccdd36d6
Remove socket prewarming
The potential for breakage is too high, and I am working on an
alternative solution that will be better long term.

Prewarming is still used for kittens launched via keybindings
2022-08-20 13:38:33 +05:30
Kovid Goyal
6ca39d9d83
Move code to delete empty folders into bypy
So it applies to both linux and mac builds automatically
2022-08-20 12:46:55 +05:30
Kovid Goyal
26c099639c
Remove empty folders from macOS package builds 2022-08-20 12:20:18 +05:30
Kovid Goyal
3288400005
Make the docs and man pages available in the macos bundle as well 2022-08-19 12:38:10 +05:30
Kovid Goyal
1f499a7c6c
Add newline to end of generated file 2022-08-19 11:29:47 +05:30
Kovid Goyal
012731c3be
Clean _generated.h files 2022-08-19 11:22:30 +05:30
Kovid Goyal
5deed81737
Dont maintain ref_map manually 2022-08-19 11:20:50 +05:30
Kovid Goyal
5541e3c2ff
More robust cleaning of launcher dir 2022-08-14 23:39:26 +05:30
Kovid Goyal
ae16fed39b
Fix repeated make app failing on macOS 2022-08-14 19:01:58 +05:30
Kovid Goyal
848a795d26
Fix minimal macos bundle build 2022-08-14 13:48:45 +05:30
Kovid Goyal
deb8c3dacd
Dont put the launcher source files in the root directory 2022-08-14 13:01:29 +05:30
Kovid Goyal
31be4f041e
remove unused code 2022-08-10 12:31:47 +05:30
Kovid Goyal
1f5ebc408d
When searching macOS for openssl search for the same version as used by the python we are running 2022-08-10 12:30:36 +05:30
Kovid Goyal
241c7af855
DRYer 2022-08-10 11:45:07 +05:30
Kovid Goyal
080fcd8fc1
Link against newer rather than older openssl 2022-08-10 11:36:56 +05:30
Kovid Goyal
1aad4c7ec3
Only search for brew openssl on failure 2022-08-10 11:35:43 +05:30
Kovid Goyal
e0e0582b53
Fix #5364
macOS is *the* worst UNIX I have ever seen.
2022-08-10 11:33:30 +05:30
Kovid Goyal
e56fa9d31f
Try and get Homebrew installed OpenSSL to work 2022-08-03 23:17:47 +05:30
Kovid Goyal
fd6bc55db6
Start work on implementing public key crypto
Will come in handy for various things in the future, so lets just setup
the API now. No new dependencies are needed since Python already depends
on OpenSSL.
2022-08-03 22:37:35 +05:30
Kovid Goyal
a01dbbdf04
Fix launcher not building universal 2022-08-01 19:03:03 +05:30
Kovid Goyal
51698dff07
... 2022-08-01 19:02:59 +05:30
Kovid Goyal
5d3e2c7111
... 2022-08-01 19:02:58 +05:30
Kovid Goyal
d4bc906c5c
Fix launcher build with sanitize 2022-08-01 19:02:58 +05:30
Kovid Goyal
09ddbbf600
Finish move of prewarm launcher into its own compilation unit 2022-08-01 19:02:58 +05:30
Kovid Goyal
7a31c7ff50
Start work on everywhere prewarm 2022-08-01 19:02:57 +05:30
Kovid Goyal
7281b9dbb1
Ensure local kitty is used when running the tests 2022-07-05 21:09:09 +05:30
Kovid Goyal
4b63ee036e
Run the test suite using the kitty binary 2022-07-05 21:05:03 +05:30
Kovid Goyal
71c902eaf8
Build the launcher with debug symbols when using --debug 2022-07-03 13:28:57 +05:30
Kovid Goyal
313136803c
DRYer 2022-06-02 10:21:34 +05:30
Kovid Goyal
56f8a06362
DRYer 2022-06-01 08:47:19 +05:30
Brian Leung
62c27b3db7
Add kitty/fontconfig.c to SPECIAL_SOURCES
Fixup of bec620a8d3.
2022-05-31 19:58:42 -07:00
Kovid Goyal
1283a2b7e5
... 2022-06-01 08:21:23 +05:30
Kovid Goyal
bec620a8d3
Fix #5154 2022-06-01 08:19:11 +05:30
Kovid Goyal
0df9a5d5c5
Fix compilation on Python 3.11
Python 3.11 deprecates the supposedly "stable API" PySys_AddXOption().
So switch to using PyConfig.xoptions instead. This means dropping
support for python 3.7 since PyConfig is not available there. So it
rolls.

Fixes #5143
2022-05-29 14:37:14 +05:30
Kovid Goyal
d3656bf7e9
Linux: Load libfontconfig at runtime to allow the binaries to work for running kittens on servers without FontConfig 2022-05-13 19:56:19 +05:30
Kovid Goyal
073eecb6bb
Also package kitty.termcap 2022-04-12 22:43:22 +05:30
Kovid Goyal
57cffc71b7
Fix building on macOS with a non-framework Python
Fixes #289
2022-04-01 07:39:54 +05:30
Kovid Goyal
fb40280d3c
Use x-shellscript in addition to x-sh
/etc/mime.types uses x-sh and file --mime-type uses x-shellscript. Sigh.
Fixes #4881
2022-03-26 07:35:42 +05:30
Kovid Goyal
441ea7d696
askpass.py should be executable 2022-03-13 14:49:36 +05:30
pagedown
0a9f8d4f6a
Add terminfo src file when packaging
ssh kitten needs to send this file.
2022-03-11 08:35:10 +08:00
Kovid Goyal
f774841ee0
More robust copying of terminfo
Dont use symlinks in the tarball, instead create them
in the bootstrap scripts, only if needed.
2022-03-10 21:08:20 +05:30
Kovid Goyal
ff01df3b16
Dont byte compile the bootstrap script during build 2022-03-06 10:54:58 +05:30
Kovid Goyal
6b681df473
Include all terminfo variants in binary bundles
Needed so that they can be transmitted over ssh easily
2022-03-03 21:24:43 +05:30
Kovid Goyal
01d866f482
Also add openable mimetypes to kitty-open.desktop 2022-02-06 20:27:50 +05:30
pagedown
73a197fcde
Add kitty-launcher.desktop to handle URL scheme for Linux 2022-02-06 19:12:57 +08:00
pagedown
007e9697c4
macOS: Add Open with kitty Service
There are still some file types that cannot be matched.
Add a standalone Open With service.
Users can configure shortcut for this service in System Preferences.
2022-02-05 23:20:19 +08:00
pagedown
9989edbe42
macOS: Add archive file type to info plist
List kitty in the Open With menu for archive files.
E.g. compressed files or disk image files
2022-02-05 23:19:33 +08:00
pagedown
206e490491
macOS: Add common URL schemes to info plist 2022-02-05 13:09:13 +08:00
Kovid Goyal
90b54c5f7f
Get build-dep working again for changes to bypy 2022-02-05 10:27:47 +05:30
Luflosi
301ca76d14
Shorten a long line
This line is getting really close to the limit of 160 characters.
2022-02-01 12:16:13 +01:00
pagedown
a22f37b919
Refactor: More f-string for tools 2022-01-29 20:14:36 +08:00
pagedown
81e7e6a356
macOS: Disable sudden termination
Since we have the quit confirmation feature, so we explicitly specify
that sudden termination is not supported.
2022-01-29 13:41:59 +08:00
pagedown
953cf26369
macOS: Fix info plist structure version
Set the InfoDictionary version explicitly, hopefully the behavior will
be unchanged when the default version is upgraded.
2022-01-29 13:37:21 +08:00
pagedown
dc61adf9d8
Refactor: More f-string 2022-01-28 19:34:13 +08:00
pagedown
9be57de4a9
macOS: List kitty in the open with menu of an arbitrary file
Allow opening files without extension name following the rules in launch
actions configuration.
2022-01-27 18:16:35 +08:00
pagedown
cc84ee9734
Refactor: Replace string concat with f-string 2022-01-27 17:57:25 +08:00
pagedown
b5ad030a14
macOS: Categorize and update bundle info plist
Allow toggling input sources using CapsLock.
Allow programs to request photo, motion, speech recognition permissions.
Add local network unicast or multicast usage description.
Remove iOS-only items.
2022-01-27 17:55:43 +08:00
pagedown
f7be4fab48
macOS: Allow mapping secure keyboard entry shortcut 2022-01-09 22:54:03 +08:00
pagedown
9ca691c0c6
macOS: Add kitty to the open with list for text files and image files 2022-01-07 19:33:29 +08:00
Kovid Goyal
420a1b018a
Fix #4448 2022-01-05 20:14:23 +05:30
Kovid Goyal
bed3d2eb50
Fix #4434 2022-01-04 23:38:58 +05:30
Kovid Goyal
d65ed5993c
New bypy CLI for export 2021-12-19 22:42:36 +05:30
Kovid Goyal
a938b01246
Build binaries for Linux ARM64 2021-12-10 12:49:58 +05:30
Kovid Goyal
8e435dff16
Update the version of Ubuntu the kitty binaries are built on to Bionic
The upgrade was needed as I couldn't get Xenial to boot in the QEMU VM.
In any case Bionic is now three years old and comes with GLIBC 2.27
released on 2018-02-01 which will be almost four years old when the next
version of kitty is released.
2021-12-09 22:28:11 +05:30
Kovid Goyal
617316e8d9
Linux: Use copy_file_range for defrag of the disk cache which should give even better performance on filesystems that support it 2021-11-24 19:42:00 +05:30
Kovid Goyal
f0e8ab8f31
Drop support for python 3.6
It is being EOLed next month (https://www.python.org/dev/peps/pep-0494/)
which is when I expect the next kitty release as well
2021-11-18 22:44:41 +05:30
Kovid Goyal
69e903a4c4
Add more type annotations 2021-10-27 11:13:28 +05:30
Kovid Goyal
9c2f96f7eb
Add more type annotations 2021-10-27 08:45:45 +05:30
Kovid Goyal
9289ebf9c9
Old python compat 2021-10-07 13:51:55 +05:30
Kovid Goyal
f4b6cc6628
Forgot the key the is_gcc cache by cc 2021-10-07 13:43:12 +05:30
Kovid Goyal
853f7cc59a
Make handling of CC more robust
Allows multi-command compilers and makes detection of gcc more robust.
Fixes #4102
2021-10-07 13:35:56 +05:30