]> cygwin.com Git - cygwin-apps/setup.git/log
cygwin-apps/setup.git
19 months agoUse SetWindowLongPtrW() when setting WndProc
Jon Turney [Wed, 1 Feb 2023 13:10:25 +0000 (13:10 +0000)]
Use SetWindowLongPtrW() when setting WndProc

Using the SetWindowLongPtrA() variant means that a Unicode to ASCII shim
is inserted around the installed WndProc, which is not what we want.

(Specfically, this flattens the PropSheet caption to an 8-bit encoding
as it passes through the WndProc as a WM_SETTEXT message, which is not
reversible for non-latin scripts)

Future work: Rewrite this using SetWindowSubclass() instead, which
sidesteps all these issues.

19 months agoUse wide-char PropSheet API
Jon Turney [Mon, 30 Jan 2023 23:27:10 +0000 (23:27 +0000)]
Use wide-char PropSheet API

This probably has no effect on Vista or later, where the manifest ensure
we are using common controls 6.0, which are fully unicode internally,
but it probably neccessary on XP.

19 months agoAdd zh_Hans resources to build
Jon Turney [Mon, 30 Jan 2023 21:49:05 +0000 (21:49 +0000)]
Add zh_Hans resources to build

19 months agoAdded translation using Weblate (Chinese (Simplified))
Xiang Heng Wei [Sat, 3 Dec 2022 11:12:23 +0000 (12:12 +0100)]
Added translation using Weblate (Chinese (Simplified))

Currently translated at 100.0% (285 of 285 strings)

Translation: cygwin-setup/cygwin-setup
Translate-URL: https://hosted.weblate.org/projects/cygwin-setup/cygwin-setup/zh_Hans/

19 months agoDon't append '-src' when forming source package name, if already present
Jon Turney [Mon, 30 Jan 2023 14:30:24 +0000 (14:30 +0000)]
Don't append '-src' when forming source package name, if already present

19 months agoUpdate displayed copyright to 2023
Jon Turney [Tue, 31 Jan 2023 13:46:04 +0000 (13:46 +0000)]
Update displayed copyright to 2023

19 months agoDrop setting root_scope as a side-effect of read_mounts()
Jon Turney [Wed, 24 Aug 2022 12:31:49 +0000 (13:31 +0100)]
Drop setting root_scope as a side-effect of read_mounts()

Default root_scope as appropriate, allowing GUI to override it
Only enable 'Install For All Users' if we have Admin privs
Drop some comment cruft

19 months 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

19 months 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.

19 months agoShow deprecation warning for Windows versions 6.1 and 6.2
Jon Turney [Fri, 27 Jan 2023 14:48:30 +0000 (14:48 +0000)]
Show deprecation warning for Windows versions 6.1 and 6.2

- Windows 6.1 (Windows 7, Windows Server 2008R2)
- Windows 6.2 (Windows 8, Windows Server 2012)

19 months agoExpose no-startmenu option to post-install and pre-remove scripts
Jon Turney [Fri, 27 Jan 2023 14:17:03 +0000 (14:17 +0000)]
Expose no-startmenu option to post-install and pre-remove scripts

19 months agoAdd '(x86_64)' to start menu folders when installing on e.g ARM64
Jon Turney [Fri, 27 Jan 2023 14:05:48 +0000 (14:05 +0000)]
Add '(x86_64)' to start menu folders when installing on e.g ARM64

Also make that start menu folder suffix available to post-install and
pre-remove scripts.

19 months agoAdd ProgramData to the env var whitelist for running scripts
Jon Turney [Fri, 27 Jan 2023 13:44:04 +0000 (13:44 +0000)]
Add ProgramData to the env var whitelist for running scripts

It seems that we can end up calling some Win32 API which uses that env
var to form the path for a temporary directory.  If we don't set it, we
end up using a directory called '%SystemDrive%'.

(This was a problem seen with e.g. man-db's post-install scripts)

21 months agoIgnore reinstall requests if version is not accessible
Christian Franke [Sun, 11 Dec 2022 14:55:47 +0000 (15:55 +0100)]
Ignore reinstall requests if version is not accessible

21 months agoDrop use of std::unary_function release_2.924
Jon Turney [Mon, 21 Nov 2022 14:57:39 +0000 (14:57 +0000)]
Drop use of std::unary_function

std::unary_function is deprecated in C++11.

visit_if() in Generic.h relies upon the callable providing an
argument_type type (which both predicate and visitor accept), so retain
that in StringConcenator, but we'd probably be better off just
open-coding visit_if(), since it's only used in the one place.

21 months agoReplace use of std::bind1st with std::bind
Jon Turney [Mon, 21 Nov 2022 14:53:28 +0000 (14:53 +0000)]
Replace use of std::bind1st with std::bind

std::bind1st is deprecated in C++11, removed in C++17, and a
deprecated-declaration warning is now emitted by g++.

21 months agoMake Windows 6.1 & Windows x86 unsupported
Jon Turney [Mon, 21 Nov 2022 13:54:26 +0000 (13:54 +0000)]
Make Windows 6.1 & Windows x86 unsupported

21 months agoStop signing with old, now expired private key
Jon Turney [Sun, 20 Nov 2022 15:51:27 +0000 (15:51 +0000)]
Stop signing with old, now expired private key

21 months agoFix mismatched-new-delete warning in mkwslsymlink()
Jon Turney [Sun, 20 Nov 2022 14:28:23 +0000 (14:28 +0000)]
Fix mismatched-new-delete warning in mkwslsymlink()

Fix mismatched-new-delete warning (new in gcc 12) in mkwslsymlink(),
introduced by 93b295d6

> ../mklink2.cc: In function 'int mkwslsymlink(const char*, const char*)':
> ../mklink2.cc:194:10: error: 'void operator delete(void*)' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
> ../mklink2.cc:178:115: note: returned from 'void* operator new [](std::size_t)'

21 months agoRevert "Drop group change while running postinstall scripts" release_2.923
Jon Turney [Sun, 20 Nov 2022 12:09:13 +0000 (12:09 +0000)]
Revert "Drop group change while running postinstall scripts"

This reverts commit 45d8e84e692ebdda636fc84733ae9fca9ca4bf5c.

21 months agoRevert "Defer setting group until after All Users/Just For Me is chosen"
Jon Turney [Sun, 20 Nov 2022 12:08:55 +0000 (12:08 +0000)]
Revert "Defer setting group until after All Users/Just For Me is chosen"

This reverts commit 495b0148b29d30a0b52f0fbc240ff9648af80516.

21 months agoRevert "Drop setting root_scope as a side-effect of read_mounts()"
Jon Turney [Sun, 20 Nov 2022 12:08:39 +0000 (12:08 +0000)]
Revert "Drop setting root_scope as a side-effect of read_mounts()"

This reverts commit b5b442157755ec33779783188b88e3349379c79b.

22 months agoUpdate French translation
Ellie ROBIN [Mon, 29 Aug 2022 09:26:26 +0000 (09:26 +0000)]
Update French translation

23 months agoIgnore install requests if version is not accessible
Christian Franke [Tue, 27 Sep 2022 13:41:06 +0000 (15:41 +0200)]
Ignore install requests if version is not accessible

This avoids that an empty "New" version is shown when install is
requested via "Install" from "Category" view or Ctrl+I and the
version is not accessible.

23 months agoFix ignored install requests added before run of solver
Christian Franke [Mon, 26 Sep 2022 14:47:42 +0000 (16:47 +0200)]
Fix ignored install requests added before run of solver

Regression was introduced by commit c99e4c1.

2 years agoLink with mingwex before libntll release_2.922
Jon Turney [Mon, 12 Sep 2022 18:43:47 +0000 (19:43 +0100)]
Link with mingwex before libntll

Link with mingwex (which gcc specs will cause us to link with anyhow)
before ntll.

Some versions of the MinGW ntdll implib contain a subset of crt
functions (erroneously, they were later moved to ntllcrt).  This means
that if the linker command specifies -lntdll, an application will use
ntdll.dll for things like strnlen(), which is (a) unexpected, and (b)
causes problems, as that specific export is not provided by ntll on XP.

2 years agoAllow to run on Windows lacking CreateSymbolicLinkW()
Jon Turney [Mon, 12 Sep 2022 13:40:59 +0000 (14:40 +0100)]
Allow to run on Windows lacking CreateSymbolicLinkW()

2 years agoAllow to run on Windows lacking SHMessageBoxCheckW()
Jon Turney [Mon, 12 Sep 2022 13:46:40 +0000 (14:46 +0100)]
Allow to run on Windows lacking SHMessageBoxCheckW()

2 years agoDrop setting root_scope as a side-effect of read_mounts() release_2.921
Jon Turney [Wed, 24 Aug 2022 12:31:49 +0000 (13:31 +0100)]
Drop setting root_scope as a side-effect of read_mounts()

Default root_scope as appropriate, allowing GUI to override it
Only enable 'Install For All Users' if we have Admin privs
Drop some comment cruft

2 years agoUpdate POT file
Jon Turney [Mon, 22 Aug 2022 14:25:24 +0000 (15:25 +0100)]
Update POT file

Also tweak some translated strings for consistency

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.

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