[PATCH setup 00/11] Add options to choose symlink type (v2)

Jon Turney jon.turney@dronecode.org.uk
Tue Aug 10 17:02:17 GMT 2021


Revised from [1], this adds an '--symlink-type {sys, native, wsl}' option,
which controls the type of symlinks created by setup and the post-install
scripts it invokes [2].

If creating the symlink using the selected method fails, setup falls back to
using a sys symlink.

'--symlink-type lnk' is not (yet) implemented, because I'm lazy.

If the CYGWIN env var contains a 'winsymlinks' setting, the default is
controlled by that, otherwise, the default behaviour is '--syslink-type
sys', which matches setup's current behaviour (and Cygwin prior to 3.1.5).

[1] https://cygwin.com/pipermail/cygwin-apps/2021-May/041327.html
[2] requires as yet unreleased Cygwin for 'winsymlinks:sys' support for the
'--symlink-type sys' case.

Jon Turney (11):
  Add support for creating WSL symlinks
  Add support for creating native symlinks
  Factor out the iteration over archive files to install
  Add seek() method to archive and compress file classes
  Add separate symlink-creation phase when extracting archive
  Enable SeCreateSymbolicLink privilege
  Add symlink capabilities to user-agent telemetry
  Factor out StringChoiceOption
  Add a command line option to choose symlink type used
  Propagate --symlink-type setting to post-install scripts
  Default symlink mode from CYGWIN env var

 archive.cc                                    |  52 ----
 archive.h                                     |  14 +-
 archive_tar.cc                                |  14 +-
 compress_bz.cc                                |  12 +
 compress_bz.h                                 |   1 +
 compress_gz.cc                                |  65 +++--
 compress_gz.h                                 |   3 +-
 compress_xz.cc                                |  34 ++-
 compress_xz.h                                 |   3 +-
 compress_zstd.cc                              |  19 +-
 compress_zstd.h                               |   3 +-
 filemanip.cc                                  |  27 ++
 filemanip.h                                   |   1 +
 inilintmain.cc                                |   7 +
 install.cc                                    |  66 +++--
 io_stream_cygfile.cc                          |  52 +---
 libgetopt++/Makefile.am                       |   3 +-
 .../include/getopt++/StringChoiceOption.h     |  41 +++
 libgetopt++/src/StringChoiceOption.cc         |  54 ++++
 main.cc                                       |  84 +++++-
 mklink2.cc                                    | 256 +++++++++++++++++-
 mklink2.h                                     |  10 +
 nio-ie5.cc                                    |  12 +-
 script.cc                                     |  36 +++
 win32.cc                                      |  76 ++++++
 win32.h                                       |   3 +
 26 files changed, 775 insertions(+), 173 deletions(-)
 create mode 100644 libgetopt++/include/getopt++/StringChoiceOption.h
 create mode 100644 libgetopt++/src/StringChoiceOption.cc

-- 
2.32.0



More information about the Cygwin-apps mailing list