Bug 1212815 - kitty doesn't start on SLED
Summary: kitty doesn't start on SLED
Status: RESOLVED FIXED
Alias: None
Product: openSUSE Backports
Classification: openSUSE
Component: Packages (show other bugs)
Version: SLE-15-SP4
Hardware: Other Other
: P5 - None : Normal
Target Milestone: ---
Assignee: Scott Bradnick
QA Contact: E-Mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-06-28 13:02 UTC by Adam Majer
Modified: 2023-08-08 14:46 UTC (History)
0 users

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Adam Majer 2023-06-28 13:02:33 UTC
This is on SLED 15.4, installing kitty from backports,


> kitty 
[179 14:58:30.045974] Traceback (most recent call last):
  File "/usr/bin/../lib/kitty/kitty/constants.py", line 185, in read_kitty_resource
    from importlib.resources import read_binary
ModuleNotFoundError: No module named 'importlib.resources'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/../lib/kitty/kitty/main.py", line 349, in main
    _main()
  File "/usr/bin/../lib/kitty/kitty/main.py", line 342, in _main
    run_app(opts, cli_opts, bad_lines)
  File "/usr/bin/../lib/kitty/kitty/main.py", line 183, in __call__
    _run_app(opts, args, bad_lines)
  File "/usr/bin/../lib/kitty/kitty/main.py", line 160, in _run_app
    args.cls or appname, load_all_shaders, disallow_override_title=bool(args.title))
  File "/usr/bin/../lib/kitty/kitty/main.py", line 92, in load_all_shaders
    load_shader_programs(semi_transparent)
  File "/usr/bin/../lib/kitty/kitty/window.py", line 213, in __call__
    compile_program(BLIT_PROGRAM, *load_shaders('blit'))
  File "/usr/bin/../lib/kitty/kitty/utils.py", line 70, in load_shaders
    return load('vertex'), load('fragment')
  File "/usr/bin/../lib/kitty/kitty/utils.py", line 68, in load
    return read_kitty_resource(f'{name}_{which}.glsl').decode('utf-8').replace('GLSL_VERSION', str(GLSL_VERSION), 1)
  File "/usr/bin/../lib/kitty/kitty/constants.py", line 187, in read_kitty_resource
    from importlib_resources import read_binary  # type: ignore
ModuleNotFoundError: No module named 'importlib_resources'
Comment 1 Scott Bradnick 2023-06-28 15:55:13 UTC
> ModuleNotFoundError: No module named 'importlib.resources'

