(Wrote this earlier today in vim during another test-run and copy/pasted here, so looks little strange with line endings etc. for some reason)
@petersasi,
I've finished with changing the scripts to be more generic, but as you said you had curl(new win10 built-in) and 7z, then I used those and didn't download them also.
I've made an install_components.cmd and uninstall-components.cmd, where you
run the first initially to set things up, and the second is just for if
wanting to clean everything away again later when official installer emerges. Note, righclick and install as admin for both.
It doesn't check if you have something in advance, and so will install NSIS,
msys2, openssl and VC-buildtools-2019, and remove all of these again if
running the uninstall script, so keep that in mind. Also, i delete the left
over VC-buildtools folder which isn't deleted by uninstaller, so if you have other MSVC's installed, then they would get removed, so please keep that in mind, and let me know if I need change something for that then.
Also, the building scripts installs and uninstalls python often, so if you have python already installed, then will be wiped, so again let me know if you need changes made for that. It would be better to make it to have a python always installed, and buildscripts just branch off a venv, unless a python update released and only then uninstall python and download/install the new, but I was lazy so just for each job needing python, I start fresh and the scripts downloads/installs newest python and removes it after job finished, so always have newest.
I don't have a single buildscript, as not make sence in this project here, e.g. if one or two updates made to
deluge dev branch and no other components, and wanting to update installer for that, then it would take 1 hour roughly to build full gtk3 stack and libtorrent and whatnot, in addition to deluge with the two updates, so I have individual buildscripts for: libtorrent 1.1.x, libtorrent 1.2.x, gtk3-stack, deluge-dev, deluge-stable, installer for dev, installer for stable and installer for both dev and stable.
Folders with '-build' in name, are the folder you go into, to build a
component, and other folders are for storing things needed, e.g. for building
installers etc. buildscripts are files ending in cmd, and you always fire off
a script by rightclicking it and select run as admin, as need that for
installing python etc. The only things not need to run by admin, but dosen't matter if still do of-course, is the installer buildscripts.
The installers are defined to be made into your onedrive folder, in a
'Deluge2' folder there, as that is what I did for ease of uploading. It finds
your onedrive dir by using the %onedrive% variable. If you make such a
'Deluge2' folder into your %onedrive% folder, and rightclick that folder and
select share and copy the produced sharing link to a text-file or whatever for
backup, and then posts in your new thread for unofficial deluge 2.0.x
installers, and let this thread here die out and I'll link to your thread from it instead, or you're more than welcome to take over this thread here if wanting that instead. Absolutelly your choise.
If you don't want the onedrive solution and want another upload system, then
you need change BUILD_DIR in line 27 of
'C:\deluge2\nsis\packaging\win32\deluge-installer.nsis', to where you else
want the built installers to be built/stored.
When building deluge-stable, and deluge-dev, then the folder with the built
end-product is stored in C:\deluge2 folder, and when building installers, then
they are built from that + other components in other folders e.g. libtorrent
and theme folders. When building libtorrents, then they are moved afterwards
to libtorrent folder, overlay folder and also overwrites old versions in the
deluge built folders. When building gtk3-stack, then result is moved to
overlay folder + overwrites old version in deluge built folders. Overlay folder
is for things like gtk3stack and libtorrent and other needed stuff, which the
deluge building scripts copies over to deluge built folders when finished, so
have gtk3 and libtorrent etc in place.
I know this is probably very confusing, but hard to write to be easily
understood, atleast for me, so please do ask away if you got questions to something.
Again, please remember the part about installing/wiping msvc, nsis, openssl,
python and msys2. I had to spend alot of time fixing up various problems with the changing of folders and tools, so honestly didn't cared to make changes for these last things if not needed anyways i.e. if you don't have these things anyway installed on your windows system. If you do, then as said, let me know what you have of these, and i'll find how to make exceptions somehow.
Oh, lastly, all scripts are made "lazy" which is my style usually, lol. I
don't wanna make a check for if a file or folder is there and if there, then
delete it, and instead simply make a delete command for said file or folder,
and if there, then gets deleted and if not, then just produces a message about
file/folder not found and move on, simply. As this was made for me, then I
kept it like that throughout, and have not had time to fix these things up now
to be "prettier", so whenever seeing something about file/folder not found, or
alike, then not an actual error, and can be fully disregarded.
https://gofile.io/d/lyt0jx
Exctract into your C drive, and everything will be in deluge2 folder there. I
deleted to save space the two built deluge folders in there, as is already in
the two installers in my onedrive link anyway, and so remember you cannot
build any of the installers before building deluge(s) first, as the
installer-build scripts build installers from these deluge folder(s). There is
included new and up2date as of today, prebuilt gtk3-stack and libtorrents, so you don't need build those
unless wanting too, so to make installers for stable and dev, you would first
need run the stable and dev deluge buildscripts and then afterwards run the
installer buildscripts i.e. installer-both.cmd, as you want both(in this
case). There is one commit in deluge-dev branch which I haven't
included/rebuilt btw, I believe, as came after I stopped. Then after deluge(s) are built, so two folders with deluge available now under C:/deluge2, then e.g at a later time further down the road, where no deluge updates available but instead libtorrent and/or gtk3 is updated and you want to provide that, then no reason to rebuild deluge(s) as already built and up2date, and so you just fire off libtorrent and/or gtk3 buildscripts(right click and run as admin) and then when finished the result is also copied into pre-built deluge(s) if available, and so afterwards you fire off installer buildscript(s) to rebuild installer(s) from updated deluge folder(s). Sorry, know not grammatically correct at times/places, but please disregard these mistakes and hope the intent is somewhat clear regardless. Just to reiterate, if wanting update deluge, then afterwards running deluge buildscript(s), then you don't need run gtk3 or libtorrent scripts if not wanting to specifically update those, since the contents of overlay folder is copied into built deluge folders by deluge build scripts, so has gtk3 and libtorrent available, in the versions available from your last run of there build-script.
Btw, After my last trialrun, I saw an error, and that was because I had
previously doubled up my 'rd /s /q foobar' lines, as found that posted as workaround
for an issue I once noticed along time ago, but I thought it was fixed now and
so removed those double command-lines repeated after eachother but after
getting that error again in one of the commands, then I doubled that up
everywhere possibly needed, which will give file or dir not found in output
during building, but again not an issue, and was just the easiest workaround
for the old issue, which also is on powershell and dotnet delete commands, and is old reported though still unresolved bug with
file deletions and async not implemented propperly for that on windows yet and
so timing issues can occure, leading to still left folder behind and not
getting fully deleted(they are working on fixing async issue currently though, they said, but not finished yet). Just so you don't think i'm crazy, if looking through
the various scripts. There are other semantics too, which was needed specifically, but no need to confuse you with that, as unneeded info.
I used to monitor these for changes:
https://git.deluge-torrent.org/deluge/?h=develop
https://github.com/arvidn/libtorrent/releases (check if number of commits since release for 1.2.x and 1.1.x has gone up since last check, and click on it if need more info / 1 page to check instead of two)
http://ftp.acc.umu.se/pub/GNOME/sources/gtk+/3.24/ (check: "Latest-is-x.x.x" - didn't bother anymore to check git log of commits since release, though is included when building)
https://www.python.org/ (check "Latest: Python x.x.x" )
Edit: Changed download link to the new fixed version, as per described in next post.