at 5eeab4060aaa9dd8ab722fc1205328e3681e7431 (commit)
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=5eeab4060aaa9dd8ab722fc1205328e3681e7431 commit 5eeab4060aaa9dd8ab722fc1205328e3681e7431 Author: Jon Turney <[email protected]> Date: Thu Feb 6 16:03:24 2020 +0000 Add beginnings of a command line installation tool At the moment, all this can do is retrieve setup.ini from a selected mirror and parse it. https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=464b9200bf587fd1e17e4113b4f2e4539548e22f commit 464b9200bf587fd1e17e4113b4f2e4539548e22f Author: Jon Turney <[email protected]> Date: Sat Feb 3 17:35:58 2024 +0000 Put various shared subcomponents into a convenience library * logging, settings, netio, iostream, decompressors, packagedb, csu_util, hashes, signature checking, URL fetching, Exception class, ini fetching and parsing, global state, version https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=faa1b063a31941bef455574215e4f8d8eefcda84 commit faa1b063a31941bef455574215e4f8d8eefcda84 Author: Jon Turney <[email protected]> Date: Sun Feb 25 17:33:23 2024 +0000 Push check_for_cached into package_source This is kind of half-right. It helps make the package database code self-contained (since that needs to use check_for_cached as part of ScanDownloadedFiles), but also pulls apart the 'cache checking' and 'download file and put it in the cache'. There's probably some scope for an package_source interface for "where is the package cache download location for this package from that site." https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=7b04a3a514a30ae7fa03be52cb68819ba842c533 commit 7b04a3a514a30ae7fa03be52cb68819ba842c533 Author: Jon Turney <[email protected]> Date: Sun Feb 25 16:39:16 2024 +0000 Split out hash checking progress reporting https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=05b4756306ea7469e7ae3bc46265a701d2ab7243 commit 05b4756306ea7469e7ae3bc46265a701d2ab7243 Author: Jon Turney <[email protected]> Date: Sun Feb 25 12:59:04 2024 +0000 Spit out GetNetAuth from NetIO There's still all kinds of janky stuff here: The network proxy configuration fetched by ConnectionSetting is stored into static members of the NetIO class, rather than held there and accessed. Again, define a virtual class as the interface through which user interaction takes place, and implement that for GUI and CLI clients. While we're at it, we arrange for the GUI dialogs for network auth to be properly parented. https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=f35c20416ede8735b0dab8e89c913a2bc91da352 commit f35c20416ede8735b0dab8e89c913a2bc91da352 Author: Jon Turney <[email protected]> Date: Mon Feb 5 20:38:06 2024 +0000 Drop hinstance global We do not need to retain the hInstance value passed into WinMain(), as it's always available as GetModuleHandle(NULL). Note that DialogBox() accepts NULL meaning "the current executable" in any case. Future work: there's still some completely unnecessary storing it in class Window and passing it around. https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=453fb5fbcf43886cabaaeb9b5484576e81166d18 commit 453fb5fbcf43886cabaaeb9b5484576e81166d18 Author: Jon Turney <[email protected]> Date: Sun Feb 4 22:25:28 2024 +0000 Instantiate found_ini_list in ini.cc This is the list of ini files found by fromcwd.cc:do_from_local_dir(). Maybe that should be unkinked by actually doing that scan inside ini.cc, where we could have some progress feedback? This makes it possible to build ini.cc without fromcwd.cc https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=8980ccff376d5794c6c46fd7a4e33c4702d59452 commit 8980ccff376d5794c6c46fd7a4e33c4702d59452 Author: Jon Turney <[email protected]> Date: Sat Feb 3 22:09:12 2024 +0000 Split out URL fetching progress reporting Rename IniParseFeedback.h to Feedback.h Do URL fetching progress reporting via an interface defined by the methods added to the interface defined by the virtual base class Feedback, which can be implemented for GUI (via ThreeBar) or CLI feedback. This is all a bit ad-hoc at the moment, based on the existing reporting points, rather than a studied design. Ultimately this Feedback class will grow to contain all the download/hash/install/uninstall reporting. Future work: The fact that we do extra key fetching inside the guts of verify_ini_file_sig() (and so need to report progress from there) is pretty disgusting. We should probably fetch them up-front and hand them down to there... https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=fb3f9de58ea0bd5d25f610249ea115d9564e9674 commit fb3f9de58ea0bd5d25f610249ea115d9564e9674 Author: Jon Turney <[email protected]> Date: Sat Feb 3 17:07:50 2024 +0000 Simplify invocation of UserSettings::open_settings() Simplify how we check for a setup.rc settings file in the local cache dir (Who knew that setup even did this?): pass the directory down to UserSettings::open_settings() as a parameter, rather than by storing it in an (otherwise unused) member. Also: rename the 'cwd' parameter, because it's actually an arbitrary directory, not the cwd. (Archeology seems to indicate that at one stage we'd save settings in the cwd if we needed to write them before the cygwin root was known, and migrate that file to the cygwin root when it becomes known; then we changed to keeping that file in the cache dir, then we forgot to migrate it, so perhaps all this complexity isn't needed?) https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=1b52b1a6177d5e65791ea07a118ae95dc40fcc53 commit 1b52b1a6177d5e65791ea07a118ae95dc40fcc53 Author: Jon Turney <[email protected]> Date: Tue Feb 4 20:18:45 2020 +0000 Don't call Antivirus::AtExit() directly from Logger::exit() The call to Antivirus::AtExit() needs to be take place before we write the log, so we see in the log if it failed. But calling it directly from Logger::exit() is a horrible layering violation, which makes it impossible to use the logger in other executables... Add LogFile::atexit() method, which registers atexit handlers which are run by LogFile::exit() before the log is closed. The real solution here is probably not to exit via Logger::exit() all over the place. And also perhaps to switch logfile writing from "defered" to "immediate" once the root directory has been selected (which establishes where the logfile should be written). Also update a comment, out of date since 5fa64c3c. https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=a7f0fb0c8ccce4ddec8710b3c8ababdae597790e commit a7f0fb0c8ccce4ddec8710b3c8ababdae597790e Author: Jon Turney <[email protected]> Date: Tue Feb 4 14:49:06 2020 +0000 Split out site into SiteSetting and SitePage Again, this will ultimately make it possible to specify, or store and retrieve from settings a site, without having a GUI. https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=ed97912a6ba3441567b93a8202ee7dd16a1eb08a commit ed97912a6ba3441567b93a8202ee7dd16a1eb08a Author: Jon Turney <[email protected]> Date: Thu Feb 6 19:19:04 2020 +0000 Split GuiParseFeedback out from ini fetcher This will ultimately make it possible to fetch and parse an ini file without having a GUI. https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=ef6524976cb6898312d4a4a819e16c3c66adfe56 commit ef6524976cb6898312d4a4a819e16c3c66adfe56 Author: Jon Turney <[email protected]> Date: Thu Feb 6 20:05:17 2020 +0000 Move setup_exts[] to the only place it's used https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=7671ff2c25a7b66b1ea56aa16082b0e8e38700e2 commit 7671ff2c25a7b66b1ea56aa16082b0e8e38700e2 Author: Jon Turney <[email protected]> Date: Thu Feb 6 20:03:55 2020 +0000 Drop forward declaration of non-existent class IniState Also: move forward declaration of class io_stream after includes with other forward declarations.
