I3 build from source no build-deps.list file

Following this guide to build i3 from source for qubes. However, there is no build-deps.list file in the repo and I get stuck on this step

$ sudo dnf install -y $(cat build-deps.list)

If I just run this command

$ sudo qubes-dom0-update i3 i3-settings-qubes

instead of the installation from source then I don’t have a qubes menu in i3. So I assume that the compilation and installation from source properly will give me one?

The documentation is outdated. The correct way to build qubes-related packages is with qubes-builder.

First follow the instructions to set up the build environment from the github readme, and then use the following configuration:

git:
  baseurl: https://github.com
  prefix: QubesOS/qubes-
  branch: main
  maintainers:
    # marmarek
    - '0064428F455451B3EBE78A7F063938BA42CFA724'
    # simon
    - '274E12AB03F2FE293765FC06DA0434BC706E1FCF'

debug: true
verbose: true
qubes-release: r4.2

distributions:
  - host-fc37

components:
  - desktop-linux-i3
  - desktop-linux-i3-settings-qubes

executor:
  type: docker
  options:
    image: "qubes-builder-fedora:latest"

#executor:
#  type: qubes
#  options:
#    dispvm: "qubes-builder-dvm"

stages:
  - fetch
  - prep
  - build

Build with:

./qb package fetch prep build

After the thing runs for about 10 mins I get this…

18:50:36,840 [executor:docker:d882c6b79449] Error response from daemon: Could not find the file /builder/build/rpm/i3-settings-qubes-debugsource-1.10-1.fc37.x86_64.rpm in container d882c6b79449f88b06932f1530e8917e1e317c591dcf6f7454372250e5ce3289
18:50:36,840 [executor:docker:d882c6b79449] File not found inside container: /builder/build/rpm/i3-settings-qubes-debugsource-1.10-1.fc37.x86_64.rpm.
18:50:36,859 [executor:docker:d882c6b79449] Error response from daemon: Could not find the file /builder/build/rpm/i3-settings-qubes-debuginfo-1.10-1.fc37.x86_64.rpm in container d882c6b79449f88b06932f1530e8917e1e317c591dcf6f7454372250e5ce3289
18:50:36,859 [executor:docker:d882c6b79449] File not found inside container: /builder/build/rpm/i3-settings-qubes-debuginfo-1.10-1.fc37.x86_64.rpm.
18:50:37,165 [build_rpm] desktop-linux-i3-settings-qubes:host-fedora-37.x86_64:i3-settings-qubes.spec: Provisioning local repository '/home/user/qubes-builderv2/artifacts/repository/host-fc37'.
[user@builder qubes-builderv2]$ ls
README.md    ci               keys      qubes-infrastructure-mirrors  rpc
artifacts    dockerfiles      mypy.ini  qubesbuilder                  tests
builder.yml  example-configs  qb        qubesbuilder-cli              tools
[user@builder qubes-builderv2]$ 

It’s expected.
The packages are located in artifacts/repository/host-fc37

I am now getting this error even though I have installed pkgconfig and perl. There were other dependencies that I installed and the error messages for them went away, but not those two.

Qubes OS Repository for Dom0                                                                             2.9 MB/s | 3.0 kB     00:00    
Error: 
 Problem: conflicting requests
  - nothing provides perl(AnyEvent::I3) needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(glib-2.0) needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(gobject-2.0) needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(libstartup-notification-1.0) needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(xcb-cursor) needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(xcb-event) needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(xcb-icccm) needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(xcb-keysyms) needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(xcb-randr) needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(xcb-shape) needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(xcb-util) needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(xcb-xinerama) needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(xcb-xkb) needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(xcb-xrm) needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(cairo) >= 1.14.4 needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(pangocairo) >= 1.30.0 needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(xcb) >= 1.1.93 needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(xkbcommon) >= 0.4.0 needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(xkbcommon-x11) >= 0.4.0 needed by i3-1000:4.23-1.fc37.src from @commandline
  - nothing provides pkgconfig(yajl) >= 2.0.1 needed by i3-1000:4.23-1.fc37.src from @commandline
(try to add '--skip-broken' to skip uninstallable packages)
[star@dom0 i3_pkgs]$ 

Here are the packages that I have. I ignored the ones not ending in .rpm, but am I supposed to install all of these?

i3-4.23-1.fc37.x86_64.rpm            i3-devel-4.23-1.fc37.x86_64.rpm        i3-settings-qubes-1.10-1.fc37.src.rpm
i3-debuginfo-4.23-1.fc37.x86_64.rpm  i3-devel-doc-4.23-1.fc37.noarch.rpm    i3-settings-qubes-1.10-1.fc37.x86_64.rpm

Also, do I need i3 installed before installing the packages?

Try this in dom0:

sudo qubes-dom0-update xcb-util-cursor perl-AnyEvent-I3 

Then try to install both i3-4.23-1.fc37.x86_64.rpm and i3-settings-qubes-1.10-1.fc37.x86_64.rpm again

sudo dnf install i3-4.23-1.fc37.x86_64.rpm i3-settings-qubes-1.10-1.fc37.x86_64.rpm

The first package works and I managed to install it. However, I get an odd “Could not open: i3-settings-qubes-1.10-1.fc37.x86_64.rpm” for the other package

Qubes OS Repository for Dom0                                                2.9 MB/s | 3.0 kB     00:00    
Dependencies resolved.
============================================================================================================
 Package                 Architecture      Version                       Repository                    Size
============================================================================================================
Installing:
 i3                      x86_64            1000:4.23-1.fc37              @commandline                 374 k
Installing dependencies:
 xcb-util-xrm            x86_64            1.3-10.fc37                   qubes-dom0-cached             16 k

Transaction Summary
============================================================================================================
Install  2 Packages

Total size: 390 k
Installed size: 1.0 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                    1/1 
  Installing       : xcb-util-xrm-1.3-10.fc37.x86_64                                                    1/2 
  Installing       : i3-1000:4.23-1.fc37.x86_64                                                         2/2 
  Running scriptlet: i3-1000:4.23-1.fc37.x86_64                                                         2/2 
  Verifying        : xcb-util-xrm-1.3-10.fc37.x86_64                                                    1/2 
  Verifying        : i3-1000:4.23-1.fc37.x86_64                                                         2/2 

Installed:
  i3-1000:4.23-1.fc37.x86_64                         xcb-util-xrm-1.3-10.fc37.x86_64                        

Complete!
[star@dom0 i3_pkgs]$ sudo dnf install i3-settings-qubes-1.10-1.fc37.x86_64.rpm 
Qubes OS Repository for Dom0                                                2.9 MB/s | 3.0 kB     00:00    
Can not load RPM file: i3-settings-qubes-1.10-1.fc37.x86_64.rpm.
Could not open: i3-settings-qubes-1.10-1.fc37.x86_64.rpm

Is the package in dom0 the same size as the one you built?

I got it working, and everything seems to be all good except for the qubes menu lol. I have all the icons and other stuff, just no menu. Is it included in the default config or do I have to modify the file in ~/.config/i3/config to somehow include it? Also, thanks for the help so far, really appreciate it

1 Like

Do you have a “bar” part in your config (~/.config/i3/config)?
The default one should be based on qubes-i3status.
Do you have an output with this command in dom0?

which qubes-i3status

The output is /usr/bin/qubes-i3status

Anyway, I got dmenu working so I can navigate, but it doesn’t have the same utility as the qubes menu. I checked some other i3 qubes screenshots and things and none of them have the normal qubes app launcher. Maybe it isn’t available for i3?
Here is the bar part in my i3 config file

# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
        status_command qubes-i3status
        colors {
            background #d2d2d2
            statusline #333333

            #class               #border #backgr #text
            focused_workspace    #3874d8 #63a0ff #333333
            active_workspace     #333333 #888888 #f5f5f5
            inactive_workspace   #888888 #333333 #888888
            urgent_workspace     #bd2727 #e79e27 #333333
        }

}

I don’t think you can have the qubes menu with i3 out of the box. You need to have a “merged” setup with i3wm and some part of xfce4 running at the same time so you can have the xfce4-panel bar with the application menu.

One option is to launch the menu from an i3 bindsym, but it will be full screen instead of a small menu like in xfce4. It will also run in the background after the first execution, I’m not sure if it will reuse the already running process or open new ones.