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

Portable App GitHub Repo Template #3

Open
Adhjie opened this issue Aug 1, 2024 · 9 comments
Open

Portable App GitHub Repo Template #3

Adhjie opened this issue Aug 1, 2024 · 9 comments
Labels
question Further information is requested

Comments

@Adhjie
Copy link

Adhjie commented Aug 1, 2024

So anyone could get the latest release without waiting the maintainer of portable apps in PortableApps.com

  1. So first question, could you share the template on how to make any app portable like this repo? maybe a repo that is a tutorial on how to make any apps portable called "Portable App Template".

  2. Second question, how does this one always fetch the latest release just by using updater.bat file?

  3. Is this inspired from PortableApps platform but differs or is the exact same mechanism?

  4. How about ensuring it, being safe e.g., the .apk match the signing certificate hash by using AppVerifier/apksigner in desktop?

6a. (this is a bit sidetrack but it is possible to download a lot of apps straight from GitHub through an app called Obtainium and verify it using AppVerifier app that is integrated with Obtainium, now I never heard mobile portable app but this indeed is interesting, additional bonus question?
This is entirely not on topic since it's mobile, but I guess putting this in package manager is a way to get this always updated, or an auto-update feature is on the roadmap)

Actual question, could AppVerifier be integrated with this app?
(Obtainium desktop port is a great idea to rival package manager but I think that's too advance for now.)

6b. Additional question about updater, is the update manual, is there an auto-updater, or is it easier to put this in package manager with a volunteer maintainer?

6c. And most package managers have checks like Winget, Chocolatey, and also PortableApps with Virustotal scan, how to check the safeness of this app?

@Adhjie
Copy link
Author

Adhjie commented Aug 1, 2024

Oh, yeah. I have just realized. since this is more of a suggestion. Isn't GitHub discussion feature more appropriate to be opened for this type of question, rather than issue tab only?

@Numstr
Copy link
Owner

Numstr commented Aug 2, 2024

Im make this for my self to fast check latest version and download it. 90% of time you dont need to update launcher AppNameLauncher.exe, just update app located in App\AppName. Also you can download latest release from github manually, unpack it used 7zip and replace all files in App\AppName.

So first question, could you share the template on how to make any app portable like this repo? maybe a repo that is a tutorial on how to make any apps portable called "Portable App Template".
Is this inspired from PortableApps platform but differs or is the exact same mechanism?

It use PortableApps.com Launcher to generate launcher, each app must be described (each app leave different trash) in App/AppInfo/Launcher/AppNamePortable.ini here info how to do this, also you can find tutorial on youtube or google.

Second question, how does this one always fetch the latest release just by using updater.bat file?

Updater.bat is just script that use some linux utils located in App/Utils to check for latest version from obsidian github repo, download it and unpack. If devs change package name or structure Updater.bat can be broken. Also, not all installers can be unpack easily.

How about ensuring it, being safe e.g., the .apk match the signing certificate hash by using AppVerifier/apksigner in desktop?

You can check hash/certificate for Obsidian.exe located in App/Obsidian.

Creating something like Obtainium takes a lot of time, which I dont have.

@Numstr Numstr added the question Further information is requested label Aug 2, 2024
@Adhjie
Copy link
Author

Adhjie commented Aug 3, 2024

Okay for now I will check the link and do this myself manually. Since I don't have the time either to make a portable launcher like this repository.

@Adhjie
Copy link
Author

Adhjie commented Nov 14, 2024

@Numstr
Okay, so to summarize. I just need to change the info in

App/AppInfo/Launcher/AppNamePortable.ini

and

Updater.bat

to make any portableapps' app self-updatable by myself?
or Do I need to mimic every settings that exist for each particular app? (This is mainly to let me self update any app, if the maintainer of the official PortableApps are inactive.)

e.g., DocFetcher and Chrome have specific settings that needs to be set to true for some thing to work. Though, Chrome is probably not ever going to be fixed, because of Chromium encryption limitation.

Edit:
Uhm, also does this version of Obsidian Portable works out-of-the-box, or do I need to make all the settings here the same as the official one by Papela?

Edit_2:
Just realized this fork saved my life, this is the only portableapps obsidian portable that self-update, I havent checked other forks, other official beta test are all offline. why not post this as official app in portableApps?
If you're busy, could I fork this and post this to PortableApps?
(though, of course I'll need to learn all the things in this repo and the portableApps development template. if only theres a unified docs for this, sigh)

@Adhjie
Copy link
Author

Adhjie commented Nov 14, 2024

Also where can I read more on the list of commandline parameters (I mean) AdditionalParameters for ObsidianPortable? (Tho, I want to know that CLI parameters too)
I see it in ObsidianPortable.ini in the ObsidianPortable\ directory.
I wish the PortableApps docs are in one place. Arch and Gentoo Linux are amazing on this case.

@Numstr
Copy link
Owner

Numstr commented Nov 14, 2024

to make any portableapps' app self-updatable by myself?

Not any app. To update yourself, you need to change the BAT file, but you need to know what exactly needs to be changed. It will be useful to know a little CMD.

Chrome is probably not ever going to be fixed, because of Chromium encryption limitation.

In the latest builds of Chromium, they fixed the cookie encryption (add --disable-encryption to the arguments). Ungoogled Chromium from my repo is now fully portable (need fresh profile). Dont know about Google Chrome and other chromium based browsers.

this is the only portableapps obsidian portable that self-update

Obsidain has a built-in self-updating mechanism, so no.

why not post this as official app in portableApps? If you're busy, could I fork this and post this to PortableApps?

Do as you wish, the repo is open. But this makes no sense, you can find packages of obsidian dev-test on the forum. The difference is small except for the presence of a BAT file. But if you talk about including it in the official portable app platform, they don't accept it because there are extra utils and BAT file present.

Also where can I read more on the list of commandline parameters (I mean) AdditionalParameters for ObsidianPortable? (Tho, I want to know that CLI parameters too)

This parametrs are application specific. Obsidian use Electron so check parametrs for electron apps. Some work, some don't.

I don't really like answering questions and making guides. If you want a specific app, tell me what app is, I check it and maybe make a repo like that.

@Adhjie
Copy link
Author

Adhjie commented Nov 14, 2024

to make any portableapps' app self-updatable by myself?

Not any app. To update yourself, you need to change the BAT file, but you need to know what exactly needs to be changed. It will be useful to know a little CMD.

Okay, I'll search all the commands in the Update.bat file, and learn it.

Chrome is probably not ever going to be fixed, because of Chromium encryption limitation.

In the latest builds of Chromium, they fixed the cookie encryption (add --disable-encryption to the arguments). Ungoogled Chromium from my repo is now fully portable (need fresh profile). Dont know about Google Chrome and other chromium based browsers.

does it contain all the history, no history will be gone? how about password? and does it support sync with chrome in mobile. or it only supports sync with mobile ungoogled chromium fork?

this is the only portableapps obsidian portable that self-update

Obsidain has a built-in self-updating mechanism, so no.

I thought, it's a dangerous thing to do that with portableApps (from reading Firefox support page in PA website);
Is it safe to do it with portable obsidian from PortableApps template?

why not post this as official app in portableApps? If you're busy, could I fork this and post this to PortableApps?

Do as you wish, the repo is open. But this makes no sense, you can find packages of obsidian dev-test on the forum. The difference is small except for the presence of a BAT file. But if you talk about including it in the official portable app platform, they don't accept it because there are extra utils and BAT file present.

Makes sense, the updating part is very different from PA version that needs maintainer, tho PR to the maintainer's GitHub would solved it; and if they go offline. A fork is doable, IG.

Also where can I read more on the list of commandline parameters (I mean) AdditionalParameters for ObsidianPortable? (Tho, I want to know that CLI parameters too)

This parametrs are application specific. Obsidian use Electron so check parametrs for electron apps. Some work, some don't.

Okay, thanks for the answer. I'll look into electron parameters.

I don't really like answering questions and making guides. If you want a specific app, tell me what app is, I check it and maybe make a repo like that.

Okay, This is awesome. I'll make a list later. If it's not possible don't push it for now. But if it's possible thanks, self-updating portable apps are awesome.
Great addition besides winget, chocolatey, scoop (mostly portable but i cant get it to work in my machine), msys2 for installed apps.

I'm gonna list some on my devices, just cross the items if it's actively maintained in PA website (I havent checked them all yet). this is gonna be a drafts
(wait, on second thought. I'll open new issue for this. since this issue question is answered). uhm, your main page Numstr/Numstr doesn't have discussion turned on.
So should I post my apps list here or open a new issue (I think, I'll post it here anyway, since you want suggestions instead of questions, making an apps requests in this repo for obsidian also makes no sense. so here it goes.)?

Again thank you so much. This portable apps really save my cellular data, all the self-updating installed apps are not mobile data friendly (e.g., most installed browsers are self-updating).

edit: if the remaining questions in this reply are a hassle to answer. just close this issue. I got Obsidian solved, at the very least.

continuation:
so here it goes. I'll start from critical category to unsorted ones.

Portable Apps repos suggestion: all the portable Apps that I suggest to be made a repo and a Portable version, has the minimum use case of self-updating, just like Obsidian Portable by you.
(no need for Portable Apps constraint if its impossible like busbybox and 7za.exe of Obsidian Portable Updater.bat way to self-update an app)

(any links to the commands use in Updater.bat are also helpful, so I could start learning it, and maybe making a PR, if it's not too advance
[I get most CLI lines in package managers as and end user, and experimental settings too in winget, with MS docs help]):

  1. Syncthing
  2. KeePassXC
  3. Obsidian, done.
  4. Ente Auth
  5. Wiztree
  6. Wizfile
  7. I think no Aegis in desktop? (Ente Auth is great. there is a bug currently but there's a workaround. my 2nd 2FA app besides KeePassXC)
  8. LinkedIn
  9. WhatsApp
  10. Telegram
    (haven't used but interested)
  11. VeraCypt (since this requires admin right, probably like how AV works. is it possible to be portable?).
  12. Kaspersky free is also not possible like veracrypt rite? (tho this one is optional since, it only needs 1 month wait time to get the free version from standard install)
  13. MalwareBytes
  14. Most AVs recommendations in r/antivirus wiki page
  15. ShareX
  16. I haven't research on this, but Revanced YT patch in desktop is only to patch RV YT and then put it in android rite? (if this is not possible like SyncYomi with TachiYomi/Mihon, then stratch it)
  17. FrontEnds of social media suggestions in privacyguides.org and privacytools.io
  18. since Matrix, XMPP, and federated networks are protocols, do you have favorites for each protocols' frontends? (If the mobile apps don't have ports in PC. then skip it, I'll just use android emulators then. unless syncyomi is possible for other apps. the critical one would be Obtainium [maybe wget download URL, then install command?])
  19. Revo Uninstaller
  20. Rclone (to pair with RCX, Rclone of android).
  21. FFMPEG git full version. Like I said scoop doesn't work on my machine so I can't get this via scoop.
  22. is there a possibility of making a port of Obtainium for desktop?
    (or basically all these repos of yours inside a GUI package manager. or in the style of PA platform
    [if this is too advance, forget this, just let this be as a note for other devs. updater.bat for all my apps are awesome.])

Not sure if all apps could be downloaded and extracted using this method, and maybe help.html file for the manual option, e.g., manually updating Obsidian by extracting it to ObsidianData just like how .PAF file works, but manual guide.

(just to clarify, Obtainium is like an app/apk installer with the apps as list inside one app, so app installer manager? but anyway, it works very differently then, say, UniGetUI. It's more akin to using wget github in Linux [or msys2].)
20. UniGetUI (CLI tab like in YTDLnis or more like portable winget in UniGetUI. Reason is: I don't know why I have some winget problem in some of my devices;
If I reinstall it, I'm afraid, I'll broke it with the command: 'winget source update' not working).
21. On that note:YTDLP (currently using YTDLnis until I get the hang of its CLI output in logs [also had tried Seal in android, it's anothe GUI fork of YTDLP])
22. Zoom (if any proprietary apps are a hassle and an illegal thing to do in practice then, stratch this, e.g., Edge Portable. Although technically, it exists in PA forum threads)
23. Google Meet (is this better to just use it as web or PWA instead?).
24. Deepl
25. your sesion portable is stable, rite?
26. Skype
27. Facebook (If social media apps are a hassle. then just skip this suggestions)
28. Instagram
29. Line
30. X (formerly Twitter)
31. Messenger I think already could be opened in web so thats fine ig.
32. i think theres no Quora desktop, rite?
33. I'm still afraid of losing data when I use Chrome or your suggestion: ungoogled chromium. there's also brave portable by Portapps with the same problem.
Are they stable releases?
or they're not stable yet, just like Java usage (I think plugin or something) in PortableApps, tho Java portable work with renaming the 'java64' to just 'java' folder for DocFetcher to work.
34. 3C-All-in-One-Toolbox companion app for the mobile version.
35. VSCodium (I had to uninstall this from my chocolatey apps list, it's gone from choco or cached for FOSS user [the con of chocolatey as opposed to winget. idk how to check chocolatey choco install apps download URLs, but i could check all of this in winget-pkgs repo so winget wins here])
36. portable ADB for well ADB command, mainly for shizuku, AppManager by MuntashirAkon, Hail, etc.
37. Portable Discord (since IDK how much each DC update costs me in MegaBytes)
38. I just found TunnlTo/desktop-app after searching WG tunnel and wireguard. not sure if there's a cross platform version of this like syncyomi. (or should I just export import between these clients with syncthing syncing the wireguard.conf files)
39. VLC
40. Foobar
41. SyncYomi

Done for now.
[WIP] (I'll make the drafts first in my obsidian app, and paste it here later. making drafts in GitHub web is dangerous [not sure if theres cloud draft here?])

For UniGetUI, I'll try to ask the devs or maintainers to add CLI support using the portable winget inside UniGetUI own app.

Like I said, just do the ones that is most plausible for you to do incrementally. Don't take this as forcing it to you. I will just use installed mode for at least most of my critical apps. Thank you so much again for the suggestion. 🙏🏽🙏🏽🙏🏽

@Adhjie
Copy link
Author

Adhjie commented Dec 9, 2024

Alright, I'm gonna limit the scope. I think my most imperative app to update is Firefox Browser.
So is it generally a good idea to download and extract firefox to the firefox portable directory myself, or is that dangerous. and only download and install from portableApps?

I see chromeplus project using chrome offline installer, is it possible to manually install firefox 133.0 to the portable firefox directory or should I be patient and wait for portableApps to reach FF 133.0

tl;dr
how to make an updater.bat, self-update using auto-extraction script for firefox portable?
My most critical apps are firefox, syncthing KeePassXC, fallback to KeePass, and Obsidian.
but honestly only firefox is the most critical right now. since browser is updated fairly frequent.

@Numstr
Copy link
Owner

Numstr commented Dec 18, 2024

Alright, I'm gonna limit the scope. I think my most imperative app to update is Firefox Browser.
So is it generally a good idea to download and extract firefox to the firefox portable directory myself, or is that dangerous. and only download and install from portableApps?

Its safe, unpack it to App\Firefox or App\Firefox64 for x64.

Found my old script for Firefox, it still works https://gist.github.com/Numstr/fc1b46beea7c845cbde764198f947def also need busybox and 7za in App\Utils. If you use Firefox from portable apps, remove App\Firefox64 folder.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants