Compare commits
23 commits
Author | SHA1 | Date | |
---|---|---|---|
|
d18e382ef8 |
||
|
d91cde20bb | ||
|
200666ba52 | ||
|
fae8d7e6a7 | ||
|
3ecafa4835 | ||
|
818333091b |
||
|
6d004fe5dc | ||
|
f9d8cb61ef | ||
|
fed9f0b637 | ||
|
af0981da9f | ||
|
193d93c932 | ||
|
936e5adb61 | ||
|
c2e63cc348 | ||
|
5a265cc30a | ||
|
f5b0b45b39 | ||
|
eabf954258 | ||
|
81b9354e75 | ||
|
981e8849fc | ||
|
d096c4086a |
||
|
2810268fa3 | ||
|
f448104228 | ||
|
36d6f8f8c7 | ||
|
3063e7b193 |
23
README.md
|
@ -5,13 +5,13 @@ ProxSpace is a collection of tools that are required to compile the firmware and
|
|||
ProxSpace comes with 2 different executables .bat files.
|
||||
|
||||
- `runme64.bat` will start ProxSpace in x64 mode.
|
||||
- `autobuild.bat` runs a script (msys2/autobuild.sh) in x64 mode at startup. The script will update all git repositories in the pm3 folder and then compile them and move a zip file with the just compiled firmware and client into the build folder. It is not designed for development, just for compiling.
|
||||
- `autobuild.bat` runs a script (setup/autobuild.sh) in x64 mode at startup. The script will update all git repositories in the pm3 folder and then compile them and move a zip file with the just compiled firmware and client into the build folder. It is not designed for development, just for compiling.
|
||||
|
||||
## What's installed
|
||||
ProxSpace will automatically download and update to the latest required packages. All tools will be contained within the ProxSpace folder, however **once ProxSpace is setup the ProxSpace folder must not be moved**. If you wish to have ProxSpace in a different directory, you need to reinstall it.
|
||||
ProxSpace will automatically download and update to the latest required packages. All tools will be contained within the ProxSpace folder.
|
||||
|
||||
ProxSpace is based on:
|
||||
- msys2-x86_64-20210215
|
||||
- msys2-x86_64-20210725
|
||||
|
||||
Following packages will be automatically download or updated:
|
||||
- arm-none-eabi-gcc
|
||||
|
@ -32,27 +32,28 @@ ProxSpace is based on:
|
|||
- jansson
|
||||
|
||||
## Package management system
|
||||
MSYS2 features a package management system to provide easy installation of packages, Pacman. It brings many powerful features such as dependency resolution and simple complete system upgrades (excluding the GNU Arm Embedded Toolchain), as well as straight-forward package building. All installed packages can be updated with `pacman -Syuu` For more details visit [the MSYS2 wiki](https://github.com/msys2/msys2/wiki)
|
||||
MSYS2 features a package management system to provide easy installation of packages, Pacman. It brings many powerful features such as dependency resolution and simple complete system upgrades, as well as straight-forward package building. All installed packages can be updated with `pacman -Syuu` For more details visit [the MSYS2 wiki](https://github.com/msys2/msys2/wiki)
|
||||
|
||||
## Installation
|
||||
1. There are two methods of installing the ProxSpace environment.
|
||||
* Downloading [the latest master](https://github.com/Gator96100/ProxSpace/archive/master.zip). This will upgrade the msys2 core packages and then will download and install every package required for compiling the Proxmark client and firmware.
|
||||
* Downloading [the latest release](https://github.com/Gator96100/ProxSpace/releases). This ProxSpace environment has the required packages cached and will only install and update outdated packages.
|
||||
* Downloading [the latest master](https://github.com/Gator96100/ProxSpace/archive/master.zip). This will upgrade the msys2 core packages and then will download and install every package required for compiling the Proxmark client and firmware. This can take some time.
|
||||
* Downloading [the latest release](https://github.com/Gator96100/ProxSpace/releases). This ProxSpace environment is prepared for a fast installation, all packages are already cached.
|
||||
2. Extract 'ProxSpace' to a location on drive without spaces. For example `C:\Proxspace` or `D:\projects\public\proxmark\proxspace` are ok, whereas `C:\My Documents\My Projects\proxspace` is not.
|
||||
3. Run `runme64.bat` depending on your Windows architecture.
|
||||
4. Get the Proxmark III repository you wish to compile. This can be done with git. For example `git clone https://github.com/Proxmark/proxmark3.git`.
|
||||
4. Get the Proxmark III repository you wish to compile. This can be done with git. For example `git clone https://github.com/RfidResearchGroup/proxmark3.git`.
|
||||
5. Go into the root directory of the repository you wish to compile. For example `cd proxmark3`.
|
||||
6. To build the project type `make clean && make all`.
|
||||
7. In most cases the Proxmark III needs to be flashed with the just compiled firmware for details see **Firmware upgrading the Proxmark III**.
|
||||
8. To run the Proxmark III client type `./client/proxmark3.exe COM1` where COM1 is the USB port of the Proxmark III.
|
||||
8. To run the Proxmark III client type `./pm3`.
|
||||
9. Check your firmware revision on the Proxmark III with `hw ver`
|
||||
10. For basic help type `help`. Or for help on a set of sub commands type the command followed by help. For example `hf mf help`.
|
||||
|
||||
## Firmware upgrading the Proxmark III
|
||||
Please note that more detail is available on the wiki: https://github.com/Proxmark/proxmark3/wiki
|
||||
Please note that more detail is available on the wiki: https://github.com/RfidResearchGroup/proxmark3/blob/master/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md#flash-the-bootrom--fullimage
|
||||
1. Attach the Proxmark III to a USB port on your computer.
|
||||
2. Flash the bootrom and fullimage with `./client/flasher COM1 -b ./bootrom/obj/bootrom.elf ./armsrc/obj/fullimage.elf`where COM1 is the USB port of the Proxmark III.
|
||||
3. Wait for the process to complete.
|
||||
2. Flash the bootrom with `./pm3-flash-bootrom`.
|
||||
3. Flash the fullimage with `./pm3-flash-fullimage`.
|
||||
4. Wait for the process to complete.
|
||||
|
||||
## Setup video
|
||||
[](http://www.youtube.com/watch?v=-DLYp-yWmtQ "ProxSpace Windows 10 setup")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
@echo off
|
||||
call msys2\ps\setup.cmd
|
||||
call setup\setup.cmd
|
||||
taskkill /IM "gpg-agent.exe" /F 2>NUL
|
||||
echo %~dp0builds /builds ntfs noacl 0 0 >>msys2/etc/fstab
|
||||
call msys2\msys2_shell.cmd -mingw64 -defterm -no-start -c /ps/autobuild.sh
|
||||
call msys2\msys2_shell.cmd -mingw64 -defterm -no-start -c /setup/autobuild.sh
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
@echo off
|
||||
REM Copyright (c) 2014, Ray Donnelly <mingw.android@gmail.com>
|
||||
|
||||
set PATH=%~dp0\usr\bin;%PATH%
|
||||
|
||||
echo Querying 'base' packages for DLLs ..
|
||||
%~dp0\usr\bin\bash /usr/bin/pacman-rec-filename-grep base base-dlls-unix.txt ".*\.(dll|so|oct)$"
|
||||
%~dp0\usr\bin\bash /usr/bin/paths-from-unix-to-windows base-dlls-unix.txt base-dlls.txt %CD:\=/%
|
||||
|
||||
echo Rebasing all DLLs, 'base' ones first ..
|
||||
REM -i is new; it means ignore database and
|
||||
REM rebase from end of {cygwin1,msys-2.0}.dll
|
||||
REM it work by avoiding passing -s to rebase.exe
|
||||
REM which has modifications to support this mode.
|
||||
%~dp0\usr\bin\dash /usr/bin/rebaseall -T base-dlls.txt -i -p
|
BIN
msys2/clang32.exe
Normal file
BIN
msys2/clang32.ico
Normal file
After Width: | Height: | Size: 30 KiB |
5
msys2/clang32.ini
Normal file
|
@ -0,0 +1,5 @@
|
|||
#MSYS=winsymlinks:nativestrict
|
||||
#MSYS=error_start:mingw64/bin/qtcreator.exe|-debug|<process-id>
|
||||
#CHERE_INVOKING=1
|
||||
#MSYS2_PATH_TYPE=inherit
|
||||
MSYSTEM=CLANG32
|
|
@ -1,21 +0,0 @@
|
|||
# This file is in public domain.
|
||||
# Original author: Karlson2k (Evgeny Grin)
|
||||
# Written for MSys2/MinGW64 to help running 'configure' scripts
|
||||
|
||||
# Defaults for MinGW64-targeted programs
|
||||
|
||||
# Set proper selfname on bash and fallback to default name on other shells
|
||||
test -n "${BASH_SOURCE}" 2>/dev/null && config_site_me="${BASH_SOURCE[0]##*/}" || config_site_me=config.site
|
||||
|
||||
# Set default 'host' to speedup configure
|
||||
if test -z "$build_alias"; then
|
||||
build_alias="${MSYSTEM_CHOST-i686-w64-mingw32}" && \
|
||||
${as_echo-echo} "$config_site_me:${as_lineno-$LINENO}: default build_alias set to $build_alias" >&5
|
||||
fi
|
||||
|
||||
# Set default 'prefix' to "/clang32"
|
||||
if ( test -z "$prefix" || test "x$prefix" = "xNONE" ) && \
|
||||
( test -z "$exec_prefix" || test "x$exec_prefix" = "xNONE" ); then
|
||||
prefix="${MSYSTEM_PREFIX-/clang32}" && \
|
||||
${as_echo-echo} "$config_site_me:${as_lineno-$LINENO}: default prefix set to $prefix" >&5
|
||||
fi
|
BIN
msys2/clang64.exe
Normal file
BIN
msys2/clang64.ico
Normal file
After Width: | Height: | Size: 30 KiB |
5
msys2/clang64.ini
Normal file
|
@ -0,0 +1,5 @@
|
|||
#MSYS=winsymlinks:nativestrict
|
||||
#MSYS=error_start:mingw64/bin/qtcreator.exe|-debug|<process-id>
|
||||
#CHERE_INVOKING=1
|
||||
#MSYS2_PATH_TYPE=inherit
|
||||
MSYSTEM=CLANG64
|
|
@ -1,21 +0,0 @@
|
|||
# This file is in public domain.
|
||||
# Original author: Karlson2k (Evgeny Grin)
|
||||
# Written for MSys2/MinGW64 to help running 'configure' scripts
|
||||
|
||||
# Defaults for MinGW64-targeted programs
|
||||
|
||||
# Set proper selfname on bash and fallback to default name on other shells
|
||||
test -n "${BASH_SOURCE}" 2>/dev/null && config_site_me="${BASH_SOURCE[0]##*/}" || config_site_me=config.site
|
||||
|
||||
# Set default 'host' to speedup configure
|
||||
if test -z "$build_alias"; then
|
||||
build_alias="${MSYSTEM_CHOST-x86_64-w64-mingw32}" && \
|
||||
${as_echo-echo} "$config_site_me:${as_lineno-$LINENO}: default build_alias set to $build_alias" >&5
|
||||
fi
|
||||
|
||||
# Set default 'prefix' to "/clang64"
|
||||
if ( test -z "$prefix" || test "x$prefix" = "xNONE" ) && \
|
||||
( test -z "$exec_prefix" || test "x$exec_prefix" = "xNONE" ); then
|
||||
prefix="${MSYSTEM_PREFIX-/clang64}" && \
|
||||
${as_echo-echo} "$config_site_me:${as_lineno-$LINENO}: default prefix set to $prefix" >&5
|
||||
fi
|
BIN
msys2/clangarm64.exe
Normal file
BIN
msys2/clangarm64.ico
Normal file
After Width: | Height: | Size: 30 KiB |
5
msys2/clangarm64.ini
Normal file
|
@ -0,0 +1,5 @@
|
|||
#MSYS=winsymlinks:nativestrict
|
||||
#MSYS=error_start:mingw64/bin/qtcreator.exe|-debug|<process-id>
|
||||
#CHERE_INVOKING=1
|
||||
#MSYS2_PATH_TYPE=inherit
|
||||
MSYSTEM=CLANGARM64
|
15
msys2/dir
|
@ -1,15 +0,0 @@
|
|||
This is the file .../info/dir, which contains the
|
||||
topmost node of the Info hierarchy, called (dir)Top.
|
||||
The first time you invoke Info you start off looking at this node.
|
||||
|
||||
File: dir, Node: Top This is the top of the INFO tree
|
||||
|
||||
This (the Directory node) gives a menu of major topics.
|
||||
Typing "q" exits, "H" lists all Info commands, "d" returns here,
|
||||
"h" gives a primer for first-timers,
|
||||
"mEmacs<Return>" visits the Emacs manual, etc.
|
||||
|
||||
In Emacs, you can click mouse button 2 on a menu item or cross reference
|
||||
to select it.
|
||||
|
||||
* Menu:
|
|
@ -54,8 +54,12 @@ if [[ -n "$(command -v getent)" ]] && id -G | grep -q "$(getent -w group 'S-1-16
|
|||
then _ps1_symbol='\[\e[1m\]#\[\e[0m\]'
|
||||
else _ps1_symbol='\$'
|
||||
fi
|
||||
[[ $(declare -p PS1 2>/dev/null | cut -c 1-11) = 'declare -x ' ]] || \
|
||||
case "$(declare -p PS1 2>/dev/null)" in
|
||||
'declare -x '*) ;; # okay
|
||||
*)
|
||||
export PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[35m\]$MSYSTEM\[\e[0m\] \[\e[33m\]\w\[\e[0m\]\n'"${_ps1_symbol}"' '
|
||||
;;
|
||||
esac
|
||||
unset _ps1_symbol
|
||||
|
||||
# Uncomment to use the terminal colours set in DIR_COLORS
|
||||
|
|
|
@ -2,40 +2,20 @@
|
|||
# Original author: Karlson2k (Evgeny Grin)
|
||||
# Written for MSys2 to help running 'configure' scripts
|
||||
|
||||
# Use correct config.site even if CONFIG_SITE is not set
|
||||
if test "x$MSYSTEM" = "xMINGW64"; then
|
||||
if test -r "${MINGW_PREFIX-/mingw64}/etc/config.site"; then
|
||||
. "${MINGW_PREFIX-/mingw64}/etc/config.site"
|
||||
fi
|
||||
elif test "x$MSYSTEM" = "xMINGW32"; then
|
||||
if test -r "${MINGW_PREFIX-/mingw32}/etc/config.site"; then
|
||||
. "${MINGW_PREFIX-/mingw32}/etc/config.site"
|
||||
fi
|
||||
elif test "x$MSYSTEM" = "xCLANG64"; then
|
||||
if test -r "${MINGW_PREFIX-/clang64}/etc/config.site"; then
|
||||
. "${MINGW_PREFIX-/clang64}/etc/config.site"
|
||||
fi
|
||||
elif test "x$MSYSTEM" = "xCLANG32"; then
|
||||
if test -r "${MINGW_PREFIX-/clang32}/etc/config.site"; then
|
||||
. "${MINGW_PREFIX-/clang32}/etc/config.site"
|
||||
fi
|
||||
else
|
||||
# Defaults for MSys2-targeted programs
|
||||
# Defaults for MSys2/MinGW64-targeted programs
|
||||
|
||||
# Set proper selfname on bash and fallback to default name on other shells
|
||||
test -n "${BASH_SOURCE}" 2>/dev/null && config_site_me="${BASH_SOURCE[0]##*/}" || config_site_me=config.site
|
||||
|
||||
# Set default 'host' to speedup configure
|
||||
if test -z "$build_alias"; then
|
||||
build_alias="${MSYSTEM_CARCH-x86_64}-pc-msys" && \
|
||||
${as_echo-echo} "$config_site_me:${as_lineno-$LINENO}: default build_alias set to $build_alias" >&5
|
||||
fi
|
||||
|
||||
# Set default 'prefix' to "/usr"
|
||||
if ( test -z "$prefix" || test "x$prefix" = "xNONE" ) && \
|
||||
( test -z "$exec_prefix" || test "x$exec_prefix" = "xNONE" ); then
|
||||
prefix="${MSYSTEM_PREFIX-/usr}" && \
|
||||
${as_echo-echo} "$config_site_me:${as_lineno-$LINENO}: default prefix set to $prefix" >&5
|
||||
fi
|
||||
# Set proper selfname on bash and fallback to default name on other shells
|
||||
test -n "${BASH_SOURCE}" 2>/dev/null && config_site_me="${BASH_SOURCE[0]##*/}" || config_site_me=config.site
|
||||
|
||||
# Set default 'host' to speedup configure
|
||||
if test -z "$build_alias"; then
|
||||
build_alias="${MSYSTEM_CHOST}" && \
|
||||
${as_echo-echo} "$config_site_me:${as_lineno-$LINENO}: default build_alias set to $build_alias" >&5
|
||||
fi
|
||||
|
||||
# Set default 'prefix'
|
||||
if ( test -z "$prefix" || test "x$prefix" = "xNONE" ) && \
|
||||
( test -z "$exec_prefix" || test "x$exec_prefix" = "xNONE" ); then
|
||||
prefix="${MSYSTEM_PREFIX}" && \
|
||||
${as_echo-echo} "$config_site_me:${as_lineno-$LINENO}: default prefix set to $prefix" >&5
|
||||
fi
|
||||
|
|
103
msys2/etc/inputrc
Normal file
|
@ -0,0 +1,103 @@
|
|||
# To the extent possible under law, the author(s) have dedicated all
|
||||
# copyright and related and neighboring rights to this software to the
|
||||
# public domain worldwide. This software is distributed without any warranty.
|
||||
# You should have received a copy of the CC0 Public Domain Dedication along
|
||||
# with this software.
|
||||
# If not, see <https://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
# "\e[3~": delete-char
|
||||
|
||||
# VT
|
||||
# "\e[1~": beginning-of-line
|
||||
# "\e[4~": end-of-line
|
||||
|
||||
# kvt
|
||||
# "\e[H": beginning-of-line
|
||||
# "\e[F": end-of-line
|
||||
|
||||
# rxvt and konsole (i.e. the KDE-app...)
|
||||
# "\e[7~": beginning-of-line
|
||||
# "\e[8~": end-of-line
|
||||
|
||||
# VT220
|
||||
# "\eOH": beginning-of-line
|
||||
# "\eOF": end-of-line
|
||||
|
||||
# Allow 8-bit input/output
|
||||
# set meta-flag on
|
||||
# set convert-meta off
|
||||
# set input-meta on
|
||||
# set output-meta on
|
||||
#$if Bash
|
||||
# Don't ring bell on completion
|
||||
set bell-style none
|
||||
|
||||
# or, don't beep at me - show me
|
||||
#set bell-style visible
|
||||
|
||||
# Show all instead of beeping first
|
||||
set show-all-if-ambiguous off
|
||||
|
||||
# Filename completion/expansion
|
||||
set completion-ignore-case on
|
||||
#set show-all-if-ambiguous on
|
||||
|
||||
# Expand homedir name
|
||||
#set expand-tilde on
|
||||
|
||||
# Append "/" to all dirnames
|
||||
#set mark-directories on
|
||||
#set mark-symlinked-directories on
|
||||
|
||||
# visible-stats
|
||||
# Append a mark according to the file type in a listing
|
||||
set visible-stats off
|
||||
set mark-directories on
|
||||
|
||||
# Match all files
|
||||
#set match-hidden-files on
|
||||
|
||||
# 'Magic Space'
|
||||
# Insert a space character then performs
|
||||
# a history expansion in the line
|
||||
#Space: magic-space
|
||||
#$endif
|
||||
|
||||
# MSYSTEM is emacs based
|
||||
$if mode=emacs
|
||||
# Common to Console & RXVT
|
||||
"\e[2~": paste-from-clipboard # "Ins. Key"
|
||||
"\e[5~": beginning-of-history # Page up
|
||||
"\e[6~": end-of-history # Page down
|
||||
|
||||
$if term=msys # RXVT
|
||||
"\e[7~": beginning-of-line # Home Key
|
||||
"\e[8~": end-of-line # End Key
|
||||
"\e[11~": display-shell-version # F1
|
||||
"\e[15~": re-read-init-file # F5
|
||||
"\e[12~": "Function Key 2"
|
||||
"\e[13~": "Function Key 3"
|
||||
"\e[14~": "Function Key 4"
|
||||
"\e[17~": "Function Key 6"
|
||||
"\e[18~": "Function Key 7"
|
||||
"\e[19~": "Function Key 8"
|
||||
"\e[20~": "Function Key 9"
|
||||
"\e[21~": "Function Key 10"
|
||||
$else
|
||||
# Eh, normal Console is not really cygwin anymore, is it? Using 'else' instead. -mstormo
|
||||
# $if term=cygwin # Console
|
||||
"\e[1~": beginning-of-line # Home Key
|
||||
"\e[4~": end-of-line # End Key
|
||||
"\e[3~": delete-char # Delete Key
|
||||
"\e\e[C": forward-word # Alt-Right
|
||||
"\e\e[D": backward-word # Alt-Left
|
||||
"\e[1;5C": forward-word # ctrl + right
|
||||
"\e[1;5D": backward-word # ctrl + left
|
||||
"\e[17~": "Function Key 6"
|
||||
"\e[18~": "Function Key 7"
|
||||
"\e[19~": "Function Key 8"
|
||||
"\e[20~": "Function Key 9"
|
||||
"\e[21~": "Function Key 10"
|
||||
"\e[23~": "Function Key 11"
|
||||
$endif
|
||||
$endif
|
|
@ -8,9 +8,10 @@
|
|||
#
|
||||
#-- The download utilities that makepkg should use to acquire sources
|
||||
# Format: 'protocol::agent'
|
||||
DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
|
||||
'http::/usr/bin/curl -qb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'https::/usr/bin/curl -qb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
DLAGENTS=('file::/usr/bin/curl -gqC - -o %o %u'
|
||||
'ftp::/usr/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
|
||||
'http::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'https::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'rsync::/usr/bin/rsync --no-motd -z %u %o'
|
||||
'scp::/usr/bin/scp -C %u %o')
|
||||
|
||||
|
@ -22,19 +23,11 @@ DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %
|
|||
#-- The package required by makepkg to download VCS sources
|
||||
# Format: 'protocol::package'
|
||||
VCSCLIENTS=('bzr::bzr'
|
||||
'fossil::fossil'
|
||||
'git::git'
|
||||
'hg::mercurial'
|
||||
'svn::subversion')
|
||||
|
||||
#-- Using git am to apply patches has benefits, but also downsides
|
||||
# one being that people without their .gitconfig set get prompts
|
||||
# and the other being that the sha1s vary each time, so fix them
|
||||
GIT_COMMITTER_NAME="makepkg"
|
||||
GIT_COMMITTER_EMAIL="makepkg@msys2.org"
|
||||
function gitam_mkpkg() {
|
||||
git am --committer-date-is-author-date "$@"
|
||||
}
|
||||
|
||||
#########################################################################
|
||||
# ARCHITECTURE, COMPILE FLAGS
|
||||
#########################################################################
|
||||
|
@ -45,9 +38,11 @@ CHOST="x86_64-pc-msys"
|
|||
#-- Compiler and Linker Flags
|
||||
# -march (or -mcpu) builds exclusively for an architecture
|
||||
# -mtune optimizes for an architecture, but builds for whole processor family
|
||||
CC=gcc
|
||||
CXX=g++
|
||||
CPPFLAGS=
|
||||
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
|
||||
CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
|
||||
CFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe"
|
||||
CXXFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe"
|
||||
LDFLAGS="-pipe"
|
||||
#-- Make Flags: change this for DistCC/SMP systems
|
||||
MAKEFLAGS="-j$(($(nproc)+1))"
|
||||
|
@ -59,7 +54,7 @@ DEBUG_CXXFLAGS="-ggdb -Og"
|
|||
# BUILD ENVIRONMENT
|
||||
#########################################################################
|
||||
#
|
||||
# Defaults: BUILDENV=(fakeroot !distcc color !ccache check !sign)
|
||||
# Makepkg defaults: BUILDENV=(!distcc !color !ccache check !sign)
|
||||
# A negated environment option will do the opposite of the comments below.
|
||||
#
|
||||
#-- distcc: Use the Distributed C/C++/ObjC compiler
|
||||
|
@ -82,7 +77,7 @@ BUILDENV=(!distcc color !ccache check !sign)
|
|||
# These are default values for the options=() settings
|
||||
#########################################################################
|
||||
#
|
||||
# Default: OPTIONS=(strip docs !libtool staticlibs emptydirs zipman purge !debug)
|
||||
# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto)
|
||||
# A negated option will do the opposite of the comments below.
|
||||
#
|
||||
#-- strip: Strip symbols from binaries/libraries
|
||||
|
@ -93,11 +88,12 @@ BUILDENV=(!distcc color !ccache check !sign)
|
|||
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
|
||||
#-- purge: Remove files specified by PURGE_TARGETS
|
||||
#-- debug: Add debugging flags as specified in DEBUG_* variables
|
||||
#-- lto: Add compile flags for building with link time optimization
|
||||
#
|
||||
OPTIONS=(strip docs !libtool staticlibs emptydirs zipman purge !debug)
|
||||
OPTIONS=(strip docs !libtool staticlibs emptydirs zipman purge !debug !lto)
|
||||
|
||||
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
|
||||
INTEGRITY_CHECK=(md5)
|
||||
INTEGRITY_CHECK=(sha256)
|
||||
#-- Options to be used when stripping binaries. See `man strip' for details.
|
||||
STRIP_BINARIES="--strip-all"
|
||||
#-- Options to be used when stripping shared libraries. See `man strip' for details.
|
||||
|
@ -148,10 +144,12 @@ COMPRESSLZ=(lzip -c -f)
|
|||
# EXTENSION DEFAULTS
|
||||
#########################################################################
|
||||
#
|
||||
# WARNING: Do NOT modify these variables unless you know what you are
|
||||
# doing.
|
||||
#
|
||||
PKGEXT='.pkg.tar.zst'
|
||||
SRCEXT='.src.tar.gz'
|
||||
SRCEXT='.src.tar.zst'
|
||||
|
||||
# vim: set ft=sh ts=2 sw=2 et:
|
||||
#########################################################################
|
||||
# OTHER
|
||||
#########################################################################
|
||||
#
|
||||
#-- Command used to run pacman as root, instead of trying sudo and su
|
||||
PACMAN_AUTH=()
|
||||
|
|
|
@ -1,171 +0,0 @@
|
|||
#
|
||||
# /etc/makepkg.conf
|
||||
#
|
||||
|
||||
#########################################################################
|
||||
# SOURCE ACQUISITION
|
||||
#########################################################################
|
||||
#
|
||||
#-- The download utilities that makepkg should use to acquire sources
|
||||
# Format: 'protocol::agent'
|
||||
DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
|
||||
'http::/usr/bin/curl -qb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'https::/usr/bin/curl -qb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'rsync::/usr/bin/rsync --no-motd -z %u %o'
|
||||
'scp::/usr/bin/scp -C %u %o')
|
||||
|
||||
# Other common tools:
|
||||
# /usr/bin/snarf
|
||||
# /usr/bin/lftpget -c
|
||||
# /usr/bin/wget
|
||||
|
||||
#-- The package required by makepkg to download VCS sources
|
||||
# Format: 'protocol::package'
|
||||
VCSCLIENTS=('bzr::bzr'
|
||||
'git::git'
|
||||
'hg::mercurial'
|
||||
'svn::subversion')
|
||||
|
||||
#-- Using git am to apply patches has benefits, but also downsides
|
||||
# one being that people without their .gitconfig set get prompts
|
||||
# and the other being that the sha1s vary each time, so fix them
|
||||
GIT_COMMITTER_NAME="makepkg"
|
||||
GIT_COMMITTER_EMAIL="makepkg@msys2.org"
|
||||
function gitam_mkpkg() {
|
||||
git am --committer-date-is-author-date "$@"
|
||||
}
|
||||
|
||||
#########################################################################
|
||||
# ARCHITECTURE, COMPILE FLAGS
|
||||
#########################################################################
|
||||
#
|
||||
CARCH="i686"
|
||||
CHOST="i686-w64-mingw32"
|
||||
|
||||
#########################################################################
|
||||
# Mingw toolchains stuff
|
||||
#########################################################################
|
||||
#
|
||||
MINGW_CHOST="i686-w64-mingw32"
|
||||
MINGW_PREFIX="/clang32"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-clang-i686"
|
||||
|
||||
# DirectX compatibility environment variable
|
||||
DXSDK_DIR=${MINGW_PREFIX}/${MINGW_CHOST}
|
||||
|
||||
#-- Compiler and Linker Flags
|
||||
# -march (or -mcpu) builds exclusively for an architecture
|
||||
# -mtune optimizes for an architecture, but builds for whole processor family
|
||||
CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
|
||||
CFLAGS="-march=i686 -mtune=generic -O2 -pipe"
|
||||
CXXFLAGS="-march=i686 -mtune=generic -O2 -pipe"
|
||||
LDFLAGS="-pipe -Wl,--dynamicbase,--no-seh"
|
||||
#-- Make Flags: change this for DistCC/SMP systems
|
||||
MAKEFLAGS="-j$(($(nproc)+1))"
|
||||
#-- Debugging flags
|
||||
DEBUG_CFLAGS="-ggdb -Og"
|
||||
DEBUG_CXXFLAGS="-ggdb -Og"
|
||||
|
||||
ACLOCAL_PATH="${MINGW_PREFIX}/share/aclocal:/usr/share/aclocal"
|
||||
PKG_CONFIG_PATH="${MINGW_PREFIX}/lib/pkgconfig:${MINGW_PREFIX}/share/pkgconfig"
|
||||
|
||||
#########################################################################
|
||||
# BUILD ENVIRONMENT
|
||||
#########################################################################
|
||||
#
|
||||
# Defaults: BUILDENV=(fakeroot !distcc color !ccache check !sign)
|
||||
# A negated environment option will do the opposite of the comments below.
|
||||
#
|
||||
#-- distcc: Use the Distributed C/C++/ObjC compiler
|
||||
#-- color: Colorize output messages
|
||||
#-- ccache: Use ccache to cache compilation
|
||||
#-- check: Run the check() function if present in the PKGBUILD
|
||||
#-- sign: Generate PGP signature file
|
||||
#
|
||||
BUILDENV=(!distcc color !ccache check !sign)
|
||||
#
|
||||
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
|
||||
#-- specify a space-delimited list of hosts running in the DistCC cluster.
|
||||
#DISTCC_HOSTS=""
|
||||
#
|
||||
#-- Specify a directory for package building.
|
||||
#BUILDDIR=/tmp/makepkg
|
||||
|
||||
#########################################################################
|
||||
# GLOBAL PACKAGE OPTIONS
|
||||
# These are default values for the options=() settings
|
||||
#########################################################################
|
||||
#
|
||||
# Default: OPTIONS=(strip docs !libtool staticlibs emptydirs zipman purge !debug)
|
||||
# A negated option will do the opposite of the comments below.
|
||||
#
|
||||
#-- strip: Strip symbols from binaries/libraries
|
||||
#-- docs: Save doc directories specified by DOC_DIRS
|
||||
#-- libtool: Leave libtool (.la) files in packages
|
||||
#-- staticlibs: Leave static library (.a) files in packages
|
||||
#-- emptydirs: Leave empty directories in packages
|
||||
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
|
||||
#-- purge: Remove files specified by PURGE_TARGETS
|
||||
#-- debug: Add debugging flags as specified in DEBUG_* variables
|
||||
#
|
||||
OPTIONS=(strip docs !libtool staticlibs emptydirs zipman purge !debug)
|
||||
|
||||
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
|
||||
INTEGRITY_CHECK=(md5)
|
||||
#-- Options to be used when stripping binaries. See `man strip' for details.
|
||||
STRIP_BINARIES="--strip-all"
|
||||
#-- Options to be used when stripping shared libraries. See `man strip' for details.
|
||||
STRIP_SHARED="--strip-unneeded"
|
||||
#-- Options to be used when stripping static libraries. See `man strip' for details.
|
||||
STRIP_STATIC="--strip-debug"
|
||||
#-- Manual (man and info) directories to compress (if zipman is specified)
|
||||
MAN_DIRS=(clang32{{,/local}{,/share},/opt/*}/{man,info})
|
||||
#-- Doc directories to remove (if !docs is specified)
|
||||
DOC_DIRS=(clang32/{,local/}{,share/}{doc,gtk-doc})
|
||||
#-- Files to be removed from all packages (if purge is specified)
|
||||
PURGE_TARGETS=(clang32/{,share}/info/dir .packlist *.pod)
|
||||
|
||||
#########################################################################
|
||||
# PACKAGE OUTPUT
|
||||
#########################################################################
|
||||
#
|
||||
# Default: put built package and cached source in build directory
|
||||
#
|
||||
#-- Destination: specify a fixed directory where all packages will be placed
|
||||
#PKGDEST=/var/packages-clang32
|
||||
#-- Source cache: specify a fixed directory where source files will be cached
|
||||
#SRCDEST=/var/sources
|
||||
#-- Source packages: specify a fixed directory where all src packages will be placed
|
||||
#SRCPKGDEST=/var/srcpackages-clang32
|
||||
#-- Log files: specify a fixed directory where all log files will be placed
|
||||
#LOGDEST=/var/makepkglogs
|
||||
#-- Packager: name/email of the person or organization building packages
|
||||
#PACKAGER="John Doe <john@doe.com>"
|
||||
#-- Specify a key to use for package signing
|
||||
#GPGKEY=""
|
||||
|
||||
#########################################################################
|
||||
# COMPRESSION DEFAULTS
|
||||
#########################################################################
|
||||
#
|
||||
COMPRESSGZ=(gzip -c -f -n)
|
||||
COMPRESSBZ2=(bzip2 -c -f)
|
||||
COMPRESSXZ=(xz -c -z -T0 -)
|
||||
COMPRESSZST=(zstd -c -T0 --ultra -20 -)
|
||||
COMPRESSLRZ=(lrzip -q)
|
||||
COMPRESSLZO=(lzop -q)
|
||||
COMPRESSZ=(compress -c -f)
|
||||
COMPRESSLZ4=(lz4 -q)
|
||||
COMPRESSLZ=(lzip -c -f)
|
||||
|
||||
#########################################################################
|
||||
# EXTENSION DEFAULTS
|
||||
#########################################################################
|
||||
#
|
||||
# WARNING: Do NOT modify these variables unless you know what you are
|
||||
# doing.
|
||||
#
|
||||
PKGEXT='.pkg.tar.zst'
|
||||
SRCEXT='.src.tar.gz'
|
||||
|
||||
# vim: set ft=sh ts=2 sw=2 et:
|
|
@ -1,171 +0,0 @@
|
|||
#
|
||||
# /etc/makepkg_mingw64.conf
|
||||
#
|
||||
|
||||
#########################################################################
|
||||
# SOURCE ACQUISITION
|
||||
#########################################################################
|
||||
#
|
||||
#-- The download utilities that makepkg should use to acquire sources
|
||||
# Format: 'protocol::agent'
|
||||
DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
|
||||
'http::/usr/bin/curl -qb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'https::/usr/bin/curl -qb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'rsync::/usr/bin/rsync --no-motd -z %u %o'
|
||||
'scp::/usr/bin/scp -C %u %o')
|
||||
|
||||
# Other common tools:
|
||||
# /usr/bin/snarf
|
||||
# /usr/bin/lftpget -c
|
||||
# /usr/bin/wget
|
||||
|
||||
#-- The package required by makepkg to download VCS sources
|
||||
# Format: 'protocol::package'
|
||||
VCSCLIENTS=('bzr::bzr'
|
||||
'git::git'
|
||||
'hg::mercurial'
|
||||
'svn::subversion')
|
||||
|
||||
#-- Using git am to apply patches has benefits, but also downsides
|
||||
# one being that people without their .gitconfig set get prompts
|
||||
# and the other being that the sha1s vary each time, so fix them
|
||||
GIT_COMMITTER_NAME="makepkg"
|
||||
GIT_COMMITTER_EMAIL="makepkg@msys2.org"
|
||||
function gitam_mkpkg() {
|
||||
git am --committer-date-is-author-date "$@"
|
||||
}
|
||||
|
||||
#########################################################################
|
||||
# ARCHITECTURE, COMPILE FLAGS
|
||||
#########################################################################
|
||||
#
|
||||
CARCH="x86_64"
|
||||
CHOST="x86_64-w64-mingw32"
|
||||
|
||||
#########################################################################
|
||||
# Mingw toolchains stuff
|
||||
#########################################################################
|
||||
#
|
||||
MINGW_CHOST="x86_64-w64-mingw32"
|
||||
MINGW_PREFIX="/clang64"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-clang-x86_64"
|
||||
|
||||
# DirectX compatibility environment variable
|
||||
DXSDK_DIR=${MINGW_PREFIX}/${MINGW_CHOST}
|
||||
|
||||
#-- Compiler and Linker Flags
|
||||
# -march (or -mcpu) builds exclusively for an architecture
|
||||
# -mtune optimizes for an architecture, but builds for whole processor family
|
||||
CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
|
||||
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
|
||||
CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
|
||||
LDFLAGS="-pipe -Wl,--dynamicbase"
|
||||
#-- Make Flags: change this for DistCC/SMP systems
|
||||
MAKEFLAGS="-j$(($(nproc)+1))"
|
||||
#-- Debugging flags
|
||||
DEBUG_CFLAGS="-ggdb -Og"
|
||||
DEBUG_CXXFLAGS="-ggdb -Og"
|
||||
|
||||
ACLOCAL_PATH="${MINGW_PREFIX}/share/aclocal:/usr/share/aclocal"
|
||||
PKG_CONFIG_PATH="${MINGW_PREFIX}/lib/pkgconfig:${MINGW_PREFIX}/share/pkgconfig"
|
||||
|
||||
#########################################################################
|
||||
# BUILD ENVIRONMENT
|
||||
#########################################################################
|
||||
#
|
||||
# Defaults: BUILDENV=(fakeroot !distcc color !ccache check !sign)
|
||||
# A negated environment option will do the opposite of the comments below.
|
||||
#
|
||||
#-- distcc: Use the Distributed C/C++/ObjC compiler
|
||||
#-- color: Colorize output messages
|
||||
#-- ccache: Use ccache to cache compilation
|
||||
#-- check: Run the check() function if present in the PKGBUILD
|
||||
#-- sign: Generate PGP signature file
|
||||
#
|
||||
BUILDENV=(!distcc color !ccache check !sign)
|
||||
#
|
||||
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
|
||||
#-- specify a space-delimited list of hosts running in the DistCC cluster.
|
||||
#DISTCC_HOSTS=""
|
||||
#
|
||||
#-- Specify a directory for package building.
|
||||
#BUILDDIR=/tmp/makepkg
|
||||
|
||||
#########################################################################
|
||||
# GLOBAL PACKAGE OPTIONS
|
||||
# These are default values for the options=() settings
|
||||
#########################################################################
|
||||
#
|
||||
# Default: OPTIONS=(strip docs !libtool staticlibs emptydirs zipman purge !debug)
|
||||
# A negated option will do the opposite of the comments below.
|
||||
#
|
||||
#-- strip: Strip symbols from binaries/libraries
|
||||
#-- docs: Save doc directories specified by DOC_DIRS
|
||||
#-- libtool: Leave libtool (.la) files in packages
|
||||
#-- staticlibs: Leave static library (.a) files in packages
|
||||
#-- emptydirs: Leave empty directories in packages
|
||||
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
|
||||
#-- purge: Remove files specified by PURGE_TARGETS
|
||||
#-- debug: Add debugging flags as specified in DEBUG_* variables
|
||||
#
|
||||
OPTIONS=(strip docs !libtool staticlibs emptydirs zipman purge !debug)
|
||||
|
||||
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
|
||||
INTEGRITY_CHECK=(md5)
|
||||
#-- Options to be used when stripping binaries. See `man strip' for details.
|
||||
STRIP_BINARIES="--strip-all"
|
||||
#-- Options to be used when stripping shared libraries. See `man strip' for details.
|
||||
STRIP_SHARED="--strip-unneeded"
|
||||
#-- Options to be used when stripping static libraries. See `man strip' for details.
|
||||
STRIP_STATIC="--strip-debug"
|
||||
#-- Manual (man and info) directories to compress (if zipman is specified)
|
||||
MAN_DIRS=(clang64{{,/local}{,/share},/opt/*}/{man,info})
|
||||
#-- Doc directories to remove (if !docs is specified)
|
||||
DOC_DIRS=(clang64/{,local/}{,share/}{doc,gtk-doc})
|
||||
#-- Files to be removed from all packages (if purge is specified)
|
||||
PURGE_TARGETS=(clang64/{,share}/info/dir .packlist *.pod)
|
||||
|
||||
#########################################################################
|
||||
# PACKAGE OUTPUT
|
||||
#########################################################################
|
||||
#
|
||||
# Default: put built package and cached source in build directory
|
||||
#
|
||||
#-- Destination: specify a fixed directory where all packages will be placed
|
||||
#PKGDEST=/var/packages-clang64
|
||||
#-- Source cache: specify a fixed directory where source files will be cached
|
||||
#SRCDEST=/var/sources
|
||||
#-- Source packages: specify a fixed directory where all src packages will be placed
|
||||
#SRCPKGDEST=/var/srcpackages-clang64
|
||||
#-- Log files: specify a fixed directory where all log files will be placed
|
||||
#LOGDEST=/var/makepkglogs
|
||||
#-- Packager: name/email of the person or organization building packages
|
||||
#PACKAGER="John Doe <john@doe.com>"
|
||||
#-- Specify a key to use for package signing
|
||||
#GPGKEY=""
|
||||
|
||||
#########################################################################
|
||||
# COMPRESSION DEFAULTS
|
||||
#########################################################################
|
||||
#
|
||||
COMPRESSGZ=(gzip -c -f -n)
|
||||
COMPRESSBZ2=(bzip2 -c -f)
|
||||
COMPRESSXZ=(xz -c -z -T0 -)
|
||||
COMPRESSZST=(zstd -c -T0 --ultra -20 -)
|
||||
COMPRESSLRZ=(lrzip -q)
|
||||
COMPRESSLZO=(lzop -q)
|
||||
COMPRESSZ=(compress -c -f)
|
||||
COMPRESSLZ4=(lz4 -q)
|
||||
COMPRESSLZ=(lzip -c -f)
|
||||
|
||||
#########################################################################
|
||||
# EXTENSION DEFAULTS
|
||||
#########################################################################
|
||||
#
|
||||
# WARNING: Do NOT modify these variables unless you know what you are
|
||||
# doing.
|
||||
#
|
||||
PKGEXT='.pkg.tar.zst'
|
||||
SRCEXT='.src.tar.gz'
|
||||
|
||||
# vim: set ft=sh ts=2 sw=2 et:
|
227
msys2/etc/makepkg_mingw.conf
Normal file
|
@ -0,0 +1,227 @@
|
|||
#
|
||||
# /etc/makepkg_mingw.conf
|
||||
#
|
||||
|
||||
#########################################################################
|
||||
# SOURCE ACQUISITION
|
||||
#########################################################################
|
||||
#
|
||||
#-- The download utilities that makepkg should use to acquire sources
|
||||
# Format: 'protocol::agent'
|
||||
DLAGENTS=('file::/usr/bin/curl -gqC - -o %o %u'
|
||||
'ftp::/usr/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
|
||||
'http::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'https::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'rsync::/usr/bin/rsync --no-motd -z %u %o'
|
||||
'scp::/usr/bin/scp -C %u %o')
|
||||
|
||||
# Other common tools:
|
||||
# /usr/bin/snarf
|
||||
# /usr/bin/lftpget -c
|
||||
# /usr/bin/wget
|
||||
|
||||
#-- The package required by makepkg to download VCS sources
|
||||
# Format: 'protocol::package'
|
||||
VCSCLIENTS=('bzr::bzr'
|
||||
'fossil::fossil'
|
||||
'git::git'
|
||||
'hg::mercurial'
|
||||
'svn::subversion')
|
||||
|
||||
#########################################################################
|
||||
# ARCHITECTURE, COMPILE FLAGS
|
||||
#########################################################################
|
||||
#
|
||||
|
||||
if [[ "$MSYSTEM" == "MINGW64" ]]; then
|
||||
CARCH="x86_64"
|
||||
CHOST="x86_64-w64-mingw32"
|
||||
MINGW_CHOST="x86_64-w64-mingw32"
|
||||
MINGW_PREFIX="/mingw64"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-x86_64"
|
||||
CC="gcc"
|
||||
CXX="g++"
|
||||
CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
|
||||
CFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong"
|
||||
CXXFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe"
|
||||
LDFLAGS="-pipe"
|
||||
elif [[ "$MSYSTEM" == "MINGW32" ]]; then
|
||||
CARCH="i686"
|
||||
CHOST="i686-w64-mingw32"
|
||||
MINGW_CHOST="i686-w64-mingw32"
|
||||
MINGW_PREFIX="/mingw32"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-i686"
|
||||
CC="gcc"
|
||||
CXX="g++"
|
||||
CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
|
||||
CFLAGS="-march=pentium4 -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong"
|
||||
CXXFLAGS="-march=pentium4 -mtune=generic -O2 -pipe"
|
||||
LDFLAGS="-pipe -Wl,--no-seh -Wl,--large-address-aware"
|
||||
elif [[ "$MSYSTEM" == "CLANG64" ]]; then
|
||||
CARCH="x86_64"
|
||||
CHOST="x86_64-w64-mingw32"
|
||||
MINGW_CHOST="x86_64-w64-mingw32"
|
||||
MINGW_PREFIX="/clang64"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-clang-x86_64"
|
||||
CC="clang"
|
||||
CXX="clang++"
|
||||
CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
|
||||
CFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong"
|
||||
CXXFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe"
|
||||
LDFLAGS="-pipe"
|
||||
elif [[ "$MSYSTEM" == "CLANG32" ]]; then
|
||||
CARCH="i686"
|
||||
CHOST="i686-w64-mingw32"
|
||||
MINGW_CHOST="i686-w64-mingw32"
|
||||
MINGW_PREFIX="/clang32"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-clang-i686"
|
||||
CC="clang"
|
||||
CXX="clang++"
|
||||
CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
|
||||
CFLAGS="-march=pentium4 -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong"
|
||||
CXXFLAGS="-march=pentium4 -mtune=generic -O2 -pipe"
|
||||
LDFLAGS="-pipe -Wl,--no-seh -Wl,--large-address-aware"
|
||||
elif [[ "$MSYSTEM" == "CLANGARM64" ]]; then
|
||||
CARCH="aarch64"
|
||||
CHOST="aarch64-w64-mingw32"
|
||||
MINGW_CHOST="aarch64-w64-mingw32"
|
||||
MINGW_PREFIX="/clangarm64"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-clang-aarch64"
|
||||
CC="clang"
|
||||
CXX="clang++"
|
||||
CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
|
||||
CFLAGS="-O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong"
|
||||
CXXFLAGS="-O2 -pipe"
|
||||
LDFLAGS="-pipe"
|
||||
elif [[ "$MSYSTEM" == "UCRT64" ]]; then
|
||||
CARCH="x86_64"
|
||||
CHOST="x86_64-w64-mingw32"
|
||||
MINGW_CHOST="x86_64-w64-mingw32"
|
||||
MINGW_PREFIX="/ucrt64"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-ucrt-x86_64"
|
||||
CC="gcc"
|
||||
CXX="g++"
|
||||
CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
|
||||
CFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong"
|
||||
CXXFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe"
|
||||
LDFLAGS="-pipe"
|
||||
else
|
||||
echo "Unsupported MSYSTEM: $MSYSTEM"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# DirectX compatibility environment variable
|
||||
DXSDK_DIR=${MINGW_PREFIX}/${MINGW_CHOST}
|
||||
|
||||
#-- Make Flags: change this for DistCC/SMP systems
|
||||
MAKEFLAGS="-j$(($(nproc)+1))"
|
||||
#-- Debugging flags
|
||||
DEBUG_CFLAGS="-ggdb -Og"
|
||||
DEBUG_CXXFLAGS="-ggdb -Og"
|
||||
|
||||
ACLOCAL_PATH="${MINGW_PREFIX}/share/aclocal:/usr/share/aclocal"
|
||||
PKG_CONFIG_PATH="${MINGW_PREFIX}/lib/pkgconfig:${MINGW_PREFIX}/share/pkgconfig"
|
||||
|
||||
#########################################################################
|
||||
# BUILD ENVIRONMENT
|
||||
#########################################################################
|
||||
#
|
||||
# Makepkg defaults: BUILDENV=(!distcc !color !ccache check !sign)
|
||||
# A negated environment option will do the opposite of the comments below.
|
||||
#
|
||||
#-- distcc: Use the Distributed C/C++/ObjC compiler
|
||||
#-- color: Colorize output messages
|
||||
#-- ccache: Use ccache to cache compilation
|
||||
#-- check: Run the check() function if present in the PKGBUILD
|
||||
#-- sign: Generate PGP signature file
|
||||
#
|
||||
BUILDENV=(!distcc color !ccache check !sign)
|
||||
#
|
||||
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
|
||||
#-- specify a space-delimited list of hosts running in the DistCC cluster.
|
||||
#DISTCC_HOSTS=""
|
||||
#
|
||||
#-- Specify a directory for package building.
|
||||
#BUILDDIR=/tmp/makepkg
|
||||
|
||||
#########################################################################
|
||||
# GLOBAL PACKAGE OPTIONS
|
||||
# These are default values for the options=() settings
|
||||
#########################################################################
|
||||
#
|
||||
# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto)
|
||||
# A negated option will do the opposite of the comments below.
|
||||
#
|
||||
#-- strip: Strip symbols from binaries/libraries
|
||||
#-- docs: Save doc directories specified by DOC_DIRS
|
||||
#-- libtool: Leave libtool (.la) files in packages
|
||||
#-- staticlibs: Leave static library (.a) files in packages
|
||||
#-- emptydirs: Leave empty directories in packages
|
||||
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
|
||||
#-- purge: Remove files specified by PURGE_TARGETS
|
||||
#-- debug: Add debugging flags as specified in DEBUG_* variables
|
||||
#-- lto: Add compile flags for building with link time optimization
|
||||
#
|
||||
OPTIONS=(strip docs !libtool staticlibs emptydirs zipman purge !debug !lto)
|
||||
|
||||
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
|
||||
INTEGRITY_CHECK=(sha256)
|
||||
#-- Options to be used when stripping binaries. See `man strip' for details.
|
||||
STRIP_BINARIES="--strip-all"
|
||||
#-- Options to be used when stripping shared libraries. See `man strip' for details.
|
||||
STRIP_SHARED="--strip-unneeded"
|
||||
#-- Options to be used when stripping static libraries. See `man strip' for details.
|
||||
STRIP_STATIC="--strip-debug"
|
||||
#-- Manual (man and info) directories to compress (if zipman is specified)
|
||||
MAN_DIRS=("${MINGW_PREFIX#/}"{{,/local}{,/share},/opt/*}/{man,info})
|
||||
#-- Doc directories to remove (if !docs is specified)
|
||||
DOC_DIRS=("${MINGW_PREFIX#/}"/{,local/}{,share/}{doc,gtk-doc})
|
||||
#-- Files to be removed from all packages (if purge is specified)
|
||||
PURGE_TARGETS=("${MINGW_PREFIX#/}"/{,share}/info/dir .packlist *.pod)
|
||||
|
||||
#########################################################################
|
||||
# PACKAGE OUTPUT
|
||||
#########################################################################
|
||||
#
|
||||
# Default: put built package and cached source in build directory
|
||||
#
|
||||
#-- Destination: specify a fixed directory where all packages will be placed
|
||||
#PKGDEST=/var/packages-mingw64
|
||||
#-- Source cache: specify a fixed directory where source files will be cached
|
||||
#SRCDEST=/var/sources
|
||||
#-- Source packages: specify a fixed directory where all src packages will be placed
|
||||
#SRCPKGDEST=/var/srcpackages-mingw64
|
||||
#-- Log files: specify a fixed directory where all log files will be placed
|
||||
#LOGDEST=/var/makepkglogs
|
||||
#-- Packager: name/email of the person or organization building packages
|
||||
#PACKAGER="John Doe <john@doe.com>"
|
||||
#-- Specify a key to use for package signing
|
||||
#GPGKEY=""
|
||||
|
||||
#########################################################################
|
||||
# COMPRESSION DEFAULTS
|
||||
#########################################################################
|
||||
#
|
||||
COMPRESSGZ=(gzip -c -f -n)
|
||||
COMPRESSBZ2=(bzip2 -c -f)
|
||||
COMPRESSXZ=(xz -c -z -T0 -)
|
||||
COMPRESSZST=(zstd -c -T0 --ultra -20 -)
|
||||
COMPRESSLRZ=(lrzip -q)
|
||||
COMPRESSLZO=(lzop -q)
|
||||
COMPRESSZ=(compress -c -f)
|
||||
COMPRESSLZ4=(lz4 -q)
|
||||
COMPRESSLZ=(lzip -c -f)
|
||||
|
||||
#########################################################################
|
||||
# EXTENSION DEFAULTS
|
||||
#########################################################################
|
||||
#
|
||||
PKGEXT='.pkg.tar.zst'
|
||||
SRCEXT='.src.tar.zst'
|
||||
|
||||
#########################################################################
|
||||
# OTHER
|
||||
#########################################################################
|
||||
#
|
||||
#-- Command used to run pacman as root, instead of trying sudo and su
|
||||
PACMAN_AUTH=()
|
|
@ -1,173 +0,0 @@
|
|||
#
|
||||
# /etc/makepkg.conf
|
||||
#
|
||||
|
||||
#########################################################################
|
||||
# SOURCE ACQUISITION
|
||||
#########################################################################
|
||||
#
|
||||
#-- The download utilities that makepkg should use to acquire sources
|
||||
# Format: 'protocol::agent'
|
||||
DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
|
||||
'http::/usr/bin/curl -qb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'https::/usr/bin/curl -qb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'rsync::/usr/bin/rsync --no-motd -z %u %o'
|
||||
'scp::/usr/bin/scp -C %u %o')
|
||||
|
||||
# Other common tools:
|
||||
# /usr/bin/snarf
|
||||
# /usr/bin/lftpget -c
|
||||
# /usr/bin/wget
|
||||
|
||||
#-- The package required by makepkg to download VCS sources
|
||||
# Format: 'protocol::package'
|
||||
VCSCLIENTS=('bzr::bzr'
|
||||
'git::git'
|
||||
'hg::mercurial'
|
||||
'svn::subversion')
|
||||
|
||||
#-- Using git am to apply patches has benefits, but also downsides
|
||||
# one being that people without their .gitconfig set get prompts
|
||||
# and the other being that the sha1s vary each time, so fix them
|
||||
GIT_COMMITTER_NAME="makepkg"
|
||||
GIT_COMMITTER_EMAIL="makepkg@msys2.org"
|
||||
function gitam_mkpkg() {
|
||||
git am --committer-date-is-author-date "$@"
|
||||
}
|
||||
|
||||
#########################################################################
|
||||
# ARCHITECTURE, COMPILE FLAGS
|
||||
#########################################################################
|
||||
#
|
||||
CARCH="i686"
|
||||
CHOST="i686-w64-mingw32"
|
||||
|
||||
#########################################################################
|
||||
# Mingw toolchains stuff
|
||||
#########################################################################
|
||||
#
|
||||
MINGW_CHOST="i686-w64-mingw32"
|
||||
MINGW_PREFIX="/mingw32"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-i686"
|
||||
|
||||
# DirectX compatibility environment variable
|
||||
DXSDK_DIR=${MINGW_PREFIX}/${MINGW_CHOST}
|
||||
|
||||
#-- Compiler and Linker Flags
|
||||
# -march (or -mcpu) builds exclusively for an architecture
|
||||
# -mtune optimizes for an architecture, but builds for whole processor family
|
||||
CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
|
||||
CFLAGS="-march=i686 -mtune=generic -O2 -pipe"
|
||||
CXXFLAGS="-march=i686 -mtune=generic -O2 -pipe"
|
||||
LDFLAGS="-pipe -Wl,--dynamicbase,--nxcompat,--no-seh"
|
||||
# Uncomment to disable hardening (ASLR, DEP)
|
||||
#LDFLAGS="-pipe"
|
||||
#-- Make Flags: change this for DistCC/SMP systems
|
||||
MAKEFLAGS="-j$(($(nproc)+1))"
|
||||
#-- Debugging flags
|
||||
DEBUG_CFLAGS="-ggdb -Og"
|
||||
DEBUG_CXXFLAGS="-ggdb -Og"
|
||||
|
||||
ACLOCAL_PATH="${MINGW_PREFIX}/share/aclocal:/usr/share/aclocal"
|
||||
PKG_CONFIG_PATH="${MINGW_PREFIX}/lib/pkgconfig:${MINGW_PREFIX}/share/pkgconfig"
|
||||
|
||||
#########################################################################
|
||||
# BUILD ENVIRONMENT
|
||||
#########################################################################
|
||||
#
|
||||
# Defaults: BUILDENV=(fakeroot !distcc color !ccache check !sign)
|
||||
# A negated environment option will do the opposite of the comments below.
|
||||
#
|
||||
#-- distcc: Use the Distributed C/C++/ObjC compiler
|
||||
#-- color: Colorize output messages
|
||||
#-- ccache: Use ccache to cache compilation
|
||||
#-- check: Run the check() function if present in the PKGBUILD
|
||||
#-- sign: Generate PGP signature file
|
||||
#
|
||||
BUILDENV=(!distcc color !ccache check !sign)
|
||||
#
|
||||
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
|
||||
#-- specify a space-delimited list of hosts running in the DistCC cluster.
|
||||
#DISTCC_HOSTS=""
|
||||
#
|
||||
#-- Specify a directory for package building.
|
||||
#BUILDDIR=/tmp/makepkg
|
||||
|
||||
#########################################################################
|
||||
# GLOBAL PACKAGE OPTIONS
|
||||
# These are default values for the options=() settings
|
||||
#########################################################################
|
||||
#
|
||||
# Default: OPTIONS=(strip docs !libtool staticlibs emptydirs zipman purge !debug)
|
||||
# A negated option will do the opposite of the comments below.
|
||||
#
|
||||
#-- strip: Strip symbols from binaries/libraries
|
||||
#-- docs: Save doc directories specified by DOC_DIRS
|
||||
#-- libtool: Leave libtool (.la) files in packages
|
||||
#-- staticlibs: Leave static library (.a) files in packages
|
||||
#-- emptydirs: Leave empty directories in packages
|
||||
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
|
||||
#-- purge: Remove files specified by PURGE_TARGETS
|
||||
#-- debug: Add debugging flags as specified in DEBUG_* variables
|
||||
#
|
||||
OPTIONS=(strip docs !libtool staticlibs emptydirs zipman purge !debug)
|
||||
|
||||
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
|
||||
INTEGRITY_CHECK=(md5)
|
||||
#-- Options to be used when stripping binaries. See `man strip' for details.
|
||||
STRIP_BINARIES="--strip-all"
|
||||
#-- Options to be used when stripping shared libraries. See `man strip' for details.
|
||||
STRIP_SHARED="--strip-unneeded"
|
||||
#-- Options to be used when stripping static libraries. See `man strip' for details.
|
||||
STRIP_STATIC="--strip-debug"
|
||||
#-- Manual (man and info) directories to compress (if zipman is specified)
|
||||
MAN_DIRS=(mingw32{{,/local}{,/share},/opt/*}/{man,info})
|
||||
#-- Doc directories to remove (if !docs is specified)
|
||||
DOC_DIRS=(mingw32/{,local/}{,share/}{doc,gtk-doc})
|
||||
#-- Files to be removed from all packages (if purge is specified)
|
||||
PURGE_TARGETS=(mingw32/{,share}/info/dir .packlist *.pod)
|
||||
|
||||
#########################################################################
|
||||
# PACKAGE OUTPUT
|
||||
#########################################################################
|
||||
#
|
||||
# Default: put built package and cached source in build directory
|
||||
#
|
||||
#-- Destination: specify a fixed directory where all packages will be placed
|
||||
#PKGDEST=/var/packages-mingw32
|
||||
#-- Source cache: specify a fixed directory where source files will be cached
|
||||
#SRCDEST=/var/sources
|
||||
#-- Source packages: specify a fixed directory where all src packages will be placed
|
||||
#SRCPKGDEST=/var/srcpackages-mingw32
|
||||
#-- Log files: specify a fixed directory where all log files will be placed
|
||||
#LOGDEST=/var/makepkglogs
|
||||
#-- Packager: name/email of the person or organization building packages
|
||||
#PACKAGER="John Doe <john@doe.com>"
|
||||
#-- Specify a key to use for package signing
|
||||
#GPGKEY=""
|
||||
|
||||
#########################################################################
|
||||
# COMPRESSION DEFAULTS
|
||||
#########################################################################
|
||||
#
|
||||
COMPRESSGZ=(gzip -c -f -n)
|
||||
COMPRESSBZ2=(bzip2 -c -f)
|
||||
COMPRESSXZ=(xz -c -z -T0 -)
|
||||
COMPRESSZST=(zstd -c -T0 --ultra -20 -)
|
||||
COMPRESSLRZ=(lrzip -q)
|
||||
COMPRESSLZO=(lzop -q)
|
||||
COMPRESSZ=(compress -c -f)
|
||||
COMPRESSLZ4=(lz4 -q)
|
||||
COMPRESSLZ=(lzip -c -f)
|
||||
|
||||
#########################################################################
|
||||
# EXTENSION DEFAULTS
|
||||
#########################################################################
|
||||
#
|
||||
# WARNING: Do NOT modify these variables unless you know what you are
|
||||
# doing.
|
||||
#
|
||||
PKGEXT='.pkg.tar.zst'
|
||||
SRCEXT='.src.tar.gz'
|
||||
|
||||
# vim: set ft=sh ts=2 sw=2 et:
|
|
@ -1,173 +0,0 @@
|
|||
#
|
||||
# /etc/makepkg_mingw64.conf
|
||||
#
|
||||
|
||||
#########################################################################
|
||||
# SOURCE ACQUISITION
|
||||
#########################################################################
|
||||
#
|
||||
#-- The download utilities that makepkg should use to acquire sources
|
||||
# Format: 'protocol::agent'
|
||||
DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
|
||||
'http::/usr/bin/curl -qb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'https::/usr/bin/curl -qb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'rsync::/usr/bin/rsync --no-motd -z %u %o'
|
||||
'scp::/usr/bin/scp -C %u %o')
|
||||
|
||||
# Other common tools:
|
||||
# /usr/bin/snarf
|
||||
# /usr/bin/lftpget -c
|
||||
# /usr/bin/wget
|
||||
|
||||
#-- The package required by makepkg to download VCS sources
|
||||
# Format: 'protocol::package'
|
||||
VCSCLIENTS=('bzr::bzr'
|
||||
'git::git'
|
||||
'hg::mercurial'
|
||||
'svn::subversion')
|
||||
|
||||
#-- Using git am to apply patches has benefits, but also downsides
|
||||
# one being that people without their .gitconfig set get prompts
|
||||
# and the other being that the sha1s vary each time, so fix them
|
||||
GIT_COMMITTER_NAME="makepkg"
|
||||
GIT_COMMITTER_EMAIL="makepkg@msys2.org"
|
||||
function gitam_mkpkg() {
|
||||
git am --committer-date-is-author-date "$@"
|
||||
}
|
||||
|
||||
#########################################################################
|
||||
# ARCHITECTURE, COMPILE FLAGS
|
||||
#########################################################################
|
||||
#
|
||||
CARCH="x86_64"
|
||||
CHOST="x86_64-w64-mingw32"
|
||||
|
||||
#########################################################################
|
||||
# Mingw toolchains stuff
|
||||
#########################################################################
|
||||
#
|
||||
MINGW_CHOST="x86_64-w64-mingw32"
|
||||
MINGW_PREFIX="/mingw64"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-x86_64"
|
||||
|
||||
# DirectX compatibility environment variable
|
||||
DXSDK_DIR=${MINGW_PREFIX}/${MINGW_CHOST}
|
||||
|
||||
#-- Compiler and Linker Flags
|
||||
# -march (or -mcpu) builds exclusively for an architecture
|
||||
# -mtune optimizes for an architecture, but builds for whole processor family
|
||||
CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
|
||||
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
|
||||
CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
|
||||
LDFLAGS="-pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high"
|
||||
# Uncomment to disable hardening (ASLR, High entropy ASLR, DEP)
|
||||
#LDFLAGS="-pipe"
|
||||
#-- Make Flags: change this for DistCC/SMP systems
|
||||
MAKEFLAGS="-j$(($(nproc)+1))"
|
||||
#-- Debugging flags
|
||||
DEBUG_CFLAGS="-ggdb -Og"
|
||||
DEBUG_CXXFLAGS="-ggdb -Og"
|
||||
|
||||
ACLOCAL_PATH="${MINGW_PREFIX}/share/aclocal:/usr/share/aclocal"
|
||||
PKG_CONFIG_PATH="${MINGW_PREFIX}/lib/pkgconfig:${MINGW_PREFIX}/share/pkgconfig"
|
||||
|
||||
#########################################################################
|
||||
# BUILD ENVIRONMENT
|
||||
#########################################################################
|
||||
#
|
||||
# Defaults: BUILDENV=(fakeroot !distcc color !ccache check !sign)
|
||||
# A negated environment option will do the opposite of the comments below.
|
||||
#
|
||||
#-- distcc: Use the Distributed C/C++/ObjC compiler
|
||||
#-- color: Colorize output messages
|
||||
#-- ccache: Use ccache to cache compilation
|
||||
#-- check: Run the check() function if present in the PKGBUILD
|
||||
#-- sign: Generate PGP signature file
|
||||
#
|
||||
BUILDENV=(!distcc color !ccache check !sign)
|
||||
#
|
||||
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
|
||||
#-- specify a space-delimited list of hosts running in the DistCC cluster.
|
||||
#DISTCC_HOSTS=""
|
||||
#
|
||||
#-- Specify a directory for package building.
|
||||
#BUILDDIR=/tmp/makepkg
|
||||
|
||||
#########################################################################
|
||||
# GLOBAL PACKAGE OPTIONS
|
||||
# These are default values for the options=() settings
|
||||
#########################################################################
|
||||
#
|
||||
# Default: OPTIONS=(strip docs !libtool staticlibs emptydirs zipman purge !debug)
|
||||
# A negated option will do the opposite of the comments below.
|
||||
#
|
||||
#-- strip: Strip symbols from binaries/libraries
|
||||
#-- docs: Save doc directories specified by DOC_DIRS
|
||||
#-- libtool: Leave libtool (.la) files in packages
|
||||
#-- staticlibs: Leave static library (.a) files in packages
|
||||
#-- emptydirs: Leave empty directories in packages
|
||||
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
|
||||
#-- purge: Remove files specified by PURGE_TARGETS
|
||||
#-- debug: Add debugging flags as specified in DEBUG_* variables
|
||||
#
|
||||
OPTIONS=(strip docs !libtool staticlibs emptydirs zipman purge !debug)
|
||||
|
||||
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
|
||||
INTEGRITY_CHECK=(md5)
|
||||
#-- Options to be used when stripping binaries. See `man strip' for details.
|
||||
STRIP_BINARIES="--strip-all"
|
||||
#-- Options to be used when stripping shared libraries. See `man strip' for details.
|
||||
STRIP_SHARED="--strip-unneeded"
|
||||
#-- Options to be used when stripping static libraries. See `man strip' for details.
|
||||
STRIP_STATIC="--strip-debug"
|
||||
#-- Manual (man and info) directories to compress (if zipman is specified)
|
||||
MAN_DIRS=(mingw64{{,/local}{,/share},/opt/*}/{man,info})
|
||||
#-- Doc directories to remove (if !docs is specified)
|
||||
DOC_DIRS=(mingw64/{,local/}{,share/}{doc,gtk-doc})
|
||||
#-- Files to be removed from all packages (if purge is specified)
|
||||
PURGE_TARGETS=(mingw64/{,share}/info/dir .packlist *.pod)
|
||||
|
||||
#########################################################################
|
||||
# PACKAGE OUTPUT
|
||||
#########################################################################
|
||||
#
|
||||
# Default: put built package and cached source in build directory
|
||||
#
|
||||
#-- Destination: specify a fixed directory where all packages will be placed
|
||||
#PKGDEST=/var/packages-mingw64
|
||||
#-- Source cache: specify a fixed directory where source files will be cached
|
||||
#SRCDEST=/var/sources
|
||||
#-- Source packages: specify a fixed directory where all src packages will be placed
|
||||
#SRCPKGDEST=/var/srcpackages-mingw64
|
||||
#-- Log files: specify a fixed directory where all log files will be placed
|
||||
#LOGDEST=/var/makepkglogs
|
||||
#-- Packager: name/email of the person or organization building packages
|
||||
#PACKAGER="John Doe <john@doe.com>"
|
||||
#-- Specify a key to use for package signing
|
||||
#GPGKEY=""
|
||||
|
||||
#########################################################################
|
||||
# COMPRESSION DEFAULTS
|
||||
#########################################################################
|
||||
#
|
||||
COMPRESSGZ=(gzip -c -f -n)
|
||||
COMPRESSBZ2=(bzip2 -c -f)
|
||||
COMPRESSXZ=(xz -c -z -T0 -)
|
||||
COMPRESSZST=(zstd -c -T0 --ultra -20 -)
|
||||
COMPRESSLRZ=(lrzip -q)
|
||||
COMPRESSLZO=(lzop -q)
|
||||
COMPRESSZ=(compress -c -f)
|
||||
COMPRESSLZ4=(lz4 -q)
|
||||
COMPRESSLZ=(lzip -c -f)
|
||||
|
||||
#########################################################################
|
||||
# EXTENSION DEFAULTS
|
||||
#########################################################################
|
||||
#
|
||||
# WARNING: Do NOT modify these variables unless you know what you are
|
||||
# doing.
|
||||
#
|
||||
PKGEXT='.pkg.tar.zst'
|
||||
SRCEXT='.src.tar.gz'
|
||||
|
||||
# vim: set ft=sh ts=2 sw=2 et:
|
|
@ -20,8 +20,6 @@ unset MINGW_CHOST
|
|||
unset MINGW_PREFIX
|
||||
unset MINGW_PACKAGE_PREFIX
|
||||
|
||||
unset CONFIG_SITE
|
||||
|
||||
case "${MSYSTEM}" in
|
||||
MINGW32)
|
||||
MSYSTEM_PREFIX='/mingw32'
|
||||
|
@ -30,8 +28,7 @@ case "${MSYSTEM}" in
|
|||
MINGW_CHOST="${MSYSTEM_CHOST}"
|
||||
MINGW_PREFIX="${MSYSTEM_PREFIX}"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-${MSYSTEM_CARCH}"
|
||||
CONFIG_SITE="${MSYSTEM_PREFIX}/etc/config.site"
|
||||
export MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST MINGW_CHOST MINGW_PREFIX MINGW_PACKAGE_PREFIX CONFIG_SITE
|
||||
export MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST MINGW_CHOST MINGW_PREFIX MINGW_PACKAGE_PREFIX
|
||||
;;
|
||||
MINGW64)
|
||||
MSYSTEM_PREFIX='/mingw64'
|
||||
|
@ -40,8 +37,7 @@ case "${MSYSTEM}" in
|
|||
MINGW_CHOST="${MSYSTEM_CHOST}"
|
||||
MINGW_PREFIX="${MSYSTEM_PREFIX}"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-${MSYSTEM_CARCH}"
|
||||
CONFIG_SITE="${MSYSTEM_PREFIX}/etc/config.site"
|
||||
export MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST MINGW_CHOST MINGW_PREFIX MINGW_PACKAGE_PREFIX CONFIG_SITE
|
||||
export MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST MINGW_CHOST MINGW_PREFIX MINGW_PACKAGE_PREFIX
|
||||
;;
|
||||
CLANG32)
|
||||
MSYSTEM_PREFIX='/clang32'
|
||||
|
@ -50,8 +46,7 @@ case "${MSYSTEM}" in
|
|||
MINGW_CHOST="${MSYSTEM_CHOST}"
|
||||
MINGW_PREFIX="${MSYSTEM_PREFIX}"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-clang-${MSYSTEM_CARCH}"
|
||||
CONFIG_SITE="${MSYSTEM_PREFIX}/etc/config.site"
|
||||
export MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST MINGW_CHOST MINGW_PREFIX MINGW_PACKAGE_PREFIX CONFIG_SITE
|
||||
export MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST MINGW_CHOST MINGW_PREFIX MINGW_PACKAGE_PREFIX
|
||||
;;
|
||||
CLANG64)
|
||||
MSYSTEM_PREFIX='/clang64'
|
||||
|
@ -60,14 +55,30 @@ case "${MSYSTEM}" in
|
|||
MINGW_CHOST="${MSYSTEM_CHOST}"
|
||||
MINGW_PREFIX="${MSYSTEM_PREFIX}"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-clang-${MSYSTEM_CARCH}"
|
||||
CONFIG_SITE="${MSYSTEM_PREFIX}/etc/config.site"
|
||||
export MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST MINGW_CHOST MINGW_PREFIX MINGW_PACKAGE_PREFIX CONFIG_SITE
|
||||
export MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST MINGW_CHOST MINGW_PREFIX MINGW_PACKAGE_PREFIX
|
||||
;;
|
||||
CLANGARM64)
|
||||
MSYSTEM_PREFIX='/clangarm64'
|
||||
MSYSTEM_CARCH='aarch64'
|
||||
MSYSTEM_CHOST='aarch64-w64-mingw32'
|
||||
MINGW_CHOST="${MSYSTEM_CHOST}"
|
||||
MINGW_PREFIX="${MSYSTEM_PREFIX}"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-clang-${MSYSTEM_CARCH}"
|
||||
export MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST MINGW_CHOST MINGW_PREFIX MINGW_PACKAGE_PREFIX
|
||||
;;
|
||||
UCRT64)
|
||||
MSYSTEM_PREFIX='/ucrt64'
|
||||
MSYSTEM_CARCH='x86_64'
|
||||
MSYSTEM_CHOST='x86_64-w64-mingw32'
|
||||
MINGW_CHOST="${MSYSTEM_CHOST}"
|
||||
MINGW_PREFIX="${MSYSTEM_PREFIX}"
|
||||
MINGW_PACKAGE_PREFIX="mingw-w64-ucrt-${MSYSTEM_CARCH}"
|
||||
export MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST MINGW_CHOST MINGW_PREFIX MINGW_PACKAGE_PREFIX
|
||||
;;
|
||||
*)
|
||||
MSYSTEM_PREFIX='/usr'
|
||||
MSYSTEM_CARCH="$(/usr/bin/uname -m)"
|
||||
MSYSTEM_CHOST="$(/usr/bin/uname -m)-pc-msys"
|
||||
CONFIG_SITE="/etc/config.site"
|
||||
export MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST CONFIG_SITE
|
||||
MSYSTEM_CHOST="${MSYSTEM_CARCH}-pc-msys"
|
||||
export MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST
|
||||
;;
|
||||
esac
|
||||
|
|
128
msys2/etc/nanorc
|
@ -44,8 +44,7 @@
|
|||
## Do case-sensitive searches by default.
|
||||
# set casesensitive
|
||||
|
||||
## Constantly display the cursor position in the status bar. Note that
|
||||
## this overrides "quickblank".
|
||||
## Constantly display the cursor position in the status bar or minibar.
|
||||
# set constantshow
|
||||
|
||||
## Use cut-from-cursor-to-end-of-line by default.
|
||||
|
@ -59,6 +58,10 @@
|
|||
## will be the terminal's width minus this number.
|
||||
# set fill -8
|
||||
|
||||
## Draw a vertical stripe at the given column, to help judge text width.
|
||||
## (This option does not have a default value.)
|
||||
# set guidestripe 75
|
||||
|
||||
## Remember the used search/replace strings for the next session.
|
||||
# set historylog
|
||||
|
||||
|
@ -79,15 +82,19 @@
|
|||
## Fall back to slow libmagic to try and determine an applicable syntax.
|
||||
# set magic
|
||||
|
||||
## The opening and closing brackets that can be found by bracket
|
||||
## searches. They cannot contain blank characters. The former set must
|
||||
## come before the latter set, and both must be in the same order.
|
||||
## The opening and closing brackets that are found by a matching-bracket
|
||||
## search. This may not contain blank characters. The opening brackets
|
||||
## must come before the closing ones, and they must be in the same order.
|
||||
# set matchbrackets "(<[{)>]}"
|
||||
|
||||
## Suppress the title bar and show the filename plus a cursor-position
|
||||
## percentage in the space of the status bar.
|
||||
# set minibar
|
||||
|
||||
## Enable mouse support, if available for your system. When enabled,
|
||||
## mouse clicks can be used to place the cursor, set the mark (with a
|
||||
## double click), and execute shortcuts. The mouse will work in the X
|
||||
## Window System, and on the console when gpm is running.
|
||||
## double click), and execute shortcuts. The mouse will work in the
|
||||
## X Window System, and on the console when gpm is running.
|
||||
# set mouse
|
||||
|
||||
## Switch on multiple file buffers (inserting a file will put it into
|
||||
|
@ -115,14 +122,12 @@
|
|||
## Preserve the XON and XOFF keys (^Q and ^S).
|
||||
# set preserve
|
||||
|
||||
## The characters treated as closing punctuation when justifying
|
||||
## paragraphs. They cannot contain blank characters. Only closing
|
||||
## punctuation, optionally followed by closing brackets, can end
|
||||
## sentences.
|
||||
## The characters treated as closing punctuation when justifying paragraphs.
|
||||
## This may not contain blank characters. Only these closing punctuations,
|
||||
## optionally followed by closing brackets, can end sentences.
|
||||
# set punct "!.?"
|
||||
|
||||
## Do quick status-bar blanking. Status-bar messages will disappear after
|
||||
## 1 keystroke instead of 26. Note that "constantshow" overrides this.
|
||||
## Make status-bar messages disappear after 1 keystroke instead of after 20.
|
||||
# set quickblank
|
||||
|
||||
## The regular expression that matches quoting characters in email
|
||||
|
@ -141,18 +146,17 @@
|
|||
|
||||
## Save a changed buffer automatically on exit; don't prompt.
|
||||
# set saveonexit
|
||||
## (The old form of this option, 'set tempfile', is deprecated.)
|
||||
|
||||
## Put the cursor on the highlighted item in the file browser, and show
|
||||
## the cursor in the help viewer; useful for people who use a braille
|
||||
## display and people with poor vision.
|
||||
## Put the cursor on the highlighted item in the file browser, and
|
||||
## show the cursor in the help viewer; useful for people who use a
|
||||
## braille display and people with poor vision.
|
||||
# set showcursor
|
||||
|
||||
## Make the Home key smarter. When Home is pressed anywhere but at the
|
||||
## Make the Home key smarter: when Home is pressed anywhere but at the
|
||||
## very beginning of non-whitespace characters on a line, the cursor
|
||||
## will jump to that beginning (either forwards or backwards). If the
|
||||
## cursor is already at that position, it will jump to the true
|
||||
## beginning of the line.
|
||||
## cursor is already at that position, it will jump to the true start
|
||||
## of the line (the left edge).
|
||||
# set smarthome
|
||||
|
||||
## Spread overlong lines over multiple screen lines.
|
||||
|
@ -166,19 +170,18 @@
|
|||
## M = mark, L = hard-wrapping long lines, R = recording, S = soft-wrapping.
|
||||
# set stateflags
|
||||
|
||||
## Allow nano to be suspended (with ^Z by default).
|
||||
# set suspendable
|
||||
## (The old form of this option, 'set suspend', is deprecated.)
|
||||
|
||||
## Use this tab size instead of the default; it must be greater than 0.
|
||||
# set tabsize 8
|
||||
|
||||
## Convert typed tabs to spaces.
|
||||
## Convert each typed tab to the fitting number of spaces.
|
||||
# set tabstospaces
|
||||
|
||||
## Snip whitespace at the end of lines when justifying or hard-wrapping.
|
||||
# set trimblanks
|
||||
|
||||
## Save files by default in Unix format (also when they were DOS or Mac).
|
||||
# set unix
|
||||
|
||||
## The two single-column characters used to display the first characters
|
||||
## of tabs and spaces. 187 in ISO 8859-1 (0000BB in Unicode) and 183 in
|
||||
## ISO-8859-1 (0000B7 in Unicode) seem to be good values for these.
|
||||
|
@ -200,11 +203,17 @@
|
|||
## of a single character, and without affecting the cutbuffer).
|
||||
# set zap
|
||||
|
||||
## Paint the interface elements of nano. These are examples;
|
||||
## by default there are no colors, except for errorcolor.
|
||||
# set titlecolor bold,lightwhite,blue
|
||||
# set statuscolor bold,lightwhite,green
|
||||
# set errorcolor bold,lightwhite,red
|
||||
## Hide the bars plus help lines and use the whole terminal as edit area.
|
||||
# set zero
|
||||
|
||||
|
||||
## Paint the interface elements of nano. These are examples; there are
|
||||
## no colors by default, except for errorcolor and spotlightcolor.
|
||||
# set titlecolor bold,white,blue
|
||||
# set promptcolor lightwhite,grey
|
||||
# set statuscolor bold,white,green
|
||||
# set errorcolor bold,white,red
|
||||
# set spotlightcolor black,lightyellow
|
||||
# set selectedcolor lightwhite,magenta
|
||||
# set stripecolor ,yellow
|
||||
# set scrollercolor cyan
|
||||
|
@ -213,9 +222,11 @@
|
|||
# set functioncolor green
|
||||
|
||||
## In root's .nanorc you might want to use:
|
||||
# set titlecolor bold,lightwhite,magenta
|
||||
# set statuscolor bold,lightwhite,magenta
|
||||
# set errorcolor bold,lightwhite,red
|
||||
# set titlecolor bold,white,magenta
|
||||
# set promptcolor black,yellow
|
||||
# set statuscolor bold,white,magenta
|
||||
# set errorcolor bold,white,red
|
||||
# set spotlightcolor black,orange
|
||||
# set selectedcolor lightwhite,cyan
|
||||
# set stripecolor ,yellow
|
||||
# set scrollercolor magenta
|
||||
|
@ -250,6 +261,9 @@
|
|||
## === Key bindings ===
|
||||
## For all details, see 'man nanorc', section REBINDING KEYS.
|
||||
|
||||
## If you want to suspend nano with one keystroke (instead of with ^T^Z):
|
||||
# bind ^Z suspend main
|
||||
|
||||
## The <Ctrl+Delete> keystroke deletes the word to the right of the cursor.
|
||||
## On some terminals the <Ctrl+Backspace> keystroke produces ^H, which is
|
||||
## the ASCII character for backspace, so it is bound by default to the
|
||||
|
@ -259,13 +273,39 @@
|
|||
## <Ctrl+Backspace> delete the word to the left of the cursor with:
|
||||
# bind ^H chopwordleft main
|
||||
|
||||
## For a more mnemonic Comment keystroke (overriding Cut-from-cursor):
|
||||
# bind M-K comment main
|
||||
|
||||
## If you want ^L to just refresh the screen and not center the cursor:
|
||||
# bind ^L refresh main
|
||||
|
||||
## When you sometimes type M-J instead of M-K, or M-T instead of M-R:
|
||||
# unbind M-J main
|
||||
# unbind M-T main
|
||||
## (Those functions are still accessible through ^T^J and ^T^V.)
|
||||
|
||||
## For quickly uppercasing or lowercasing the word under or after the cursor.
|
||||
## (These effectively select a word and pipe it through a sed command.)
|
||||
#bind Sh-M-U "{nextword}{mark}{prevword}{execute}|sed 's/.*/\U&/'{enter}" main
|
||||
#bind Sh-M-L "{nextword}{mark}{prevword}{execute}|sed 's/.*/\L&/'{enter}" main
|
||||
|
||||
## For copying a marked region to the system clipboard:
|
||||
# bind Sh-M-T "{execute}|xsel -ib{enter}{undo}" main
|
||||
|
||||
## For snipping trailing blanks when you save a file:
|
||||
# bind ^S "{execute}| sed 's/\s\+$//' {enter}{savefile}" main
|
||||
|
||||
## If you would like nano to have keybindings that are more "usual",
|
||||
## such as ^O for Open, ^F for Find, ^H for Help, and ^Q for Quit,
|
||||
## then uncomment these:
|
||||
#bind ^X cut main
|
||||
#bind ^C copy main
|
||||
#bind ^V paste all
|
||||
#bind ^Q exit all
|
||||
#bind ^S savefile main
|
||||
#bind ^W writeout main
|
||||
#bind ^O insert main
|
||||
#set multibuffer
|
||||
#bind ^H help all
|
||||
#bind ^H exit help
|
||||
#bind ^F whereis all
|
||||
|
@ -273,23 +313,19 @@
|
|||
#bind ^B wherewas all
|
||||
#bind ^D findprevious all
|
||||
#bind ^R replace main
|
||||
#bind M-X flipnewbuffer all
|
||||
#bind ^X cut all
|
||||
#bind ^C copy main
|
||||
#bind ^V paste all
|
||||
#bind ^P location main
|
||||
#bind ^A mark main
|
||||
#unbind ^K main
|
||||
#unbind ^U all
|
||||
#unbind ^N main
|
||||
#unbind ^Y all
|
||||
#unbind M-J main
|
||||
#unbind M-T main
|
||||
#bind ^A mark main
|
||||
#bind ^P location main
|
||||
#bind ^T gotoline main
|
||||
#bind ^T gotodir browser
|
||||
#bind ^Y speller main
|
||||
#bind M-U undo main
|
||||
#bind M-R redo main
|
||||
#bind ^U undo main
|
||||
#bind ^E redo main
|
||||
#set multibuffer
|
||||
#bind ^T cutrestoffile execute
|
||||
#bind ^L linter execute
|
||||
#bind ^E execute main
|
||||
#bind ^K "{mark}{end}{zap}" main
|
||||
#bind ^U "{mark}{home}{zap}" main
|
||||
#bind ^Z undo main
|
||||
#bind ^Y redo main
|
||||
|
|
6
msys2/etc/os-release
Normal file
|
@ -0,0 +1,6 @@
|
|||
NAME=MSYS2
|
||||
ID=msys2
|
||||
PRETTY_NAME="MSYS2"
|
||||
ID_LIKE="cygwin arch"
|
||||
HOME_URL="https://www.msys2.org"
|
||||
BUG_REPORT_URL="https://github.com/msys2/MSYS2-packages/issues"
|
|
@ -14,7 +14,7 @@
|
|||
#CacheDir = /var/cache/pacman/pkg/
|
||||
#LogFile = /var/log/pacman.log
|
||||
#GPGDir = /etc/pacman.d/gnupg/
|
||||
HoldPkg = pacman
|
||||
HoldPkg = pacman
|
||||
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
|
||||
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
|
||||
#CleanMethod = KeepInstalled
|
||||
|
@ -29,22 +29,19 @@ Architecture = auto
|
|||
|
||||
# Misc options
|
||||
#UseSyslog
|
||||
#Color
|
||||
#TotalDownload
|
||||
Color
|
||||
#NoProgressBar
|
||||
CheckSpace
|
||||
#VerbosePkgLists
|
||||
ParallelDownloads = 5
|
||||
|
||||
# By default, pacman accepts packages signed by keys that its local keyring
|
||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
|
||||
#SigLevel = Never
|
||||
SigLevel = Required DatabaseOptional
|
||||
SigLevel = Required
|
||||
LocalFileSigLevel = Optional
|
||||
#RemoteFileSigLevel = Required
|
||||
|
||||
# NOTE: You must run `pacman-key --init` before first using pacman; the local
|
||||
# keyring can then be populated with the keys of all official Arch Linux
|
||||
# packagers with `pacman-key --populate archlinux`.
|
||||
|
||||
#
|
||||
# REPOSITORIES
|
||||
# - can be defined here or included from another file
|
||||
|
@ -68,11 +65,28 @@ LocalFileSigLevel = Optional
|
|||
# repo name header and Include lines. You can add preferred servers immediately
|
||||
# after the header, and they will be used before the default mirrors.
|
||||
|
||||
# Staging packages: enable at your own risk
|
||||
# [staging]
|
||||
# Server = https://repo.msys2.org/staging/
|
||||
# SigLevel = Never
|
||||
|
||||
[clangarm64]
|
||||
Include = /etc/pacman.d/mirrorlist.mingw
|
||||
|
||||
[mingw32]
|
||||
Include = /etc/pacman.d/mirrorlist.mingw32
|
||||
Include = /etc/pacman.d/mirrorlist.mingw
|
||||
|
||||
[mingw64]
|
||||
Include = /etc/pacman.d/mirrorlist.mingw64
|
||||
Include = /etc/pacman.d/mirrorlist.mingw
|
||||
|
||||
[ucrt64]
|
||||
Include = /etc/pacman.d/mirrorlist.mingw
|
||||
|
||||
[clang32]
|
||||
Include = /etc/pacman.d/mirrorlist.mingw
|
||||
|
||||
[clang64]
|
||||
Include = /etc/pacman.d/mirrorlist.mingw
|
||||
|
||||
[msys]
|
||||
Include = /etc/pacman.d/mirrorlist.msys
|
||||
|
|
40
msys2/etc/pacman.d/mirrorlist.clang32
Normal file
|
@ -0,0 +1,40 @@
|
|||
# See https://www.msys2.org/dev/mirrors
|
||||
|
||||
## Primary
|
||||
Server = https://mirror.msys2.org/mingw/clang32/
|
||||
Server = https://repo.msys2.org/mingw/clang32/
|
||||
|
||||
## Tier 1
|
||||
Server = https://mirror.umd.edu/msys2/mingw/clang32/
|
||||
Server = https://mirror.yandex.ru/mirrors/msys2/mingw/clang32/
|
||||
Server = https://download.nus.edu.sg/mirror/msys2/mingw/clang32/
|
||||
Server = https://ftp.acc.umu.se/mirror/msys2.org/mingw/clang32/
|
||||
Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/mingw/clang32/
|
||||
Server = https://ftp.osuosl.org/pub/msys2/mingw/clang32/
|
||||
Server = https://mirror.internet.asn.au/pub/msys2/mingw/clang32/
|
||||
Server = https://mirror.selfnet.de/msys2/mingw/clang32/
|
||||
Server = https://mirror.ufro.cl/msys2/mingw/clang32/
|
||||
Server = https://mirrors.dotsrc.org/msys2/mingw/clang32/
|
||||
Server = https://mirrors.bfsu.edu.cn/msys2/mingw/clang32/
|
||||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/clang32/
|
||||
Server = https://mirrors.ustc.edu.cn/msys2/mingw/clang32/
|
||||
Server = https://mirror.nju.edu.cn/msys2/mingw/clang32/
|
||||
Server = https://repo.extreme-ix.org/msys2/mingw/clang32/
|
||||
Server = https://mirrors.hit.edu.cn/msys2/mingw/clang32/
|
||||
Server = https://mirror.clarkson.edu/msys2/mingw/clang32/
|
||||
Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/clang32/
|
||||
Server = https://mirror2.sandyriver.net/pub/software/msys2/mingw/clang32/
|
||||
Server = https://mirror.archlinux.tw/MSYS2/mingw/clang32/
|
||||
|
||||
## Tier 2
|
||||
Server = https://fastmirror.pp.ua/msys2/mingw/clang32/
|
||||
Server = https://ftp.cc.uoc.gr/mirrors/msys2/mingw/clang32/
|
||||
Server = https://mirror.jmu.edu/pub/msys2/mingw/clang32/
|
||||
Server = https://mirrors.piconets.webwerks.in/msys2-mirror/mingw/clang32/
|
||||
Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/clang32/
|
||||
Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/mingw/clang32/
|
||||
Server = https://mirrors.bit.edu.cn/msys2/mingw/clang32/
|
||||
Server = https://repo.casualgamer.ca/mingw/clang32/
|
||||
Server = https://mirrors.aliyun.com/msys2/mingw/clang32/
|
||||
Server = https://mirror.iscas.ac.cn/msys2/mingw/clang32/
|
||||
Server = https://mirrors.tencent.com/msys2/mingw/clang32/
|
40
msys2/etc/pacman.d/mirrorlist.clang64
Normal file
|
@ -0,0 +1,40 @@
|
|||
# See https://www.msys2.org/dev/mirrors
|
||||
|
||||
## Primary
|
||||
Server = https://mirror.msys2.org/mingw/clang64/
|
||||
Server = https://repo.msys2.org/mingw/clang64/
|
||||
|
||||
## Tier 1
|
||||
Server = https://mirror.umd.edu/msys2/mingw/clang64/
|
||||
Server = https://mirror.yandex.ru/mirrors/msys2/mingw/clang64/
|
||||
Server = https://download.nus.edu.sg/mirror/msys2/mingw/clang64/
|
||||
Server = https://ftp.acc.umu.se/mirror/msys2.org/mingw/clang64/
|
||||
Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/mingw/clang64/
|
||||
Server = https://ftp.osuosl.org/pub/msys2/mingw/clang64/
|
||||
Server = https://mirror.internet.asn.au/pub/msys2/mingw/clang64/
|
||||
Server = https://mirror.selfnet.de/msys2/mingw/clang64/
|
||||
Server = https://mirror.ufro.cl/msys2/mingw/clang64/
|
||||
Server = https://mirrors.dotsrc.org/msys2/mingw/clang64/
|
||||
Server = https://mirrors.bfsu.edu.cn/msys2/mingw/clang64/
|
||||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/clang64/
|
||||
Server = https://mirrors.ustc.edu.cn/msys2/mingw/clang64/
|
||||
Server = https://mirror.nju.edu.cn/msys2/mingw/clang64/
|
||||
Server = https://repo.extreme-ix.org/msys2/mingw/clang64/
|
||||
Server = https://mirrors.hit.edu.cn/msys2/mingw/clang64/
|
||||
Server = https://mirror.clarkson.edu/msys2/mingw/clang64/
|
||||
Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/clang64/
|
||||
Server = https://mirror2.sandyriver.net/pub/software/msys2/mingw/clang64/
|
||||
Server = https://mirror.archlinux.tw/MSYS2/mingw/clang64/
|
||||
|
||||
## Tier 2
|
||||
Server = https://fastmirror.pp.ua/msys2/mingw/clang64/
|
||||
Server = https://ftp.cc.uoc.gr/mirrors/msys2/mingw/clang64/
|
||||
Server = https://mirror.jmu.edu/pub/msys2/mingw/clang64/
|
||||
Server = https://mirrors.piconets.webwerks.in/msys2-mirror/mingw/clang64/
|
||||
Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/clang64/
|
||||
Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/mingw/clang64/
|
||||
Server = https://mirrors.bit.edu.cn/msys2/mingw/clang64/
|
||||
Server = https://repo.casualgamer.ca/mingw/clang64/
|
||||
Server = https://mirrors.aliyun.com/msys2/mingw/clang64/
|
||||
Server = https://mirror.iscas.ac.cn/msys2/mingw/clang64/
|
||||
Server = https://mirrors.tencent.com/msys2/mingw/clang64/
|
40
msys2/etc/pacman.d/mirrorlist.mingw
Normal file
|
@ -0,0 +1,40 @@
|
|||
# See https://www.msys2.org/dev/mirrors
|
||||
|
||||
## Primary
|
||||
Server = https://mirror.msys2.org/mingw/$repo/
|
||||
Server = https://repo.msys2.org/mingw/$repo/
|
||||
|
||||
## Tier 1
|
||||
Server = https://mirror.umd.edu/msys2/mingw/$repo/
|
||||
Server = https://mirror.yandex.ru/mirrors/msys2/mingw/$repo/
|
||||
Server = https://download.nus.edu.sg/mirror/msys2/mingw/$repo/
|
||||
Server = https://ftp.acc.umu.se/mirror/msys2.org/mingw/$repo/
|
||||
Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/mingw/$repo/
|
||||
Server = https://ftp.osuosl.org/pub/msys2/mingw/$repo/
|
||||
Server = https://mirror.internet.asn.au/pub/msys2/mingw/$repo/
|
||||
Server = https://mirror.selfnet.de/msys2/mingw/$repo/
|
||||
Server = https://mirror.ufro.cl/msys2/mingw/$repo/
|
||||
Server = https://mirrors.dotsrc.org/msys2/mingw/$repo/
|
||||
Server = https://mirrors.bfsu.edu.cn/msys2/mingw/$repo/
|
||||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/$repo/
|
||||
Server = https://mirrors.ustc.edu.cn/msys2/mingw/$repo/
|
||||
Server = https://mirror.nju.edu.cn/msys2/mingw/$repo/
|
||||
Server = https://repo.extreme-ix.org/msys2/mingw/$repo/
|
||||
Server = https://mirrors.hit.edu.cn/msys2/mingw/$repo/
|
||||
Server = https://mirror.clarkson.edu/msys2/mingw/$repo/
|
||||
Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/$repo/
|
||||
Server = https://mirror2.sandyriver.net/pub/software/msys2/mingw/$repo/
|
||||
Server = https://mirror.archlinux.tw/MSYS2/mingw/$repo/
|
||||
|
||||
## Tier 2
|
||||
Server = https://fastmirror.pp.ua/msys2/mingw/$repo/
|
||||
Server = https://ftp.cc.uoc.gr/mirrors/msys2/mingw/$repo/
|
||||
Server = https://mirror.jmu.edu/pub/msys2/mingw/$repo/
|
||||
Server = https://mirrors.piconets.webwerks.in/msys2-mirror/mingw/$repo/
|
||||
Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/$repo/
|
||||
Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/mingw/$repo/
|
||||
Server = https://mirrors.bit.edu.cn/msys2/mingw/$repo/
|
||||
Server = https://repo.casualgamer.ca/mingw/$repo/
|
||||
Server = https://mirrors.aliyun.com/msys2/mingw/$repo/
|
||||
Server = https://mirror.iscas.ac.cn/msys2/mingw/$repo/
|
||||
Server = https://mirrors.tencent.com/msys2/mingw/$repo/
|
|
@ -1,26 +1,40 @@
|
|||
##
|
||||
## 32-bit Mingw-w64 repository mirrorlist
|
||||
##
|
||||
# See https://www.msys2.org/dev/mirrors
|
||||
|
||||
## Primary
|
||||
## msys2.org
|
||||
Server = https://downloads.sourceforge.net/project/msys2/REPOS/MINGW/i686/
|
||||
Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/i686/
|
||||
Server = https://mirror.msys2.org/mingw/i686/
|
||||
Server = https://repo.msys2.org/mingw/i686/
|
||||
|
||||
## Tier 1
|
||||
Server = https://mirror.umd.edu/msys2/mingw/i686/
|
||||
Server = https://mirror.yandex.ru/mirrors/msys2/mingw/i686/
|
||||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/
|
||||
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
|
||||
Server = http://mirror.bit.edu.cn/msys2/mingw/i686/
|
||||
Server = https://mirror.selfnet.de/msys2/mingw/i686/
|
||||
Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/mingw/i686/
|
||||
Server = https://mirror.jmu.edu/pub/msys2/mingw/i686/
|
||||
Server = https://ftp.cc.uoc.gr/mirrors/msys2/mingw/i686/
|
||||
Server = https://ftp.acc.umu.se/mirror/msys2.org/mingw/i686/
|
||||
Server = https://mirrors.piconets.webwerks.in/msys2-mirror/mingw/i686/
|
||||
Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/i686/
|
||||
Server = https://mirrors.dotsrc.org/msys2/mingw/i686/
|
||||
Server = https://mirror.ufro.cl/msys2/mingw/i686/
|
||||
Server = https://mirror.clarkson.edu/msys2/mingw/i686/
|
||||
Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/mingw/i686/
|
||||
Server = https://download.nus.edu.sg/mirror/msys2/mingw/i686/
|
||||
Server = https://ftp.acc.umu.se/mirror/msys2.org/mingw/i686/
|
||||
Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/mingw/i686/
|
||||
Server = https://ftp.osuosl.org/pub/msys2/mingw/i686/
|
||||
Server = https://mirror.internet.asn.au/pub/msys2/mingw/i686/
|
||||
Server = https://mirror.selfnet.de/msys2/mingw/i686/
|
||||
Server = https://mirror.ufro.cl/msys2/mingw/i686/
|
||||
Server = https://mirrors.dotsrc.org/msys2/mingw/i686/
|
||||
Server = https://mirrors.bfsu.edu.cn/msys2/mingw/i686/
|
||||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/
|
||||
Server = https://mirrors.ustc.edu.cn/msys2/mingw/i686/
|
||||
Server = https://mirror.nju.edu.cn/msys2/mingw/i686/
|
||||
Server = https://repo.extreme-ix.org/msys2/mingw/i686/
|
||||
Server = https://mirrors.hit.edu.cn/msys2/mingw/i686/
|
||||
Server = https://mirror.clarkson.edu/msys2/mingw/i686/
|
||||
Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/i686/
|
||||
Server = https://mirror2.sandyriver.net/pub/software/msys2/mingw/i686/
|
||||
Server = https://mirror.archlinux.tw/MSYS2/mingw/i686/
|
||||
|
||||
## Tier 2
|
||||
Server = https://fastmirror.pp.ua/msys2/mingw/i686/
|
||||
Server = https://ftp.cc.uoc.gr/mirrors/msys2/mingw/i686/
|
||||
Server = https://mirror.jmu.edu/pub/msys2/mingw/i686/
|
||||
Server = https://mirrors.piconets.webwerks.in/msys2-mirror/mingw/i686/
|
||||
Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/i686/
|
||||
Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/mingw/i686/
|
||||
Server = https://mirrors.bit.edu.cn/msys2/mingw/i686/
|
||||
Server = https://repo.casualgamer.ca/mingw/i686/
|
||||
Server = https://mirrors.aliyun.com/msys2/mingw/i686/
|
||||
Server = https://mirror.iscas.ac.cn/msys2/mingw/i686/
|
||||
Server = https://mirrors.tencent.com/msys2/mingw/i686/
|
||||
|
|
|
@ -1,26 +1,40 @@
|
|||
##
|
||||
## 64-bit Mingw-w64 repository mirrorlist
|
||||
##
|
||||
# See https://www.msys2.org/dev/mirrors
|
||||
|
||||
## Primary
|
||||
## msys2.org
|
||||
Server = https://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64/
|
||||
Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/x86_64/
|
||||
Server = https://mirror.msys2.org/mingw/x86_64/
|
||||
Server = https://repo.msys2.org/mingw/x86_64/
|
||||
|
||||
## Tier 1
|
||||
Server = https://mirror.umd.edu/msys2/mingw/x86_64/
|
||||
Server = https://mirror.yandex.ru/mirrors/msys2/mingw/x86_64/
|
||||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/
|
||||
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
|
||||
Server = http://mirror.bit.edu.cn/msys2/mingw/x86_64/
|
||||
Server = https://mirror.selfnet.de/msys2/mingw/x86_64/
|
||||
Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/mingw/x86_64/
|
||||
Server = https://mirror.jmu.edu/pub/msys2/mingw/x86_64/
|
||||
Server = https://ftp.cc.uoc.gr/mirrors/msys2/mingw/x86_64/
|
||||
Server = https://ftp.acc.umu.se/mirror/msys2.org/mingw/x86_64/
|
||||
Server = https://mirrors.piconets.webwerks.in/msys2-mirror/mingw/x86_64/
|
||||
Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/x86_64/
|
||||
Server = https://mirrors.dotsrc.org/msys2/mingw/x86_64/
|
||||
Server = https://mirror.ufro.cl/msys2/mingw/x86_64/
|
||||
Server = https://mirror.clarkson.edu/msys2/mingw/x86_64/
|
||||
Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/mingw/x86_64/
|
||||
Server = https://download.nus.edu.sg/mirror/msys2/mingw/x86_64/
|
||||
Server = https://ftp.acc.umu.se/mirror/msys2.org/mingw/x86_64/
|
||||
Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/mingw/x86_64/
|
||||
Server = https://ftp.osuosl.org/pub/msys2/mingw/x86_64/
|
||||
Server = https://mirror.internet.asn.au/pub/msys2/mingw/x86_64/
|
||||
Server = https://mirror.selfnet.de/msys2/mingw/x86_64/
|
||||
Server = https://mirror.ufro.cl/msys2/mingw/x86_64/
|
||||
Server = https://mirrors.dotsrc.org/msys2/mingw/x86_64/
|
||||
Server = https://mirrors.bfsu.edu.cn/msys2/mingw/x86_64/
|
||||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/
|
||||
Server = https://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
|
||||
Server = https://mirror.nju.edu.cn/msys2/mingw/x86_64/
|
||||
Server = https://repo.extreme-ix.org/msys2/mingw/x86_64/
|
||||
Server = https://mirrors.hit.edu.cn/msys2/mingw/x86_64/
|
||||
Server = https://mirror.clarkson.edu/msys2/mingw/x86_64/
|
||||
Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/x86_64/
|
||||
Server = https://mirror2.sandyriver.net/pub/software/msys2/mingw/x86_64/
|
||||
Server = https://mirror.archlinux.tw/MSYS2/mingw/x86_64/
|
||||
|
||||
## Tier 2
|
||||
Server = https://fastmirror.pp.ua/msys2/mingw/x86_64/
|
||||
Server = https://ftp.cc.uoc.gr/mirrors/msys2/mingw/x86_64/
|
||||
Server = https://mirror.jmu.edu/pub/msys2/mingw/x86_64/
|
||||
Server = https://mirrors.piconets.webwerks.in/msys2-mirror/mingw/x86_64/
|
||||
Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/x86_64/
|
||||
Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/mingw/x86_64/
|
||||
Server = https://mirrors.bit.edu.cn/msys2/mingw/x86_64/
|
||||
Server = https://repo.casualgamer.ca/mingw/x86_64/
|
||||
Server = https://mirrors.aliyun.com/msys2/mingw/x86_64/
|
||||
Server = https://mirror.iscas.ac.cn/msys2/mingw/x86_64/
|
||||
Server = https://mirrors.tencent.com/msys2/mingw/x86_64/
|
||||
|
|
|
@ -1,26 +1,40 @@
|
|||
##
|
||||
## MSYS2 repository mirrorlist
|
||||
##
|
||||
# See https://www.msys2.org/dev/mirrors
|
||||
|
||||
## Primary
|
||||
## msys2.org
|
||||
Server = https://downloads.sourceforge.net/project/msys2/REPOS/MSYS2/$arch/
|
||||
Server = https://www2.futureware.at/~nickoe/msys2-mirror/msys/$arch/
|
||||
Server = https://mirror.msys2.org/msys/$arch/
|
||||
Server = https://repo.msys2.org/msys/$arch/
|
||||
|
||||
## Tier 1
|
||||
Server = https://mirror.umd.edu/msys2/msys/$arch/
|
||||
Server = https://mirror.yandex.ru/mirrors/msys2/msys/$arch/
|
||||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch/
|
||||
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
|
||||
Server = http://mirror.bit.edu.cn/msys2/msys/$arch/
|
||||
Server = https://mirror.selfnet.de/msys2/msys/$arch/
|
||||
Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/msys/$arch/
|
||||
Server = https://mirror.jmu.edu/pub/msys2/msys/$arch/
|
||||
Server = https://ftp.cc.uoc.gr/mirrors/msys2/msys/$arch/
|
||||
Server = https://ftp.acc.umu.se/mirror/msys2.org/msys/$arch/
|
||||
Server = https://mirrors.piconets.webwerks.in/msys2-mirror/msys/$arch/
|
||||
Server = https://quantum-mirror.hu/mirrors/pub/msys2/msys/$arch/
|
||||
Server = https://mirrors.dotsrc.org/msys2/msys/$arch/
|
||||
Server = https://mirror.ufro.cl/msys2/msys/$arch/
|
||||
Server = https://mirror.clarkson.edu/msys2/msys/$arch/
|
||||
Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/msys/$arch/
|
||||
Server = https://download.nus.edu.sg/mirror/msys2/msys/$arch/
|
||||
Server = https://ftp.acc.umu.se/mirror/msys2.org/msys/$arch/
|
||||
Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/msys/$arch/
|
||||
Server = https://ftp.osuosl.org/pub/msys2/msys/$arch/
|
||||
Server = https://mirror.internet.asn.au/pub/msys2/msys/$arch/
|
||||
Server = https://mirror.selfnet.de/msys2/msys/$arch/
|
||||
Server = https://mirror.ufro.cl/msys2/msys/$arch/
|
||||
Server = https://mirrors.dotsrc.org/msys2/msys/$arch/
|
||||
Server = https://mirrors.bfsu.edu.cn/msys2/msys/$arch/
|
||||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch/
|
||||
Server = https://mirrors.ustc.edu.cn/msys2/msys/$arch/
|
||||
Server = https://mirror.nju.edu.cn/msys2/msys/$arch/
|
||||
Server = https://repo.extreme-ix.org/msys2/msys/$arch/
|
||||
Server = https://mirrors.hit.edu.cn/msys2/msys/$arch/
|
||||
Server = https://mirror.clarkson.edu/msys2/msys/$arch/
|
||||
Server = https://quantum-mirror.hu/mirrors/pub/msys2/msys/$arch/
|
||||
Server = https://mirror2.sandyriver.net/pub/software/msys2/msys/$arch/
|
||||
Server = https://mirror.archlinux.tw/MSYS2/msys/$arch/
|
||||
|
||||
## Tier 2
|
||||
Server = https://fastmirror.pp.ua/msys2/msys/$arch/
|
||||
Server = https://ftp.cc.uoc.gr/mirrors/msys2/msys/$arch/
|
||||
Server = https://mirror.jmu.edu/pub/msys2/msys/$arch/
|
||||
Server = https://mirrors.piconets.webwerks.in/msys2-mirror/msys/$arch/
|
||||
Server = https://www2.futureware.at/~nickoe/msys2-mirror/msys/$arch/
|
||||
Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/msys/$arch/
|
||||
Server = https://mirrors.bit.edu.cn/msys2/msys/$arch/
|
||||
Server = https://repo.casualgamer.ca/msys/$arch/
|
||||
Server = https://mirrors.aliyun.com/msys2/msys/$arch/
|
||||
Server = https://mirror.iscas.ac.cn/msys2/msys/$arch/
|
||||
Server = https://mirrors.tencent.com/msys2/msys/$arch/
|
||||
|
|
40
msys2/etc/pacman.d/mirrorlist.ucrt64
Normal file
|
@ -0,0 +1,40 @@
|
|||
# See https://www.msys2.org/dev/mirrors
|
||||
|
||||
## Primary
|
||||
Server = https://mirror.msys2.org/mingw/ucrt64/
|
||||
Server = https://repo.msys2.org/mingw/ucrt64/
|
||||
|
||||
## Tier 1
|
||||
Server = https://mirror.umd.edu/msys2/mingw/ucrt64/
|
||||
Server = https://mirror.yandex.ru/mirrors/msys2/mingw/ucrt64/
|
||||
Server = https://download.nus.edu.sg/mirror/msys2/mingw/ucrt64/
|
||||
Server = https://ftp.acc.umu.se/mirror/msys2.org/mingw/ucrt64/
|
||||
Server = https://ftp.nluug.nl/pub/os/windows/msys2/builds/mingw/ucrt64/
|
||||
Server = https://ftp.osuosl.org/pub/msys2/mingw/ucrt64/
|
||||
Server = https://mirror.internet.asn.au/pub/msys2/mingw/ucrt64/
|
||||
Server = https://mirror.selfnet.de/msys2/mingw/ucrt64/
|
||||
Server = https://mirror.ufro.cl/msys2/mingw/ucrt64/
|
||||
Server = https://mirrors.dotsrc.org/msys2/mingw/ucrt64/
|
||||
Server = https://mirrors.bfsu.edu.cn/msys2/mingw/ucrt64/
|
||||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/ucrt64/
|
||||
Server = https://mirrors.ustc.edu.cn/msys2/mingw/ucrt64/
|
||||
Server = https://mirror.nju.edu.cn/msys2/mingw/ucrt64/
|
||||
Server = https://repo.extreme-ix.org/msys2/mingw/ucrt64/
|
||||
Server = https://mirrors.hit.edu.cn/msys2/mingw/ucrt64/
|
||||
Server = https://mirror.clarkson.edu/msys2/mingw/ucrt64/
|
||||
Server = https://quantum-mirror.hu/mirrors/pub/msys2/mingw/ucrt64/
|
||||
Server = https://mirror2.sandyriver.net/pub/software/msys2/mingw/ucrt64/
|
||||
Server = https://mirror.archlinux.tw/MSYS2/mingw/ucrt64/
|
||||
|
||||
## Tier 2
|
||||
Server = https://fastmirror.pp.ua/msys2/mingw/ucrt64/
|
||||
Server = https://ftp.cc.uoc.gr/mirrors/msys2/mingw/ucrt64/
|
||||
Server = https://mirror.jmu.edu/pub/msys2/mingw/ucrt64/
|
||||
Server = https://mirrors.piconets.webwerks.in/msys2-mirror/mingw/ucrt64/
|
||||
Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/ucrt64/
|
||||
Server = https://mirrors.sjtug.sjtu.edu.cn/msys2/mingw/ucrt64/
|
||||
Server = https://mirrors.bit.edu.cn/msys2/mingw/ucrt64/
|
||||
Server = https://repo.casualgamer.ca/mingw/ucrt64/
|
||||
Server = https://mirrors.aliyun.com/msys2/mingw/ucrt64/
|
||||
Server = https://mirror.iscas.ac.cn/msys2/mingw/ucrt64/
|
||||
Server = https://mirrors.tencent.com/msys2/mingw/ucrt64/
|
|
@ -1,31 +1,6 @@
|
|||
maybe_create_devs ()
|
||||
{
|
||||
local DEVDIR=/dev
|
||||
# Check for ${DEVDIR} directory
|
||||
if [ -e "${DEVDIR}" -a ! -d "${DEVDIR}" ]
|
||||
then
|
||||
# No mercy. Try to remove.
|
||||
rm -f "${DEVDIR}"
|
||||
if [ -e "${DEVDIR}" -a ! -d "${DEVDIR}" ]
|
||||
then
|
||||
echo
|
||||
echo "${DEVDIR} is existant but not a directory."
|
||||
echo "Please fix that manually, otherwise you WILL get problems."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Create it if necessary
|
||||
mkdir -m 755 "${DEVDIR}" 2> /dev/null
|
||||
if [ ! -e "${DEVDIR}" ]
|
||||
then
|
||||
echo
|
||||
echo "Creating ${DEVDIR} directory failed."
|
||||
echo "Please fix that manually, otherwise you WILL get problems."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check for ${DEVDIR}/shm directory (for POSIX semaphores and POSIX shared mem)
|
||||
if [ -e "${DEVDIR}/shm" -a ! -d "${DEVDIR}/shm" ]
|
||||
|
@ -44,7 +19,7 @@ maybe_create_devs ()
|
|||
# Create it if necessary
|
||||
if [ ! -e "${DEVDIR}/shm" ]
|
||||
then
|
||||
mkdir -m 1777 "${DEVDIR}/shm"
|
||||
mkdir "${DEVDIR}/shm"
|
||||
if [ ! -e "${DEVDIR}/shm" ]
|
||||
then
|
||||
echo
|
||||
|
@ -71,7 +46,7 @@ maybe_create_devs ()
|
|||
# Create it if necessary
|
||||
if [ ! -e "${DEVDIR}/mqueue" ]
|
||||
then
|
||||
mkdir -m 1777 "${DEVDIR}/mqueue"
|
||||
mkdir "${DEVDIR}/mqueue"
|
||||
if [ ! -e "${DEVDIR}/mqueue" ]
|
||||
then
|
||||
echo
|
||||
|
@ -80,13 +55,6 @@ maybe_create_devs ()
|
|||
echo
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install /dev/fd, /dev/std{in,out,err}. The bash builtin test was compiled
|
||||
# to assume these exist, so use /bin/test to really check.
|
||||
/usr/bin/test -h /dev/stdin || ln -sf /proc/self/fd/0 /dev/stdin
|
||||
/usr/bin/test -h /dev/stdout || ln -sf /proc/self/fd/1 /dev/stdout
|
||||
/usr/bin/test -h /dev/stderr || ln -sf /proc/self/fd/2 /dev/stderr
|
||||
/usr/bin/test -h /dev/fd || ln -sf /proc/self/fd /dev/fd
|
||||
}
|
||||
|
||||
maybe_create_devs
|
||||
|
|
|
@ -1,27 +1,26 @@
|
|||
maybe_create_winetc ()
|
||||
{
|
||||
local FILES="hosts protocols services networks"
|
||||
local WINSYS32HOME="$(exec /usr/bin/cygpath -S -w)"
|
||||
local WINETC="${WINSYS32HOME}\\drivers\\etc"
|
||||
|
||||
if [ ! -d "${WINETC}" ]; then
|
||||
echo "Directory ${WINETC} does not exist; exiting" >&2
|
||||
echo "If directory name is garbage you need to update your msys package" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local mketc=
|
||||
for mketc in ${FILES}
|
||||
do
|
||||
if [ ! -e "/etc/${mketc}" -a ! -L "/etc/${mketc}" ]
|
||||
then
|
||||
local WINSYS32HOME="$(exec /usr/bin/cygpath -S -w)"
|
||||
local WINETC="${WINSYS32HOME}\\drivers\\etc"
|
||||
|
||||
if [ ! -d "${WINETC}" ]; then
|
||||
echo "Directory ${WINETC} does not exist; exiting" >&2
|
||||
echo "If directory name is garbage you need to update your msys package" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Windows only uses the first 8 characters
|
||||
local WFILE="${WINETC}\\$(exec expr substr "${mketc}" 1 8)"
|
||||
/usr/bin/cp -p -v "${WFILE}" "/etc/${mketc}"
|
||||
fi
|
||||
done
|
||||
|
||||
/usr/bin/chmod 1777 /tmp 2>/dev/null
|
||||
}
|
||||
|
||||
maybe_create_winetc
|
||||
|
|
|
@ -2,11 +2,11 @@ maybe_init_keyring ()
|
|||
{
|
||||
if [ ! -d /etc/pacman.d/gnupg ]
|
||||
then
|
||||
export GNUPGHOME="$(pacman-conf.exe gpgdir)"
|
||||
/usr/bin/pacman-key --init
|
||||
/usr/bin/pacman-key --populate msys2 || true
|
||||
/usr/bin/pacman-key --refresh-keys || true
|
||||
|
||||
MAYBE_FIRST_START=true
|
||||
/usr/bin/gpgconf --kill all
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
maybe_create_xml_catalog ()
|
||||
{
|
||||
if [ ! -f "/etc/xml/catalog" ]
|
||||
then
|
||||
/usr/bin/mkdir -p /etc/xml
|
||||
/usr/bin/xmlcatalog --noout --create /etc/xml/catalog
|
||||
|
||||
MAYBE_FIRST_START=true
|
||||
fi
|
||||
}
|
||||
|
||||
maybe_create_xml_catalog
|
|
@ -47,19 +47,29 @@ esac
|
|||
unset MINGW_MOUNT_POINT
|
||||
. '/etc/msystem'
|
||||
case "${MSYSTEM}" in
|
||||
MINGW*|CLANG*)
|
||||
MINGW*|CLANG*|UCRT*)
|
||||
MINGW_MOUNT_POINT="${MINGW_PREFIX}"
|
||||
PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}${ORIGINAL_PATH:+:${ORIGINAL_PATH}}"
|
||||
PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig"
|
||||
PKG_CONFIG_SYSTEM_INCLUDE_PATH="${MINGW_MOUNT_POINT}/include"
|
||||
PKG_CONFIG_SYSTEM_LIBRARY_PATH="${MINGW_MOUNT_POINT}/lib"
|
||||
ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal"
|
||||
MANPATH="${MINGW_MOUNT_POINT}/local/man:${MINGW_MOUNT_POINT}/share/man:${MANPATH}"
|
||||
INFOPATH="${MINGW_MOUNT_POINT}/local/info:${MINGW_MOUNT_POINT}/share/info:${INFOPATH}"
|
||||
;;
|
||||
*)
|
||||
PATH="${MSYS2_PATH}:/opt/bin${ORIGINAL_PATH:+:${ORIGINAL_PATH}}"
|
||||
PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig:/lib/pkgconfig"
|
||||
esac
|
||||
|
||||
CONFIG_SITE="/etc/config.site"
|
||||
|
||||
MAYBE_FIRST_START=false
|
||||
if [ ! -d "${HOME}" ]; then
|
||||
printf "\e[1;32mMSYS2 is starting for the first time. Executing the initial setup.\e[1;0m\n" 1>&2;
|
||||
MAYBE_FIRST_START=true
|
||||
fi
|
||||
|
||||
SYSCONFDIR="${SYSCONFDIR:=/etc}"
|
||||
|
||||
# TMP and TEMP as defined in the Windows environment must be kept
|
||||
|
@ -67,18 +77,8 @@ SYSCONFDIR="${SYSCONFDIR:=/etc}"
|
|||
# them set to the default Windows temporary directory or unset
|
||||
# can have unexpected consequences for msys2 apps, so we define
|
||||
# our own to match GNU/Linux behaviour.
|
||||
#
|
||||
# Note: this uppercase/lowercase workaround does not seem to work.
|
||||
# In fact, it has been removed from Cygwin some years ago. See:
|
||||
#
|
||||
# * https://cygwin.com/git/gitweb.cgi?p=cygwin-apps/base-files.git;a=commitdiff;h=3e54b07
|
||||
# * https://cygwin.com/git/gitweb.cgi?p=cygwin-apps/base-files.git;a=commitdiff;h=7f09aef
|
||||
#
|
||||
ORIGINAL_TMP="${ORIGINAL_TMP:-${TMP}}"
|
||||
ORIGINAL_TEMP="${ORIGINAL_TEMP:-${TEMP}}"
|
||||
unset TMP TEMP
|
||||
tmp=$(exec cygpath -w "$ORIGINAL_TMP" 2> /dev/null)
|
||||
temp=$(exec cygpath -w "$ORIGINAL_TEMP" 2> /dev/null)
|
||||
TMP="/tmp"
|
||||
TEMP="/tmp"
|
||||
|
||||
|
@ -90,14 +90,6 @@ if [ -e "${p}" ] ; then
|
|||
fi
|
||||
unset p
|
||||
|
||||
print_flags ()
|
||||
{
|
||||
(( $1 & 0x0002 )) && echo -n "binary" || echo -n "text"
|
||||
(( $1 & 0x0010 )) && echo -n ",exec"
|
||||
(( $1 & 0x0040 )) && echo -n ",cygexec"
|
||||
(( $1 & 0x0100 )) && echo -n ",notexec"
|
||||
}
|
||||
|
||||
# Shell dependent settings
|
||||
profile_d ()
|
||||
{
|
||||
|
@ -146,30 +138,10 @@ then
|
|||
export ACLOCAL_PATH
|
||||
fi
|
||||
|
||||
export PATH MANPATH INFOPATH PKG_CONFIG_PATH USER TMP TEMP PRINTER HOSTNAME PS1 SHELL tmp temp ORIGINAL_TMP ORIGINAL_TEMP ORIGINAL_PATH
|
||||
export PATH MANPATH INFOPATH PKG_CONFIG_PATH PKG_CONFIG_SYSTEM_INCLUDE_PATH PKG_CONFIG_SYSTEM_LIBRARY_PATH USER TMP TEMP PRINTER HOSTNAME PS1 SHELL ORIGINAL_TMP ORIGINAL_TEMP ORIGINAL_PATH CONFIG_SITE
|
||||
unset PATH_SEPARATOR
|
||||
|
||||
if [ "$MAYBE_FIRST_START" = "true" ]; then
|
||||
|
||||
if [ -f "/usr/bin/update-ca-trust" ]
|
||||
then
|
||||
sh /usr/bin/update-ca-trust
|
||||
fi
|
||||
|
||||
clear
|
||||
echo
|
||||
echo
|
||||
echo "###################################################################"
|
||||
echo "# #"
|
||||
echo "# #"
|
||||
echo "# C A U T I O N #"
|
||||
echo "# #"
|
||||
echo "# This is first start of MSYS2. #"
|
||||
echo "# You MUST restart shell to apply necessary actions. #"
|
||||
echo "# #"
|
||||
echo "# #"
|
||||
echo "###################################################################"
|
||||
echo
|
||||
echo
|
||||
printf "\e[1;32mInitial setup complete. MSYS2 is now ready to use.\e[1;0m\n" 1>&2;
|
||||
fi
|
||||
unset MAYBE_FIRST_START
|
||||
|
|
27
msys2/etc/profile.d/000-msys2.sh
Normal file
|
@ -0,0 +1,27 @@
|
|||
# Setting XDG_DATA_DIRS allows bash-completion to find completion files
|
||||
# installed in the mingw package prefixes as well
|
||||
if [ ! "${MINGW_PREFIX}" = "" ]; then
|
||||
XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
|
||||
export XDG_DATA_DIRS="$MINGW_PREFIX/share/:$XDG_DATA_DIRS"
|
||||
fi
|
||||
|
||||
# Warn the user on the first login shell in case we detect a too old Windows version
|
||||
_warn_deprecated_winver()
|
||||
{
|
||||
if [ "$__MSYS2_WINDOWS_VERSION_WARNING_DONE" = "true" ]; then
|
||||
return;
|
||||
fi
|
||||
|
||||
local winver
|
||||
winver=$(uname -s) # looks like `MINGW64_NT-10.0-22621`
|
||||
winver=${winver#*-} # strip off `<prefix>-`
|
||||
winver=${winver%%-*} # strip off `-<suffix>`, if any
|
||||
if [ "$winver" = "6.1" ] || [ "$winver" = "6.2" ]; then
|
||||
export __MSYS2_WINDOWS_VERSION_WARNING_DONE="true"
|
||||
printf "\e[1;33mThe MSYS2 project no longer supports Windows 7 and 8.0.\e[1;0m\n" 1>&2;
|
||||
printf "\e[1;33mFor more information visit https://www.msys2.org/docs/windows_support\e[1;0m\n" 1>&2;
|
||||
fi
|
||||
}
|
||||
|
||||
_warn_deprecated_winver;
|
||||
unset _warn_deprecated_winver;
|
|
@ -1,114 +0,0 @@
|
|||
# To the extent possible under law, the author(s) have dedicated all
|
||||
# copyright and related and neighboring rights to this software to the
|
||||
# public domain worldwide. This software is distributed without any warranty.
|
||||
# You should have received a copy of the CC0 Public Domain Dedication along
|
||||
# with this software.
|
||||
# If not, see <https://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
# ~/.inputrc: readline initialization file.
|
||||
|
||||
# The copy in your home directory (~/.inputrc) is yours, please
|
||||
# feel free to customise it to create a shell
|
||||
# environment to your liking. If you feel a change
|
||||
# would be benifitial to all, please feel free to send
|
||||
# a patch to the msys2 mailing list.
|
||||
|
||||
# the following line is actually
|
||||
# equivalent to "\C-?": delete-char
|
||||
# "\e[3~": delete-char
|
||||
|
||||
# VT
|
||||
# "\e[1~": beginning-of-line
|
||||
# "\e[4~": end-of-line
|
||||
|
||||
# kvt
|
||||
# "\e[H": beginning-of-line
|
||||
# "\e[F": end-of-line
|
||||
|
||||
# rxvt and konsole (i.e. the KDE-app...)
|
||||
# "\e[7~": beginning-of-line
|
||||
# "\e[8~": end-of-line
|
||||
|
||||
# VT220
|
||||
# "\eOH": beginning-of-line
|
||||
# "\eOF": end-of-line
|
||||
|
||||
# Allow 8-bit input/output
|
||||
# set meta-flag on
|
||||
# set convert-meta off
|
||||
# set input-meta on
|
||||
# set output-meta on
|
||||
#$if Bash
|
||||
# Don't ring bell on completion
|
||||
set bell-style none
|
||||
|
||||
# or, don't beep at me - show me
|
||||
#set bell-style visible
|
||||
|
||||
# Show all instead of beeping first
|
||||
set show-all-if-ambiguous off
|
||||
|
||||
# Filename completion/expansion
|
||||
set completion-ignore-case on
|
||||
#set show-all-if-ambiguous on
|
||||
|
||||
# Expand homedir name
|
||||
#set expand-tilde on
|
||||
|
||||
# Append "/" to all dirnames
|
||||
#set mark-directories on
|
||||
#set mark-symlinked-directories on
|
||||
|
||||
# visible-stats
|
||||
# Append a mark according to the file type in a listing
|
||||
set visible-stats off
|
||||
set mark-directories on
|
||||
|
||||
# Match all files
|
||||
#set match-hidden-files on
|
||||
|
||||
# 'Magic Space'
|
||||
# Insert a space character then performs
|
||||
# a history expansion in the line
|
||||
#Space: magic-space
|
||||
#$endif
|
||||
|
||||
# MSYSTEM is emacs based
|
||||
$if mode=emacs
|
||||
# Common to Console & RXVT
|
||||
"\C-?": backward-kill-line # Ctrl-BackSpace
|
||||
"\e[2~": paste-from-clipboard # "Ins. Key"
|
||||
"\e[5~": beginning-of-history # Page up
|
||||
"\e[6~": end-of-history # Page down
|
||||
|
||||
$if term=msys # RXVT
|
||||
"\e[7~": beginning-of-line # Home Key
|
||||
"\e[8~": end-of-line # End Key
|
||||
"\e[11~": display-shell-version # F1
|
||||
"\e[15~": re-read-init-file # F5
|
||||
"\e[12~": "Function Key 2"
|
||||
"\e[13~": "Function Key 3"
|
||||
"\e[14~": "Function Key 4"
|
||||
"\e[17~": "Function Key 6"
|
||||
"\e[18~": "Function Key 7"
|
||||
"\e[19~": "Function Key 8"
|
||||
"\e[20~": "Function Key 9"
|
||||
"\e[21~": "Function Key 10"
|
||||
$else
|
||||
# Eh, normal Console is not really cygwin anymore, is it? Using 'else' instead. -mstormo
|
||||
# $if term=cygwin # Console
|
||||
"\e[1~": beginning-of-line # Home Key
|
||||
"\e[4~": end-of-line # End Key
|
||||
"\e[3~": delete-char # Delete Key
|
||||
"\e\e[C": forward-word # Alt-Right
|
||||
"\e\e[D": backward-word # Alt-Left
|
||||
"\e[1;5C": forward-word # ctrl + right
|
||||
"\e[1;5D": backward-word # ctrl + left
|
||||
"\e[17~": "Function Key 6"
|
||||
"\e[18~": "Function Key 7"
|
||||
"\e[19~": "Function Key 8"
|
||||
"\e[20~": "Function Key 9"
|
||||
"\e[21~": "Function Key 10"
|
||||
"\e[23~": "Function Key 11"
|
||||
$endif
|
||||
$endif
|
|
@ -27,26 +27,3 @@ if [ -n "${BASH_VERSION}" ]; then
|
|||
source "${HOME}/.bashrc"
|
||||
fi
|
||||
fi
|
||||
|
||||
agm2() {
|
||||
local MINGW_DIRS="mingw32 mingw64"
|
||||
local AG_FIND=
|
||||
|
||||
for dir in ${MINGW_DIRS}; do
|
||||
if type -p /${dir}/bin/ag >/dev/null; then
|
||||
AG_FIND=/${dir}/bin/ag
|
||||
fi
|
||||
done
|
||||
|
||||
if ! type -p /usr/bin/git >/dev/null; then
|
||||
echo "bash: git: command not found. Please install \"git\" package."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -n "$AG_FIND" ]; then
|
||||
$AG_FIND --makepkg --depth 1 "$@" $(git rev-parse --show-toplevel)
|
||||
else
|
||||
echo "bash: ag: conmmand not found. Please install \"mingw-w64-i686-ag\" or \"mingw-w64-x86_64-ag\" package."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 30 KiB |
|
@ -1,21 +0,0 @@
|
|||
# This file is in public domain.
|
||||
# Original author: Karlson2k (Evgeny Grin)
|
||||
# Written for MSys2/MinGW64 to help running 'configure' scripts
|
||||
|
||||
# Defaults for MinGW64-targeted programs
|
||||
|
||||
# Set proper selfname on bash and fallback to default name on other shells
|
||||
test -n "${BASH_SOURCE}" 2>/dev/null && config_site_me="${BASH_SOURCE[0]##*/}" || config_site_me=config.site
|
||||
|
||||
# Set default 'host' to speedup configure
|
||||
if test -z "$build_alias"; then
|
||||
build_alias="${MSYSTEM_CHOST-i686-w64-mingw32}" && \
|
||||
${as_echo-echo} "$config_site_me:${as_lineno-$LINENO}: default build_alias set to $build_alias" >&5
|
||||
fi
|
||||
|
||||
# Set default 'prefix' to "/mingw32"
|
||||
if ( test -z "$prefix" || test "x$prefix" = "xNONE" ) && \
|
||||
( test -z "$exec_prefix" || test "x$exec_prefix" = "xNONE" ); then
|
||||
prefix="${MSYSTEM_PREFIX-/mingw32}" && \
|
||||
${as_echo-echo} "$config_site_me:${as_lineno-$LINENO}: default prefix set to $prefix" >&5
|
||||
fi
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 30 KiB |
|
@ -1,21 +0,0 @@
|
|||
# This file is in public domain.
|
||||
# Original author: Karlson2k (Evgeny Grin)
|
||||
# Written for MSys2/MinGW64 to help running 'configure' scripts
|
||||
|
||||
# Defaults for MinGW64-targeted programs
|
||||
|
||||
# Set proper selfname on bash and fallback to default name on other shells
|
||||
test -n "${BASH_SOURCE}" 2>/dev/null && config_site_me="${BASH_SOURCE[0]##*/}" || config_site_me=config.site
|
||||
|
||||
# Set default 'host' to speedup configure
|
||||
if test -z "$build_alias"; then
|
||||
build_alias="${MSYSTEM_CHOST-x86_64-w64-mingw32}" && \
|
||||
${as_echo-echo} "$config_site_me:${as_lineno-$LINENO}: default build_alias set to $build_alias" >&5
|
||||
fi
|
||||
|
||||
# Set default 'prefix' to "/mingw64"
|
||||
if ( test -z "$prefix" || test "x$prefix" = "xNONE" ) && \
|
||||
( test -z "$exec_prefix" || test "x$exec_prefix" = "xNONE" ); then
|
||||
prefix="${MSYSTEM_PREFIX-/mingw64}" && \
|
||||
${as_echo-echo} "$config_site_me:${as_lineno-$LINENO}: default prefix set to $prefix" >&5
|
||||
fi
|
BIN
msys2/msys2.exe
BIN
msys2/msys2.ico
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 38 KiB |
|
@ -1,225 +1,241 @@
|
|||
@echo off
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
set "WD=%__CD__%"
|
||||
if NOT EXIST "%WD%msys-2.0.dll" set "WD=%~dp0usr\bin\"
|
||||
set "LOGINSHELL=bash"
|
||||
set /a msys2_shiftCounter=0
|
||||
|
||||
rem To activate windows native symlinks uncomment next line
|
||||
rem set MSYS=winsymlinks:nativestrict
|
||||
|
||||
rem Set debugging program for errors
|
||||
rem set MSYS=error_start:%WD%../../mingw64/bin/qtcreator.exe^|-debug^|^<process-id^>
|
||||
|
||||
rem To export full current PATH from environment into MSYS2 use '-use-full-path' parameter
|
||||
rem or uncomment next line
|
||||
rem set MSYS2_PATH_TYPE=inherit
|
||||
|
||||
:checkparams
|
||||
rem Help option
|
||||
if "x%~1" == "x-help" (
|
||||
call :printhelp "%~nx0"
|
||||
exit /b %ERRORLEVEL%
|
||||
)
|
||||
if "x%~1" == "x--help" (
|
||||
call :printhelp "%~nx0"
|
||||
exit /b %ERRORLEVEL%
|
||||
)
|
||||
if "x%~1" == "x-?" (
|
||||
call :printhelp "%~nx0"
|
||||
exit /b %ERRORLEVEL%
|
||||
)
|
||||
if "x%~1" == "x/?" (
|
||||
call :printhelp "%~nx0"
|
||||
exit /b %ERRORLEVEL%
|
||||
)
|
||||
rem Shell types
|
||||
if "x%~1" == "x-msys" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=MSYS& goto :checkparams
|
||||
if "x%~1" == "x-msys2" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=MSYS& goto :checkparams
|
||||
if "x%~1" == "x-mingw32" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=MINGW32& goto :checkparams
|
||||
if "x%~1" == "x-mingw64" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=MINGW64& goto :checkparams
|
||||
if "x%~1" == "x-mingw" shift& set /a msys2_shiftCounter+=1& (if exist "%WD%..\..\mingw64" (set MSYSTEM=MINGW64) else (set MSYSTEM=MINGW32))& goto :checkparams
|
||||
rem Console types
|
||||
if "x%~1" == "x-mintty" shift& set /a msys2_shiftCounter+=1& set MSYSCON=mintty.exe& goto :checkparams
|
||||
if "x%~1" == "x-conemu" shift& set /a msys2_shiftCounter+=1& set MSYSCON=conemu& goto :checkparams
|
||||
if "x%~1" == "x-defterm" shift& set /a msys2_shiftCounter+=1& set MSYSCON=defterm& goto :checkparams
|
||||
rem Other parameters
|
||||
if "x%~1" == "x-full-path" shift& set /a msys2_shiftCounter+=1& set MSYS2_PATH_TYPE=inherit& goto :checkparams
|
||||
if "x%~1" == "x-use-full-path" shift& set /a msys2_shiftCounter+=1& set MSYS2_PATH_TYPE=inherit& goto :checkparams
|
||||
if "x%~1" == "x-here" shift& set /a msys2_shiftCounter+=1& set CHERE_INVOKING=enabled_from_arguments& goto :checkparams
|
||||
if "x%~1" == "x-where" (
|
||||
if "x%~2" == "x" (
|
||||
echo Working directory is not specified for -where parameter. 1>&2
|
||||
exit /b 2
|
||||
)
|
||||
cd /d "%~2" || (
|
||||
echo Cannot set specified working diretory "%~2". 1>&2
|
||||
exit /b 2
|
||||
)
|
||||
set CHERE_INVOKING=enabled_from_arguments
|
||||
|
||||
rem Ensure parentheses in argument do not interfere with FOR IN loop below.
|
||||
set msys2_arg="%~2"
|
||||
call :substituteparens msys2_arg
|
||||
call :removequotes msys2_arg
|
||||
|
||||
rem Increment msys2_shiftCounter by number of words in argument (as cmd.exe saw it).
|
||||
rem (Note that this form of FOR IN loop uses same delimiters as parameters.)
|
||||
for %%a in (!msys2_arg!) do set /a msys2_shiftCounter+=1
|
||||
)& shift& shift& set /a msys2_shiftCounter+=1& goto :checkparams
|
||||
if "x%~1" == "x-no-start" shift& set /a msys2_shiftCounter+=1& set MSYS2_NOSTART=yes& goto :checkparams
|
||||
if "x%~1" == "x-shell" (
|
||||
if "x%~2" == "x" (
|
||||
echo Shell not specified for -shell parameter. 1>&2
|
||||
exit /b 2
|
||||
)
|
||||
set LOGINSHELL="%~2"
|
||||
call :removequotes LOGINSHELL
|
||||
|
||||
set msys2_arg="%~2"
|
||||
call :substituteparens msys2_arg
|
||||
call :removequotes msys2_arg
|
||||
for %%a in (!msys2_arg!) do set /a msys2_shiftCounter+=1
|
||||
)& shift& shift& set /a msys2_shiftCounter+=1& goto :checkparams
|
||||
|
||||
rem Collect remaining command line arguments to be passed to shell
|
||||
if %msys2_shiftCounter% equ 0 set SHELL_ARGS=%* & goto cleanvars
|
||||
set msys2_full_cmd=%*
|
||||
for /f "tokens=%msys2_shiftCounter%,* delims=,;= " %%i in ("!msys2_full_cmd!") do set SHELL_ARGS=%%j
|
||||
|
||||
:cleanvars
|
||||
set msys2_arg=
|
||||
set msys2_shiftCounter=
|
||||
set msys2_full_cmd=
|
||||
|
||||
rem Setup proper title and icon
|
||||
if "%MSYSTEM%" == "MINGW32" (
|
||||
set "CONTITLE=MinGW x32"
|
||||
set "CONICON=mingw32.ico"
|
||||
) else if "%MSYSTEM%" == "MINGW64" (
|
||||
set "CONTITLE=MinGW x64"
|
||||
set "CONICON=mingw64.ico"
|
||||
) else (
|
||||
set "CONTITLE=MSYS2 MSYS"
|
||||
set "CONICON=msys2.ico"
|
||||
)
|
||||
|
||||
if "x%MSYSCON%" == "xmintty.exe" goto startmintty
|
||||
if "x%MSYSCON%" == "xconemu" goto startconemu
|
||||
if "x%MSYSCON%" == "xdefterm" goto startsh
|
||||
|
||||
if NOT EXIST "%WD%mintty.exe" goto startsh
|
||||
set MSYSCON=mintty.exe
|
||||
:startmintty
|
||||
if not defined MSYS2_NOSTART (
|
||||
start "%CONTITLE%" "%WD%mintty" -i "/%CONICON%" -t "%CONTITLE%" "/usr/bin/%LOGINSHELL%" --login !SHELL_ARGS!
|
||||
) else (
|
||||
"%WD%mintty" -i "/%CONICON%" -t "%CONTITLE%" "/usr/bin/%LOGINSHELL%" --login !SHELL_ARGS!
|
||||
)
|
||||
exit /b %ERRORLEVEL%
|
||||
|
||||
:startconemu
|
||||
call :conemudetect || (
|
||||
echo ConEmu not found. Exiting. 1>&2
|
||||
exit /b 1
|
||||
)
|
||||
if not defined MSYS2_NOSTART (
|
||||
start "%CONTITLE%" "%ComEmuCommand%" /Here /Icon "%WD%..\..\%CONICON%" /cmd "%WD%\%LOGINSHELL%" --login !SHELL_ARGS!
|
||||
) else (
|
||||
"%ComEmuCommand%" /Here /Icon "%WD%..\..\%CONICON%" /cmd "%WD%\%LOGINSHELL%" --login !SHELL_ARGS!
|
||||
)
|
||||
exit /b %ERRORLEVEL%
|
||||
|
||||
:startsh
|
||||
set MSYSCON=
|
||||
if not defined MSYS2_NOSTART (
|
||||
start "%CONTITLE%" "%WD%\%LOGINSHELL%" --login !SHELL_ARGS!
|
||||
) else (
|
||||
"%WD%\%LOGINSHELL%" --login !SHELL_ARGS!
|
||||
)
|
||||
exit /b %ERRORLEVEL%
|
||||
|
||||
:EOF
|
||||
exit /b 0
|
||||
|
||||
:conemudetect
|
||||
set ComEmuCommand=
|
||||
if defined ConEmuDir (
|
||||
if exist "%ConEmuDir%\ConEmu64.exe" (
|
||||
set "ComEmuCommand=%ConEmuDir%\ConEmu64.exe"
|
||||
set MSYSCON=conemu64.exe
|
||||
) else if exist "%ConEmuDir%\ConEmu.exe" (
|
||||
set "ComEmuCommand=%ConEmuDir%\ConEmu.exe"
|
||||
set MSYSCON=conemu.exe
|
||||
)
|
||||
)
|
||||
if not defined ComEmuCommand (
|
||||
ConEmu64.exe /Exit 2>nul && (
|
||||
set ComEmuCommand=ConEmu64.exe
|
||||
set MSYSCON=conemu64.exe
|
||||
) || (
|
||||
ConEmu.exe /Exit 2>nul && (
|
||||
set ComEmuCommand=ConEmu.exe
|
||||
set MSYSCON=conemu.exe
|
||||
)
|
||||
)
|
||||
)
|
||||
if not defined ComEmuCommand (
|
||||
FOR /F "tokens=*" %%A IN ('reg.exe QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ConEmu64.exe" /ve 2^>nul ^| find "REG_SZ"') DO (
|
||||
set "ComEmuCommand=%%A"
|
||||
)
|
||||
if defined ComEmuCommand (
|
||||
call set "ComEmuCommand=%%ComEmuCommand:*REG_SZ =%%"
|
||||
set MSYSCON=conemu64.exe
|
||||
) else (
|
||||
FOR /F "tokens=*" %%A IN ('reg.exe QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ConEmu.exe" /ve 2^>nul ^| find "REG_SZ"') DO (
|
||||
set "ComEmuCommand=%%A"
|
||||
)
|
||||
if defined ComEmuCommand (
|
||||
call set "ComEmuCommand=%%ComEmuCommand:*REG_SZ =%%"
|
||||
set MSYSCON=conemu.exe
|
||||
)
|
||||
)
|
||||
)
|
||||
if not defined ComEmuCommand exit /b 2
|
||||
exit /b 0
|
||||
|
||||
:printhelp
|
||||
echo Usage:
|
||||
echo %~1 [options] [login shell parameters]
|
||||
echo.
|
||||
echo Options:
|
||||
echo -mingw32 ^| -mingw64 ^| -msys[2] Set shell type
|
||||
echo -defterm ^| -mintty ^| -conemu Set terminal type
|
||||
echo -here Use current directory as working
|
||||
echo directory
|
||||
echo -where DIRECTORY Use specified DIRECTORY as working
|
||||
echo directory
|
||||
echo -[use-]full-path Use full current PATH variable
|
||||
echo instead of trimming to minimal
|
||||
echo -no-start Do not use "start" command and
|
||||
echo return login shell resulting
|
||||
echo errorcode as this batch file
|
||||
echo resulting errorcode
|
||||
echo -shell SHELL Set login shell
|
||||
echo -help ^| --help ^| -? ^| /? Display this help and exit
|
||||
echo.
|
||||
echo Any parameter that cannot be treated as valid option and all
|
||||
echo following parameters are passed as login shell command parameters.
|
||||
echo.
|
||||
exit /b 0
|
||||
|
||||
:removequotes
|
||||
FOR /F "delims=" %%A IN ('echo %%%1%%') DO set %1=%%~A
|
||||
GOTO :eof
|
||||
|
||||
:substituteparens
|
||||
SETLOCAL
|
||||
FOR /F "delims=" %%A IN ('echo %%%1%%') DO (
|
||||
set value=%%A
|
||||
set value=!value:^(=x!
|
||||
set value=!value:^)=x!
|
||||
)
|
||||
ENDLOCAL & set %1=%value%
|
||||
GOTO :eof
|
||||
@echo off
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
set "WD=%__CD__%"
|
||||
if NOT EXIST "%WD%msys-2.0.dll" set "WD=%~dp0usr\bin\"
|
||||
set "LOGINSHELL=bash"
|
||||
set /a msys2_shiftCounter=0
|
||||
|
||||
rem To activate windows native symlinks uncomment next line
|
||||
rem set MSYS=winsymlinks:nativestrict
|
||||
|
||||
rem Set debugging program for errors
|
||||
rem set MSYS=error_start:%WD%../../mingw64/bin/qtcreator.exe^|-debug^|^<process-id^>
|
||||
|
||||
rem To export full current PATH from environment into MSYS2 use '-use-full-path' parameter
|
||||
rem or uncomment next line
|
||||
rem set MSYS2_PATH_TYPE=inherit
|
||||
|
||||
:checkparams
|
||||
rem Help option
|
||||
if "x%~1" == "x-help" (
|
||||
call :printhelp "%~nx0"
|
||||
exit /b %ERRORLEVEL%
|
||||
)
|
||||
if "x%~1" == "x--help" (
|
||||
call :printhelp "%~nx0"
|
||||
exit /b %ERRORLEVEL%
|
||||
)
|
||||
if "x%~1" == "x-?" (
|
||||
call :printhelp "%~nx0"
|
||||
exit /b %ERRORLEVEL%
|
||||
)
|
||||
if "x%~1" == "x/?" (
|
||||
call :printhelp "%~nx0"
|
||||
exit /b %ERRORLEVEL%
|
||||
)
|
||||
rem Shell types
|
||||
if "x%~1" == "x-msys" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=MSYS& goto :checkparams
|
||||
if "x%~1" == "x-msys2" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=MSYS& goto :checkparams
|
||||
if "x%~1" == "x-mingw32" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=MINGW32& goto :checkparams
|
||||
if "x%~1" == "x-mingw64" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=MINGW64& goto :checkparams
|
||||
if "x%~1" == "x-ucrt64" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=UCRT64& goto :checkparams
|
||||
if "x%~1" == "x-clang64" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=CLANG64& goto :checkparams
|
||||
if "x%~1" == "x-clang32" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=CLANG32& goto :checkparams
|
||||
if "x%~1" == "x-clangarm64" shift& set /a msys2_shiftCounter+=1& set MSYSTEM=CLANGARM64& goto :checkparams
|
||||
if "x%~1" == "x-mingw" shift& set /a msys2_shiftCounter+=1& (if exist "%WD%..\..\mingw64" (set MSYSTEM=MINGW64) else (set MSYSTEM=MINGW32))& goto :checkparams
|
||||
rem Console types
|
||||
if "x%~1" == "x-mintty" shift& set /a msys2_shiftCounter+=1& set MSYSCON=mintty.exe& goto :checkparams
|
||||
if "x%~1" == "x-conemu" shift& set /a msys2_shiftCounter+=1& set MSYSCON=conemu& goto :checkparams
|
||||
if "x%~1" == "x-defterm" shift& set /a msys2_shiftCounter+=1& set MSYSCON=defterm& goto :checkparams
|
||||
rem Other parameters
|
||||
if "x%~1" == "x-full-path" shift& set /a msys2_shiftCounter+=1& set MSYS2_PATH_TYPE=inherit& goto :checkparams
|
||||
if "x%~1" == "x-use-full-path" shift& set /a msys2_shiftCounter+=1& set MSYS2_PATH_TYPE=inherit& goto :checkparams
|
||||
if "x%~1" == "x-here" shift& set /a msys2_shiftCounter+=1& set CHERE_INVOKING=enabled_from_arguments& goto :checkparams
|
||||
if "x%~1" == "x-where" (
|
||||
if "x%~2" == "x" (
|
||||
echo Working directory is not specified for -where parameter. 1>&2
|
||||
exit /b 2
|
||||
)
|
||||
cd /d "%~2" || (
|
||||
echo Cannot set specified working diretory "%~2". 1>&2
|
||||
exit /b 2
|
||||
)
|
||||
set CHERE_INVOKING=enabled_from_arguments
|
||||
|
||||
rem Ensure parentheses in argument do not interfere with FOR IN loop below.
|
||||
set msys2_arg="%~2"
|
||||
call :substituteparens msys2_arg
|
||||
call :removequotes msys2_arg
|
||||
|
||||
rem Increment msys2_shiftCounter by number of words in argument (as cmd.exe saw it).
|
||||
rem (Note that this form of FOR IN loop uses same delimiters as parameters.)
|
||||
for %%a in (!msys2_arg!) do set /a msys2_shiftCounter+=1
|
||||
)& shift& shift& set /a msys2_shiftCounter+=1& goto :checkparams
|
||||
if "x%~1" == "x-no-start" shift& set /a msys2_shiftCounter+=1& set MSYS2_NOSTART=yes& goto :checkparams
|
||||
if "x%~1" == "x-shell" (
|
||||
if "x%~2" == "x" (
|
||||
echo Shell not specified for -shell parameter. 1>&2
|
||||
exit /b 2
|
||||
)
|
||||
set LOGINSHELL="%~2"
|
||||
call :removequotes LOGINSHELL
|
||||
|
||||
set msys2_arg="%~2"
|
||||
call :substituteparens msys2_arg
|
||||
call :removequotes msys2_arg
|
||||
for %%a in (!msys2_arg!) do set /a msys2_shiftCounter+=1
|
||||
)& shift& shift& set /a msys2_shiftCounter+=1& goto :checkparams
|
||||
|
||||
rem Collect remaining command line arguments to be passed to shell
|
||||
if %msys2_shiftCounter% equ 0 set SHELL_ARGS=%* & goto cleanvars
|
||||
set msys2_full_cmd=%*
|
||||
for /f "tokens=%msys2_shiftCounter%,* delims=,;= " %%i in ("!msys2_full_cmd!") do set SHELL_ARGS=%%j
|
||||
|
||||
:cleanvars
|
||||
set msys2_arg=
|
||||
set msys2_shiftCounter=
|
||||
set msys2_full_cmd=
|
||||
|
||||
rem Setup proper title and icon
|
||||
if "%MSYSTEM%" == "MINGW32" (
|
||||
set "CONTITLE=MinGW x32"
|
||||
set "CONICON=mingw32.ico"
|
||||
) else if "%MSYSTEM%" == "MINGW64" (
|
||||
set "CONTITLE=MinGW x64"
|
||||
set "CONICON=mingw64.ico"
|
||||
) else if "%MSYSTEM%" == "UCRT64" (
|
||||
set "CONTITLE=MinGW UCRT x64"
|
||||
set "CONICON=ucrt64.ico"
|
||||
) else if "%MSYSTEM%" == "CLANG64" (
|
||||
set "CONTITLE=MinGW Clang x64"
|
||||
set "CONICON=clang64.ico"
|
||||
) else if "%MSYSTEM%" == "CLANG32" (
|
||||
set "CONTITLE=MinGW Clang x32"
|
||||
set "CONICON=clang32.ico"
|
||||
) else if "%MSYSTEM%" == "CLANGARM64" (
|
||||
set "CONTITLE=MinGW Clang ARM64"
|
||||
set "CONICON=clangarm64.ico"
|
||||
) else (
|
||||
set "CONTITLE=MSYS2 MSYS"
|
||||
set "CONICON=msys2.ico"
|
||||
)
|
||||
|
||||
if "x%MSYSCON%" == "xmintty.exe" goto startmintty
|
||||
if "x%MSYSCON%" == "xconemu" goto startconemu
|
||||
if "x%MSYSCON%" == "xdefterm" goto startsh
|
||||
|
||||
if NOT EXIST "%WD%mintty.exe" goto startsh
|
||||
set MSYSCON=mintty.exe
|
||||
:startmintty
|
||||
if not defined MSYS2_NOSTART (
|
||||
start "%CONTITLE%" "%WD%mintty" -i "/%CONICON%" -t "%CONTITLE%" "/usr/bin/%LOGINSHELL%" -l !SHELL_ARGS!
|
||||
) else (
|
||||
"%WD%mintty" -i "/%CONICON%" -t "%CONTITLE%" "/usr/bin/%LOGINSHELL%" -l !SHELL_ARGS!
|
||||
)
|
||||
exit /b %ERRORLEVEL%
|
||||
|
||||
:startconemu
|
||||
call :conemudetect || (
|
||||
echo ConEmu not found. Exiting. 1>&2
|
||||
exit /b 1
|
||||
)
|
||||
if not defined MSYS2_NOSTART (
|
||||
start "%CONTITLE%" "%ComEmuCommand%" /Here /Icon "%WD%..\..\%CONICON%" /cmd "%WD%\%LOGINSHELL%" -l !SHELL_ARGS!
|
||||
) else (
|
||||
"%ComEmuCommand%" /Here /Icon "%WD%..\..\%CONICON%" /cmd "%WD%\%LOGINSHELL%" -l !SHELL_ARGS!
|
||||
)
|
||||
exit /b %ERRORLEVEL%
|
||||
|
||||
:startsh
|
||||
set MSYSCON=
|
||||
if not defined MSYS2_NOSTART (
|
||||
start "%CONTITLE%" "%WD%\%LOGINSHELL%" -l !SHELL_ARGS!
|
||||
) else (
|
||||
"%WD%\%LOGINSHELL%" -l !SHELL_ARGS!
|
||||
)
|
||||
exit /b %ERRORLEVEL%
|
||||
|
||||
:EOF
|
||||
exit /b 0
|
||||
|
||||
:conemudetect
|
||||
set ComEmuCommand=
|
||||
if defined ConEmuDir (
|
||||
if exist "%ConEmuDir%\ConEmu64.exe" (
|
||||
set "ComEmuCommand=%ConEmuDir%\ConEmu64.exe"
|
||||
set MSYSCON=conemu64.exe
|
||||
) else if exist "%ConEmuDir%\ConEmu.exe" (
|
||||
set "ComEmuCommand=%ConEmuDir%\ConEmu.exe"
|
||||
set MSYSCON=conemu.exe
|
||||
)
|
||||
)
|
||||
if not defined ComEmuCommand (
|
||||
ConEmu64.exe /Exit 2>nul && (
|
||||
set ComEmuCommand=ConEmu64.exe
|
||||
set MSYSCON=conemu64.exe
|
||||
) || (
|
||||
ConEmu.exe /Exit 2>nul && (
|
||||
set ComEmuCommand=ConEmu.exe
|
||||
set MSYSCON=conemu.exe
|
||||
)
|
||||
)
|
||||
)
|
||||
if not defined ComEmuCommand (
|
||||
FOR /F "tokens=*" %%A IN ('reg.exe QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ConEmu64.exe" /ve 2^>nul ^| find "REG_SZ"') DO (
|
||||
set "ComEmuCommand=%%A"
|
||||
)
|
||||
if defined ComEmuCommand (
|
||||
call set "ComEmuCommand=%%ComEmuCommand:*REG_SZ =%%"
|
||||
set MSYSCON=conemu64.exe
|
||||
) else (
|
||||
FOR /F "tokens=*" %%A IN ('reg.exe QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ConEmu.exe" /ve 2^>nul ^| find "REG_SZ"') DO (
|
||||
set "ComEmuCommand=%%A"
|
||||
)
|
||||
if defined ComEmuCommand (
|
||||
call set "ComEmuCommand=%%ComEmuCommand:*REG_SZ =%%"
|
||||
set MSYSCON=conemu.exe
|
||||
)
|
||||
)
|
||||
)
|
||||
if not defined ComEmuCommand exit /b 2
|
||||
exit /b 0
|
||||
|
||||
:printhelp
|
||||
echo Usage:
|
||||
echo %~1 [options] [login shell parameters]
|
||||
echo.
|
||||
echo Options:
|
||||
echo -mingw32 ^| -mingw64 ^| -ucrt64 ^| -clang64 ^| -msys[2] Set shell type
|
||||
echo -defterm ^| -mintty ^| -conemu Set terminal type
|
||||
echo -here Use current directory as working
|
||||
echo directory
|
||||
echo -where DIRECTORY Use specified DIRECTORY as working
|
||||
echo directory
|
||||
echo -[use-]full-path Use full current PATH variable
|
||||
echo instead of trimming to minimal
|
||||
echo -no-start Do not use "start" command and
|
||||
echo return login shell resulting
|
||||
echo errorcode as this batch file
|
||||
echo resulting errorcode
|
||||
echo -shell SHELL Set login shell
|
||||
echo -help ^| --help ^| -? ^| /? Display this help and exit
|
||||
echo.
|
||||
echo Any parameter that cannot be treated as valid option and all
|
||||
echo following parameters are passed as login shell command parameters.
|
||||
echo.
|
||||
exit /b 0
|
||||
|
||||
:removequotes
|
||||
FOR /F "delims=" %%A IN ('echo %%%1%%') DO set %1=%%~A
|
||||
GOTO :eof
|
||||
|
||||
:substituteparens
|
||||
SETLOCAL
|
||||
FOR /F "delims=" %%A IN ('echo %%%1%%') DO (
|
||||
set value=%%A
|
||||
set value=!value:^(=x!
|
||||
set value=!value:^)=x!
|
||||
)
|
||||
ENDLOCAL & set %1=%value%
|
||||
GOTO :eof
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
export PSVERSION="3.8"
|
||||
export LANG=en_US.UTF-8
|
||||
export PS1='\[\033]0;ProxSpace v$PSVERSION - $MSYSTEM:\w\007\033[32m\]pm3 \[\033[33m\]\w\[\033[0m\]$ '
|
||||
export PATH=/ps/bin:$PATH
|
||||
alias ls='ls -hF --color=auto'
|
||||
|
||||
if [ -f /ps/bin/ps-upgrade.new ]; then
|
||||
rm /ps/bin/ps-upgrade
|
||||
mv /ps/bin/ps-upgrade.new /ps/bin/ps-upgrade
|
||||
fi
|
||||
|
||||
if [ \( ! -f /ps/installed64.txt -a "$MSYSTEM" == "MINGW64" \) ]; then
|
||||
if [ "$MAYBE_FIRST_START" = "true" ]; then
|
||||
yes | pacman -Syuu
|
||||
else
|
||||
if [ -z "$PSSKIPRANKING" ]; then
|
||||
ps-rankmirrors
|
||||
fi
|
||||
|
||||
yes | pacman -Su
|
||||
ps-setup
|
||||
fi
|
||||
fi
|
|
@ -1,6 +0,0 @@
|
|||
@echo off
|
||||
set HOME=%~dp0
|
||||
set QT_PLUGIN_PATH=%HOME%\libs\
|
||||
set QT_QPA_PLATFORM_PLUGIN_PATH=%QT_PLUGIN_PATH%
|
||||
set PATH=%QT_PLUGIN_PATH%;%QT_PLUGIN_PATH%shell\;%PATH%
|
||||
set MSYSTEM=MINGW64
|
|
@ -1,23 +0,0 @@
|
|||
check_install () {
|
||||
echo "Installing: $1"
|
||||
pacman -Q $1 > /dev/null
|
||||
if [ $? == 1 ]; then
|
||||
pacman --noconfirm --overwrite='*' -S $1
|
||||
fi
|
||||
}
|
||||
|
||||
setup_proxspace ()
|
||||
{
|
||||
if [ "$MSYSTEM" == "MINGW64" ]; then
|
||||
for pkg in $(grep "^[^#;]" /ps/packages.txt); do
|
||||
check_install $pkg
|
||||
done
|
||||
|
||||
python3 -m pip install ansicolors sslcrypto
|
||||
|
||||
yes | pacman -Sc
|
||||
|
||||
echo $(date '+%Y-%m-%d %H:%M:%S') > /ps/installed64.txt
|
||||
fi
|
||||
}
|
||||
setup_proxspace
|
|
@ -1,17 +0,0 @@
|
|||
rm /ps/installed64.txt &> /dev/null
|
||||
git clone https://github.com/Gator96100/ProxSpace.git /ps-upgrade
|
||||
mv /ps-upgrade/msys2/ps/bin/ps-upgrade /ps-upgrade/msys2/ps/bin/ps-upgrade.new
|
||||
if [ "$#" -ne 0 ]; then
|
||||
cd /ps-upgrade
|
||||
git checkout $@
|
||||
fi
|
||||
shopt -s extglob
|
||||
cd /ps
|
||||
rm -rf -- !(bin)
|
||||
cd /ps/bin
|
||||
rm -rf -- !(ps-upgrade)
|
||||
cp -R /ps-upgrade/msys2/ps /
|
||||
rm -rf /ps-upgrade
|
||||
yes | pacman -Syuu
|
||||
echo "Please restart ProxSpace"
|
||||
sleep infinity
|
|
@ -1,85 +0,0 @@
|
|||
#
|
||||
# /etc/pacman.conf
|
||||
#
|
||||
# See the pacman.conf(5) manpage for option and repository directives
|
||||
|
||||
#
|
||||
# GENERAL OPTIONS
|
||||
#
|
||||
[options]
|
||||
# The following paths are commented out with their default values listed.
|
||||
# If you wish to use different paths, uncomment and update the paths.
|
||||
#RootDir = /
|
||||
#DBPath = /var/lib/pacman/
|
||||
#CacheDir = /var/cache/pacman/pkg/
|
||||
#LogFile = /var/log/pacman.log
|
||||
#GPGDir = /etc/pacman.d/gnupg/
|
||||
HoldPkg = pacman
|
||||
#XferCommand = /usr/bin/curl -C - -f %u > %o
|
||||
XferCommand = /usr/bin/wget --passive-ftp --tries=3 --timeout=5 -c -O %o %u
|
||||
#CleanMethod = KeepInstalled
|
||||
#UseDelta = 0.7
|
||||
Architecture = auto
|
||||
|
||||
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
|
||||
#IgnorePkg =
|
||||
#IgnoreGroup =
|
||||
|
||||
#NoUpgrade =
|
||||
#NoExtract =
|
||||
|
||||
# Misc options
|
||||
#UseSyslog
|
||||
Color
|
||||
#TotalDownload
|
||||
CheckSpace
|
||||
#VerbosePkgLists
|
||||
|
||||
# By default, pacman accepts packages signed by keys that its local keyring
|
||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
|
||||
#SigLevel = Never
|
||||
SigLevel = Required DatabaseOptional
|
||||
LocalFileSigLevel = Optional
|
||||
#RemoteFileSigLevel = Required
|
||||
|
||||
# NOTE: You must run `pacman-key --init` before first using pacman; the local
|
||||
# keyring can then be populated with the keys of all official Arch Linux
|
||||
# packagers with `pacman-key --populate archlinux`.
|
||||
|
||||
#
|
||||
# REPOSITORIES
|
||||
# - can be defined here or included from another file
|
||||
# - pacman will search repositories in the order defined here
|
||||
# - local/custom mirrors can be added here or in separate files
|
||||
# - repositories listed first will take precedence when packages
|
||||
# have identical names, regardless of version number
|
||||
# - URLs will have $repo replaced by the name of the current repo
|
||||
# - URLs will have $arch replaced by the name of the architecture
|
||||
#
|
||||
# Repository entries are of the format:
|
||||
# [repo-name]
|
||||
# Server = ServerName
|
||||
# Include = IncludePath
|
||||
#
|
||||
# The header [repo-name] is crucial - it must be present and
|
||||
# uncommented to enable the repo.
|
||||
#
|
||||
|
||||
# The testing repositories are disabled by default. To enable, uncomment the
|
||||
# repo name header and Include lines. You can add preferred servers immediately
|
||||
# after the header, and they will be used before the default mirrors.
|
||||
|
||||
[mingw32]
|
||||
Include = /etc/pacman.d/mirrorlist.mingw32
|
||||
|
||||
[mingw64]
|
||||
Include = /etc/pacman.d/mirrorlist.mingw64
|
||||
|
||||
[msys]
|
||||
Include = /etc/pacman.d/mirrorlist.msys
|
||||
|
||||
# An example of a custom package repository. See the pacman manpage for
|
||||
# tips on creating your own repositories.
|
||||
#[custom]
|
||||
#SigLevel = Optional TrustAll
|
||||
#Server = file:///home/custompkgs
|
|
@ -1,18 +0,0 @@
|
|||
@echo off
|
||||
SET PATH=%cd%\msys2\usr\bin;%PATH%
|
||||
copy /Y %cd%\msys2\ps\*.post %cd%\msys2\etc\post-install\ >NUL
|
||||
copy /Y %cd%\msys2\ps\*.conf %cd%\msys2\etc\ >NUL
|
||||
|
||||
echo # For a description of the file format, see the Users Guide >%cd%\msys2/etc/fstab
|
||||
echo # http://cygwin.com/cygwin-ug-net/using.html#mount-table >>%cd%\msys2/etc/fstab
|
||||
echo none / cygdrive binary,posix=0,noacl,user 0 0 >>%cd%\msys2/etc/fstab
|
||||
echo %cd%\pm3 /pm3 ntfs noacl 0 0 >>%cd%\msys2/etc/fstab
|
||||
|
||||
dash /usr/bin/rebaseall -p 2> nul
|
||||
mkdir %cd%\msys2\tmp 2> nul
|
||||
del %cd%\msys2\etc\passwd 2> nul
|
||||
del %cd%\msys2\etc\group 2> nul
|
||||
touch /etc/passwd
|
||||
touch /etc/group
|
||||
bash /ps/startup_checks.sh
|
||||
bash /ps/user_setup.sh
|
|
@ -1,13 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
#Check for an invalid ProxSpace path
|
||||
if ! (echo "$PWD" | grep -Eq ^[a-zA-Z0-9\/\._\-]+$) ; then
|
||||
echo "Error: Install path contains special characters!"
|
||||
sleep infinity
|
||||
fi
|
||||
|
||||
#Using git to download ProxSpace will cause an installation error
|
||||
if [ -d "$PWD/.git" ]; then
|
||||
echo "Error: Do not use Git to download ProxSpace!"
|
||||
sleep infinity
|
||||
fi
|
BIN
msys2/ucrt64.exe
Normal file
BIN
msys2/ucrt64.ico
Normal file
After Width: | Height: | Size: 30 KiB |
5
msys2/ucrt64.ini
Normal file
|
@ -0,0 +1,5 @@
|
|||
#MSYS=winsymlinks:nativestrict
|
||||
#MSYS=error_start:mingw64/bin/qtcreator.exe|-debug|<process-id>
|
||||
#CHERE_INVOKING=1
|
||||
#MSYS2_PATH_TYPE=inherit
|
||||
MSYSTEM=UCRT64
|
|
@ -1,6 +1,6 @@
|
|||
#! /bin/sh
|
||||
#
|
||||
# Copyright (C) 2002-2016 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2002-2023 Free Software Foundation, Inc.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -13,7 +13,7 @@
|
|||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
# This file is meant for authors, maintainers, co-maintainers or installers
|
||||
|
@ -22,8 +22,8 @@
|
|||
|
||||
progname=$0
|
||||
package=gettext-tools
|
||||
version=0.19.8.1
|
||||
archive_version=0.19.8
|
||||
version=0.22
|
||||
archive_version=0.22
|
||||
|
||||
# Set variables
|
||||
# - gettext_datadir directory where the data files are stored.
|
||||
|
@ -197,17 +197,23 @@ Options:
|
|||
-V version copy the infrastructure of the specified gettext version
|
||||
(dangerous)"
|
||||
echo "
|
||||
Report bugs to <bug-gnu-gettext@gnu.org>."
|
||||
Report bugs in the bug tracker at <https://savannah.gnu.org/projects/gettext>
|
||||
or by email to <bug-gettext@gnu.org>."
|
||||
}
|
||||
|
||||
# func_version
|
||||
# func_version include_config_details
|
||||
# outputs to stdout the --version message.
|
||||
# Inputs:
|
||||
# - include_config_details true or false
|
||||
func_version ()
|
||||
{
|
||||
echo "$progname (GNU $package) $version"
|
||||
echo "Uses a versions archive in dirxz format."
|
||||
echo "Copyright (C) 2002-2013 Free Software Foundation, Inc.
|
||||
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|
||||
if $1; then
|
||||
echo "This binary is configured to use a versions archive in dirxz format."
|
||||
echo
|
||||
fi
|
||||
echo "Copyright (C) 2002-2023 Free Software Foundation, Inc.
|
||||
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
|
||||
This is free software: you are free to change and redistribute it.
|
||||
There is NO WARRANTY, to the extent permitted by law."
|
||||
echo "Written by" "Bruno Haible"
|
||||
|
@ -260,8 +266,12 @@ unset CLICOLOR_FORCE GREP_OPTIONS
|
|||
-V*) # Some people omit the space between -V and the version number.
|
||||
ver=`echo "X$1" | sed -e 's/^X-V//'`
|
||||
shift ;;
|
||||
--version-without-config )
|
||||
# Print version output without build dependent details.
|
||||
func_version false
|
||||
exit 0 ;;
|
||||
--version | --versio | --versi | --vers | --ver | --ve | --v )
|
||||
func_version
|
||||
func_version true
|
||||
exit 0 ;;
|
||||
-- ) # Stop option prcessing
|
||||
shift; break ;;
|
||||
|
@ -289,17 +299,17 @@ srcdir=`pwd`
|
|||
|
||||
# Check integrity of package: A configure.in/ac must be present. Sets variable
|
||||
# - configure_in name of configure.in/ac file.
|
||||
if test -f configure.in; then
|
||||
configure_in=configure.in
|
||||
if test -f configure.ac; then
|
||||
configure_in=configure.ac
|
||||
else
|
||||
if test -f configure.ac; then
|
||||
configure_in=configure.ac
|
||||
if test -f configure.in; then
|
||||
configure_in=configure.in
|
||||
else
|
||||
# KDE specific convention: configure.in.in
|
||||
if test -f configure.in.in; then
|
||||
configure_in=configure.in.in
|
||||
else
|
||||
func_fatal_error "Missing configure.in or configure.ac, please cd to your package first."
|
||||
func_fatal_error "Missing configure.ac or configure.in, please cd to your package first."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -321,7 +331,7 @@ func_version_prereq ()
|
|||
req="$1"
|
||||
ver="$2"
|
||||
echo "m4_if(m4_version_compare([$ver], [$req]), [-1], [m4_exit([1])])" \
|
||||
| "$AUTOM4TE" --language=M4sugar 2>&1 >/dev/null
|
||||
| "$AUTOM4TE" --language=M4sugar >/dev/null
|
||||
}
|
||||
|
||||
# If AM_GNU_GETTEXT_REQUIRE_VERSION is used and archive_version is newer than
|
||||
|
@ -378,7 +388,10 @@ case "$ver" in
|
|||
0.16 | 0.16.1 | \
|
||||
0.17 | \
|
||||
0.18 | 0.18.1 | 0.18.2 | 0.18.3 | \
|
||||
0.19 | 0.19.1 | 0.19.2 | 0.19.3 | 0.19.4 | 0.19.5 | 0.19.6 | 0.19.7 | 0.19.8 )
|
||||
0.19 | 0.19.1 | 0.19.2 | 0.19.3 | 0.19.4 | 0.19.5 | 0.19.6 | 0.19.7 | 0.19.8 | \
|
||||
0.20 | 0.20.2 | \
|
||||
0.21 | 0.21.1 | \
|
||||
0.22 )
|
||||
;;
|
||||
*)
|
||||
func_fatal_error "The AM_GNU_GETTEXT_VERSION declaration in your $configure_in
|
||||
|
@ -440,6 +453,13 @@ for arg in $xargs; do
|
|||
done
|
||||
IFS="$save_IFS"
|
||||
|
||||
if test -z "$omitintl"; then
|
||||
case "$ver" in
|
||||
0.1[0-9] | 0.1[0-9].* ) ;;
|
||||
*) func_fatal_error "AM_GNU_GETTEXT without 'external' argument is no longer supported in version $ver" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Check in which directory or directories the po/* infrastructure belongs.
|
||||
configfiles=`"$func_trace" AC_CONFIG_FILES "$configure_in"`
|
||||
# PO directories have a Makefile.in generated from Makefile.in.in.
|
||||
|
@ -533,10 +553,10 @@ case "dirxz" in
|
|||
#
|
||||
# But the CVS format is now deprecated, because "cvs init" does not work in
|
||||
# all circumstances
|
||||
# (see <http://lists.gnu.org/archive/html/bug-cvs/2010-05/msg00003.html>)
|
||||
# (see <https://lists.gnu.org/archive/html/bug-cvs/2010-05/msg00003.html>)
|
||||
# and we are not allowed to distribute the cvs infrastructure files
|
||||
# ourselves
|
||||
# (see <http://lists.gnu.org/archive/html/bug-cvs/2010-06/msg00011.html>).
|
||||
# (see <https://lists.gnu.org/archive/html/bug-cvs/2010-06/msg00011.html>).
|
||||
#
|
||||
# Check availability of the CVS program.
|
||||
(cvs -v) >/dev/null 2>/dev/null || func_fatal_error "cvs program not found"
|
||||
|
@ -610,7 +630,12 @@ case "dirxz" in
|
|||
(git --version) >/dev/null 2>/dev/null || func_fatal_error "git program not found"
|
||||
mkdir "$work_dir/archive"
|
||||
gzip -d -c < "$gettext_datadir/archive.git.tar.gz" | (cd "$work_dir/archive" && tar xf -)
|
||||
(cd "$work_dir/archive" && git checkout -q "gettext-$ver") || {
|
||||
(unset GIT_CONFIG
|
||||
unset XDG_CONFIG_HOME
|
||||
unset HOME
|
||||
GIT_CONFIG_NOSYSTEM=1; export GIT_CONFIG_NOSYSTEM
|
||||
cd "$work_dir/archive" && git checkout -q "gettext-$ver"
|
||||
) || {
|
||||
rm -rf "$work_dir"
|
||||
func_fatal_error "infrastructure files for version $ver not found; this is autopoint from GNU $package $version"
|
||||
}
|
||||
|
@ -630,7 +655,7 @@ esac
|
|||
func_destfile ()
|
||||
{
|
||||
# There are five categories of files:
|
||||
# ABOUT_NLS -> top level directory
|
||||
# ABOUT-NLS -> top level directory
|
||||
# config.rpath mkinstalldirs -> $auxdir
|
||||
# m4/* -> $m4dir/
|
||||
# intl/* -> intl/
|
||||
|
|
257
msys2/usr/bin/backup
Normal file
|
@ -0,0 +1,257 @@
|
|||
#! /bin/sh
|
||||
# Make backups.
|
||||
|
||||
# Copyright 2004-2006, 2013, 2019 Free Software Foundation
|
||||
|
||||
# This file is part of GNU tar.
|
||||
|
||||
# GNU tar is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# GNU tar is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Load library routines
|
||||
SYSCONFDIR=${SYSCONFDIR-/usr/etc}
|
||||
. ${LIBDIR-/usr/lib/tar}/backup.sh
|
||||
|
||||
DUMP_LEVEL=0
|
||||
TIME=
|
||||
NOW=`now`
|
||||
|
||||
usage() {
|
||||
cat - <<EOF
|
||||
usage: $PROGNAME [OPTIONS] [WHEN]
|
||||
Options are:
|
||||
|
||||
-l, --level=LEVEL Do backup level LEVEL (default $DUMP_LEVEL).
|
||||
-f, --force Force backup even if today's log file already
|
||||
exists.
|
||||
-v, --verbose[=LEVEL] Set verbosity level. Default 100.
|
||||
-t, --time=TIME Wait till TIME, then do backup.
|
||||
|
||||
Informational options:
|
||||
-h, --help Display this help message.
|
||||
-V, --version Display program version.
|
||||
|
||||
Optional argument WHEN is for backward compatibility only. It has been
|
||||
superseded by --time option.
|
||||
TIME argument can be one of:
|
||||
|
||||
now -- do backup immediately.
|
||||
HH -- do backup at HH hours.
|
||||
HH:MM -- do backup at HH:MM.
|
||||
|
||||
Send bug reports to bug-tar@gnu.org.
|
||||
EOF
|
||||
}
|
||||
|
||||
# For compatibility with previous versions, deduce the backup level
|
||||
# from the command name
|
||||
case "$PROGNAME" in
|
||||
level-[0-9]) DUMP_LEVEL=`expr $PROGNAME : 'level-\([0-9][0-9]*\)'`;;
|
||||
esac
|
||||
|
||||
for opt
|
||||
do
|
||||
if [ -z "$prev" ]; then
|
||||
option=$opt
|
||||
optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
|
||||
else
|
||||
option="${prev}=$opt"
|
||||
prev=""
|
||||
optarg=$opt
|
||||
fi
|
||||
case $option in
|
||||
--l=*|--le=*|--lev=*|--leve=*|--level=*)
|
||||
DUMP_LEVEL=$optarg
|
||||
;;
|
||||
-l?*) DUMP_LEVEL=`expr $option : '-l\(.*\)'`;;
|
||||
-l|--l|--le|--lev|--leve|--level)
|
||||
prev=--level
|
||||
;;
|
||||
--verb=*|--verbo=*|--verbos=*|--verbose=*)
|
||||
VERBOSE=$optarg
|
||||
;;
|
||||
-v|--verb|--verbo|--verbos|--verbose)
|
||||
VERBOSE=100
|
||||
;;
|
||||
-v*) VERBOSE=`expr $option : '-v\(.*\)'`;;
|
||||
--t=*|--ti=*|--tim=*|--time=*)
|
||||
TIME=$optarg
|
||||
;;
|
||||
-t?*) TIME=`expr $option : '-t\(.*\)'`;;
|
||||
-t|--t|--ti|--tim|--time)
|
||||
prev=--time
|
||||
;;
|
||||
-V|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||
echo "backup (GNU tar) 1.34"
|
||||
license
|
||||
exit;;
|
||||
-h|--h|--he|--hel|--help)
|
||||
usage
|
||||
exit;;
|
||||
-f|--f|--fo|--for|--forc|--force)
|
||||
FORCE=yes
|
||||
;;
|
||||
*) if [ "x$TIME" != "x" ]; then
|
||||
bailout "Extra argument. Try $PROGNAME --help for more info."
|
||||
else
|
||||
TIME=$option
|
||||
fi;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "x$TIME" = x ]; then
|
||||
bailout "No backup time specified. Try $PROGNAME --help for more info."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
init_backup
|
||||
|
||||
# Maybe sleep until around specified or default hour.
|
||||
wait_time $TIME
|
||||
|
||||
if [ $DUMP_LEVEL -ne 0 ]; then
|
||||
PREV_LEVEL=`expr $DUMP_LEVEL - 1`
|
||||
PREV_DATE=`ls -t ${LOGPATH}/log-*-level-$PREV_LEVEL|
|
||||
head -n 1|
|
||||
sed "s,${LOGPATH}/log-\(.*\)-level.*,\1,"`
|
||||
if [ "x$PREV_DATE" = x ]; then
|
||||
bailout "Can't determine date of the previous backup"
|
||||
fi
|
||||
message 0 "Backup from $PREV_DATE to $NOW"
|
||||
fi
|
||||
|
||||
# start doing things
|
||||
|
||||
# Make sure the log file did not already exist. Create it.
|
||||
|
||||
if [ "x$FORCE" = "xyes" ]; then
|
||||
rm ${LOGFILE}
|
||||
fi
|
||||
|
||||
if [ -f "${LOGFILE}" ] ; then
|
||||
bailout "Log file ${LOGFILE} already exists."
|
||||
else
|
||||
touch "${LOGFILE}"
|
||||
fi
|
||||
message 1 "Ready for backup."
|
||||
message 10 "TAR invocation: $TAR_PART1"
|
||||
message 20 "Variables:"
|
||||
message 20 "BACKUP_DIRS=$BACKUP_DIRS"
|
||||
message 20 "BACKUP_FILES=$BACKUP_FILES"
|
||||
|
||||
# The bunch of commands below is run in a subshell for which all output is
|
||||
# piped through 'tee' to the logfile. Doing this, instead of having
|
||||
# multiple pipelines all over the place, is cleaner and allows access to
|
||||
# the exit value from various commands more easily.
|
||||
(
|
||||
message 1 "preparing tapes"
|
||||
if ! $MT_BEGIN "${TAPE_FILE}"; then
|
||||
echo >&2 "$0: tape initialization failed"
|
||||
exit 1
|
||||
fi
|
||||
rm -f "${VOLNO_FILE}"
|
||||
|
||||
message 1 "processing backup directories"
|
||||
|
||||
set - ${BACKUP_DIRS}
|
||||
while [ $# -ne 0 ] ; do
|
||||
date="`date`"
|
||||
fs="`echo \"${1}\" | sed -e 's/^.*://'`"
|
||||
fs=`root_fs $fs`
|
||||
fsname="`echo \"${1}\" | sed -e 's/\//:/g'`"
|
||||
remotehost="`expr \"${1}\" : '\([^/][^/]*\):.*'`"
|
||||
if [ -z "$remotehost" ]; then
|
||||
remotehost=$localhost
|
||||
fi
|
||||
|
||||
echo "Backing up ${1} at ${date}"
|
||||
message 10 "fs=$fs"
|
||||
message 10 "fsname=$fsname"
|
||||
message 10 "remotehost=$remotehost"
|
||||
if [ $DUMP_LEVEL -eq 0 ]; then
|
||||
make_level_log ${remotehost}
|
||||
else
|
||||
echo "Last `prev_level` dump on this filesystem was on $PREV_DATE"
|
||||
remote_run "${remotehost}" cp "`level_log_name ${fsname} $PREV_LEVEL`" "`level_log_name temp`"
|
||||
fi
|
||||
|
||||
${DUMP_BEGIN-:} $DUMP_LEVEL $remotehost $fs $fsname
|
||||
backup_host ${remotehost} \
|
||||
"--listed=`level_log_name temp`" \
|
||||
"--label='`print_level` backup of ${fs} on ${remotehost} at ${NOW}'" \
|
||||
-C ${fs} .
|
||||
|
||||
# 'rsh' doesn't exit with the exit status of the remote command. What
|
||||
# stupid lossage. TODO: think of a reliable workaround.
|
||||
if [ $? -ne 0 ] ; then
|
||||
echo "$0: backup of ${1} failed." 1>&2
|
||||
# I'm assuming that the tar will have written an empty
|
||||
# file to the tape, otherwise I should do a cat here.
|
||||
else
|
||||
flush_level_log ${remotehost} ${fsname}
|
||||
fi
|
||||
${MT_STATUS} "$TAPE_FILE"
|
||||
${DUMP_END-:} $DUMP_LEVEL $remotehost $fs $fsname
|
||||
echo "sleeping ${SLEEP_TIME} seconds"
|
||||
sleep ${SLEEP_TIME}
|
||||
shift
|
||||
done
|
||||
|
||||
# Dump any individual files requested.
|
||||
|
||||
if [ "x${BACKUP_FILES}" != "x" ] ; then
|
||||
message 1 "processing individual files"
|
||||
|
||||
date="`date`"
|
||||
|
||||
if [ $DUMP_LEVEL -eq 0 ]; then
|
||||
make_level_log $localhost
|
||||
else
|
||||
echo "Last `prev_level` dump on this filesystem was on $PREV_DATE"
|
||||
remote_run "${localhost}" cp "`level_log_name MISC $PREV_LEVEL`" "`level_log_name temp`"
|
||||
fi
|
||||
|
||||
echo "Backing up miscellaneous files at ${date}"
|
||||
|
||||
${DUMP_BEGIN-:} $DUMP_LEVEL $localhost MISC MISC
|
||||
backup_host $localhost \
|
||||
"--listed=`level_log_name temp`"\
|
||||
"--label='`print_level` backup of miscellaneous files at ${NOW}'" \
|
||||
${BACKUP_FILES}
|
||||
|
||||
if [ $? -ne 0 ] ; then
|
||||
echo "Backup of miscellaneous files failed."
|
||||
# I'm assuming that the tar will have written an empty
|
||||
# file to the tape, otherwise I should do a cat here.
|
||||
else
|
||||
flush_level_log $localhost MISC
|
||||
fi
|
||||
${MT_STATUS} "$TAPE_FILE"
|
||||
${DUMP_END-:} $DUMP_LEVEL $localhost MISC MISC
|
||||
else
|
||||
echo "No miscellaneous files specified"
|
||||
fi
|
||||
message 1 "final cleanup"
|
||||
|
||||
$MT_REWIND "${TAPE_FILE}"
|
||||
$MT_OFFLINE "${TAPE_FILE}"
|
||||
echo "."
|
||||
) 2>&1 | tee -a "${LOGFILE}"
|
||||
RC=$?
|
||||
|
||||
if test "${ADMINISTRATOR}" != NONE; then
|
||||
echo "Sending the dump log to ${ADMINISTRATOR}"
|
||||
mail -s "Results of backup started ${startdate}" ${ADMINISTRATOR} < "${LOGFILE}"
|
||||
fi
|
||||
exit $RC
|
||||
# EOF
|
|
@ -4,10 +4,10 @@
|
|||
#
|
||||
# The bug address depends on the release status of the shell. Versions
|
||||
# with status `devel', `alpha', `beta', or `rc' mail bug reports to
|
||||
# chet@cwru.edu and, optionally, to bash-testers@cwru.edu.
|
||||
# chet.ramey@case.edu and, optionally, to bash-testers@cwru.edu.
|
||||
# Other versions send mail to bug-bash@gnu.org.
|
||||
#
|
||||
# Copyright (C) 1996-2020 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -29,9 +29,9 @@
|
|||
MACHINE="x86_64"
|
||||
OS="msys"
|
||||
CC="gcc"
|
||||
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -D_STATIC_BUILD "
|
||||
RELEASE="5.1"
|
||||
PATCHLEVEL="4"
|
||||
CFLAGS="-march=nocona -msahf -mtune=generic -O2 -pipe -D_STATIC_BUILD"
|
||||
RELEASE="5.2"
|
||||
PATCHLEVEL="15"
|
||||
RELSTATUS="release"
|
||||
MACHTYPE="x86_64-pc-msys"
|
||||
|
||||
|
@ -102,7 +102,7 @@ esac
|
|||
BASHTESTERS="bash-testers@cwru.edu"
|
||||
|
||||
case "$RELSTATUS" in
|
||||
alpha*|beta*|devel*|rc*) BUGBASH=chet@cwru.edu ;;
|
||||
alpha*|beta*|devel*|rc*) BUGBASH=chet.ramey@case.edu ;;
|
||||
*) BUGBASH=bug-bash@gnu.org ;;
|
||||
esac
|
||||
|
||||
|
@ -132,6 +132,10 @@ if [ -z "$DEFEDITOR" ] && [ -z "$EDITOR" ]; then
|
|||
DEFEDITOR=emacs
|
||||
elif [ -x /usr/bin/xemacs ]; then
|
||||
DEFEDITOR=xemacs
|
||||
elif [ -x /usr/bin/vim; then
|
||||
DEFEDITOR=vim
|
||||
elif [ -x /usr/bin/gvim; then
|
||||
DEFEDITOR=gvim
|
||||
elif [ -x /usr/bin/nano ]; then
|
||||
DEFEDITOR=nano
|
||||
elif [ -x /usr/contrib/bin/jove ]; then
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
# WARNING: do not edit!
|
||||
# Generated by Makefile from tools/c_rehash.in
|
||||
# Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
# Copyright 1999-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the OpenSSL license (the "License"). You may not use
|
||||
# Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
# this file except in compliance with the License. You can obtain a copy
|
||||
# in the file LICENSE in the source distribution or at
|
||||
# https://www.openssl.org/source/license.html
|
||||
|
@ -22,7 +22,7 @@ my $x509hash = "-subject_hash";
|
|||
my $crlhash = "-hash";
|
||||
my $verbose = 0;
|
||||
my $symlink_exists=eval {symlink("",""); 1};
|
||||
if ($^O eq "msys") { $symlink_exists=0 };
|
||||
$symlink_exists=0;
|
||||
my $removelinks = 1;
|
||||
|
||||
## Parse flags.
|
||||
|
@ -30,35 +30,35 @@ while ( $ARGV[0] =~ /^-/ ) {
|
|||
my $flag = shift @ARGV;
|
||||
last if ( $flag eq '--');
|
||||
if ( $flag eq '-old') {
|
||||
$x509hash = "-subject_hash_old";
|
||||
$crlhash = "-hash_old";
|
||||
$x509hash = "-subject_hash_old";
|
||||
$crlhash = "-hash_old";
|
||||
} elsif ( $flag eq '-h' || $flag eq '-help' ) {
|
||||
help();
|
||||
help();
|
||||
} elsif ( $flag eq '-n' ) {
|
||||
$removelinks = 0;
|
||||
$removelinks = 0;
|
||||
} elsif ( $flag eq '-v' ) {
|
||||
$verbose++;
|
||||
$verbose++;
|
||||
}
|
||||
else {
|
||||
print STDERR "Usage error; try -h.\n";
|
||||
exit 1;
|
||||
print STDERR "Usage error; try -h.\n";
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
|
||||
sub help {
|
||||
print "Usage: c_rehash [-old] [-h] [-help] [-v] [dirs...]\n";
|
||||
print " -old use old-style digest\n";
|
||||
print " -h or -help print this help text\n";
|
||||
print " -v print files removed and linked\n";
|
||||
exit 0;
|
||||
print "Usage: c_rehash [-old] [-h] [-help] [-v] [dirs...]\n";
|
||||
print " -old use old-style digest\n";
|
||||
print " -h or -help print this help text\n";
|
||||
print " -v print files removed and linked\n";
|
||||
exit 0;
|
||||
}
|
||||
|
||||
eval "require Cwd";
|
||||
if (defined(&Cwd::getcwd)) {
|
||||
$pwd=Cwd::getcwd();
|
||||
$pwd=Cwd::getcwd();
|
||||
} else {
|
||||
$pwd=`pwd`;
|
||||
chomp($pwd);
|
||||
$pwd=`pwd`;
|
||||
chomp($pwd);
|
||||
}
|
||||
|
||||
# DOS/Win32 or Unix delimiter? Prefix our installdir, then search.
|
||||
|
@ -66,94 +66,137 @@ my $path_delim = ($pwd =~ /^[a-z]\:/i) ? ';' : ':';
|
|||
$ENV{PATH} = "$prefix/bin" . ($ENV{PATH} ? $path_delim . $ENV{PATH} : "");
|
||||
|
||||
if (! -x $openssl) {
|
||||
my $found = 0;
|
||||
foreach (split /$path_delim/, $ENV{PATH}) {
|
||||
if (-x "$_/$openssl") {
|
||||
$found = 1;
|
||||
$openssl = "$_/$openssl";
|
||||
last;
|
||||
}
|
||||
}
|
||||
if ($found == 0) {
|
||||
print STDERR "c_rehash: rehashing skipped ('openssl' program not available)\n";
|
||||
exit 0;
|
||||
}
|
||||
my $found = 0;
|
||||
foreach (split /$path_delim/, $ENV{PATH}) {
|
||||
if (-x "$_/$openssl") {
|
||||
$found = 1;
|
||||
$openssl = "$_/$openssl";
|
||||
last;
|
||||
}
|
||||
}
|
||||
if ($found == 0) {
|
||||
print STDERR "c_rehash: rehashing skipped ('openssl' program not available)\n";
|
||||
exit 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (@ARGV) {
|
||||
@dirlist = @ARGV;
|
||||
@dirlist = @ARGV;
|
||||
} elsif ($ENV{SSL_CERT_DIR}) {
|
||||
@dirlist = split /$path_delim/, $ENV{SSL_CERT_DIR};
|
||||
@dirlist = split /$path_delim/, $ENV{SSL_CERT_DIR};
|
||||
} else {
|
||||
$dirlist[0] = "$dir/certs";
|
||||
$dirlist[0] = "$dir/certs";
|
||||
}
|
||||
|
||||
if (-d $dirlist[0]) {
|
||||
chdir $dirlist[0];
|
||||
$openssl="$pwd/$openssl" if (!-x $openssl);
|
||||
chdir $pwd;
|
||||
chdir $dirlist[0];
|
||||
$openssl="$pwd/$openssl" if (!-x $openssl);
|
||||
chdir $pwd;
|
||||
}
|
||||
|
||||
foreach (@dirlist) {
|
||||
if (-d $_ ) {
|
||||
if ( -w $_) {
|
||||
hash_dir($_);
|
||||
} else {
|
||||
print "Skipping $_, can't write\n";
|
||||
$errorcount++;
|
||||
}
|
||||
}
|
||||
if (-d $_ ) {
|
||||
if ( -w $_) {
|
||||
hash_dir($_);
|
||||
} else {
|
||||
print "Skipping $_, can't write\n";
|
||||
$errorcount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
exit($errorcount);
|
||||
|
||||
sub copy_file {
|
||||
my ($src_fname, $dst_fname) = @_;
|
||||
|
||||
if (open(my $in, "<", $src_fname)) {
|
||||
if (open(my $out, ">", $dst_fname)) {
|
||||
print $out $_ while (<$in>);
|
||||
close $out;
|
||||
} else {
|
||||
warn "Cannot open $dst_fname for write, $!";
|
||||
}
|
||||
close $in;
|
||||
} else {
|
||||
warn "Cannot open $src_fname for read, $!";
|
||||
}
|
||||
}
|
||||
|
||||
sub hash_dir {
|
||||
my %hashlist;
|
||||
print "Doing $_[0]\n";
|
||||
chdir $_[0];
|
||||
opendir(DIR, ".");
|
||||
my @flist = sort readdir(DIR);
|
||||
closedir DIR;
|
||||
if ( $removelinks ) {
|
||||
# Delete any existing symbolic links
|
||||
foreach (grep {/^[\da-f]+\.r{0,1}\d+$/} @flist) {
|
||||
if (-l $_) {
|
||||
print "unlink $_" if $verbose;
|
||||
unlink $_ || warn "Can't unlink $_, $!\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
FILE: foreach $fname (grep {/\.(pem)|(crt)|(cer)|(crl)$/} @flist) {
|
||||
# Check to see if certificates and/or CRLs present.
|
||||
my ($cert, $crl) = check_file($fname);
|
||||
if (!$cert && !$crl) {
|
||||
print STDERR "WARNING: $fname does not contain a certificate or CRL: skipping\n";
|
||||
next;
|
||||
}
|
||||
link_hash_cert($fname) if ($cert);
|
||||
link_hash_crl($fname) if ($crl);
|
||||
}
|
||||
my $dir = shift;
|
||||
my %hashlist;
|
||||
|
||||
print "Doing $dir\n";
|
||||
|
||||
if (!chdir $dir) {
|
||||
print STDERR "WARNING: Cannot chdir to '$dir', $!\n";
|
||||
return;
|
||||
}
|
||||
|
||||
opendir(DIR, ".") || print STDERR "WARNING: Cannot opendir '.', $!\n";
|
||||
my @flist = sort readdir(DIR);
|
||||
closedir DIR;
|
||||
if ( $removelinks ) {
|
||||
# Delete any existing symbolic links
|
||||
foreach (grep {/^[\da-f]+\.r{0,1}\d+$/} @flist) {
|
||||
if (-l $_) {
|
||||
print "unlink $_\n" if $verbose;
|
||||
unlink $_ || warn "Can't unlink $_, $!\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
FILE: foreach $fname (grep {/\.(pem|crt|cer|crl)$/} @flist) {
|
||||
# Check to see if certificates and/or CRLs present.
|
||||
my ($cert, $crl) = check_file($fname);
|
||||
if (!$cert && !$crl) {
|
||||
print STDERR "WARNING: $fname does not contain a certificate or CRL: skipping\n";
|
||||
next;
|
||||
}
|
||||
link_hash_cert($fname) if ($cert);
|
||||
link_hash_crl($fname) if ($crl);
|
||||
}
|
||||
|
||||
chdir $pwd;
|
||||
}
|
||||
|
||||
sub check_file {
|
||||
my ($is_cert, $is_crl) = (0,0);
|
||||
my $fname = $_[0];
|
||||
open IN, $fname;
|
||||
while(<IN>) {
|
||||
if (/^-----BEGIN (.*)-----/) {
|
||||
my $hdr = $1;
|
||||
if ($hdr =~ /^(X509 |TRUSTED |)CERTIFICATE$/) {
|
||||
$is_cert = 1;
|
||||
last if ($is_crl);
|
||||
} elsif ($hdr eq "X509 CRL") {
|
||||
$is_crl = 1;
|
||||
last if ($is_cert);
|
||||
}
|
||||
}
|
||||
}
|
||||
close IN;
|
||||
return ($is_cert, $is_crl);
|
||||
my ($is_cert, $is_crl) = (0,0);
|
||||
my $fname = $_[0];
|
||||
|
||||
open(my $in, "<", $fname);
|
||||
while(<$in>) {
|
||||
if (/^-----BEGIN (.*)-----/) {
|
||||
my $hdr = $1;
|
||||
if ($hdr =~ /^(X509 |TRUSTED |)CERTIFICATE$/) {
|
||||
$is_cert = 1;
|
||||
last if ($is_crl);
|
||||
} elsif ($hdr eq "X509 CRL") {
|
||||
$is_crl = 1;
|
||||
last if ($is_cert);
|
||||
}
|
||||
}
|
||||
}
|
||||
close $in;
|
||||
return ($is_cert, $is_crl);
|
||||
}
|
||||
|
||||
sub compute_hash {
|
||||
my $fh;
|
||||
if ( $^O eq "VMS" ) {
|
||||
# VMS uses the open through shell
|
||||
# The file names are safe there and list form is unsupported
|
||||
if (!open($fh, "-|", join(' ', @_))) {
|
||||
print STDERR "Cannot compute hash on '$fname'\n";
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (!open($fh, "-|", @_)) {
|
||||
print STDERR "Cannot compute hash on '$fname'\n";
|
||||
return;
|
||||
}
|
||||
}
|
||||
return (<$fh>, <$fh>);
|
||||
}
|
||||
|
||||
# Link a certificate to its subject name hash value, each hash is of
|
||||
# the form <hash>.<n> where n is an integer. If the hash value already exists
|
||||
|
@ -162,72 +205,49 @@ sub check_file {
|
|||
# certificate fingerprints
|
||||
|
||||
sub link_hash_cert {
|
||||
my $fname = $_[0];
|
||||
$fname =~ s/'/'\\''/g;
|
||||
my ($hash, $fprint) = `"$openssl" x509 $x509hash -fingerprint -noout -in "$fname"`;
|
||||
chomp $hash;
|
||||
chomp $fprint;
|
||||
$fprint =~ s/^.*=//;
|
||||
$fprint =~ tr/://d;
|
||||
my $suffix = 0;
|
||||
# Search for an unused hash filename
|
||||
while(exists $hashlist{"$hash.$suffix"}) {
|
||||
# Hash matches: if fingerprint matches its a duplicate cert
|
||||
if ($hashlist{"$hash.$suffix"} eq $fprint) {
|
||||
print STDERR "WARNING: Skipping duplicate certificate $fname\n";
|
||||
return;
|
||||
}
|
||||
$suffix++;
|
||||
}
|
||||
$hash .= ".$suffix";
|
||||
if ($symlink_exists) {
|
||||
print "link $fname -> $hash\n" if $verbose;
|
||||
symlink $fname, $hash || warn "Can't symlink, $!";
|
||||
} else {
|
||||
print "copy $fname -> $hash\n" if $verbose;
|
||||
if (open($in, "<", $fname)) {
|
||||
if (open($out,">", $hash)) {
|
||||
print $out $_ while (<$in>);
|
||||
close $out;
|
||||
} else {
|
||||
warn "can't open $hash for write, $!";
|
||||
}
|
||||
close $in;
|
||||
} else {
|
||||
warn "can't open $fname for read, $!";
|
||||
}
|
||||
}
|
||||
$hashlist{$hash} = $fprint;
|
||||
link_hash($_[0], 'cert');
|
||||
}
|
||||
|
||||
# Same as above except for a CRL. CRL links are of the form <hash>.r<n>
|
||||
|
||||
sub link_hash_crl {
|
||||
my $fname = $_[0];
|
||||
$fname =~ s/'/'\\''/g;
|
||||
my ($hash, $fprint) = `"$openssl" crl $crlhash -fingerprint -noout -in '$fname'`;
|
||||
chomp $hash;
|
||||
chomp $fprint;
|
||||
$fprint =~ s/^.*=//;
|
||||
$fprint =~ tr/://d;
|
||||
my $suffix = 0;
|
||||
# Search for an unused hash filename
|
||||
while(exists $hashlist{"$hash.r$suffix"}) {
|
||||
# Hash matches: if fingerprint matches its a duplicate cert
|
||||
if ($hashlist{"$hash.r$suffix"} eq $fprint) {
|
||||
print STDERR "WARNING: Skipping duplicate CRL $fname\n";
|
||||
return;
|
||||
}
|
||||
$suffix++;
|
||||
}
|
||||
$hash .= ".r$suffix";
|
||||
if ($symlink_exists) {
|
||||
print "link $fname -> $hash\n" if $verbose;
|
||||
symlink $fname, $hash || warn "Can't symlink, $!";
|
||||
} else {
|
||||
print "cp $fname -> $hash\n" if $verbose;
|
||||
system ("cp", $fname, $hash);
|
||||
warn "Can't copy, $!" if ($? >> 8) != 0;
|
||||
}
|
||||
$hashlist{$hash} = $fprint;
|
||||
link_hash($_[0], 'crl');
|
||||
}
|
||||
|
||||
sub link_hash {
|
||||
my ($fname, $type) = @_;
|
||||
my $is_cert = $type eq 'cert';
|
||||
|
||||
my ($hash, $fprint) = compute_hash($openssl,
|
||||
$is_cert ? "x509" : "crl",
|
||||
$is_cert ? $x509hash : $crlhash,
|
||||
"-fingerprint", "-noout",
|
||||
"-in", $fname);
|
||||
chomp $hash;
|
||||
$hash =~ s/^.*=// if !$is_cert;
|
||||
chomp $fprint;
|
||||
return if !$hash;
|
||||
$fprint =~ s/^.*=//;
|
||||
$fprint =~ tr/://d;
|
||||
my $suffix = 0;
|
||||
# Search for an unused hash filename
|
||||
my $crlmark = $is_cert ? "" : "r";
|
||||
while(exists $hashlist{"$hash.$crlmark$suffix"}) {
|
||||
# Hash matches: if fingerprint matches its a duplicate cert
|
||||
if ($hashlist{"$hash.$crlmark$suffix"} eq $fprint) {
|
||||
my $what = $is_cert ? 'certificate' : 'CRL';
|
||||
print STDERR "WARNING: Skipping duplicate $what $fname\n";
|
||||
return;
|
||||
}
|
||||
$suffix++;
|
||||
}
|
||||
$hash .= ".$crlmark$suffix";
|
||||
if ($symlink_exists) {
|
||||
print "link $fname -> $hash\n" if $verbose;
|
||||
symlink $fname, $hash || warn "Can't symlink, $!";
|
||||
} else {
|
||||
print "copy $fname -> $hash\n" if $verbose;
|
||||
copy_file($fname, $hash);
|
||||
}
|
||||
$hashlist{$hash} = $fprint;
|
||||
}
|
||||
|
|
|
@ -19,36 +19,63 @@
|
|||
#
|
||||
|
||||
declare -r myname='checkupdates'
|
||||
declare -r myver='1.4.0'
|
||||
declare -r myver='1.9.1'
|
||||
|
||||
LIBRARY=${LIBRARY:-'/usr/share/makepkg'}
|
||||
|
||||
DOWNLOAD_CACHE=0
|
||||
USE_COLOR=0
|
||||
USE_COLOR='y'
|
||||
|
||||
# Import libmakepkg
|
||||
source "$LIBRARY"/util/message.sh
|
||||
source "$LIBRARY"/util/parseopts.sh
|
||||
|
||||
die() {
|
||||
error "$@"
|
||||
exit 1
|
||||
}
|
||||
|
||||
runcmd() {
|
||||
if (( EUID != 0 )); then
|
||||
msg 'Escalating privileges using sudo'
|
||||
if sudo -v &>/dev/null && sudo -l &>/dev/null; then
|
||||
sudo "$@"
|
||||
else
|
||||
die 'Failed to escalate'
|
||||
fi
|
||||
else
|
||||
"$@"
|
||||
fi
|
||||
}
|
||||
|
||||
usage() {
|
||||
cat << __EOF__
|
||||
cat <<EOF
|
||||
${myname} v${myver}
|
||||
|
||||
Safely print a list of pending updates
|
||||
Safely print a list of pending updates.
|
||||
|
||||
Usage: ${myname} [options]
|
||||
|
||||
Options:
|
||||
-d, --download download pending updates to the pacman cache.
|
||||
-h, --help display this help message and exit.
|
||||
Options:
|
||||
-d, --download download pending updates to the pacman cache
|
||||
--nocolor do not colorize output
|
||||
-n, --nosync do not sync the temporary database
|
||||
-h, --help display this help message and exit
|
||||
-V, --version display version information and exit
|
||||
|
||||
Note: Export the "CHECKUPDATES_DB" variable to change the path of the temporary database.
|
||||
|
||||
__EOF__
|
||||
Environment Variables:
|
||||
CHECKUPDATES_DB override the path of the temporary database
|
||||
(default: "\${TMPDIR:-/tmp}/checkup-db-\${UID}")
|
||||
TMPDIR override the temporary directory (default: '/tmp')
|
||||
EOF
|
||||
}
|
||||
|
||||
OPT_SHORT='dh'
|
||||
OPT_LONG=('download' 'help' 'nocolor')
|
||||
version() {
|
||||
printf "%s %s\n" "$myname" "$myver"
|
||||
}
|
||||
|
||||
OPT_SHORT='dnhV'
|
||||
OPT_LONG=('download' 'nosync' 'help' 'nocolor' 'version')
|
||||
|
||||
if ! parseopts "$OPT_SHORT" "${OPT_LONG[@]}" -- "$@"; then
|
||||
exit 1
|
||||
|
@ -56,15 +83,21 @@ fi
|
|||
set -- "${OPTRET[@]}"
|
||||
unset OPT_SHORT OPT_LONG OPTRET
|
||||
|
||||
SYNC=1
|
||||
while :; do
|
||||
case $1 in
|
||||
-d|--download)
|
||||
DOWNLOAD_CACHE=1 ;;
|
||||
--nocolor)
|
||||
USE_COLOR='n';;
|
||||
-n|--nosync)
|
||||
SYNC=0 ;;
|
||||
-h|--help)
|
||||
usage
|
||||
exit 0 ;;
|
||||
--nocolor)
|
||||
USE_COLOR='n';;
|
||||
-V|--version)
|
||||
version
|
||||
exit 0 ;;
|
||||
--)
|
||||
shift
|
||||
break ;;
|
||||
|
@ -90,21 +123,20 @@ if [[ -z "$DBPath" ]] || [[ ! -d "$DBPath" ]]; then
|
|||
DBPath="/var/lib/pacman/"
|
||||
fi
|
||||
|
||||
mkdir -p "$CHECKUPDATES_DB"
|
||||
ln -s "${DBPath}/local" "$CHECKUPDATES_DB" &> /dev/null
|
||||
if ! pacman -Sy --dbpath "$CHECKUPDATES_DB" --logfile /dev/null &> /dev/null; then
|
||||
error 'Cannot fetch updates'
|
||||
exit 1
|
||||
if (( ${SYNC} )); then
|
||||
mkdir -p "$CHECKUPDATES_DB"
|
||||
ln -s "${DBPath}/local" "$CHECKUPDATES_DB" &> /dev/null
|
||||
if ! pacman -Sy --dbpath "$CHECKUPDATES_DB" --logfile /dev/null &> /dev/null; then
|
||||
die 'Cannot fetch updates'
|
||||
fi
|
||||
fi
|
||||
mapfile -t updates < <(pacman -Qu --dbpath "$CHECKUPDATES_DB" 2> /dev/null | grep -v '\[.*\]')
|
||||
|
||||
if (( ${#updates[@]} )); then
|
||||
printf '%s\n' "${updates[@]}"
|
||||
if (( DOWNLOAD_CACHE )); then
|
||||
sudo pacman -Sw --noconfirm "${updates[@]%% *}" --dbpath "$CHECKUPDATES_DB" --logfile /dev/null
|
||||
runcmd pacman -Sw --noconfirm "${updates[@]%% *}" --dbpath "$CHECKUPDATES_DB" --logfile /dev/null
|
||||
fi
|
||||
else
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# vim: set noet:
|
||||
|
|