From 7217a6e4935d62ef2d43a7c6b8b7e0d2cfe398e1 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sat, 20 Jul 2024 16:43:31 +0100 Subject: [PATCH 01/17] script to patch community edition --- patch_community_edition.sh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 patch_community_edition.sh diff --git a/patch_community_edition.sh b/patch_community_edition.sh new file mode 100644 index 00000000..b02c4b97 --- /dev/null +++ b/patch_community_edition.sh @@ -0,0 +1,22 @@ +git clone https://github.com/H-M-H/Weylus.git +cd Weylus + +git remote add qdlmcfresh https://github.com/qdlmcfresh/Weylus.git +git fetch qdlmcfresh stylus_windows +git merge qdlmcfresh/stylus_windows -m "merged qdlmcfresh" + +git remote add OmegaRogue https://github.com/OmegaRogue/Weylus.git +git fetch OmegaRogue master +git merge -s recursive -X theirs OmegaRogue/master -m "merged OmegaRogue" + +git remote add scribblemaniac https://github.com/scribblemaniac/Weylus.git +git fetch scribblemaniac fix-qr-code +git merge scribblemaniac/fix-qr-code -m "merged scribblemaniac" + +git remote add Diordany https://github.com/Diordany/Weylus.git +git fetch Diordany pr-func-proto +git merge Diordany/pr-func-proto -m "merged Diordany" + +git remote add lyonbot https://github.com/lyonbot/Weylus.git +git fetch lyonbot pr +git merge lyonbot/pr -m "merged lyonbot" From f5cd44d596780e9094bf216c956eb2a409efeb45 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sat, 20 Jul 2024 16:49:26 +0100 Subject: [PATCH 02/17] add another patch --- patch_community_edition.sh | 7 +++++++ 1 file changed, 7 insertions(+) mode change 100644 => 100755 patch_community_edition.sh diff --git a/patch_community_edition.sh b/patch_community_edition.sh old mode 100644 new mode 100755 index b02c4b97..20b240cc --- a/patch_community_edition.sh +++ b/patch_community_edition.sh @@ -20,3 +20,10 @@ git merge Diordany/pr-func-proto -m "merged Diordany" git remote add lyonbot https://github.com/lyonbot/Weylus.git git fetch lyonbot pr git merge lyonbot/pr -m "merged lyonbot" + +git remote add electronstudio2 https://github.com/electronstudio2/Weylus.git +git fetch electronstudio2 build-fixes +git merge electronstudio2/build-fixes -m "merged build-fixes" + +git fetch electronstudio2 community-edition-patches +git merge electronstudio2/community-edition-patches -m "merged community-edition-patches" From 6db94d5e663fb093c02b4abd1df5de6f263ea91e Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sat, 20 Jul 2024 16:57:18 +0100 Subject: [PATCH 03/17] update readme with list of patches --- Readme.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Readme.md b/Readme.md index b381caac..bb3a7014 100644 --- a/Readme.md +++ b/Readme.md @@ -1,4 +1,15 @@ # Weylus + +## Community Edition adds these patches + +* Commits from Weylus master that improve Wayland compabability. +* [bunch of improvements: MacOS Stylus, Virtual Key, Reconnect, etc.](https://github.com/H-M-H/Weylus/pull/276) +* [Modify write_video_packet prototype](https://github.com/H-M-H/Weylus/pull/273) +* [Always render square QR code so it can be read](https://github.com/H-M-H/Weylus/pull/236) +* [fix scroll direction problems in uinput](https://github.com/H-M-H/Weylus/pull/215) +* [Use WinAPI to simulate pointermovements](https://github.com/H-M-H/Weylus/pull/128) +* [Linux build fixes](https://github.com/electronstudio2/Weylus/tree/build-fixes) + ![Build](https://github.com/H-M-H/Weylus/workflows/Build/badge.svg) Weylus turns your tablet or smart phone into a graphic tablet/touch screen for your computer! From 079193b321d9ebc8feb3a6962265afc8db2c243b Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Mon, 29 Jul 2024 18:42:48 +0100 Subject: [PATCH 04/17] use date for version number --- Cargo.lock | 2 +- Cargo.toml | 2 +- Readme.md | 10 +++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8b1cbc05..8ffdd5ba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2257,7 +2257,7 @@ dependencies = [ [[package]] name = "weylus" -version = "0.11.4" +version = "2024.7.29" dependencies = [ "autopilot", "bitflags", diff --git a/Cargo.toml b/Cargo.toml index e80fdae5..ee4a33ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "weylus" -version = "0.11.4" +version = "2024.7.29" authors = ["HMH "] license = "AGPL-3.0-or-later" edition = "2021" diff --git a/Readme.md b/Readme.md index bb3a7014..c8aa8360 100644 --- a/Readme.md +++ b/Readme.md @@ -1,4 +1,10 @@ -# Weylus +# Weylus Community Edition + +## Note for MacOS + +After unzipping, run: + + sudo xattr -dr com.apple.quarantine ~/Downloads/Weylus.app ## Community Edition adds these patches @@ -10,6 +16,8 @@ * [Use WinAPI to simulate pointermovements](https://github.com/H-M-H/Weylus/pull/128) * [Linux build fixes](https://github.com/electronstudio2/Weylus/tree/build-fixes) + + ![Build](https://github.com/H-M-H/Weylus/workflows/Build/badge.svg) Weylus turns your tablet or smart phone into a graphic tablet/touch screen for your computer! From 3beeaa53f8c2d5906cf005f7cf47fc99f254f002 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Wed, 31 Jul 2024 13:31:38 +0100 Subject: [PATCH 05/17] resolve some merge conflicts --- Readme.md | 1 - patch_community_edition.sh | 37 ++++++++++++++++++++++++++++++++----- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/Readme.md b/Readme.md index c8aa8360..72db0788 100644 --- a/Readme.md +++ b/Readme.md @@ -10,7 +10,6 @@ After unzipping, run: * Commits from Weylus master that improve Wayland compabability. * [bunch of improvements: MacOS Stylus, Virtual Key, Reconnect, etc.](https://github.com/H-M-H/Weylus/pull/276) -* [Modify write_video_packet prototype](https://github.com/H-M-H/Weylus/pull/273) * [Always render square QR code so it can be read](https://github.com/H-M-H/Weylus/pull/236) * [fix scroll direction problems in uinput](https://github.com/H-M-H/Weylus/pull/215) * [Use WinAPI to simulate pointermovements](https://github.com/H-M-H/Weylus/pull/128) diff --git a/patch_community_edition.sh b/patch_community_edition.sh index 20b240cc..98f3b928 100755 --- a/patch_community_edition.sh +++ b/patch_community_edition.sh @@ -1,23 +1,36 @@ git clone https://github.com/H-M-H/Weylus.git cd Weylus +echo "CONTRIBUTORS merge=ours" >.gitattributes +git config --global merge.ours.driver true git remote add qdlmcfresh https://github.com/qdlmcfresh/Weylus.git git fetch qdlmcfresh stylus_windows git merge qdlmcfresh/stylus_windows -m "merged qdlmcfresh" +git remote add qdlmcfreshcompat https://github.com/electronstudio2/WeylusQdlmcFreshLyonbotCompat.git +git fetch qdlmcfreshcompat stylus_windows +git merge qdlmcfreshcompat/stylus_windows -m "merged qdlmcfresh compatability" + git remote add OmegaRogue https://github.com/OmegaRogue/Weylus.git git fetch OmegaRogue master -git merge -s recursive -X theirs OmegaRogue/master -m "merged OmegaRogue" +git merge OmegaRogue/master -m "merged OmegaRogue" git remote add scribblemaniac https://github.com/scribblemaniac/Weylus.git git fetch scribblemaniac fix-qr-code git merge scribblemaniac/fix-qr-code -m "merged scribblemaniac" -git remote add Diordany https://github.com/Diordany/Weylus.git -git fetch Diordany pr-func-proto -git merge Diordany/pr-func-proto -m "merged Diordany" +# This one no longer seems necessary? Breaks mac build with vendored ffmpeg. +#git remote add Diordany https://github.com/Diordany/Weylus.git +#git fetch Diordany pr-func-proto +#git merge Diordany/pr-func-proto -m "merged Diordany" + -git remote add lyonbot https://github.com/lyonbot/Weylus.git +# This needs a fix for windows currently +#git remote add lyonbot https://github.com/lyonbot/Weylus.git +#git fetch lyonbot pr +#git merge lyonbot/pr -m "merged lyonbot" +# The fixed version +git remote add lyonbot https://github.com/electronstudio2/WeylusLyonbotWindowsFixes.git git fetch lyonbot pr git merge lyonbot/pr -m "merged lyonbot" @@ -25,5 +38,19 @@ git remote add electronstudio2 https://github.com/electronstudio2/Weylus.git git fetch electronstudio2 build-fixes git merge electronstudio2/build-fixes -m "merged build-fixes" + +sed -i '/<<<<<<< HEAD/,/=======/d' .github/workflows/build.yml +sed -i '/>>>>>>> electronstudio2\/build-fixes/d' .github/workflows/build.yml + +sed -i '/<<<<<<< HEAD/d' build.rs +sed -i '/=======/,/>>>>>>> electronstudio2\/build-fixes/d' build.rs +sed -i '/>>>>>>> electronstudio2\/build-fixes/d' build.rs + +git add build.rs .github/workflows/build.yml +git commit -m 'resolve conflict' + git fetch electronstudio2 community-edition-patches git merge electronstudio2/community-edition-patches -m "merged community-edition-patches" + +git remote add wce https://github.com/electronstudio/WeylusCommunityEdition.git +###git push -u wce master --force From 9000b128a5268c12e4545489aa29d13c94480099 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Wed, 31 Jul 2024 14:03:24 +0100 Subject: [PATCH 06/17] version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8ffdd5ba..ce707d1b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2257,7 +2257,7 @@ dependencies = [ [[package]] name = "weylus" -version = "2024.7.29" +version = "2024.7.31" dependencies = [ "autopilot", "bitflags", diff --git a/Cargo.toml b/Cargo.toml index ee4a33ef..a36375f2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "weylus" -version = "2024.7.29" +version = "2024.7.31" authors = ["HMH "] license = "AGPL-3.0-or-later" edition = "2021" From 57759b8feea6c67a9f5cfb83b46072a42b0ff84a Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Wed, 31 Jul 2024 15:46:48 +0100 Subject: [PATCH 07/17] added metainfo --- ...udio.weylus_community_edition.metainfo.xml | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 io.github.electronstudio.weylus_community_edition.metainfo.xml diff --git a/io.github.electronstudio.weylus_community_edition.metainfo.xml b/io.github.electronstudio.weylus_community_edition.metainfo.xml new file mode 100644 index 00000000..1e90e384 --- /dev/null +++ b/io.github.electronstudio.weylus_community_edition.metainfo.xml @@ -0,0 +1,43 @@ + + + io.github.electronstudio.weylus_community_edition + + Weylus Community Edition + Use your tablet as graphic tablet/touch screen on your computer + + CC0-1.0 + AGPL-3.0-or-later + + + pointing + keyboard + touch + tablet + + + +

+ Weylus turns your tablet or smart phone into a graphic tablet/touch screen for your computer! +

+

Control your mouse with your tablet

+

Mirror your screen to your tablet

+

Send keyboard input using physical keyboards

+

Hardware accelerated video encoding

+

Support for a stylus/pen (supports pressure and tilt)

+

Multi-touch: Try it with software that supports multi-touch, like Krita, and see for yourself!

+

Capturing specific windows and only drawing to them

+

Faster screen mirroring

+

Tablet as second screen

+ +
+ https://github.com/electronstudio/WeylusCommunityEdition + + io.github.electronstudio.weylus_community_edition.desktop + + H-M-H + + + + + +
\ No newline at end of file From ac325c3c80085f2b6e94bf9cbc88bc42e2ffda81 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Wed, 31 Jul 2024 16:10:27 +0100 Subject: [PATCH 08/17] change back to mixed case id because linter wont accept if doesnt match url --- ....github.electronstudio.WeylusCommunityEdition.metainfo.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename io.github.electronstudio.weylus_community_edition.metainfo.xml => io.github.electronstudio.WeylusCommunityEdition.metainfo.xml (90%) diff --git a/io.github.electronstudio.weylus_community_edition.metainfo.xml b/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml similarity index 90% rename from io.github.electronstudio.weylus_community_edition.metainfo.xml rename to io.github.electronstudio.WeylusCommunityEdition.metainfo.xml index 1e90e384..18239cb3 100644 --- a/io.github.electronstudio.weylus_community_edition.metainfo.xml +++ b/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml @@ -1,6 +1,6 @@ - io.github.electronstudio.weylus_community_edition + io.github.electronstudio.WeylusCommunityEdition Weylus Community Edition Use your tablet as graphic tablet/touch screen on your computer @@ -32,7 +32,7 @@ https://github.com/electronstudio/WeylusCommunityEdition - io.github.electronstudio.weylus_community_edition.desktop + io.github.electronstudio.WeylusCommunityEdition.desktop H-M-H From c81bb708701549586870069ac863243fc95a18fd Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Wed, 31 Jul 2024 17:06:49 +0100 Subject: [PATCH 09/17] add icon --- ....electronstudio.WeylusCommunityEdition.svg | 68 +++++++++++++++++++ weylus.desktop | 2 +- 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 io.github.electronstudio.WeylusCommunityEdition.svg diff --git a/io.github.electronstudio.WeylusCommunityEdition.svg b/io.github.electronstudio.WeylusCommunityEdition.svg new file mode 100644 index 00000000..926aa228 --- /dev/null +++ b/io.github.electronstudio.WeylusCommunityEdition.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/weylus.desktop b/weylus.desktop index 574be920..38b96a69 100755 --- a/weylus.desktop +++ b/weylus.desktop @@ -5,6 +5,6 @@ Comment=Use your tablet as graphic tablet/touch screen on your computer. TryExec=weylus Exec=weylus Terminal=false -Icon=input-tablet +Icon=io.github.electronstudio.WeylusCommunityEdition Categories=Office;Graphics;Education;Presentation; StartupWMClass=weylus From e729e172acd055c2345e57553fec3b3270b1ac0e Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Wed, 31 Jul 2024 19:27:56 +0100 Subject: [PATCH 10/17] screenshot --- ...onstudio.WeylusCommunityEdition.metainfo.xml | 13 +++++++++++++ screenshot.png | Bin 0 -> 39928 bytes 2 files changed, 13 insertions(+) create mode 100644 screenshot.png diff --git a/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml b/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml index 18239cb3..55b1ef78 100644 --- a/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml +++ b/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml @@ -30,14 +30,27 @@

Tablet as second screen

+ + + https://example.org/example1.png + The one and only window + + + https://github.com/electronstudio/WeylusCommunityEdition + + io.github.electronstudio.WeylusCommunityEdition.desktop H-M-H + + +

Support for flatpak build

+
\ No newline at end of file diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..0b7d237fd0d413c9254357586077110210bbc6e4 GIT binary patch literal 39928 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

$nPwpkR|$gxhaaG}lAldVkXTu`wo> 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 Date: Wed, 31 Jul 2024 19:39:32 +0100 Subject: [PATCH 11/17] version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- io.github.electronstudio.WeylusCommunityEdition.metainfo.xml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ce707d1b..02c18208 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2257,7 +2257,7 @@ dependencies = [ [[package]] name = "weylus" -version = "2024.7.31" +version = "2024.8.1" dependencies = [ "autopilot", "bitflags", diff --git a/Cargo.toml b/Cargo.toml index a36375f2..e2287151 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "weylus" -version = "2024.7.31" +version = "2024.8.1" authors = ["HMH "] license = "AGPL-3.0-or-later" edition = "2021" diff --git a/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml b/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml index 55b1ef78..453c82bf 100644 --- a/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml +++ b/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml @@ -32,7 +32,7 @@ - https://example.org/example1.png + https://raw.githubusercontent.com/electronstudio2/Weylus/community-edition-patches/screenshot.png The one and only window @@ -47,7 +47,7 @@ - +

Support for flatpak build

From b45373148e08d434741b3f68610402721bd0be74 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Wed, 31 Jul 2024 19:49:02 +0100 Subject: [PATCH 12/17] fix screenshot --- io.github.electronstudio.WeylusCommunityEdition.metainfo.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml b/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml index 453c82bf..162aeda9 100644 --- a/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml +++ b/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml @@ -32,7 +32,7 @@ - https://raw.githubusercontent.com/electronstudio2/Weylus/community-edition-patches/screenshot.png + https://raw.githubusercontent.com/electronstudio2/Weylus/community-edition-patches/screenshot.png The one and only window From 83356f2531ec856a271cad1634c4b5d3b3cf3ea2 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sat, 3 Aug 2024 16:35:03 +0100 Subject: [PATCH 13/17] update readme --- Readme.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Readme.md b/Readme.md index 72db0788..4ac1c05b 100644 --- a/Readme.md +++ b/Readme.md @@ -1,5 +1,9 @@ # Weylus Community Edition +## Flatpak now available + +https://flathub.org/apps/io.github.electronstudio.WeylusCommunityEdition + ## Note for MacOS After unzipping, run: @@ -8,7 +12,7 @@ After unzipping, run: ## Community Edition adds these patches -* Commits from Weylus master that improve Wayland compabability. +* Commits from Weylus master that improve Wayland compatibility. * [bunch of improvements: MacOS Stylus, Virtual Key, Reconnect, etc.](https://github.com/H-M-H/Weylus/pull/276) * [Always render square QR code so it can be read](https://github.com/H-M-H/Weylus/pull/236) * [fix scroll direction problems in uinput](https://github.com/H-M-H/Weylus/pull/215) @@ -68,15 +72,14 @@ features on Linux are: ## Installation Just grab the latest release for your OS from the -[releases page](https://github.com/H-M-H/Weylus/releases) and install it on your computer. No apps +[releases page](https://github.com/electronstudio/WeylusCommunityEdition/releases) and install it on your computer. No apps except a modern browser (Firefox 80+, iOS/iPadOS 13+) are required on your tablet. **If you run Linux make sure to follow the instructions described [here](#linux) to enable uinput for features like pressure sensitivity and multitouch!** ### Packages -AUR packages for Weylus are available here: -- From source: [weylus](https://aur.archlinux.org/packages/weylus/) -- Prebuilt binary: [weylus-bin](https://aur.archlinux.org/packages/weylus-bin/) + +https://flathub.org/apps/io.github.electronstudio.WeylusCommunityEdition ## Running Start Weylus, preferably set an access code in the access code box and press the Start button. This From 534212d333250cd2c30c3acb87e3a057265ce23a Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sat, 3 Aug 2024 17:49:58 +0100 Subject: [PATCH 14/17] re-add the write_video_packet prototype patch --- Readme.md | 1 + patch_community_edition.sh | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Readme.md b/Readme.md index 4ac1c05b..ef64e571 100644 --- a/Readme.md +++ b/Readme.md @@ -17,6 +17,7 @@ After unzipping, run: * [Always render square QR code so it can be read](https://github.com/H-M-H/Weylus/pull/236) * [fix scroll direction problems in uinput](https://github.com/H-M-H/Weylus/pull/215) * [Use WinAPI to simulate pointermovements](https://github.com/H-M-H/Weylus/pull/128) +* [Modify write_video_packet prototype](https://github.com/H-M-H/Weylus/pull/273) * [Linux build fixes](https://github.com/electronstudio2/Weylus/tree/build-fixes) diff --git a/patch_community_edition.sh b/patch_community_edition.sh index 98f3b928..b6eae457 100755 --- a/patch_community_edition.sh +++ b/patch_community_edition.sh @@ -19,10 +19,10 @@ git remote add scribblemaniac https://github.com/scribblemaniac/Weylus.git git fetch scribblemaniac fix-qr-code git merge scribblemaniac/fix-qr-code -m "merged scribblemaniac" -# This one no longer seems necessary? Breaks mac build with vendored ffmpeg. -#git remote add Diordany https://github.com/Diordany/Weylus.git -#git fetch Diordany pr-func-proto -#git merge Diordany/pr-func-proto -m "merged Diordany" +# This one no longer seems necessary? Breaks mac build with vendored ffmpeg? +git remote add Diordany https://github.com/Diordany/Weylus.git +git fetch Diordany pr-func-proto +git merge Diordany/pr-func-proto -m "merged Diordany" # This needs a fix for windows currently From 4dc052152d50d2601714186452b29e6c6f78eb20 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sat, 3 Aug 2024 18:24:28 +0100 Subject: [PATCH 15/17] increase bundled ffmpeg to 7.0 so it will build on macos --- Cargo.lock | 2 +- Cargo.toml | 2 +- deps/download.sh | 2 +- ...thub.electronstudio.WeylusCommunityEdition.metainfo.xml | 7 ++++++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 02c18208..4612c6ae 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2257,7 +2257,7 @@ dependencies = [ [[package]] name = "weylus" -version = "2024.8.1" +version = "2024.8.3" dependencies = [ "autopilot", "bitflags", diff --git a/Cargo.toml b/Cargo.toml index e2287151..5140931d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "weylus" -version = "2024.8.1" +version = "2024.8.3" authors = ["HMH "] license = "AGPL-3.0-or-later" edition = "2021" diff --git a/deps/download.sh b/deps/download.sh index ab45dcd2..770a6a35 100755 --- a/deps/download.sh +++ b/deps/download.sh @@ -3,7 +3,7 @@ set -ex test -d x264 || git clone --depth 1 -b stable https://code.videolan.org/videolan/x264.git x264 -test -d ffmpeg || git clone --depth 1 -b n5.1 https://git.ffmpeg.org/ffmpeg.git ffmpeg +test -d ffmpeg || git clone --depth 1 -b n7.0 https://git.ffmpeg.org/ffmpeg.git ffmpeg if [ "$TARGET_OS" == "linux" ]; then test -d nv-codec-headers || git clone --depth 1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git test -d libva || git clone --depth 1 -b 2.15.0 https://github.com/intel/libva diff --git a/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml b/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml index 162aeda9..23d8934a 100644 --- a/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml +++ b/io.github.electronstudio.WeylusCommunityEdition.metainfo.xml @@ -47,9 +47,14 @@ + + +

Increase bundled ffmpeg to 7.0 so it will build on macos.

+
+
-

Support for flatpak build

+

Support for flatpak build.

From 14d84b496ada1dacbad5d50e26820c9942d05bc1 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sat, 10 Aug 2024 19:02:42 +0100 Subject: [PATCH 16/17] version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4612c6ae..bab3f78c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2257,7 +2257,7 @@ dependencies = [ [[package]] name = "weylus" -version = "2024.8.3" +version = "2024.8.10" dependencies = [ "autopilot", "bitflags", diff --git a/Cargo.toml b/Cargo.toml index 5140931d..70813d99 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "weylus" -version = "2024.8.3" +version = "2024.8.10" authors = ["HMH "] license = "AGPL-3.0-or-later" edition = "2021" From 63cae64b0f22aedd322febdf93a7348289bff70a Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sun, 8 Sep 2024 18:33:51 +0100 Subject: [PATCH 17/17] version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- patch_community_edition.sh | 9 ++------- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bab3f78c..2f7f1728 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2257,7 +2257,7 @@ dependencies = [ [[package]] name = "weylus" -version = "2024.8.10" +version = "2024.9.8" dependencies = [ "autopilot", "bitflags", diff --git a/Cargo.toml b/Cargo.toml index 70813d99..659ba3ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "weylus" -version = "2024.8.10" +version = "2024.9.8" authors = ["HMH "] license = "AGPL-3.0-or-later" edition = "2021" diff --git a/patch_community_edition.sh b/patch_community_edition.sh index b6eae457..0b5b3161 100755 --- a/patch_community_edition.sh +++ b/patch_community_edition.sh @@ -19,21 +19,16 @@ git remote add scribblemaniac https://github.com/scribblemaniac/Weylus.git git fetch scribblemaniac fix-qr-code git merge scribblemaniac/fix-qr-code -m "merged scribblemaniac" -# This one no longer seems necessary? Breaks mac build with vendored ffmpeg? git remote add Diordany https://github.com/Diordany/Weylus.git git fetch Diordany pr-func-proto git merge Diordany/pr-func-proto -m "merged Diordany" -# This needs a fix for windows currently -#git remote add lyonbot https://github.com/lyonbot/Weylus.git -#git fetch lyonbot pr -#git merge lyonbot/pr -m "merged lyonbot" -# The fixed version -git remote add lyonbot https://github.com/electronstudio2/WeylusLyonbotWindowsFixes.git +git remote add lyonbot https://github.com/lyonbot/Weylus.git git fetch lyonbot pr git merge lyonbot/pr -m "merged lyonbot" + git remote add electronstudio2 https://github.com/electronstudio2/Weylus.git git fetch electronstudio2 build-fixes git merge electronstudio2/build-fixes -m "merged build-fixes"