]> cygwin.com Git - cygwin-apps/setup.git/log
cygwin-apps/setup.git
2 years agoKeyboard accelerators for install/reinstall/uninstall
Christian Franke [Mon, 22 Aug 2022 14:39:21 +0000 (16:39 +0200)]
Keyboard accelerators for install/reinstall/uninstall

Ctrl+I/R/U select install/reinstall/uninstall and then move selection
to next row.

2 years agoAdd view modes "Removable" and "Unneeded"
Christian Franke [Mon, 15 Aug 2022 12:21:36 +0000 (14:21 +0200)]
Add view modes "Removable" and "Unneeded"

These views show user picked or automatically installed packages which
could be safely removed.

2 years agoCI: Pass host triplet to bootstrap script
Jon Turney [Tue, 16 Aug 2022 16:18:11 +0000 (17:18 +0100)]
CI: Pass host triplet to bootstrap script

This prevents bootstrap script from mistakenly detecting an incompatible
x86_64-w64-mingw32-g++ pre-installed in the CI VM image.

2 years agoDefer setting group until after All Users/Just For Me is chosen
Jon Turney [Fri, 8 Jul 2022 15:46:14 +0000 (16:46 +0100)]
Defer setting group until after All Users/Just For Me is chosen

2 years agoDrop group change while running postinstall scripts
Jon Turney [Fri, 8 Jul 2022 14:56:59 +0000 (15:56 +0100)]
Drop group change while running postinstall scripts

Drop group change while running postinstall scripts.  This was only for
the benefit of mkgroup/mkpasswd being run by the postinstall script,
which we don't do any more.

2 years agoUpdate bootstrap.sh
Jon Turney [Sun, 14 Aug 2022 16:00:29 +0000 (17:00 +0100)]
Update bootstrap.sh

Prefer x64 toolchain, if available
Don't use x86 MinGW.org toolchain (no longer distributed in cygwin since 2016)

2 years agoLog writes to rootdir registry entry
Christian Franke [Sat, 9 Jul 2022 14:57:31 +0000 (16:57 +0200)]
Log writes to rootdir registry entry

2 years agoAdd new option --no-write-registry
Christian Franke [Tue, 12 Jul 2022 16:04:25 +0000 (18:04 +0200)]
Add new option --no-write-registry

If specified, the rootdir is not written to the registry and no
registry key is created.

2 years agoClear filename on GUI after running perpetual preremove scripts release_2.920
Christian Franke [Wed, 29 Jun 2022 14:51:47 +0000 (16:51 +0200)]
Clear filename on GUI after running perpetual preremove scripts

2 years agoAlso run stratum 'z' perpetual preremove scripts
Christian Franke [Wed, 29 Jun 2022 17:57:26 +0000 (19:57 +0200)]
Also run stratum 'z' perpetual preremove scripts

2 years agoAdd perpetual support for preremove scripts
Christian Franke [Sun, 26 Jun 2022 16:01:03 +0000 (18:01 +0200)]
Add perpetual support for preremove scripts

Always run all /etc/preremove/0p_* first.

2 years agoConsistently use '\n' rather than '\r\n' in resources
Jon Turney [Wed, 29 Jun 2022 11:54:45 +0000 (12:54 +0100)]
Consistently use '\n' rather than '\r\n' in resources

'\r\n' is unnecessary, and apparently appears as '\r\r\n' in text copied
from a messagebox.

2 years agoHandle self-destruct packages
Jon Turney [Tue, 28 Jun 2022 19:36:43 +0000 (20:36 +0100)]
Handle self-destruct packages

These are sometimes useful in situations where a package is obsoleted,
but doesn't have a simple replacement.

The parser can't currently handle "libsolv-self-destruct-pkg()" (the
magic provide name which triggers this behaviour in libsolv) appearing
as a provide, because (i) brackets aren't a valid character in a package
name, and (ii) empty braces isn't permitted for a versioncriteria
following a package name.

For backwards-compatibility (to allow old versions of setup to parse a
setup.ini containing this instruction) and terseness, accept
'_self-destruct' as equivalent to that magic package name.

Requires libsolv >= 0.7.8

2 years agoSuppress bogus free-nonheap-object warning in iniparse.cc
Jon Turney [Mon, 27 Jun 2022 18:02:38 +0000 (19:02 +0100)]
Suppress bogus free-nonheap-object warning in iniparse.cc

This warning bogusly occurs with -O0 in bison generated code.  The
free() is not reachable when the pointer references a non-heap object.

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98753

iniparse.cc: In function ‘int yyparse()’:
iniparse.cc:1789:18: warning: ‘void free(void*)’ called on unallocated object ‘yyssa’ [-Wfree-nonheap-object]
iniparse.cc:1148:16: note: declared here

2 years agoLower autoconf requirement to 2.69 release_2.919
Jon Turney [Fri, 24 Jun 2022 12:20:32 +0000 (13:20 +0100)]
Lower autoconf requirement to 2.69

We don't actually use LIBLEX, so the change in AC_PROG_LEX() behaviour
in autoconf 2.70 isn't particularly relevant, and this let's us still
build using the x86 w/ SJLJ exceptions toolchain in Fedora 31.

