Patches by ichthyosaurus

I have installed the app anti-lag patch and the uninstalled. Now, I am experience this issue in the screenshoot. It is not persistent, after few second the page becomes normal. Tried to restart the Settings, the home, reboot. Nothing. I had to reinstall the patch.

The patch makes the tabs in the settings app load asynchronously but that shouldn’t affect the settings pages themselves, especially not when the patch isn’t even installed.

Sometimes there are seemingly random and unexplainable issues when using many patches at the same time. I sometimes have to disable all and restart the phone a couple of times until everything goes back to normal…

1 Like

uh oh, like Windows 95… :rofl:

UPDATE

Upgrading the Opal package everything is fine with and wthout the patch

Success!
well… some kind of.

Anyway. The Patch is on my phone and is working. But there are/were still some problems:

  1. Even so I set a PW file in the Environment Variables (SF_PATCH_PASSFILE=/home/darkstar/Downloads/SF/Patches/PW/PW.txt), I had to type my password all the time, so I guess, there is something not in the right place.

  2. First I tried it with the original and my initial unified.diff.patch which lead to:

patching file lipstick-jolla-home-qt5/volumecontrol/VolumeControl.qml
Hunk #1 succeeded at 288 with fuzz 2 (offset -3 lines).
patching file lipstick-jolla-home-qt5/compositor.qml
Hunk #1 FAILED at 247.
1 out of 1 hunk FAILED – saving rejects to file lipstick-jolla-home-qt5/compositor.qml.rej
error: failed to apply diff
patch command: patch -d ‘patched’ -p’3’ -u <‘diff_applying.patch’
error: failed to apply patch to downloaded sources
Both source directories now contain fresh but unchanged sources.
The original patch is still available in ‘unified_diff.patch’ and you can
try applying it manually to the files in ‘/home/darkstar/Downloads/SF/Patches/sfos-patch-three-finger-volume/patched’.

error: failed to import the patch, see above for details

So I knew, that patch line in VolumeControl.qml succeeded and in compositor.qml failed.
I searched for the Problem and solved it. But that was just guessing. The original patch line has changed. And my first try had the wrong line as target in the wrong section. Anyway after searching in the compositor.qml for globalVolumeGestureItem I found

enabled: !systemGesturesDisabled && largeScreen.

So I changed accordingly to the original patch the largeScreen to smallScreen. But In the end that was just guessing. So for me as a user, it seems quite hard to update a more complex patch. How do you as a developer know, what you have to change on the different files especially, when you create a new patch. I have a function for a patch in mind, which I don’t know if this is really possible with a patch :face_with_monocle: :scream:. Is there somewhere a proper documentation somewhere? I’m quite sure, that I can’t do that on my own, but would of course try to, if I can get some help.

  1. when I just typed sailfish-patch -b for building the patch, I was in the wrong directory. So it just build me two directories and stopped. So I copied sailfish patch in the three-finger-volume directory, and run it from there. Could I have just added the path after the command to avoid the copying?

  2. Unfortunately there is still a minor problem:
    When i apply (and unapply) the patch and want to restart the services, patchmanager says it has to restart the homescreen. If I accept, it doesn’t do that. I have to run it in Terminal to get the patch working. Any hints? I don’t want to publish it when there are still known problems.

If this last thing is fixed, I just publish it via sailfish-patch -Po -Pm, is that correct?

If so, I can start to write my promised documentation for complete noobs or better to say for advanced noobs. I think a complete noob is still somewhat overstrained. :innocent:
I will do this via a new thread here in the forum so you can afterwards review it and take whatever you think is helpful to your docs. Just give me some time for that. I want to do it in a proper way.

2 Likes

Exactly like Windows 95 :'D.

I have no idea how this could be connected, but I’m glad it works now :).

Yay ;).

Did you have to type your devel-su password or your ssh password? The former should only be needed when pushing the patch to the device for testing. The latter is needed for every SSH connection, but there are ways to make the system remember the password (see here).

Well, it’s always just guessing. The only thing that changes with experience is that you get better at guessing :). That’s not a big problem though, because Patchmanager doesn’t actually change any files (it just “simulates” changes) so it’s hard(er) to accidentally break your system.

For the internals of the system? No, sadly not. If Jolla were to release everything under a Free Software license then people could step up and document things… Or did I misunderstand your question?

sailfish-patch always uses the current working directory. You can either put the script into a folder in your $PATH (like this), or you can run it using its full path (like /home/myname/Downloads/sailfish-patch), or you can copy/link the script as you did.

