vinceliuice / WhiteSur-gtk-theme

MacOS Big Sur like theme for Gnome desktops
MIT License
5.83k stars 606 forks source link

Installer breaks debian packaging #215

Open fossfreedom opened 3 years ago

fossfreedom commented 3 years ago

The latest 2021-04-20 version has changed the installer.

This now breaks debian packaging namely

  1. The checks for where to install - the folder where the compilation/results is done is a subdirectory of the source folder
  2. exit result from the script is not zero - something later is returning a non-zero when run - I've no idea what though. Logically though - when it gets to a "theme is done" - then exit 0 makes sense
  3. setterm usage throws usage error during compilation stopping the script continuing.

Enclosed is a diff I now have to use to get a successful package compilation

remove_folder_check.patch.txt

stormbeforesunsetbee commented 3 years ago

The checks for where to install - the folder where the compilation/results is done is a subdirectory of the source folder

I don't get what you mean

exit result from the script is not zero - something later is returning a non-zero when run - I've no idea what though. Logically though - when it gets to a "theme is done" - then exit 0 makes sense

We're trying to make the better exit statuses and error handling

setterm usage throws usage error during compilation stopping the script continuing.

What's your Debian version? Is it a container version? (e.g. Docker)

vinceliuice commented 3 years ago

@fossfreedom Could you give me your debian package files, I can test it on my system.

fossfreedom commented 3 years ago

Compilation is via this in debian rules

override_dh_auto_build:
    mkdir ./debian/whitesur-gtk-theme
    ./install.sh -d "$(CURDIR)/debian/whitesur-gtk-theme/usr/share/themes"
    dh_auto_build

If you are not aware, debian package builds in a chroot - so yes a form of a container.

In addition - checks like the nautilus checks fail in a chroot

** (org.gnome.Nautilus:234058): WARNING **: 12:31:24.725: Error on getting connection: Failed to load SPARQL backend: Cannot autolaunch D-Bus without X11 $DISPLAY
Unable to init server: Could not connect: Connection refused

(org.gnome.Nautilus:234058): Gtk-WARNING **: 12:31:24.726: cannot open display: 
/<<PKGBUILDDIR>>/lib-core.sh: line 33: ((: >= 40 : syntax error: operand expected (error token is ">= 40 ")
stormbeforesunsetbee commented 3 years ago

./install.sh -d "$(CURDIR)/debian/whitesur-gtk-theme/usr/share/themes"

Installing to the source dir (in this case, your current dir) isn't allowed. Use another dir instead

** (org.gnome.Nautilus:234058): WARNING **: 12:31:24.725: Error on getting connection: Failed to load SPARQL backend: Cannot autolaunch D-Bus without X11 $DISPLAY

Yeah, Nautilus can't be run without a display server (e.g. X11 or Wayland). I'll try to make it work even without a display server to make it work on a container. Insha Allah

fossfreedom commented 3 years ago

https://github.com/UbuntuBudgie/WhiteSur-gtk-theme/tree/debian

On Sat, 1 May 2021 at 12:31, Vince @.***> wrote:

@fossfreedom Could you give me your debian package files, I can test it on my system.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

vinceliuice commented 3 years ago

I updated install.sh and removed nautilus -v ...

fossfreedom commented 3 years ago

Installing to the source dir (in this case, your current dir) isn't allowed. Use another dir instead

@rivanfebrian123 for debian packages you would normally compile the theme within a debian subfolder which is what I am doing. This is pretty standard - you don't typically have random rights to compile artifacts somewhere else in the chroot.

To my mind the current install.sh folder check is unnecessary - I don't have visibility why it has been introduced and what it was intended to fix.

stormbeforesunsetbee commented 3 years ago

I updated install.sh and removed nautilus -v ...

Thanks, @vinceliuice . I thought the NAUTILUS_VERSION variable is still needed :D

To my mind the current install.sh folder check is unnecessary - I don't have visibility why it has been introduced and what it was intended to fix.

@fossfreedom From end-user perspective, it's necessary in case the user broke the installer by installing it to the source dir. I think we need to warn our user that the -d parameter is intended to developers only, or altenatively, we can add --developer-mode option to the installer

EDIT: ... and allow them to install the theme in the source dir, of course

EDIT 2: BTW, what about the setterm things? Is that okay now?

vinceliuice commented 3 years ago

Because I found that the latest version of nautilus has a new id in the gtk theme code (plus .unified at the end), so now I can set different styles for 40 and the previous versions

fossfreedom commented 3 years ago

Ok - with the nautilus script changes the patch I need now hold to build is fortunately much smaller

https://github.com/UbuntuBudgie/WhiteSur-gtk-theme/tree/debian

stormbeforesunsetbee commented 3 years ago

I saw your patch here at https://github.com/UbuntuBudgie/WhiteSur-gtk-theme/blob/debian/debian/patches/remove_folder_check.patch and glad to hear that the setterm things is now okay. Appreciate that!

fossfreedom commented 3 years ago

Just reporting back - I've tried to rebuild with the existing patch and the new june 23 release. Unfortunately whitesur no longer builds. The build errors are not helpful (so no point in reporting the build errors here) - so its going to take a lot of work to unpick what now regard as the unwieldy installer.

If I don't find a simple method fairly quickly I'm going to have to remove whitesur as a theme option for Ubuntu Budgie - that's a real shame.

Please can I make a plea for the future - do consider strongly a meson type installation rather than the bash script method. Scripted methods as I'm finding are not easily portable between different linux distros.

stormbeforesunsetbee commented 3 years ago

The build errors are not helpful

Why is it not helpful?

Scripted methods as I'm finding are not easily portable between different linux distros.

The script should works on most popular distros. It's even tested on Ubuntu Budgie and works just fine

vinceliuice commented 3 years ago

It's the system update failed when you build?

fossfreedom commented 3 years ago

The build errors are not helpful

Why is it not helpful?

Scripted methods as I'm finding are not easily portable between different linux distros.

The script should works on most popular distros. It's even tested on Ubuntu Budgie and works just fine

The script works fine when running in user-space.

It falls flat on its face when running in a confined chroot build environment. Any script that tries to write to a system location will fail. About the only writable access in such an environment is the package debian folder.

I have found that copying across the lib-core and install.sh from the 5th May release allows the 23rd of June release to complete building.

Vince ... the build error is just an error code ... value 1... no errors from the install script so whatever is failing in the script is not being shown via an echo type message.

fossfreedom commented 3 years ago

These are the additional changes I now need to carry to get this project to build.

https://github.com/UbuntuBudgie/WhiteSur-gtk-theme/commit/7a3b5d08c832d6556e600cf5ea47b56f19366c9d