Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft fix for Ubuntu packaging using both gtk3-classic and ubuntu patches #44

Closed
wants to merge 3 commits into from

Conversation

N0rbert
Copy link
Contributor

@N0rbert N0rbert commented Jan 1, 2022

Happy holidays, dear Luke!

I have played with gtk3-classic ontop of official ubuntu 21.10 Gtk3 package.
As the result I have updated your great create-ubuntu-package.sh script.

It allows one to compile gtk3 using both gtk3-classic and ubuntu patches with the following limitation - due to some file-conflicts 4 patches can't be applied:

  • appearance__message-dialogs.patch
  • csd__clean-headerbar.patch
  • csd__disabled-by-default.patch
  • file-chooser__places-sidebar.patch

so they are now skipped.
I'm not familiar with their contents, so I hope that you can fix them to interact with each other normally.

I hope we now can fix the #43 .

@lah7 lah7 added the packaging | Ubuntu Related to the Ubuntu package label Jan 1, 2022
@lah7
Copy link
Owner

lah7 commented Jan 1, 2022

Thanks @N0rbert! Happy holidays to you too!

I'll take another look at the Ubuntu packaging tomorrow (or next week) and try "the first attempt" solution again. It sounds like there could be some Ubuntu patches we can exclude to fit ours in.

Being an Ubuntu MATE user yourself, in your opinion, would you be happy to use "replacement" GTK+3 packages with the version string suffixed like libgtk3-0 = 3.24.20~classic1?

My worry are attempts to uninstall the package, which would wipe out the entire desktop. I think that is no problem if users remove the repo, update cache, and reinstall fresh packages from Ubuntu's repo, I think that'll work.

@N0rbert
Copy link
Contributor Author

N0rbert commented Jan 2, 2022

I tried to move our idea forward. So I have created a PPA using below commands:

  1. Create folder

    mkdir -p ~/Software/gtk3-classic
    git clone https://github.com/lah7/gtk3-classic -b ubuntu-packaging gtk3-classic-repo
    mkdir -p ~/Software/gtk3-classic/gtk3-classic-impish
    cd ~/Software/gtk3-classic/gtk3-classic-impish
    
  2. Fetch and patch source

    pull-lp-source gtk+3.0 impish
    cd gtk+3.0-3.24.30
    cp -v ../../gtk3-classic-repo/*.patch debian/patches
    cat ../../gtk3-classic-repo/series >> debian/patches/series
    
    sed -i "s/^appearance__message-dialogs.patch/#appearance__message-dialogs.patch/g" debian/patches/series
    sed -i "s/^csd__clean-headerbar.patch/#csd__clean-headerbar.patch/g" debian/patches/series
    sed -i "s/^csd__disabled-by-default.patch/#csd__disabled-by-default.patch/g" debian/patches/series
    sed -i "s/^file-chooser__places-sidebar.patch/#file-chooser__places-sidebar.patch/g" debian/patches/series
    
    grep "export DEB_BUILD_OPTIONS = nocheck" debian/rules || sed -i "s/^export VERBOSE=1/export VERBOSE=1\nexport DEB_BUILD_OPTIONS = nocheck/" debian/rules
    
  3. Annotate source, sign and check

    dch -D impish -v 3.24.30-1ubuntu2ppa2 "An attempt to package gtk3-classic from https://github.com/lah7/gtk3-classic following scripts/create-ubuntu-package.sh from https://github.com/N0rbert/gtk3-classic ."
    debuild -S -d -us -uc -nc
    
  4. Sign source and upload to launchpad

    debuild -S -sd -nc
    dput ppa:nrbrtx/gtk3-classic ../gtk+3.0_3.24.30*_source.changes
    

As the result one can add this PPA to Ubuntu MATE 21.10 system by

sudo add-apt-repository ppa:nrbrtx/gtk3-classic
sudo apt-get update
sudo apt-get dist-upgrade

to test it.
Reverting to official gtk3 library is possible as usual by sudo apt-get install ppa-purge && sudo ppa-purge ppa:nrbrtx/gtk3-classic .

I hope you'll fix the 4 skipped patches to coexist normally :)


Small update and note. I see that https://launchpad.net/~luigifab/+archive/ubuntu/packages-gtk3-classic is done in similar way, here 3 patches are skipped.

@lah7 lah7 marked this pull request as draft January 2, 2022 16:37
@lah7 lah7 force-pushed the ubuntu-packaging branch 3 times, most recently from c518e3f to 786935d Compare January 2, 2022 19:10
@lah7
Copy link
Owner

lah7 commented Jan 2, 2022

Thanks again, I've consolidated all our progress (and learnt some new commands 🎓 ) and revised the script so we now have a working mechanism to produce packages. 📦 abe5ea3 + 786935d

We just needed to revert 2 patches -- both of which were for Ubuntu's Unity. All of gtk3-classic patches apply. I've added a step so debuild and quilt won't complain about them being "fuzzy" which were aborting the process.

In my testing on Ubuntu MATE 21.10, the only thing that stood out was CSD labels not looking right in apps like simple-scan or gnome-disks. It's not quite #32 but related to the new 40.x version. Personally I stay downgraded to 3.38.2.

@lah7 lah7 closed this Jan 2, 2022
@N0rbert N0rbert deleted the ubuntu-packaging branch January 4, 2022 17:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
packaging | Ubuntu Related to the Ubuntu package
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants