]> cygwin.com Git - cygwin-apps/setup.git/log
cygwin-apps/setup.git
2 years agoOnly show deprecation warning once if we're going to elevate release_2.917
Jon Turney [Mon, 24 Jan 2022 19:19:46 +0000 (19:19 +0000)]
Only show deprecation warning once if we're going to elevate

2 years agoProvide prototype for SHMessageBoxCheckW()
Jon Turney [Mon, 24 Jan 2022 18:13:51 +0000 (18:13 +0000)]
Provide prototype for SHMessageBoxCheckW()

Present in implib, but not prototyped in MinGW64 headers until 9.0.0

2 years agoDon't create install package if there's no install: line
Jon Turney [Mon, 24 Jan 2022 17:07:15 +0000 (17:07 +0000)]
Don't create install package if there's no install: line

Don't erroneously create an install package if there's no install: line
for that version.

If it's for the latest version and something depends on this package,
the solver will produce a solution containing that package & version,
so we'll try to download it without having a path to fetch it from,
leading to download errors which are impossible to resolve.

2 years agoUse SHMessageBoxCheck() for MessageBox with "don't show again" checkbox
Jon Turney [Mon, 24 Jan 2022 16:28:29 +0000 (16:28 +0000)]
Use SHMessageBoxCheck() for MessageBox with "don't show again" checkbox

2 years agoIgnore 'CYGWIN=winsymlinks:lnk' release_2.916
Jon Turney [Tue, 18 Jan 2022 15:02:58 +0000 (15:02 +0000)]
Ignore 'CYGWIN=winsymlinks:lnk'

Ignore 'CYGWIN=winsymlinks:lnk', rather than converting it to
'--symlink-type lnk', which then fails with '*** --symlink-type lnk is
not implemented'.

2 years agoShow a MessageBox warning if running on a deprecated Windows version
Jon Turney [Wed, 12 Jan 2022 20:25:30 +0000 (20:25 +0000)]
Show a MessageBox warning if running on a deprecated Windows version

Show a MessageBox warning if we are running on a Windows version which
we have deprecated Cygwin support for:

- Windows 6.0 (Windows Vista, Windows Server 2008)
- 32-bit Windows

This warning can be disabled with '--no-warn-deprecated-windows'.

2 years agoUpdate TODO
Jon Turney [Mon, 10 Jan 2022 15:54:19 +0000 (15:54 +0000)]
Update TODO

2 years agoImprove symlinks to absolute paths made for ' --symlink-type native' release_2.915
Jon Turney [Sun, 9 Jan 2022 21:17:14 +0000 (21:17 +0000)]
Improve symlinks to absolute paths made for ' --symlink-type native'

Match Cygwin DLL behaviour of not using '\\?\' prefix if the target path
is short enough not to need it.

This improves how the symlink is reported by CMD buildin 'DIR', and
handled by File Explorer's file properties dialog.

2 years agoWhen in unattended mode, ignore attempts to close via GUI release_2.914
Jon Turney [Sun, 19 Dec 2021 21:22:55 +0000 (21:22 +0000)]
When in unattended mode, ignore attempts to close via GUI

Perhaps this should be controlled by a separate option, but making setup
non-interactive seems like a reasonable fit with the intent of
'--quiet-mode'.

This doesn't stop the installer being killed by TerminateProcess().

Addresses: https://cygwin.com/pipermail/cygwin/2021-November/250079.html

2 years agoFurther fix symlinks to absolute paths made for ' --symlink-type native'
Jon Turney [Fri, 7 Jan 2022 15:18:02 +0000 (15:18 +0000)]
Further fix symlinks to absolute paths made for ' --symlink-type native'

After using 'to' with NtOpenFile(), convert it back to Win322
filenamespace form before using it with CreateSymbolicLinkW(), so that
the symlink works with native tools.

https://cygwin.com/pipermail/cygwin/2022-January/250398.html

2 years agoUpdate displayed copyright to 2022 release_2.913
Jon Turney [Tue, 4 Jan 2022 16:56:12 +0000 (16:56 +0000)]
Update displayed copyright to 2022

2 years agoFix symlinks to absolute paths made for ' --symlink-type native'
Jon Turney [Thu, 6 Jan 2022 15:38:17 +0000 (15:38 +0000)]
Fix symlinks to absolute paths made for ' --symlink-type native'

As currently written, we go to the trouble of making absto, and then
don't use it, which isn't right at all...

2 years agoFix SeCreateSymbolicLinkPrivilege detection release_2.912
Jon Turney [Fri, 31 Dec 2021 00:25:56 +0000 (00:25 +0000)]
Fix SeCreateSymbolicLinkPrivilege detection

SeCreateSymbolicLinkPrivilege is enabled automatically on use, so it
only needs to be present in the token, not enabled.

2 years agoFix inverted symlink creation right logging
Jon Turney [Thu, 30 Dec 2021 23:19:06 +0000 (23:19 +0000)]
Fix inverted symlink creation right logging

2 years agoPush some dynamic dialog text into IDD_FILE_INUSE resource release_2.911
Jon Turney [Sat, 4 Dec 2021 14:25:09 +0000 (14:25 +0000)]
Push some dynamic dialog text into IDD_FILE_INUSE resource

Can't use that approach for the label for the IDRETRY button (since it
needs a fixed ID), so move that to string resources.

Also make text placed in IDC_FILE_INUSE_MSG localizable.

2 years agoMove download progress message to string resources
Jon Turney [Sat, 4 Dec 2021 14:04:39 +0000 (14:04 +0000)]
Move download progress message to string resources

2 years agoMove confirm report strings to string resources
Jon Turney [Fri, 3 Dec 2021 23:17:09 +0000 (23:17 +0000)]
Move confirm report strings to string resources

2 years agoMove hash checking progress message to string resources
Jon Turney [Fri, 3 Dec 2021 22:06:50 +0000 (22:06 +0000)]
Move hash checking progress message to string resources

2 years agoUse string resource for progress windows title
Jon Turney [Fri, 3 Dec 2021 21:25:31 +0000 (21:25 +0000)]
Use string resource for progress windows title

2 years agoMove local package directory browser title to string resources
Jon Turney [Fri, 3 Dec 2021 20:25:15 +0000 (20:25 +0000)]
Move local package directory browser title to string resources

Also improve LoadStringW to handle a missing translation by falling back
to untranslated string.

2 years agoMove root directory browser title to string resources
Jon Turney [Fri, 3 Dec 2021 20:07:13 +0000 (20:07 +0000)]
Move root directory browser title to string resources

Note: IFileDialog now recommended over SHBrowseForFolder.

There's something a little wonky here: The browser is shown by
OnMessageCmd(), so a simple click on the unfocused button isn't enough?

2 years agoMove localizable 'empty chooser' text to string resources
Jon Turney [Fri, 3 Dec 2021 18:26:53 +0000 (18:26 +0000)]
Move localizable 'empty chooser' text to string resources

2 years agoDon't localize logged 'exit message' set via setExitMsg()
Jon Turney [Fri, 3 Dec 2021 18:07:51 +0000 (18:07 +0000)]
Don't localize logged 'exit message' set via setExitMsg()

2 years agoDon't localize mbox strings written to log
Jon Turney [Thu, 10 Sep 2020 16:31:56 +0000 (17:31 +0100)]
Don't localize mbox strings written to log

Add LoadStringWEx to access string resource for a specifc locale.
Use that in mbox when formatting string for log.

2 years agoPush some dynamic download/install dialog text into IDD_LOCAL_DIR DIALOG resource
Jon Turney [Thu, 2 Dec 2021 22:28:32 +0000 (22:28 +0000)]
Push some dynamic download/install dialog text into IDD_LOCAL_DIR DIALOG resource

Move the localizable dialog text which is dynamically modified depending
on install or download mode into the IDD_LOCAL_DIR DIALOG resource, and
show or hide it as appropriate.

2 years agoFix format() returning a std::string containing a terminating null
Jon Turney [Sun, 5 Dec 2021 14:34:41 +0000 (14:34 +0000)]
Fix format() returning a std::string containing a terminating null

2 years agoSend postinstall thread complete message last in that thread
Jon Turney [Fri, 3 Dec 2021 14:27:12 +0000 (14:27 +0000)]
Send postinstall thread complete message last in that thread

Addresses: https://cygwin.com/pipermail/cygwin/2021-November/250084.html

After some staring at the code, it looks like it's possible that the
cause of this report is the linked list containing log entries to be
damaged if multiple threads call endLog() simultaneously.

Currently 'Changing gid to Administrators' is logged by the call to
nt_sec.setAdminGroup() just after the WM_APP_POSTINSTALL_THREAD_COMPLETE
message is been sent.

'Ending cygwin install' is logged just before main exits.

Make sending the WM_APP_POSTINSTLL_THREAD_COMPLETE message the last
thing that the postinstall thread does  This should avoid the potential
for endLog() becing called by multiple threads simultaenously.

Logging is still lousy with race conditions as the std::stringbuf all
threads are writing to is global (leading to messages from multiple
threads being concatenated here), and appending to the linked list isn't
thread-safe, but this should at least avoid this particular infinite
loop.

2 years agoDrop some cruft in logging
Jon Turney [Wed, 1 Dec 2021 15:06:20 +0000 (15:06 +0000)]
Drop some cruft in logging

The 'hack' referred to in endEntry() was removed in c8356810, but the
comment wasn't updated.

2 years agoAdd an option to set the GUI language release_2.910
Jon Turney [Thu, 15 Apr 2021 19:12:27 +0000 (20:12 +0100)]
Add an option to set the GUI language

Add an option to set the GUI language, primarily for testing purposes.

We need to call SetThreadUILanguage() not only in the main thread, but
in every thread which might access localized resources (directly or
indirectly).

2 years agoAdd french res.rc
Jon Turney [Fri, 7 May 2021 18:17:01 +0000 (19:17 +0100)]
Add french res.rc

Add french res.rc, with dialog, message box, progress and actions string
translations from Eric Laussage, converted to utf8 encoding.

v2:
Update with translations for dynamically modified text in IDD_DESKTOP
and IDD_CHOOSE DIALOG resource

v3:
Add mbox caption, more mbox strings
MB_RETRYCONTINUE button label

2 years agoUse UTF8 encoding in .rc file
Jon Turney [Thu, 15 Apr 2021 19:40:51 +0000 (20:40 +0100)]
Use UTF8 encoding in .rc file

Use UTF8 encoding in resources .rc file (rather than defaulting to
Windows codepage 1252)

2 years agoMove some non-localizable string from resources
Jon Turney [Thu, 25 Nov 2021 19:22:06 +0000 (19:22 +0000)]
Move some non-localizable string from resources

2 years agoPush MB_RETRYCONTINUE MessageBox customization into mbox wrapper
Jon Turney [Thu, 25 Nov 2021 17:38:22 +0000 (17:38 +0000)]
Push MB_RETRYCONTINUE MessageBox customization into mbox wrapper

Push the MB_RETRYCONTINUE MessageBox customization into the mbox
wrapper, and use it for a generic error during file extraction.

2 years agoUse generic formatting mbox wrapper
Jon Turney [Mon, 10 May 2021 22:15:30 +0000 (23:15 +0100)]
Use generic formatting mbox wrapper

Use generic formatting mbox wrapper for some:
- message boxes whose contents are currently hand-made using a format string.
- message boxes whose contents can be put into a string resource.

This also makes the various captions used by these messageboxes
consistent.

Future work: Aim to phase out remaining uses of the existing mbox()
wrapper:
- via note(), fatal(), yesno()
- where we a need to use a fully dynamic string (e.g. from ini parser)

2 years agoAdd a more generic mbox wrapper
Jon Turney [Mon, 10 May 2021 21:35:32 +0000 (22:35 +0100)]
Add a more generic mbox wrapper

This mbox wrapper understands loading format strings from string
resources and unattended mode.

Factor out the unattended_result logic from the existing mbox wrapper,
so it can be shared with that.

2 years agoDrop message box for invalid --arch option
Jon Turney [Fri, 12 Nov 2021 14:37:33 +0000 (14:37 +0000)]
Drop message box for invalid --arch option

Make this consistent with all other cases of an invalid option, where
the error is just reported to stdout.

2 years agoFix uses of MessageBox() which could be problematic in unattended mode
Jon Turney [Thu, 11 Nov 2021 22:17:12 +0000 (22:17 +0000)]
Fix uses of MessageBox() which could be problematic in unattended mode

Direct uses of MessageBox should be avoided, as they need special
attention to check that they are avoided in unattended mode (as they
could cause setup to stop and wait for user interaction).

Fix a few remaining uses that aren't guarded by checks of
unattended_mode, by using mbox() instead.

(These are new or slightly non-trivial uses which didn't get changed in
a123de66).

2 years agoReview uses of MessageBox()
Jon Turney [Mon, 10 May 2021 20:43:26 +0000 (21:43 +0100)]
Review uses of MessageBox()

Use a consistent caption "Cygwin Setup" (for consistency with mbox()).

Also drop pointless CANCEL logic and clean up handling of IGNORE for
ABORTRETRYINGORE mbox when local package directory can't be accessed.

Also remove the CANCEL button from the MessageBox displayed for a
'message:' hint, which quits setup, with no indication that's what it's
going to do.

Also drop some commented out code for a modeless propsheet

2 years agoRemove one version of fatal()
Jon Turney [Mon, 10 May 2021 19:50:55 +0000 (20:50 +0100)]
Remove one version of fatal()

This is only used in two places, which are "this can't happen"
situations, where it doesn't actually make much sense to exit setup.

2 years agoPush some dynamic download/install dialog text into IDD_DESKTOP DIALOG resource
Jon Turney [Mon, 10 May 2021 18:42:13 +0000 (19:42 +0100)]
Push some dynamic download/install dialog text into IDD_DESKTOP DIALOG resource

Move the localizable dialog text which is dynamically modified depending
on install or download mode into the IDD_DESKTOP DIALOG resource, and
show or hide it as appropriate.

2 years agoPush some dynamic download/install dialog text into IDD_CHOOSE DIALOG resource
Jon Turney [Mon, 10 May 2021 18:01:38 +0000 (19:01 +0100)]
Push some dynamic download/install dialog text into IDD_CHOOSE DIALOG resource

Move the localizable dialog text which is dynamically modified depending
on install or download mode into the IDD_CHOOSE DIALOG resource, and
show or hide it as appropriate.

2 years agoMake '--quiet' imply 'download and install packages'
Jon Turney [Fri, 1 Oct 2021 14:34:53 +0000 (15:34 +0100)]
Make '--quiet' imply 'download and install packages'

Make '--quiet' imply 'download and install packages', rather than
'whatever source mode was chosen in the last run'.  This aligns
behaviour with the help text about installation type.

This can be overriden with '--download' or '--local-install'. Specifying
both already has the meaning 'download and install packages', but let's
not require than in combination with '--quiet' to get definite
behaviour.

2 years agoMove column header strings to string table resource
Jon Turney [Mon, 10 May 2021 15:39:37 +0000 (16:39 +0100)]
Move column header strings to string table resource

2 years agoMove view mode strings to string table resource
Jon Turney [Mon, 10 May 2021 14:18:24 +0000 (15:18 +0100)]
Move view mode strings to string table resource

2 years agoUse package action strings from resources for column width
Jon Turney [Mon, 10 May 2021 14:36:39 +0000 (15:36 +0100)]
Use package action strings from resources for column width

Use the package action strings from string table resource for computing
the column width.

(This should have been done as part of f34a20e7, but we didn't notice
the strings were also duplicated here.)

This requires a bit of enhancement to ListView::noteColumnWidth() to
work for wstrings as well.

2 years agoDefault symlink mode from CYGWIN env var
Jon Turney [Sat, 31 Jul 2021 19:37:22 +0000 (20:37 +0100)]
Default symlink mode from CYGWIN env var

2 years agoPropagate --symlink-type setting to post-install scripts
Jon Turney [Sat, 31 Jul 2021 11:54:00 +0000 (12:54 +0100)]
Propagate --symlink-type setting to post-install scripts

Propagate --symlink-type setting to post-install scripts, by setting the
CYGWIN env var appropriately.

2 years agoAdd a command line option to choose symlink type used
Jon Turney [Wed, 19 May 2021 18:13:57 +0000 (19:13 +0100)]
Add a command line option to choose symlink type used

The default is 'sys', the historical behaviour of setup.

v2:
Adjust to use StringChoiceOption
Align option names with winsymlink values

2 years agoFactor out StringChoiceOption
Jon Turney [Sun, 18 Jul 2021 14:11:39 +0000 (15:11 +0100)]
Factor out StringChoiceOption

