Skip to content

Conversation

@tdryer
Copy link
Contributor

@tdryer tdryer commented Nov 16, 2025

Add package for kitty:

The fast, feature-rich, GPU based terminal emulator.

This installs a pre-built bundle including most of kitty's dependencies and desktop integration.

Fixes #5801.

Progress

  • Edit packagelist
  • Add initial pacscript
  • Add maintainer to pacscript

@github-actions github-actions bot added the Package Add Use this to request a package to be added label Nov 16, 2025
install -d "${pkgdir}/opt"
cp -r . "${pkgdir}/opt/${gives}"

# Symlink /usr/... -> /opt/kitty/..
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The binaries are symlinked rather than installed directly to /usr/bin because they use RPATH to locate the bundled libraries. Everything else could be moved instead if that is preferable.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does the AUR handle this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's no equivalent in the AUR because kitty is in the official Arch repository.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That package doesn't have the same issue because it's building kitty from source.

Another solution is patching the binaries to modify their RPATH so they load the bundled libraries from a fixed path instead of $ORIGIN/../lib. Should I try that try that instead?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would be nice. Really what I want is less symlinks and more just simple hard paths.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The RPATH approach is possible, but there are other hard-coded paths requiring multiple directories under /usr/lib to work: eg. /usr/lib/kitty, /usr/lib/kitty-bundled, /usr/lib/kitty-extensions. I got kitty working but kitten segfaults in this configuration for some reason.

Instead I pushed an intermediate solution that avoids symlinking anything except the binaries.

Add package for [kitty][1]:

> The fast, feature-rich, GPU based terminal emulator.

This installs a pre-built bundle including most of kitty's dependencies
and desktop integration.

[1]: https://sw.kovidgoyal.net/kitty/

Fixes pacstall#5801.
@Elsie19
Copy link
Member

Elsie19 commented Nov 20, 2025

I noticed that in the tree printing of the package there's this:

/usr
  │──bin

And nothing in it.

@tdryer
Copy link
Contributor Author

tdryer commented Nov 21, 2025

That's an issue with pacstall; see pacstall/pacstall#1408.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Package Add Use this to request a package to be added

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PacReq: kitty

2 participants