This sounds like a problem with Patchmanager. Maybe ask here?

But you don’t need that anyway. Just add this to your CONFIG file and sailfish-patch restarts it for you during development:

TestCommands:
- systemctl --user restart lipstick

Users also don’t have to use Patchmanager, they can use the “Utilities” settings page and select “restart homescreen” there.

Exactly, but you will need accounts on OpenRepos and for the Web catalog. The -Po command runs a wizard that guides you through publishing on OpenRepos, -Pm does the same for Patchmanager’s web catalog (the “m” stands for “manager”…).

Awesome, thank you so much :slight_smile: !

1 Like

Thanx @ichthyosaurus
In the meantime, I discovered a further problem. The patch only works for some time, and then it stops working. I haven’t yet discovered what triggers the stopping. But when it stops, you have to restart lipstick, to make it work again. Maybe it has something to do with OOM. Even so, I doubt, because it just should be a setting. Anyway, the next four days I have no time for Sailfish other than just using my Phone. After that, I will open up accounts and publish the patch. And I will start to write a documentation. Maybe I will find out what triggers the patch to stop in the meantime…

OK, I wanted to make the last steps: Publish the patch and write the promised guide for noobs.
I had first problems because I haven’t got an email for confirmation. But @coderus helped me out. So I will try to publish the patch tomorrow and then I start to write the guide (should be ready within a week).

3 Likes

That’s great news, and there’s no rush! :slight_smile:

It looks like there is still something fishy. When I type

sailfish-patch -Pm
I get the following output:

running wizard for publishing to Patchmanager’s online catalogue…
Each value will be copied to the clipboard. Press any key to load the
next value.

warning: license text not found at COPYING
you can download it using the ‘-eL’ option
Internal name: sfos-patch-three-finger-volume
Display name: Three-Finger-Volume
Unrecognized command line option “-b”, try “-help”.
Description:

Category: Homescreen
Discussion link:
Donations link:
Sources link:
Screenshots (first directory path):
Version: 0.1.0
Compatible versions:
4.5.0.19
Patch archive: /home/darkstar/Downloads/SF/Patches/sfos-patch-three-finger-volume/build/sfos-patch-three-finger-volume-0.1.0-1.tar.gz
awk: line 18: syntax error at or near ,
Changelog:
1.0.0 (2023-06-20):

  • initial public release
    done

The Description isn’t copied to clipboard and there is and syntax error mentioned.
Probably nothing which should stop me from publishing, but if I want to write a guide, I think everything should be as correct as it can be. So probably it is better, when you have a look on my Config file.

I have pasted my config here:

Oh, that looks problematic! I’m without Internet the next week but I’ll have a look at it afterwards.

2 Likes

Ok, then I will wait until then.

It looks like there are problems with preparing the description text and the changelog. Can you run these two commands:

html2text --version
awk --version

… and post the output?

I also fixed some typos in your config: Systemli Paste

Your commads led to errors.
Anyway, it wasn’t to hard to get the wanted output :blush::

awk -W version
mawk 1.3.4 20200120
Copyright 2008-2019,2020, Thomas E. Dickey
Copyright 1991-1996,2014, Michael D. Brennan

random-funcs: srandom/random
regex-funcs: internal
compiled limits:
sprintf buffer 8192
maximum-integer 2147483647

html2text -version
This is html2text, version 1.3.2a

The latest version can be found at http://userpage.fu-berlin.de/~mbayer/tools/

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

1 Like

Thanks :slight_smile: This means you’re using different versions than me (i.e. different tools, to be precise). I’m using GNU awk and this html2text… I’ll have to find a way to make the script compatible with different versions. I’m surprised there’s such a difference between mawk and gawk.

html2text is the version which ships with my Distro (KDE neon - ubuntu LTS based) there is no other version in the standard repos. Regarding awk, mawk and gawk are both available.

I haven’t had the time yet to investigate what exactly breaks compatibility with mawk.

For me it’s the same situation just with a different implementation… This is not too big of a problem though, I will update the script so it falls back to copying the input as-is without converting it.

I wanted to install Patch: Configurable keyboard height on my Xperia XA2 without patch manager. I get the following error message: ** Command “rpm” not found.
Is there a solution?

Where did you download, how did you try to install it?

1 Like

Download: Patch: Configurable keyboard height | OpenRepos.net — Community Repository System
Install with the app file management and then with the button install