Factor out logic for 'a string option which is one of a set of choices'
from CompactOsStringOption as StringChoiceOption.

v2:
Allow different behaviour for option without a choice, and option absent.

Future work: This doesn't say anything other that "Error during option
processing" if you've given an invalid choice string, or left it out
when it's required, because libgetopt++ doesn't output anything, just
returns success or failure after processing the command line arguments.

2 years agoAdd symlink capabilities to user-agent telemetry
Jon Turney [Sat, 24 Jul 2021 15:34:29 +0000 (16:34 +0100)]
Add symlink capabilities to user-agent telemetry

Report if (i) we have the symlink creation privilege, and (ii) if
developer mode is on, so unprivileged symlink creation is allowed.

2 years agoAdd NTSecurity::hasSymlinkCreationRights()
Jon Turney [Mon, 26 Jul 2021 21:22:51 +0000 (22:22 +0100)]
Add NTSecurity::hasSymlinkCreationRights()

Also report if SeCreateSymbolicLink privilege is available to log.

2 years agoAdd separate symlink-creation phase when extracting archive
Jon Turney [Sun, 25 Jul 2021 14:58:30 +0000 (15:58 +0100)]
Add separate symlink-creation phase when extracting archive

Add a separate symlink-creation phase when extracting an archive, by
ignoring symlinks on the first pass, rewinding the archive, and
then extracting only symlinks on the second pass.

This helps a lot with native symlinks (which require the destination to
exist when created, so we can determine if it is a file or directory).

Alternative implementations:

We could collect symlinks, and defer making them until the end of
extracting the archive.  We'd also need to report errors if making those
symlinks failed.

We could close and re-open the archive, rather than rewinding it. Error
handling if the archive isn't accessible the second time could be
complex.

2 years agoAdd seek() method to archive and compress file classes
Jon Turney [Sun, 25 Jul 2021 14:53:39 +0000 (15:53 +0100)]
Add seek() method to archive and compress file classes

Add seek() method to archive and compressed file isostream classes
(which can only rewind to the start).

Also clean up some cruft in archive class.

