descriptionMirror of Cygwin-Setup
homepage URLhttps://sourceware.org/git/?p=cygwin-setup.git
repository URLgit://cygwin.com/git/cygwin-setup.git
ownerStromeko@Stromeko.DE
last changeSun, 25 May 2025 13:40:48 +0000 (25 14:40 +0100)
last refreshSun, 2 Nov 2025 15:12:56 +0000 (2 16:12 +0100)
content tags
README
This directory contains the source code for the Setup program
for the Cygwin net releases.

HOW TO BUILD:
-------------

Cygwin
------

Setup should build out-of-the-box on any Cygwin environment that has all the
required packages and their dependencies installed:

  - autoconf
  - automake
  - bison
  - flex
  - libtool
  - make
  - mingw64-${arch}-bzip2
  - mingw64-${arch}-gcc-g++
  - mingw64-${arch}-headers
  - mingw64-${arch}-libgcrypt
  - mingw64-${arch}-libsolv
  - mingw64-${arch}-xz
  - mingw64-${arch}-zlib
  - mingw64-${arch}-zstd
  - upx (optional, for compressing)

The ${arch} needs to be replaced with either "i686" or "x86_64"
depending on the target architecture to build for.

Fedora
------

Setup should also build out-of-the-box in a Fedora environment that has all the
required packages and their dependencies installed:

  - automake
  - bison
  - flex
  - libtool
  - make
  - mingw${arch}-bzip2-static
  - mingw${arch}-gcc-c++
  - mingw${arch}-libgcrypt-static
  - mingw${arch}-libgnurx-static
  - mingw${arch}-libsolv-static (*)
  - mingw${arch}-winpthreads-static
  - mingw${arch}-xz-libs-static
  - mingw${arch}-zlib-static
  - mingw${arch}-zstd-static (**)
  - openssl-pkcs11 (optional, for signing) (***)
  - osslsigncode (optional, for signing)
  - upx (optional)

The ${arch} needs to be replaced with either "32" or "64"
depending on the target architecture to build for.

(*) Requires 'dnf copr enable jturney/mingw-libsolv'
(**) Requires 'dnf copr enable jturney/mingw-zstd'
(***) Plus the package containing the pkcs11 module for your HSM (e.g. yubico-piv-tool for a YubiKey)

Build commands:
---------------

0) Obtain this project's source code:
   $ git clone git://sourceware.org/git/cygwin-apps/setup.git
   $ cd setup

1) Configure using this option
   $ /path/to/setup/bootstrap.sh
   This will automatically rebuild configure files and run configure
   in the current directory.  If you have installed toolchains for
   both i686 and x86_64 architectures, then you need to select for
   which architecture you want to build:
   $ /path/to/setup/bootstrap.sh --host=i686-w64-mingw32
   $ /path/to/setup/bootstrap.sh --host=x86_64-w64-mingw32

2) $ make

3) Wondering why your binary is so much bigger than the official releases?
   This removes debugging symbols:
   $ make strip
   This additionally compresses it using UPX
   (requires package upx to be installed):
   $ make upx

CODING GUIDELINES:
------------------

setup has a number of different code formats in it. This is ok as long
as it stays readable. When submitting a patch, make sure that you use
the coding-style of the surrounding code.

For new code, use the GNU standards as much as possible.  We understand
that this is not a precise fit for C++ code but you can use Cygwin itself
as a guide.


SUBMITTING A PATCH:
-------------------

Follow the general directions given in the Cygwin contributions document:

   https://cygwin.com/contrib.html

The appropriate mailing list for this project is cygwin-apps
(rather than cygwin-patches). Thus an appropriate configuration is:

   $ git config --local format.subjectprefix "PATCH setup"
   $ git config --local sendemail.to "[email protected]"

Before sending patches with:

   $ git format-patch [--cover-letter]
   $ git send-email *.patch


TRANSLATIONS
------------

Translations of the gettext template res.pot can be made using PO file tools, or
online at https://hosted.weblate.org/projects/cygwin-setup/cygwin-setup/


To update the translations in the .res files from the .po files:

  1) 'pip3 install translate-toolkit'
  2) When adding a new language <LANG>:
     - Add <LANG> to the LINGUAS variable in Makefile.am
     - Add mapping from <LANG> to Windows LCID in langopts script
     - Add inclusion of res/<LANG>/res.rc in top-level res.rc file
  3) 'make po2rc' to regenerate the res/<LANG>/res.rc files
  4) Build and run setup with --lang <LCID> to test translation
  5) Commit the updated res.rc files

The res/en/res.rc file functions as a template, and po2rc replaces the
translatable strings in it with those from a given po/<LANG>/res.po file to
generate a res/<LANG>/res.rc file.
shortlog
2025-05-25 Jon TurneyUpdate translations of IDS_MIXED_BITNESS_ERROR error... mainmaster
2025-05-20 Jon TurneyPutative changes for arm64 packages support
2025-05-20 Jon TurneyMove constructing setup.ini pathame components into...
2025-05-20 Jon TurneyMove is_64bit to state
2025-04-29 Jon TurneyHandle WM_DPICHANGED in the WndProcrelease_2.934
2025-04-29 Jon TurneyImprove clean rules
2025-04-05 Jon TurneyTweak defaults for sign and upload steps
2025-04-03 Jon TurneyAdd some instructions on po2rc step in READMErelease_2.933
2025-04-03 Jon TurneyUpdate .gitignore
2025-04-03 Jon TurneyBump displayed copyright year
2025-04-03 Jon TurneyOptionally sign setup using osslsigntool
2024-11-16 Jon TurneyRegenerate Japanese resources
2024-11-16 武田洋Update Japanese translation
2024-10-19 Jon TurneyRegenerate Japanese resouces
2024-10-19 Jon TurneyRecover new ja translation to .po file
2024-10-19 武田洋幸Add Japanese translation
...
tags
5 months ago release_2.934 2.934
6 months ago release_2.933 2.933
18 months ago release_2.932 2.932
20 months ago release_2.931 2.931
20 months ago release_2.930 2.930
21 months ago release_2.929 2.929
23 months ago release_2.928 2.928
2 years ago release_2.927 2.927
2 years ago release_2.926 2.926
2 years ago release_2.925 2.925
2 years ago release_2.924 2.924
2 years ago release_2.923 2.923
3 years ago release_2.922 2.922
3 years ago release_2.921 2.921
3 years ago release_2.920 2.920
3 years ago release_2.919 2.919
...
heads
2 months ago topic/build-depends
5 months ago master
5 months ago main
5 months ago topic/cli
10 years ago openssl
16 years ago cgf-20080913
17 years ago setup-200706
17 years ago setup_crypto_branch
20 years ago setup-200509
20 years ago setup-200412
22 years ago setup-200303
22 years ago setup-200303-troubleshooting
22 years ago setup-200206
23 years ago setup-200207
23 years ago setup-200205
23 years ago setup200202
...
forks
Cached version (4797s old)
 Cygwin   Cygwin-Setup 
cygwin-setup/local.git Local changes to Cygwin-Setup not yet upstreamed Stromeko@Stromeko.DE 5 months ago