2 years agoDe-clutter the mirror selection listbox
Jon Turney [Fri, 17 Jun 2022 14:51:15 +0000 (15:51 +0100)]
De-clutter the mirror selection listbox

Mirrors can now appear up to three times in this list (with ftp://,
http:// and https:// protocols).

We can't just stop announcing ftp:// and http:// sites in the mirror
list, as that will lead to setup warning that those mirrors have been
dropped and may be out of date.

So instead: Process site list for an optional 4th semi-colon delimited
string, to be used for flags. Recognize and store 'noshow' flag.
Hide mirror URLs with this noshow flag from the mirror selection
listbox, unless they have been already selected in a previous run.

We will use this to hide ftp://, and http:// (where https: also exists)
URLs.

This assumes that: (i) all future mirrors will provide http:// service
and (ii) nobody has a good reason for using ftp:// instead of http://
anymore.  But those seem reasonable assumptions!

Also: drop explicit copy constructor and assignment operator for
site_list_type, which just do what the default would.

2 years agoUpdate README
Jon Turney [Thu, 16 Jun 2022 20:03:18 +0000 (21:03 +0100)]
Update README

2 years agoAlso localize options helptext framing text
Jon Turney [Fri, 17 Jun 2022 09:23:10 +0000 (10:23 +0100)]
Also localize options helptext framing text

2 years agoEnable maintainer mode for libgetopt++
Jon Turney [Thu, 16 Jun 2022 20:03:01 +0000 (21:03 +0100)]
Enable maintainer mode for libgetopt++

AM_MAINTAINER_MODE without an argument means --disable-maintainer-mode
by default, which isn't what's wanted.

2 years agoAdd a GitHub workflow for building on Cygwin
Jon Turney [Thu, 16 Jun 2022 19:14:20 +0000 (20:14 +0100)]
Add a GitHub workflow for building on Cygwin

2 years agoTry to ensure console output is correctly encoded
Jon Turney [Thu, 16 Jun 2022 16:03:03 +0000 (17:03 +0100)]
Try to ensure console output is correctly encoded

Previously, all log messages were ASCII, so this wasn't a concern.  Now
that log may contain UTF-8, we need to ensure that appears correctly.

2 years agoAdd French translations of option help-text
Jon Turney [Thu, 16 Jun 2022 21:05:05 +0000 (22:05 +0100)]
Add French translations of option help-text

Also make some minor adjustments to help-texts for consistency:
* --no-warn-deprecated-windows should start "Don't"
* --categories doesn't need to say "entire"
* --download and --local-install no longer say "seulement"

2 years agoAdd command-line option help-text localization
Jon Turney [Thu, 16 Jun 2022 12:57:38 +0000 (13:57 +0100)]
Add command-line option help-text localization

Change libgetopt++ Option class to store an unsigned int message catalog
identifer for the help-text, rather than a std::string of the help-text.

ParameterUsage (the function which produces the help output) now takes a
lookup function as a parameter, which translates that message identifer
to a localized std::string.

Move existing help-text to a stringtable resource, and then wire up
ParameterUsage to use LoadString.

Update libgetop++ tests appropriately.

2 years agoFix '-t -P package-with-only-a-test-version'
Jon Turney [Mon, 13 Jun 2022 13:54:50 +0000 (14:54 +0100)]
Fix '-t -P package-with-only-a-test-version'

Fix how 'install any version' operates in that case.
Also make '-t' have an effect when used with '-P' but without '-g'.

Future work: The language around '-t' perhaps needs refining, since it's
absence just lowers the priority of test packages, not prohibiting their
use (so in this particular case, package-with-only-a-test-version will
be installed, even without '-t')

2 years agoImprove consistency of ending sentences with a full-stop
Jon Turney [Tue, 14 Jun 2022 21:03:48 +0000 (22:03 +0100)]
Improve consistency of ending sentences with a full-stop

Improve the consistency between translations of ending sentences with a
full-stop.

Always end the sentence under the page title with a full-stop.

2 years agoTidy up spacing in french translation
Jon Turney [Wed, 15 Jun 2022 13:49:38 +0000 (14:49 +0100)]
Tidy up spacing in french translation

Consistently use a space before ':' (apparently "space before and after
full-height punctuation" is a standard typographical rule for French).

Remove unneeded trailing whitespace.

2 years agoUse a .pot translation template
Jon Turney [Wed, 9 Sep 2020 13:39:26 +0000 (14:39 +0100)]
Use a .pot translation template

Add a res.pot file, created with rc2po.
Add rule to generate a .po file containing current translations using rc2po.
Add rule to incorporate updated translations from .po file using po2rc.

Both tools are part of the python translate toolkit [1]

[1] http://toolkit.translatehouse.org/

2 years agoAdjustment to dialog layout for translation
Jon Turney [Mon, 6 Jun 2022 16:59:33 +0000 (17:59 +0100)]
Adjustment to dialog layout for translation

To enable the english resource to be used as a template, adjust the size
of the IDD_SOURCE.IDC_SOURCE_NETINST control so it's large enough for
translated text.

2 years agoFurther tweak formatting in resource files
Jon Turney [Mon, 6 Jun 2022 15:49:04 +0000 (16:49 +0100)]
Further tweak formatting in resource files

In particular, translation-toolkit's .rc file parser can't currently
handle seeing arithmetic rather just than an integer.

2 years agoMove english resources to a separate file
Jon Turney [Wed, 1 Jun 2022 14:53:34 +0000 (15:53 +0100)]
Move english resources to a separate file

Move english resources to a separate file, so it can serve as a template
resource file for translations in other languages.

2 years agoUse latest Cygwin setup on AppVeyor
Jon Turney [Wed, 1 Jun 2022 13:43:15 +0000 (14:43 +0100)]
Use latest Cygwin setup on AppVeyor

Use latest Cygwin setup, rather than what happens to be present on AppVeyor
Also switch to building on x86_64

2 years agoTweak formatting in resource files
Jon Turney [Wed, 1 Jun 2022 12:43:29 +0000 (13:43 +0100)]
Tweak formatting in resource files

Tweak the formatting in resource files in places which cause a problem
with translation-toolkit.

2 years agoUpdates and corrections to French translation
Eric Lassauge [Wed, 1 Jun 2022 13:03:52 +0000 (14:03 +0100)]
Updates and corrections to French translation

2 years agoFix warnings with autoconf-2.7
Jon Turney [Thu, 13 Jan 2022 19:38:23 +0000 (19:38 +0000)]
Fix warnings with autoconf-2.7

AC_PROG_LEX() with an option (which is needed to avoid a warning) is new
in autoconf-2.7, so also raise minimum autoconf version to 2.70.

2 years agoMake '--package-manager' imply 'download and install packages' release_2.918
Jon Turney [Thu, 10 Feb 2022 16:59:39 +0000 (16:59 +0000)]
Make '--package-manager' imply 'download and install packages'

Refine 147fc15d

Imply both '-D' and '-L' with '-M', as well as '-q' (so that mode gets
definite behaviour rather than 'whatever you chose last time' as well).

Tweak help text for '-D' and '-L' to make more sense when they are used
in combination.

2 years agoHandle tar type flag 'K' (GNU long link extension)
Jon Turney [Thu, 10 Feb 2022 15:38:56 +0000 (15:38 +0000)]
Handle tar type flag 'K' (GNU long link extension)

Handle tar type flag'K' (GNU long link extension)
Also report unexpected filename in headers with long name extension type
Also clean up some cruft in archive_tar.cc

Currently, the only existing package which contains type flag 'K'
entries is f21-backgrounds-extras.

This also now correctly handles tar archive header linknames of exactly
100 characters (even when not preceeded by a 'K' type header), where the
linkname field is not null terminated as it should be, rather than
allowing the 'ustar\0' magic immediately following it to be interpreted
as part of the linkname.

2 years agoShow overall progress for checking packages in package cache
Jon Turney [Mon, 7 Feb 2022 14:52:26 +0000 (14:52 +0000)]
Show overall progress for checking packages in package cache

Show overall progress for testing presence and validating packages in
package cache.

This gives a better sense of progress when installing many packages
which are already cached (e.g. a fresh install, but all required
packagea are already in the package cache, so this step, rather than the
download one, dominates).

2 years agoClear download progress/rate text after download
Jon Turney [Mon, 7 Feb 2022 11:25:09 +0000 (11:25 +0000)]
Clear download progress/rate text after download

Don't leave download progress/rate text displayed while we compute the
hash of the file we've just downloaded.

2 years agoDowngrade some xz compression debug output
Jon Turney [Mon, 7 Feb 2022 12:57:39 +0000 (12:57 +0000)]
Downgrade some xz compression debug output

This not very helpful output goes to verbose log for every decompressed archive.

2 years agoReset GUI feedback state after ini parsing
Jon Turney [Thu, 27 Jan 2022 22:14:34 +0000 (22:14 +0000)]
Reset GUI feedback state after ini parsing

If we're in --local-install mode, we're shortly going to disappear into
packagemeta::ScanDownloadedFiles() which (currently) gives no feedback.

Don't make it look like we're still in the middle of parsing ini files
while we do that.

Also fix a typo introduced in b3cc8ab6.

2 years agoUnconditionally fixup source package ids
Jon Turney [Thu, 27 Jan 2022 22:07:28 +0000 (22:07 +0000)]
Unconditionally fixup source package ids

In the case when a given package version appears in setup.ini first
with, then without an install: line, the source package is recreated by
packagemeta::add_version() to add the additional package source site,
but the install package is not - so it now contains a stale source
package id.

Unconditionally fixup source package ids, so that install package points
to the correct source package.

Also internalize libsolv attributes after doing fixup, the changes it
makes are visible (so this was probably never working right).

2 years agoAdd '--batch' to gpg command in 'make upload'
Jon Turney [Thu, 27 Jan 2022 17:14:03 +0000 (17:14 +0000)]
Add '--batch' to gpg command in 'make upload'

'--batch' is recommended for any non-interative use of gpg.

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.

3 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.

3 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!)

3 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

3 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

3 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

3 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)

3 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.

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