`zypper in python3-importlib_resources` will fix it. That's quite the old version of kitty and certainly predates my involvement with it. Seems like it should have a "Recommends: python3-importlib-resources", but possilbly the tester already had that library and it went un-noticed. My .spec for kitty doesn't include it and if I try to remove python311-importlib-resources (granted, in TW, where it's current) it wants to take 2 other packages with it.

Personally, I'm not sure we should expect a current Kitty in SLE ~ it now involves (a very recent) "go" which [possibly?] wouldn't be quick/easy to backport on any type of regular basis.
Comment 2 Adam Majer 2023-06-29 07:33:42 UTC
(In reply to Scott Bradnick from comment #1)
> > ModuleNotFoundError: No module named 'importlib.resources'
> 
> `zypper in python3-importlib_resources` will fix it. That's quite the old
> version of kitty and certainly predates my involvement with it. Seems like
> it should have a "Recommends: python3-importlib-resources", but possilbly
> the tester already had that library and it went un-noticed. My .spec for
> kitty doesn't include it and if I try to remove
> python311-importlib-resources (granted, in TW, where it's current) it wants
> to take 2 other packages with it.
> 
> Personally, I'm not sure we should expect a current Kitty in SLE ~ it now
> involves (a very recent) "go" which [possibly?] wouldn't be quick/easy to
> backport on any type of regular basis.

The package has

BuildRequires:  python3-importlib_resources

but is missing the requires ;). This requirement is also missing in Factory, btw, so maybe when you update it in Factory to have all Requires that are needed, you can also send it to Backports for Leap/SLE users.

Regarding Golang, we are shipping the version that would be required.

isc cat SUSE:SLE-15:Update go go.spec | grep Version
Version:        1.20
Comment 3 Scott Bradnick 2023-06-29 20:15:34 UTC
I have this:

https://build.opensuse.org/package/show/home:sbradnick:branches:X11:terminals/kitty

Things are looking good keeping the existing .spec setup and building for:

- Leap 15.4
- Leap 15.5
- SLE 15SP4
- SLE 15SP5

It makes use of https://build.opensuse.org/request/show/1085669 which I haven't merged in yet, but this would be a good case to do so.

There was also code worked out to separate out these 2 packages:

1. kitty-shell-integration
2. kitty-terminfo

but that can also wait for a later day unless I get it included before Kovid does the next release.

I would like to have the docs included, but it doesn't appear distros that aren't TW can support that (based on the available >python3.6 packages available), so that dream will have to wait for another day :P
Comment 4 Scott Bradnick 2023-08-07 16:14:55 UTC
This is resolved as far as kitty is concerned, I'm not sure how X11:terminals/kitty makes its way into SLE Backports. Seems like 1 person generally handles that and I'm really not sure where they pull from and submit to. I'll add some info here:

PROJECT:
https://build.opensuse.org/package/show/openSUSE:Backports:SLE-15-SP5/kitty

PERSON:
Yuchen Lin (maxlin_factory)
Comment 5 Adam Majer 2023-08-08 07:02:22 UTC
(In reply to Scott Bradnick from comment #4)
> This is resolved as far as kitty is concerned, I'm not sure how
> X11:terminals/kitty makes its way into SLE Backports. Seems like 1 person
> generally handles that and I'm really not sure where they pull from and
> submit to. I'll add some info here:
> 
> PROJECT:
> https://build.opensuse.org/package/show/openSUSE:Backports:SLE-15-SP5/kitty
> 
> PERSON:
> Yuchen Lin (maxlin_factory)

You do a sr from devel project or factory to backports. Backports is also known as Leap :-)

osc sr X11:terminals kitty openSUSE:Backports:SLE-15-SP5:Update

I just did the submit request and it's here. You may need to review it for it to proceed.

https://build.opensuse.org/request/show/1102814
Comment 6 Scott Bradnick 2023-08-08 14:35:16 UTC
(In reply to Adam Majer from comment #5)
> (In reply to Scott Bradnick from comment #4)
> > This is resolved as far as kitty is concerned, I'm not sure how
> > X11:terminals/kitty makes its way into SLE Backports. Seems like 1 person
> > generally handles that and I'm really not sure where they pull from and
> > submit to. I'll add some info here:
> > 
> > PROJECT:
> > https://build.opensuse.org/package/show/openSUSE:Backports:SLE-15-SP5/kitty
> > 
> > PERSON:
> > Yuchen Lin (maxlin_factory)
> 
> You do a sr from devel project or factory to backports. Backports is also
> known as Leap :-)
> 
> osc sr X11:terminals kitty openSUSE:Backports:SLE-15-SP5:Update
> 
> I just did the submit request and it's here. You may need to review it for
> it to proceed.
> 
> https://build.opensuse.org/request/show/1102814

I agree, in theory it's that simple (and maybe it will be here), but I generally find a tangled web of it bouncing around _somewhere_ and not necessarily ending up where I'd expect (even after something is approved) until I poke around somewhere else and ask someone to do another step and a not-insignificant amount of time elapses.

Historically, it seems like kitty is updated in SLE [or (aka?) Leap Backports] via Factory by maxlin (not that only one person can participate of course).

Someone did the same as what you did here --> https://build.opensuse.org/package/show/openSUSE:Backports:SLE-15-SP4/kitty ; so I have no reason to think it's not enough in this case 👍️
Comment 7 Adam Majer 2023-08-08 14:46:18 UTC
(In reply to Scott Bradnick from comment #6)
> Historically, it seems like kitty is updated in SLE [or (aka?) Leap
> Backports] via Factory by maxlin (not that only one person can participate
> of course).

Those are done automatically from Factory for branched packages in Leap as version updates for GA. Someone (maintainer normally) still needs to push maintenance updates manually during lifecycle of Leap.

- Adam