This still needs testing on a .gz archive (slightly involved as there
aren't any currently!)

2 years agoFactor out the iteration over archive files to install
Jon Turney [Sun, 25 Jul 2021 14:26:19 +0000 (15:26 +0100)]
Factor out the iteration over archive files to install

2 years agoAdd support for creating native symlinks
Jon Turney [Sat, 24 Jul 2021 15:19:27 +0000 (16:19 +0100)]
Add support for creating native symlinks

2 years agoAdd support for creating WSL symlinks
Jon Turney [Tue, 18 May 2021 22:07:11 +0000 (23:07 +0100)]
Add support for creating WSL symlinks

2 years agoOnly build for x86_64 in github workflow
Jon Turney [Sat, 17 Jul 2021 12:56:31 +0000 (13:56 +0100)]
Only build for x86_64 in github workflow

Only build for x86_64 in github workflow, since the requirements for
i686 are now impossible to obtain (Fedora <=31 for non-DW2 EH compiler,
but coprs for EOL'ed Fedoras have been expired)

2 years agoAdd new option '--compact-os ALGORITHM'.
Christian Franke [Fri, 14 May 2021 07:50:12 +0000 (09:50 +0200)]
Add new option '--compact-os ALGORITHM'.

If specified, selected Compact OS compression algorithm is applied
to files below /bin, /sbin and /usr.  Most DLL files are excluded
because rebase will open these files again for writing.

2 years agoFix a crash in ListView StringCache release_2.909
Jon Turney [Wed, 14 Jul 2021 14:39:09 +0000 (15:39 +0100)]
Fix a crash in ListView StringCache

Fix a sporadic crash in chooser introduced in f34a20e7.

Limit the mempcy() to fill StringCache to the size of the string we are
putting in the cache, not the the size of the cache (which will fault if
it happens to over-run into a inaccessible page).

2 years agoCancel search timer after 'clear' button pressed
Jon Turney [Wed, 2 Jun 2021 13:25:24 +0000 (14:25 +0100)]
Cancel search timer after 'clear' button pressed

2 years agoMake 'Clear' button on IDD_CHOOSE less snug
Jon Turney [Wed, 12 May 2021 14:16:59 +0000 (15:16 +0100)]
Make 'Clear' button on IDD_CHOOSE less snug

2 years agoSimplify uninstall-only warning
Jon Turney [Fri, 7 May 2021 18:36:12 +0000 (19:36 +0100)]
Simplify uninstall-only warning

Simplify uninstall-only warning when running in 'Install from Local
Directory' mode with a non-existent package directory.

Strictly, this is wrong as written, since is_64 reflects the --arch
option setting, not the arch of the executable.

In any case, mentioning the executable name seems to just distract from
the warning we are trying to deliver here.

3 years agoFix which column we size to accomodate action labels
Jon Turney [Wed, 12 May 2021 12:50:42 +0000 (13:50 +0100)]
Fix which column we size to accomodate action labels

This wasn't actually operating on the right column (due to a typo in
ce9f6dd0), but fortunately that was benign (as the longest version is
probably longer than any action).

3 years agoFix native machine reported on x86_64 without IsWow64Process2()
Jon Turney [Mon, 26 Apr 2021 12:49:39 +0000 (13:49 +0100)]
Fix native machine reported on x86_64 without IsWow64Process2()

If the OS version is old enough not to have IsWow64Process2(), and
IsWow64Process() returns FALSE, this only indicates x86 for an x86
process.

Fixes 4936dbc.

3 years agoAdd --allow-test-packages release_2.908
David Allsopp [Tue, 20 Apr 2021 14:23:52 +0000 (15:23 +0100)]
Add --allow-test-packages

3 years agoHandle '--packages package=version'
Jon Turney [Thu, 27 Aug 2020 14:48:06 +0000 (15:48 +0100)]
Handle '--packages package=version'

Handle '--packages package=version' to allow specifing the version of a
package to install on the command line.

isManuallyWanted() now returns the target packageversion (if specified),
or an empty packageversion (which is translated into an instruction to
the solver to choose the version).

In the 'upgrade' case, this changes from using the complex logic of
packagemeta::trustp() to determine the target version, when unspecified
on the command line, to allowing the solver to make that decision (which
should be broadly the same i.e. not downgrading test versions, etc.).

This also subtly changes the behaviour when the package version is not
specified.  Instead of forcing the current version, we allow the solver
to choose the version, so it may not pick that version, if other
constraints exist, which prevent a solution containing that version.

There's probably some future work which can be done to simplify the
remaining uses packagemeta::trustp(), which are only related to the UI.

3 years agoAdd GUI language to default User-Agent string
Jon Turney [Wed, 16 Sep 2020 15:14:56 +0000 (16:14 +0100)]
Add GUI language to default User-Agent string

3 years agoPutative changes to bitness reporting for Win64-on-ARM64
Jon Turney [Thu, 15 Apr 2021 17:13:07 +0000 (18:13 +0100)]
Putative changes to bitness reporting for Win64-on-ARM64

3 years agoCheck compiler exception handling model during configure release_2.907
Jon Turney [Sun, 11 Apr 2021 15:52:05 +0000 (16:52 +0100)]
Check compiler exception handling model during configure

Since F32, Fedora ships a MinGW x86 compiler which uses DW2 exception
handling [1].  This does not support throwing exceptions from Windows
callbacks, which we use.

[1] https://fedoraproject.org/wiki/Changes/Mingw32GccDwarf2

3 years agoAdd a github action to cross-build on Fedora release_2.906
Jon Turney [Tue, 16 Mar 2021 16:35:59 +0000 (16:35 +0000)]
Add a github action to cross-build on Fedora

3 years agoAdd scripts used in packaging
Jon Turney [Wed, 26 Feb 2020 00:45:25 +0000 (00:45 +0000)]
Add scripts used in packaging

3 years agoLink with libssp
Jon Turney [Tue, 16 Mar 2021 17:38:49 +0000 (17:38 +0000)]
Link with libssp

Fedora builds some of the libraries we use with -D_FORTIFY_SOURCE=2, so
we need to link with libssp to provide __memcpy_chk etc.

Future work: build setup itself with -D_FORTIFY_SOURCE=2.

3 years agoTurn on __USE_MINGW_ANSI_STDIO everywhere
Jon Turney [Tue, 16 Mar 2021 15:55:59 +0000 (15:55 +0000)]
Turn on __USE_MINGW_ANSI_STDIO everywhere

__USE_MINGW_ANSI_STDIO is turned on by C++ STL headers, so we're getting
this define due to that in most places, except where we happen to
include stdio.h before them. archive_tar.cc happens to do that, and
wants ANSI stdio since da31ad35, so turn it on unconditionally.

It's also turned on for C++11 by MinGW headers >= 8.0.0, which Cygwin
already has, so this already works when building there, and we're going
to have to deal with any other problem that might cause elsewhere in the
source eventually anyhow.

This fixes building since da31ad35 on F33, which only has mingw-headers
7.0.0.

3 years agoUpdate displayed copyright to 2021
Jon Turney [Mon, 15 Mar 2021 17:40:51 +0000 (17:40 +0000)]
Update displayed copyright to 2021

3 years agoRevert "Remove pointless variable from do_download_site_info_thread()"
Jon Turney [Mon, 15 Mar 2021 17:38:13 +0000 (17:38 +0000)]
Revert "Remove pointless variable from do_download_site_info_thread()"

This reverts commit d15c11e7954977ee27712989b36e7102fc70639e.

This wasn't pointless, as it was causing the site list to be fetched
only once, even if we passed through that page more than once.

3 years agoMove package action strings to string table resource
Jon Turney [Sun, 6 Sep 2020 18:23:23 +0000 (19:23 +0100)]
Move package action strings to string table resource

Move package action strings to string table resource.
Switch ListView control to wide-char.

3 years agoAdd a UTF-8 string to wstring utility function.
Jon Turney [Wed, 16 Sep 2020 21:21:08 +0000 (22:21 +0100)]
Add a UTF-8 string to wstring utility function.

3 years agoRemove long-obsolete 'DISCARABLE' from resource file
Jon Turney [Sun, 6 Sep 2020 16:04:20 +0000 (17:04 +0100)]
Remove long-obsolete 'DISCARABLE' from resource file

The 'DISCARDABLE' memory attribute was only signficant on Win16.

3 years agoMove installation progress strings to string table resource
Jon Turney [Tue, 1 Sep 2020 00:43:53 +0000 (01:43 +0100)]
Move installation progress strings to string table resource

3 years agoAllow progress status to be set directly from a resource
Jon Turney [Fri, 4 Sep 2020 15:03:08 +0000 (16:03 +0100)]
Allow progress status to be set directly from a resource

Allow progress status to be set directly from a (localizable) resource.

3 years agoAdd LoadStringW to std::wstring utility function
Jon Turney [Fri, 4 Sep 2020 15:40:14 +0000 (16:40 +0100)]
Add LoadStringW to std::wstring utility function

3 years agoFix version used when not built from a git checkout
Jon Turney [Mon, 31 Aug 2020 19:34:24 +0000 (20:34 +0100)]
Fix version used when not built from a git checkout

3 years agoWarn about unknown package names
Jon Turney [Wed, 26 Aug 2020 17:24:18 +0000 (18:24 +0100)]
Warn about unknown package names

Warn about unknown package names used with '--packages' or
'--remove-packages' options.

3 years agoDowngrade logging of looking for AV service
Jon Turney [Wed, 26 Aug 2020 17:10:24 +0000 (18:10 +0100)]
Downgrade logging of looking for AV service

Downgrade to debug always emitted logging about trying to find AV
service.

3 years agoFix error with gcc 10.2 and -Werror=format
Jon Turney [Wed, 23 Sep 2020 21:43:30 +0000 (22:43 +0100)]
Fix error with gcc 10.2 and -Werror=format

archive_tar.cc: In member function ‘virtual const string archive_tar::next_file_name()’:
archive_tar.cc:161:37: error: 'I' flag used with ‘%o’ gnu_scanf format [-Werror=format=]
archive_tar.cc:161:37: error: format ‘%o’ expects argument of type ‘unsigned int*’, but argument 3 has type ‘size_t*’ {aka ‘long long unsigned int*’} [-Werror=format=]
archive_tar.cc:181:38: error: 'I' flag used with ‘%o’ gnu_scanf format [-Werror=format=]
archive_tar.cc:181:38: error: format ‘%o’ expects argument of type ‘unsigned int*’, but argument 3 has type ‘size_t*’ {aka ‘long long unsigned int*’} [-Werror=format=]

3 years agoPropagate the value of CYGWIN environment variable into scripts
Michael Wild [Thu, 27 Aug 2020 12:45:42 +0000 (14:45 +0200)]
Propagate the value of CYGWIN environment variable into scripts

Propagate the value of the CYGWIN environment variable into the
sanitized environment we use to run scripts.

Note: as it stands, this isn't always useful as the initial environment
isn't propagated when setup re-runs itself elevated.

3 years agoMigrate selected sites from http:// to https://
Jon Turney [Mon, 20 Jul 2020 14:30:44 +0000 (15:30 +0100)]
Migrate selected sites from http:// to https://

If a selected site URL saved from the last run starts with "http://",
and an identical URL except starting with "https://" is in the current
mirror list, migrate it from "http://" to "https://".

3 years agoFactor out site_list_insert in site.cc
Jon Turney [Tue, 21 Jul 2020 13:52:58 +0000 (14:52 +0100)]
Factor out site_list_insert in site.cc

Factor out site_list_insert in site.cc, and add comments to descibe what
what nutty thing this wacky code is doing, after we've expended the
mental effort to figure it out.

3 years agoRemove pointless variable from do_download_site_info_thread()
Jon Turney [Mon, 20 Jul 2020 16:35:47 +0000 (17:35 +0100)]
Remove pointless variable from do_download_site_info_thread()

3 years agoProperly record user_picked again release_2.905
Jon Turney [Sat, 27 Jun 2020 15:10:57 +0000 (16:10 +0100)]
Properly record user_picked again

Properly record user_picked again, which was broken by changes in 2.895

4 years agoReally parse build-depends: case-insensitively
Jon Turney [Fri, 5 Jun 2020 14:53:03 +0000 (15:53 +0100)]
Really parse build-depends: case-insensitively

4 years agoRefine splash page text
Jon Turney [Sun, 31 May 2020 14:41:04 +0000 (15:41 +0100)]
Refine splash page text

Make "you can run this again to add, remove or update packages" a
separate paragraph to increase the chances of it getting read.

4 years agoPosition logo relative to top when resizing splash page
Jon Turney [Sun, 31 May 2020 14:36:11 +0000 (15:36 +0100)]
Position logo relative to top when resizing splash page

4 years agoImprove how paired boolean options appear in help output
Jon Turney [Thu, 28 May 2020 14:34:08 +0000 (15:34 +0100)]
Improve how paired boolean options appear in help output

Include a prefix in the boolean option long name appearing in help
output (although we should probably pick the default, rather than first,
prefix)

4 years agoAdd dpiAware to manifest
Jon Turney [Wed, 27 May 2020 16:05:08 +0000 (17:05 +0100)]
Add dpiAware to manifest

4 years agoMake application manifest architecture generic
Jon Turney [Wed, 27 May 2020 16:04:51 +0000 (17:04 +0100)]
Make application manifest architecture generic

It was made architecture specific in 2258d2a1, but then made the same
again for both architectures in aa09dcbb.

4 years agoParse build-depends: case-insensitively
Jon Turney [Wed, 27 May 2020 15:40:26 +0000 (16:40 +0100)]
Parse build-depends: case-insensitively

4 years agoFix an allocation length error release_2.904
Jon Turney [Wed, 18 Mar 2020 22:04:47 +0000 (22:04 +0000)]
Fix an allocation length error

Allow for the terminating null.

4 years agoDisable old Cygwin setup signing key by default
Jon Turney [Tue, 17 Mar 2020 15:21:50 +0000 (15:21 +0000)]
Disable old Cygwin setup signing key by default

Add a new option '--enable-old-keys', for if you really need to install
from an old mirror for some reason.

'--disable-old-keys' is still accepted, but is the default now.

4 years agoImplement paired boolean options
Jon Turney [Tue, 17 Mar 2020 14:27:02 +0000 (14:27 +0000)]
Implement paired boolean options

Add some infrastructure for options which may appear with multiple
prefixes.

Add an implementation of paired boolean options like '--enable-foo' and
'--disable-foo', or '--bar' and '--no-bar'.

Add/fix tests

This page took 0.0676330000000001 seconds and 5 git commands to generate.