From 478ea7e9f04676df1c253719c1ca1cb76863ee71 Mon Sep 17 00:00:00 2001 From: gator96100 Date: Sun, 26 Jan 2020 00:37:14 +0100 Subject: [PATCH 01/10] Prevent future msys2 updates from deleting the ProxSpace setup file --- msys2/msys2_shell.cmd | 2 +- .../09-proxspace_setup.post} | 9 +- msys2/{ => ps}/autobuild.sh | 2 +- msys2/{ => ps}/autobuild/FLASH - All.bat | 0 msys2/{ => ps}/autobuild/FLASH - Bootrom.bat | 0 .../{ => ps}/autobuild/FLASH - fullimage.bat | 0 msys2/{ => ps}/autobuild/Go.bat | 0 msys2/{ => ps}/autobuild/qt.conf | 0 msys2/{ => ps}/user_setup.sh | 0 .../pacman/local/filesystem-2018.12-1/files | 1 - pm3/.bash_logout | 3 - pm3/.bash_profile | 36 ---- pm3/.bashrc | 194 ------------------ pm3/.inputrc | 114 ---------- pm3/.profile | 52 ----- runme.bat | 2 +- runme64.bat | 2 +- 17 files changed, 11 insertions(+), 406 deletions(-) rename msys2/{etc/post-install/09-proxspace.post => ps/09-proxspace_setup.post} (85%) rename msys2/{ => ps}/autobuild.sh (97%) rename msys2/{ => ps}/autobuild/FLASH - All.bat (100%) rename msys2/{ => ps}/autobuild/FLASH - Bootrom.bat (100%) rename msys2/{ => ps}/autobuild/FLASH - fullimage.bat (100%) rename msys2/{ => ps}/autobuild/Go.bat (100%) rename msys2/{ => ps}/autobuild/qt.conf (100%) rename msys2/{ => ps}/user_setup.sh (100%) delete mode 100644 pm3/.bash_logout delete mode 100644 pm3/.bash_profile delete mode 100644 pm3/.bashrc delete mode 100644 pm3/.inputrc delete mode 100644 pm3/.profile diff --git a/msys2/msys2_shell.cmd b/msys2/msys2_shell.cmd index d269ccfc2..719c7929a 100644 --- a/msys2/msys2_shell.cmd +++ b/msys2/msys2_shell.cmd @@ -22,7 +22,7 @@ del %WD%..\..\etc\passwd 2> nul del %WD%..\..\etc\group 2> nul %WD%touch /etc/passwd %WD%touch /etc/group -%WD%bash /user_setup.sh +%WD%bash /ps/user_setup.sh :checkparams rem Help option diff --git a/msys2/etc/post-install/09-proxspace.post b/msys2/ps/09-proxspace_setup.post similarity index 85% rename from msys2/etc/post-install/09-proxspace.post rename to msys2/ps/09-proxspace_setup.post index f47361260..f9adfda00 100644 --- a/msys2/etc/post-install/09-proxspace.post +++ b/msys2/ps/09-proxspace_setup.post @@ -1,3 +1,10 @@ +PSVERSION="3.3" +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=/gcc-arm-none-eabi/bin:$PATH +alias ls='ls -hF --color=auto' + + check_install () { pacman -Q $1 > /dev/null if [ $? == 1 ]; then @@ -48,8 +55,6 @@ setup_proxspace () clean_86 fi } - -export LANG=en_US.UTF-8 if [ "$MAYBE_FIRST_START" = "false" ]; then yes | pacman -Su diff --git a/msys2/autobuild.sh b/msys2/ps/autobuild.sh similarity index 97% rename from msys2/autobuild.sh rename to msys2/ps/autobuild.sh index 9bd59a69d..f20e85a40 100644 --- a/msys2/autobuild.sh +++ b/msys2/ps/autobuild.sh @@ -40,7 +40,7 @@ for i in $( ls ); do mkdir -p "$buildDir/$i/Windows Driver" #you have to thank QT5 for all that dlls cp $mingwDir/bin/{libbz2-1.dll,libdouble-conversion.dll,libfreetype-*.dll,libgcc_s_*.dll,libglib-2.0-0.dll,libgraphite2.dll,libharfbuzz-0.dll,libiconv-2.dll,libicudt64.dll,libicuin64.dll,libicuuc64.dll,libintl-8.dll,libpcre-1.dll,libpcre2-16-0.dll,libpng16-16.dll,libreadline*.dll,libstdc++-*.dll,libtermcap-0.dll,libwinpthread-1.dll,Qt5Core.dll,Qt5Gui.dll,Qt5Widgets.dll,zlib1.dll,libsndfile-1.dll,libFLAC-8.dll,libogg-0.dll,libspeex-1.dll,libvorbis-0.dll,libvorbisenc-2.dll} $buildDir/$i/win$arch - cp -r /autobuild/* $buildDir/$i/win$arch + cp -r /ps/autobuild/* $buildDir/$i/win$arch cp -r $pm3Dir/$i/client/{proxmark3.exe,flasher.exe,*.dic,lualibs,scripts,hardnested} $buildDir/$i/win$arch cp $mingwDir/share/qt5/plugins/platforms/qwindows.dll $buildDir/$i/win$arch/platforms cp $pm3Dir/$i/armsrc/obj/{fullimage.elf,fullimage.s19} $buildDir/$i/firmware_win diff --git a/msys2/autobuild/FLASH - All.bat b/msys2/ps/autobuild/FLASH - All.bat similarity index 100% rename from msys2/autobuild/FLASH - All.bat rename to msys2/ps/autobuild/FLASH - All.bat diff --git a/msys2/autobuild/FLASH - Bootrom.bat b/msys2/ps/autobuild/FLASH - Bootrom.bat similarity index 100% rename from msys2/autobuild/FLASH - Bootrom.bat rename to msys2/ps/autobuild/FLASH - Bootrom.bat diff --git a/msys2/autobuild/FLASH - fullimage.bat b/msys2/ps/autobuild/FLASH - fullimage.bat similarity index 100% rename from msys2/autobuild/FLASH - fullimage.bat rename to msys2/ps/autobuild/FLASH - fullimage.bat diff --git a/msys2/autobuild/Go.bat b/msys2/ps/autobuild/Go.bat similarity index 100% rename from msys2/autobuild/Go.bat rename to msys2/ps/autobuild/Go.bat diff --git a/msys2/autobuild/qt.conf b/msys2/ps/autobuild/qt.conf similarity index 100% rename from msys2/autobuild/qt.conf rename to msys2/ps/autobuild/qt.conf diff --git a/msys2/user_setup.sh b/msys2/ps/user_setup.sh similarity index 100% rename from msys2/user_setup.sh rename to msys2/ps/user_setup.sh diff --git a/msys2/var/lib/pacman/local/filesystem-2018.12-1/files b/msys2/var/lib/pacman/local/filesystem-2018.12-1/files index 4899da3ae..e0111a07b 100644 --- a/msys2/var/lib/pacman/local/filesystem-2018.12-1/files +++ b/msys2/var/lib/pacman/local/filesystem-2018.12-1/files @@ -29,7 +29,6 @@ etc/post-install/05-home-dir.post etc/post-install/06-windows-files.post etc/post-install/07-pacman-key.post etc/post-install/08-xml-catalog.post -etc/post-install/09-proxspace.post etc/profile etc/profile.d/ etc/profile.d/lang.sh diff --git a/pm3/.bash_logout b/pm3/.bash_logout deleted file mode 100644 index 0e4e4f184..000000000 --- a/pm3/.bash_logout +++ /dev/null @@ -1,3 +0,0 @@ -# -# ~/.bash_logout -# diff --git a/pm3/.bash_profile b/pm3/.bash_profile deleted file mode 100644 index f694f7813..000000000 --- a/pm3/.bash_profile +++ /dev/null @@ -1,36 +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 . - -# ~/.bash_profile: executed by bash(1) for login shells. - -# The copy in your home directory (~/.bash_profile) 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. - -# User dependent .bash_profile file - -# source the users bashrc if it exists -if [ -f "${HOME}/.bashrc" ] ; then - source "${HOME}/.bashrc" -fi - -# Set PATH so it includes user's private bin if it exists -# if [ -d "${HOME}/bin" ] ; then -# PATH="${HOME}/bin:${PATH}" -# fi - -# Set MANPATH so it includes users' private man if it exists -# if [ -d "${HOME}/man" ]; then -# MANPATH="${HOME}/man:${MANPATH}" -# fi - -# Set INFOPATH so it includes users' private info if it exists -# if [ -d "${HOME}/info" ]; then -# INFOPATH="${HOME}/info:${INFOPATH}" -# fi diff --git a/pm3/.bashrc b/pm3/.bashrc deleted file mode 100644 index 50791c67d..000000000 --- a/pm3/.bashrc +++ /dev/null @@ -1,194 +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 . - -# ~/.bashrc: executed by bash(1) for interactive shells. - -# The copy in your home directory (~/.bashrc) 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. - -# User dependent .bashrc file - -# If not running interactively, don't do anything -[[ "$-" != *i* ]] && return - -# Shell Options -# -# See man bash for more options... -# -# Don't wait for job termination notification -# set -o notify -# -# Don't use ^D to exit -# set -o ignoreeof -# -# Use case-insensitive filename globbing -# shopt -s nocaseglob -# -# Make bash append rather than overwrite the history on disk -# shopt -s histappend -# -# When changing directory small typos can be ignored by bash -# for example, cd /vr/lgo/apaache would find /var/log/apache -# shopt -s cdspell - -# Completion options -# -# These completion tuning parameters change the default behavior of bash_completion: -# -# Define to access remotely checked-out files over passwordless ssh for CVS -# COMP_CVS_REMOTE=1 -# -# Define to avoid stripping description in --option=description of './configure --help' -# COMP_CONFIGURE_HINTS=1 -# -# Define to avoid flattening internal contents of tar files -# COMP_TAR_INTERNAL_PATHS=1 -# -# Uncomment to turn on programmable completion enhancements. -# Any completions you add in ~/.bash_completion are sourced last. -# [[ -f /etc/bash_completion ]] && . /etc/bash_completion - -# History Options -# -# Don't put duplicate lines in the history. -# export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups -# -# Ignore some controlling instructions -# HISTIGNORE is a colon-delimited list of patterns which should be excluded. -# The '&' is a special pattern which suppresses duplicate entries. -# export HISTIGNORE=$'[ \t]*:&:[fb]g:exit' -# export HISTIGNORE=$'[ \t]*:&:[fb]g:exit:ls' # Ignore the ls command as well -# -# Whenever displaying the prompt, write the previous line to disk -# export PROMPT_COMMAND="history -a" - -# Aliases -# -# Some people use a different file for aliases -# if [ -f "${HOME}/.bash_aliases" ]; then -# source "${HOME}/.bash_aliases" -# fi -# -# Some example alias instructions -# If these are enabled they will be used instead of any instructions -# they may mask. For example, alias rm='rm -i' will mask the rm -# application. To override the alias instruction use a \ before, ie -# \rm will call the real rm not the alias. -# -# Interactive operation... -# alias rm='rm -i' -# alias cp='cp -i' -# alias mv='mv -i' -# -# Default to human readable figures -# alias df='df -h' -# alias du='du -h' -# -# Misc :) -# alias less='less -r' # raw control characters -# alias whence='type -a' # where, of a sort -# alias grep='grep --color' # show differences in colour -# alias egrep='egrep --color=auto' # show differences in colour -# alias fgrep='fgrep --color=auto' # show differences in colour -# -# Some shortcuts for different directory listings -# alias ls='ls -hF --color=tty' # classify files in colour -# alias dir='ls --color=auto --format=vertical' -# alias vdir='ls --color=auto --format=long' -# alias ll='ls -l' # long list -# alias la='ls -A' # all but . and .. -# alias l='ls -CF' # - -# Umask -# -# /etc/profile sets 022, removing write perms to group + others. -# Set a more restrictive umask: i.e. no exec perms for others: -# umask 027 -# Paranoid: neither group nor others have any perms: -# umask 077 - -# Functions -# -# Some people use a different file for functions -# if [ -f "${HOME}/.bash_functions" ]; then -# source "${HOME}/.bash_functions" -# fi -# -# Some example functions: -# -# a) function settitle -# settitle () -# { -# echo -ne "\e]2;$@\a\e]1;$@\a"; -# } -# -# b) function cd_func -# This function defines a 'cd' replacement function capable of keeping, -# displaying and accessing history of visited directories, up to 10 entries. -# To use it, uncomment it, source this file and try 'cd --'. -# acd_func 1.0.5, 10-nov-2004 -# Petar Marinov, http:/geocities.com/h2428, this is public domain -# cd_func () -# { -# local x2 the_new_dir adir index -# local -i cnt -# -# if [[ $1 == "--" ]]; then -# dirs -v -# return 0 -# fi -# -# the_new_dir=$1 -# [[ -z $1 ]] && the_new_dir=$HOME -# -# if [[ ${the_new_dir:0:1} == '-' ]]; then -# # -# # Extract dir N from dirs -# index=${the_new_dir:1} -# [[ -z $index ]] && index=1 -# adir=$(dirs +$index) -# [[ -z $adir ]] && return 1 -# the_new_dir=$adir -# fi -# -# # -# # '~' has to be substituted by ${HOME} -# [[ ${the_new_dir:0:1} == '~' ]] && the_new_dir="${HOME}${the_new_dir:1}" -# -# # -# # Now change to the new dir and add to the top of the stack -# pushd "${the_new_dir}" > /dev/null -# [[ $? -ne 0 ]] && return 1 -# the_new_dir=$(pwd) -# -# # -# # Trim down everything beyond 11th entry -# popd -n +11 2>/dev/null 1>/dev/null -# -# # -# # Remove any other occurence of this dir, skipping the top of the stack -# for ((cnt=1; cnt <= 10; cnt++)); do -# x2=$(dirs +${cnt} 2>/dev/null) -# [[ $? -ne 0 ]] && return 0 -# [[ ${x2:0:1} == '~' ]] && x2="${HOME}${x2:1}" -# if [[ "${x2}" == "${the_new_dir}" ]]; then -# popd -n +$cnt 2>/dev/null 1>/dev/null -# cnt=cnt-1 -# fi -# done -# -# return 0 -# } -# -# alias cd=cd_func -export LANG=en_US.UTF-8 -export PS1='\[\033]0;ProxSpace v3.2 - $MSYSTEM:\w\007\033[32m\]pm3 \[\033[33m\]\w\[\033[0m\]$ ' -export PATH=/gcc-arm-none-eabi/bin:$PATH -alias ls='ls -hF --color=auto' \ No newline at end of file diff --git a/pm3/.inputrc b/pm3/.inputrc deleted file mode 100644 index 5391e2f42..000000000 --- a/pm3/.inputrc +++ /dev/null @@ -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 . - -# ~/.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 \ No newline at end of file diff --git a/pm3/.profile b/pm3/.profile deleted file mode 100644 index b78573850..000000000 --- a/pm3/.profile +++ /dev/null @@ -1,52 +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 . - -# ~/.profile: executed by the command interpreter for login shells. - -# The copy in your home directory (~/.profile) is yours, please -# feel free to customise it to create a shell -# environment to your liking. If you feel a change -# would be benificial to all, please feel free to send -# a patch to the msys2 mailing list. - -# User dependent .profile file - -# Set user-defined locale -export LANG=$(locale -uU) - -# This file is not read by bash(1) if ~/.bash_profile or ~/.bash_login -# exists. -# -# if running bash -if [ -n "${BASH_VERSION}" ]; then - if [ -f "${HOME}/.bashrc" ]; 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 -} diff --git a/runme.bat b/runme.bat index 3b52db03c..a541169fd 100644 --- a/runme.bat +++ b/runme.bat @@ -3,7 +3,7 @@ REM ******************************************* REM CHANGE THIS PATH TO MATCH YOUR INSTALLATION REM ******************************************* set MYPATH=%~dp0 - +copy /Y msys2\ps\*.post msys2\etc\post-install\ >NUL echo # For a description of the file format, see the Users Guide >msys2/etc/fstab echo # http://cygwin.com/cygwin-ug-net/using.html#mount-table >>msys2/etc/fstab echo none / cygdrive binary,posix=0,noacl,user 0 0 >>msys2/etc/fstab diff --git a/runme64.bat b/runme64.bat index cb2248cae..206f5713f 100644 --- a/runme64.bat +++ b/runme64.bat @@ -3,7 +3,7 @@ REM ******************************************* REM CHANGE THIS PATH TO MATCH YOUR INSTALLATION REM ******************************************* set MYPATH=%~dp0 - +copy /Y msys2\ps\*.post msys2\etc\post-install\ >NUL echo # For a description of the file format, see the Users Guide >msys2/etc/fstab echo # http://cygwin.com/cygwin-ug-net/using.html#mount-table >>msys2/etc/fstab echo none / cygdrive binary,posix=0,noacl,user 0 0 >>msys2/etc/fstab From b66ceaed9894fef147b37993e5a4b7a0b58055a6 Mon Sep 17 00:00:00 2001 From: gator96100 Date: Fri, 31 Jan 2020 21:02:26 +0100 Subject: [PATCH 02/10] Added ps-info and ps-setup command --- autobuild.bat | 15 +++---- msys2/ps/09-proxspace_setup.post | 71 +++++--------------------------- msys2/ps/bin/ps-info | 20 +++++++++ msys2/ps/bin/ps-setup | 51 +++++++++++++++++++++++ runme.bat | 9 ++-- runme64.bat | 9 ++-- 6 files changed, 93 insertions(+), 82 deletions(-) create mode 100644 msys2/ps/bin/ps-info create mode 100644 msys2/ps/bin/ps-setup diff --git a/autobuild.bat b/autobuild.bat index 3015448de..83baef3ca 100644 --- a/autobuild.bat +++ b/autobuild.bat @@ -1,14 +1,11 @@ @echo off -REM ******************************************* -REM CHANGE THIS PATH TO MATCH YOUR INSTALLATION -REM ******************************************* -set MYPATH=%~dp0 +copy /Y msys2\ps\*.post msys2\etc\post-install\ >NUL echo # For a description of the file format, see the Users Guide >msys2/etc/fstab echo # http://cygwin.com/cygwin-ug-net/using.html#mount-table >>msys2/etc/fstab echo none / cygdrive binary,posix=0,noacl,user 0 0 >>msys2/etc/fstab -echo %MYPATH%pm3 /pm3 ntfs noacl 0 0 >>msys2/etc/fstab -echo %MYPATH%gcc-arm-none-eabi /gcc-arm-none-eabi ntfs noacl 0 0 >>msys2/etc/fstab -echo %MYPATH%builds /builds ntfs noacl 0 0 >>msys2/etc/fstab -call msys2\msys2_shell.cmd -mingw32 -defterm -no-start -c /autobuild.sh -call msys2\msys2_shell.cmd -mingw64 -defterm -no-start -c /autobuild.sh \ No newline at end of file +echo %~dp0pm3 /pm3 ntfs noacl 0 0 >>msys2/etc/fstab +echo %~dp0gcc-arm-none-eabi /gcc-arm-none-eabi ntfs noacl 0 0 >>msys2/etc/fstab +echo %~dp0builds /builds ntfs noacl 0 0 >>msys2/etc/fstab +call msys2\msys2_shell.cmd -mingw32 -defterm -no-start -c /ps/autobuild.sh +call msys2\msys2_shell.cmd -mingw64 -defterm -no-start -c /ps/autobuild.sh \ No newline at end of file diff --git a/msys2/ps/09-proxspace_setup.post b/msys2/ps/09-proxspace_setup.post index f9adfda00..b3bca47f6 100644 --- a/msys2/ps/09-proxspace_setup.post +++ b/msys2/ps/09-proxspace_setup.post @@ -1,66 +1,15 @@ -PSVERSION="3.3" +export PSVERSION="3.3" 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=/gcc-arm-none-eabi/bin:$PATH +export PATH=/gcc-arm-none-eabi/bin:/ps/bin:$PATH alias ls='ls -hF --color=auto' - -check_install () { - pacman -Q $1 > /dev/null - if [ $? == 1 ]; then - pacman --noconfirm --overwrite='*' -S $1 - fi -} - -check_install_web () { - pacman -Q $1 | grep $2 > /dev/null - if [ $? == 1 ]; then - pacman --noconfirm --overwrite='*' -U $3 - fi -} - -clean_86 () { - rm -rf /mingw32/share/qt5/examples - pacman --noconfirm --overwrite='*' -Scc -} - -clean_64 () { - rm -rf /mingw64/share/qt5/examples - pacman --noconfirm --overwrite='*' -Scc -} - - - -setup_proxspace () -{ - if [ "$MSYSTEM" == "MINGW64" ]; then - check_install mingw-w64-x86_64-gcc - check_install mingw-w64-x86_64-readline - check_install mingw-w64-x86_64-libsndfile - check_install git - check_install make - check_install pkg-config - check_install mingw-w64-x86_64-qt5 - clean_64 - fi - - if [ "$MSYSTEM" == "MINGW32" ]; then - check_install mingw-w64-i686-readline - check_install mingw-w64-i686-gcc - check_install mingw-w64-i686-libsndfile - check_install git - check_install make - check_install pkg-config - check_install mingw-w64-i686-qt5 - clean_86 - fi -} - -if [ "$MAYBE_FIRST_START" = "false" ]; then - yes | pacman -Su - setup_proxspace - clear -else - yes | pacman -Syuu +if [ \( ! -f /ps/installed32.txt -a "$MSYSTEM" == "MINGW32" \) -o \( ! -f /ps/installed64.txt -a "$MSYSTEM" == "MINGW64" \) ]; then + if [ "$MAYBE_FIRST_START" = "true" ]; then + yes | pacman -Syuu + else + yes | pacman -Su + ps-setup + fi fi - + diff --git a/msys2/ps/bin/ps-info b/msys2/ps/bin/ps-info new file mode 100644 index 000000000..8cb0f2e4f --- /dev/null +++ b/msys2/ps/bin/ps-info @@ -0,0 +1,20 @@ +ps_print () { + printf "%s\n" "$1" 2>&1 | tee -a ps-info.log +} + +rm ps-info.log &> /dev/null +ps_print "ProxSpace info:" +ps_print "Version: $PSVERSION" +ps_print "Arch: $MSYSTEM_CARCH" +ps_print "OS: $(wmic OS get Caption,CSDVersion,OSArchitecture,Version | awk 'NR==2')" +ps_print "CPU: $(wmic CPU get Name | awk 'NR==2')" +ps_print "Ram: $(wmic COMPUTERSYSTEM get TotalPhysicalMemory | awk 'NR==2')" +ps_print "Installed32: $(cat /ps/installed32.txt)" +ps_print "Installed64: $(cat /ps/installed64.txt)" +ps_print "OLDPWD: $OLDPWD" +ps_print "Path: $PATH" +ps_print "gcc: $(gcc -dumpversion)" +ps_print "git: $(git --version)" +ps_print "make: $(make -v)" +ps_print "pkg-config: $(pkg-config --version)" +ps_print "Qt: $(qmake --version)" \ No newline at end of file diff --git a/msys2/ps/bin/ps-setup b/msys2/ps/bin/ps-setup new file mode 100644 index 000000000..b3410bcaa --- /dev/null +++ b/msys2/ps/bin/ps-setup @@ -0,0 +1,51 @@ +check_install () { + pacman -Q $1 > /dev/null + if [ $? == 1 ]; then + pacman --noconfirm --overwrite='*' -S $1 + fi +} + +check_install_web () { + pacman -Q $1 | grep $2 > /dev/null + if [ $? == 1 ]; then + pacman --noconfirm --overwrite='*' -U $3 + fi +} + +clean_86 () { + rm -rf /mingw32/share/qt5/examples + pacman --noconfirm --overwrite='*' -Scc +} + +clean_64 () { + rm -rf /mingw64/share/qt5/examples + pacman --noconfirm --overwrite='*' -Scc +} + +setup_proxspace () +{ + if [ "$MSYSTEM" == "MINGW64" ]; then + check_install mingw-w64-x86_64-gcc + check_install mingw-w64-x86_64-readline + check_install mingw-w64-x86_64-libsndfile + check_install git + check_install make + check_install pkg-config + check_install mingw-w64-x86_64-qt5 + clean_64 + echo $(date '+%Y-%m-%d %H:%M:%S') > /ps/installed64.txt + fi + + if [ "$MSYSTEM" == "MINGW32" ]; then + check_install mingw-w64-i686-readline + check_install mingw-w64-i686-gcc + check_install mingw-w64-i686-libsndfile + check_install git + check_install make + check_install pkg-config + check_install mingw-w64-i686-qt5 + clean_86 + echo $(date '+%Y-%m-%d %H:%M:%S') > /ps/installed32.txt + fi +} +setup_proxspace \ No newline at end of file diff --git a/runme.bat b/runme.bat index a541169fd..9911d2308 100644 --- a/runme.bat +++ b/runme.bat @@ -1,12 +1,9 @@ @echo off -REM ******************************************* -REM CHANGE THIS PATH TO MATCH YOUR INSTALLATION -REM ******************************************* -set MYPATH=%~dp0 + copy /Y msys2\ps\*.post msys2\etc\post-install\ >NUL echo # For a description of the file format, see the Users Guide >msys2/etc/fstab echo # http://cygwin.com/cygwin-ug-net/using.html#mount-table >>msys2/etc/fstab echo none / cygdrive binary,posix=0,noacl,user 0 0 >>msys2/etc/fstab -echo %MYPATH%pm3 /pm3 ntfs noacl 0 0 >>msys2/etc/fstab -echo %MYPATH%gcc-arm-none-eabi /gcc-arm-none-eabi ntfs noacl 0 0 >>msys2/etc/fstab +echo %~dp0pm3 /pm3 ntfs noacl 0 0 >>msys2/etc/fstab +echo %~dp0gcc-arm-none-eabi /gcc-arm-none-eabi ntfs noacl 0 0 >>msys2/etc/fstab msys2\msys2_shell.cmd -mingw32 -defterm -no-start \ No newline at end of file diff --git a/runme64.bat b/runme64.bat index 206f5713f..f6c663e2e 100644 --- a/runme64.bat +++ b/runme64.bat @@ -1,12 +1,9 @@ @echo off -REM ******************************************* -REM CHANGE THIS PATH TO MATCH YOUR INSTALLATION -REM ******************************************* -set MYPATH=%~dp0 + copy /Y msys2\ps\*.post msys2\etc\post-install\ >NUL echo # For a description of the file format, see the Users Guide >msys2/etc/fstab echo # http://cygwin.com/cygwin-ug-net/using.html#mount-table >>msys2/etc/fstab echo none / cygdrive binary,posix=0,noacl,user 0 0 >>msys2/etc/fstab -echo %MYPATH%pm3 /pm3 ntfs noacl 0 0 >>msys2/etc/fstab -echo %MYPATH%gcc-arm-none-eabi /gcc-arm-none-eabi ntfs noacl 0 0 >>msys2/etc/fstab +echo %~dp0pm3 /pm3 ntfs noacl 0 0 >>msys2/etc/fstab +echo %~dp0gcc-arm-none-eabi /gcc-arm-none-eabi ntfs noacl 0 0 >>msys2/etc/fstab msys2\msys2_shell.cmd -mingw64 -defterm -no-start \ No newline at end of file From 8271a15d86e5e77a1fc7710a929d86437a30b55e Mon Sep 17 00:00:00 2001 From: gator96100 Date: Fri, 31 Jan 2020 21:26:59 +0100 Subject: [PATCH 03/10] Added ps-repair command --- msys2/ps/bin/ps-repair | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 msys2/ps/bin/ps-repair diff --git a/msys2/ps/bin/ps-repair b/msys2/ps/bin/ps-repair new file mode 100644 index 000000000..d33671d6d --- /dev/null +++ b/msys2/ps/bin/ps-repair @@ -0,0 +1,3 @@ +for pkg in $(pacman -Q | cut -d' ' -f1); do + pacman --noconfirm --overwrite='*' -S $pkg +done \ No newline at end of file From 22bd2c7609f0a90f2426f3f51a050079335ff8d5 Mon Sep 17 00:00:00 2001 From: gator96100 Date: Fri, 31 Jan 2020 21:34:25 +0100 Subject: [PATCH 04/10] Added ps-upgrade command --- msys2/ps/bin/ps-upgrade | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 msys2/ps/bin/ps-upgrade diff --git a/msys2/ps/bin/ps-upgrade b/msys2/ps/bin/ps-upgrade new file mode 100644 index 000000000..dab151b41 --- /dev/null +++ b/msys2/ps/bin/ps-upgrade @@ -0,0 +1,3 @@ +rm /ps/installed64.txt &> /dev/null +rm /ps/installed32.txt &> /dev/null +yes | pacman -Syuu \ No newline at end of file From df73aa0231ab4391e4d813c3192bf67d63ac4f58 Mon Sep 17 00:00:00 2001 From: gator96100 Date: Fri, 31 Jan 2020 22:56:11 +0100 Subject: [PATCH 05/10] Restored msys2 to original files --- autobuild.bat | 8 +--- msys2/autorebase.bat | 4 ++ msys2/autorebasebase1st.bat | 15 +++++++ msys2/dir | 15 +++++++ msys2/etc/nsswitch.conf | 6 +-- msys2/etc/pacman.conf | 4 +- msys2/etc/profile | 1 - msys2/etc/wgetrc | 5 --- msys2/mingw32.exe | Bin 0 -> 50822 bytes msys2/mingw32.ini | 5 +++ msys2/mingw64.exe | Bin 0 -> 50822 bytes msys2/mingw64.ini | 5 +++ msys2/msys2.exe | Bin 0 -> 50822 bytes msys2/msys2.ico | Bin 0 -> 25758 bytes msys2/msys2.ini | 5 +++ msys2/msys2_shell.cmd | 9 ---- msys2/ps/bin/ps-setup | 7 --- msys2/ps/nsswitch.conf | 12 +++++ msys2/ps/pacman.conf | 85 ++++++++++++++++++++++++++++++++++++ msys2/ps/setup.cmd | 18 ++++++++ msys2/ps/user_setup.sh | 5 +-- runme.bat | 8 +--- runme64.bat | 8 +--- 23 files changed, 173 insertions(+), 52 deletions(-) create mode 100644 msys2/autorebase.bat create mode 100644 msys2/autorebasebase1st.bat create mode 100644 msys2/dir create mode 100644 msys2/mingw32.exe create mode 100644 msys2/mingw32.ini create mode 100644 msys2/mingw64.exe create mode 100644 msys2/mingw64.ini create mode 100644 msys2/msys2.exe create mode 100644 msys2/msys2.ico create mode 100644 msys2/msys2.ini create mode 100644 msys2/ps/nsswitch.conf create mode 100644 msys2/ps/pacman.conf create mode 100644 msys2/ps/setup.cmd diff --git a/autobuild.bat b/autobuild.bat index 83baef3ca..84fc2f500 100644 --- a/autobuild.bat +++ b/autobuild.bat @@ -1,11 +1,5 @@ @echo off - -copy /Y msys2\ps\*.post msys2\etc\post-install\ >NUL -echo # For a description of the file format, see the Users Guide >msys2/etc/fstab -echo # http://cygwin.com/cygwin-ug-net/using.html#mount-table >>msys2/etc/fstab -echo none / cygdrive binary,posix=0,noacl,user 0 0 >>msys2/etc/fstab -echo %~dp0pm3 /pm3 ntfs noacl 0 0 >>msys2/etc/fstab -echo %~dp0gcc-arm-none-eabi /gcc-arm-none-eabi ntfs noacl 0 0 >>msys2/etc/fstab +call msys2\ps\setup.cmd echo %~dp0builds /builds ntfs noacl 0 0 >>msys2/etc/fstab call msys2\msys2_shell.cmd -mingw32 -defterm -no-start -c /ps/autobuild.sh call msys2\msys2_shell.cmd -mingw64 -defterm -no-start -c /ps/autobuild.sh \ No newline at end of file diff --git a/msys2/autorebase.bat b/msys2/autorebase.bat new file mode 100644 index 000000000..7b833adda --- /dev/null +++ b/msys2/autorebase.bat @@ -0,0 +1,4 @@ +@echo off + +set PATH=%~dp0\usr\bin;%PATH% +%~dp0\usr\bin\dash /usr/bin/rebaseall -p diff --git a/msys2/autorebasebase1st.bat b/msys2/autorebasebase1st.bat new file mode 100644 index 000000000..8a89debe8 --- /dev/null +++ b/msys2/autorebasebase1st.bat @@ -0,0 +1,15 @@ +@echo off +REM Copyright (c) 2014, Ray Donnelly + +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 diff --git a/msys2/dir b/msys2/dir new file mode 100644 index 000000000..e640bffd0 --- /dev/null +++ b/msys2/dir @@ -0,0 +1,15 @@ +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" visits the Emacs manual, etc. + + In Emacs, you can click mouse button 2 on a menu item or cross reference + to select it. + +* Menu: diff --git a/msys2/etc/nsswitch.conf b/msys2/etc/nsswitch.conf index 79140291b..90404f647 100644 --- a/msys2/etc/nsswitch.conf +++ b/msys2/etc/nsswitch.conf @@ -1,9 +1,9 @@ # Begin /etc/nsswitch.conf -passwd: files -group: files +passwd: files db +group: files db -db_enum: files +db_enum: cache builtin db_home: cygwin desc db_shell: cygwin desc diff --git a/msys2/etc/pacman.conf b/msys2/etc/pacman.conf index 3b7095fd2..091087283 100644 --- a/msys2/etc/pacman.conf +++ b/msys2/etc/pacman.conf @@ -16,7 +16,7 @@ #GPGDir = /etc/pacman.d/gnupg/ HoldPkg = pacman #XferCommand = /usr/bin/curl -C - -f %u > %o -XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #CleanMethod = KeepInstalled #UseDelta = 0.7 Architecture = auto @@ -30,7 +30,7 @@ Architecture = auto # Misc options #UseSyslog -Color +#Color #TotalDownload CheckSpace #VerbosePkgLists diff --git a/msys2/etc/profile b/msys2/etc/profile index a8826920f..ba020e479 100644 --- a/msys2/etc/profile +++ b/msys2/etc/profile @@ -177,6 +177,5 @@ if [ "$MAYBE_FIRST_START" = "true" ]; then echo "###################################################################" echo echo - sleep infinity fi unset MAYBE_FIRST_START diff --git a/msys2/etc/wgetrc b/msys2/etc/wgetrc index 497aa2d08..d339e2b34 100644 --- a/msys2/etc/wgetrc +++ b/msys2/etc/wgetrc @@ -138,8 +138,3 @@ # default root certs location ca_certificate=/usr/ssl/certs/ca-bundle.crt - -#connect_timeout=30 -#dns_timeout=30 -#read_timeout=30 -timeout=10 diff --git a/msys2/mingw32.exe b/msys2/mingw32.exe new file mode 100644 index 0000000000000000000000000000000000000000..96e2c2e6acb27f88a7756aa289b5cf5b22e105e9 GIT binary patch literal 50822 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 bTuL8f9CVpHqVF2)aBkd)wbUV&&C>q^MB;6* literal 0 HcmV?d00001 diff --git a/msys2/mingw32.ini b/msys2/mingw32.ini new file mode 100644 index 000000000..ad1b96cbe --- /dev/null +++ b/msys2/mingw32.ini @@ -0,0 +1,5 @@ +#MSYS=winsymlinks:nativestrict +#MSYS=error_start:mingw64/bin/qtcreator.exe|-debug| +#CHERE_INVOKING=1 +#MSYS2_PATH_TYPE=inherit +MSYSTEM=MINGW32 diff --git a/msys2/mingw64.exe b/msys2/mingw64.exe new file mode 100644 index 0000000000000000000000000000000000000000..b73e034c9e2883e0f1e3b0cd543d66a216572d91 GIT binary patch literal 50822 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 +#CHERE_INVOKING=1 +#MSYS2_PATH_TYPE=inherit +MSYSTEM=MINGW64 diff --git a/msys2/msys2.exe b/msys2/msys2.exe new file mode 100644 index 0000000000000000000000000000000000000000..b98482f19d0613dd8836462a77dd4c7c130e120d GIT binary patch literal 50822 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 literal 0 HcmV?d00001 diff --git a/msys2/msys2.ico b/msys2/msys2.ico new file mode 100644 index 0000000000000000000000000000000000000000..baea305abd05a31d0161b27f00c1497ced7d5122 GIT binary patch literal 25758 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 +#CHERE_INVOKING=1 +#MSYS2_PATH_TYPE=inherit +MSYSTEM=MSYS diff --git a/msys2/msys2_shell.cmd b/msys2/msys2_shell.cmd index 719c7929a..1e97383fa 100644 --- a/msys2/msys2_shell.cmd +++ b/msys2/msys2_shell.cmd @@ -14,15 +14,6 @@ rem set MSYS=error_start:%WD%../../mingw64/bin/qtcreator.exe^|-debug^|^ nul -rem /tmp is required for bash to work -mkdir %WD%..\..\tmp 2> nul -del %WD%..\..\etc\passwd 2> nul -del %WD%..\..\etc\group 2> nul -%WD%touch /etc/passwd -%WD%touch /etc/group -%WD%bash /ps/user_setup.sh :checkparams rem Help option diff --git a/msys2/ps/bin/ps-setup b/msys2/ps/bin/ps-setup index b3410bcaa..11d19cee0 100644 --- a/msys2/ps/bin/ps-setup +++ b/msys2/ps/bin/ps-setup @@ -5,13 +5,6 @@ check_install () { fi } -check_install_web () { - pacman -Q $1 | grep $2 > /dev/null - if [ $? == 1 ]; then - pacman --noconfirm --overwrite='*' -U $3 - fi -} - clean_86 () { rm -rf /mingw32/share/qt5/examples pacman --noconfirm --overwrite='*' -Scc diff --git a/msys2/ps/nsswitch.conf b/msys2/ps/nsswitch.conf new file mode 100644 index 000000000..79140291b --- /dev/null +++ b/msys2/ps/nsswitch.conf @@ -0,0 +1,12 @@ +# Begin /etc/nsswitch.conf + +passwd: files +group: files + +db_enum: files + +db_home: cygwin desc +db_shell: cygwin desc +db_gecos: cygwin desc + +# End /etc/nsswitch.conf diff --git a/msys2/ps/pacman.conf b/msys2/ps/pacman.conf new file mode 100644 index 000000000..eec717e80 --- /dev/null +++ b/msys2/ps/pacman.conf @@ -0,0 +1,85 @@ +# +# /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 --timeout=10 -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 diff --git a/msys2/ps/setup.cmd b/msys2/ps/setup.cmd new file mode 100644 index 000000000..327b71028 --- /dev/null +++ b/msys2/ps/setup.cmd @@ -0,0 +1,18 @@ +@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 %~dp0pm3 /pm3 ntfs noacl 0 0 >>%cd%\msys2/etc/fstab +echo %~dp0gcc-arm-none-eabi /gcc-arm-none-eabi 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/user_setup.sh diff --git a/msys2/ps/user_setup.sh b/msys2/ps/user_setup.sh index 983fd7c2d..1094c153a 100644 --- a/msys2/ps/user_setup.sh +++ b/msys2/ps/user_setup.sh @@ -18,7 +18,4 @@ GROUP_MISSING=$( grep -Fq "$GROUP_SID" /etc/group )$? # If not, add it if [ $GROUP_MISSING != 0 ]; then echo $MKGROUP_CURRENT >> /etc/group -fi - - - +fi \ No newline at end of file diff --git a/runme.bat b/runme.bat index 9911d2308..8a6da048c 100644 --- a/runme.bat +++ b/runme.bat @@ -1,9 +1,3 @@ @echo off - -copy /Y msys2\ps\*.post msys2\etc\post-install\ >NUL -echo # For a description of the file format, see the Users Guide >msys2/etc/fstab -echo # http://cygwin.com/cygwin-ug-net/using.html#mount-table >>msys2/etc/fstab -echo none / cygdrive binary,posix=0,noacl,user 0 0 >>msys2/etc/fstab -echo %~dp0pm3 /pm3 ntfs noacl 0 0 >>msys2/etc/fstab -echo %~dp0gcc-arm-none-eabi /gcc-arm-none-eabi ntfs noacl 0 0 >>msys2/etc/fstab +call msys2\ps\setup.cmd msys2\msys2_shell.cmd -mingw32 -defterm -no-start \ No newline at end of file diff --git a/runme64.bat b/runme64.bat index f6c663e2e..1dc5f15e3 100644 --- a/runme64.bat +++ b/runme64.bat @@ -1,9 +1,3 @@ @echo off - -copy /Y msys2\ps\*.post msys2\etc\post-install\ >NUL -echo # For a description of the file format, see the Users Guide >msys2/etc/fstab -echo # http://cygwin.com/cygwin-ug-net/using.html#mount-table >>msys2/etc/fstab -echo none / cygdrive binary,posix=0,noacl,user 0 0 >>msys2/etc/fstab -echo %~dp0pm3 /pm3 ntfs noacl 0 0 >>msys2/etc/fstab -echo %~dp0gcc-arm-none-eabi /gcc-arm-none-eabi ntfs noacl 0 0 >>msys2/etc/fstab +call msys2\ps\setup.cmd msys2\msys2_shell.cmd -mingw64 -defterm -no-start \ No newline at end of file From 70dad0600017c06371d5a71acb4d8c8bda8f46e6 Mon Sep 17 00:00:00 2001 From: gator96100 Date: Fri, 31 Jan 2020 23:20:34 +0100 Subject: [PATCH 06/10] Fixed wrong fstab entries --- msys2/ps/setup.cmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/msys2/ps/setup.cmd b/msys2/ps/setup.cmd index 327b71028..bfbc41e16 100644 --- a/msys2/ps/setup.cmd +++ b/msys2/ps/setup.cmd @@ -6,8 +6,8 @@ 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 %~dp0pm3 /pm3 ntfs noacl 0 0 >>%cd%\msys2/etc/fstab -echo %~dp0gcc-arm-none-eabi /gcc-arm-none-eabi ntfs noacl 0 0 >>%cd%\msys2/etc/fstab +echo %cd%\pm3 /pm3 ntfs noacl 0 0 >>%cd%\msys2/etc/fstab +echo %cd%\gcc-arm-none-eabi /gcc-arm-none-eabi ntfs noacl 0 0 >>%cd%\msys2/etc/fstab dash /usr/bin/rebaseall -p 2> nul mkdir %cd%\msys2\tmp 2> nul From 0d34311d98455260adce06b0ae19f78de0012087 Mon Sep 17 00:00:00 2001 From: gator96100 Date: Fri, 31 Jan 2020 23:43:13 +0100 Subject: [PATCH 07/10] Added gcc-arm-none-eabi to ps-info command --- msys2/ps/bin/ps-info | 1 + 1 file changed, 1 insertion(+) diff --git a/msys2/ps/bin/ps-info b/msys2/ps/bin/ps-info index 8cb0f2e4f..64d087922 100644 --- a/msys2/ps/bin/ps-info +++ b/msys2/ps/bin/ps-info @@ -13,6 +13,7 @@ ps_print "Installed32: $(cat /ps/installed32.txt)" ps_print "Installed64: $(cat /ps/installed64.txt)" ps_print "OLDPWD: $OLDPWD" ps_print "Path: $PATH" +ps_print "arm-none-eabi-gcc: $(arm-none-eabi-gcc -dumpversion)" ps_print "gcc: $(gcc -dumpversion)" ps_print "git: $(git --version)" ps_print "make: $(make -v)" From a3183d3e21317326431a484e48854cf2ccc6555a Mon Sep 17 00:00:00 2001 From: gator96100 Date: Sat, 1 Feb 2020 00:03:45 +0100 Subject: [PATCH 08/10] Fixed path for autobuild --- autobuild.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autobuild.bat b/autobuild.bat index 84fc2f500..9ce4df211 100644 --- a/autobuild.bat +++ b/autobuild.bat @@ -1,5 +1,5 @@ @echo off call msys2\ps\setup.cmd -echo %~dp0builds /builds ntfs noacl 0 0 >>msys2/etc/fstab +echo %cd%\builds /builds ntfs noacl 0 0 >>msys2/etc/fstab call msys2\msys2_shell.cmd -mingw32 -defterm -no-start -c /ps/autobuild.sh call msys2\msys2_shell.cmd -mingw64 -defterm -no-start -c /ps/autobuild.sh \ No newline at end of file From 89f8a5c668f0e0a731306b20a234beede27af1ad Mon Sep 17 00:00:00 2001 From: gator96100 Date: Sat, 1 Feb 2020 00:39:01 +0100 Subject: [PATCH 09/10] Fixes for autobuild --- msys2/ps/autobuild.sh | 44 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/msys2/ps/autobuild.sh b/msys2/ps/autobuild.sh index f20e85a40..24789b5e1 100644 --- a/msys2/ps/autobuild.sh +++ b/msys2/ps/autobuild.sh @@ -3,8 +3,6 @@ pm3Dir=/pm3 copyDir=/builds buildDir=/tmp -export PATH=/gcc-arm-none-eabi/bin:$PATH - pacman -Q zip 1> /dev/null if [[ $? != 0 ]]; then pacman --noconfirm -S zip @@ -21,35 +19,35 @@ if [ "$MSYSTEM" == "MINGW64" ]; then fi cd $pm3Dir -for i in $( ls ); do - echo Processing: $i-$arch - cd $pm3Dir/$i +for i in $( ls -d */ ); do + echo Processing: ${i%%/}-$arch + cd $pm3Dir/${i%%/} git fetch git pull hash=$(git rev-parse HEAD) date=$(date +%Y%m%d) - if ! ls $copyDir/$i-$arch/*-$hash.zip 1> /dev/null 2>&1; then + if ! ls $copyDir/${i%%/}-$arch/*-$hash.zip 1> /dev/null 2>&1; then make clean make all if [ $? -eq 0 ]; then - rm -rf $buildDir/$i/* - mkdir -p $copyDir/$i-$arch/ - mkdir -p $buildDir/$i/win$arch/platforms - mkdir -p $buildDir/$i/firmware_win/bootrom - mkdir -p "$buildDir/$i/firmware_win/JTAG Only" - mkdir -p "$buildDir/$i/Windows Driver" + rm -rf $buildDir/${i%%/}/* + mkdir -p $copyDir/${i%%/}-$arch/ + mkdir -p $buildDir/${i%%/}/win$arch/platforms + mkdir -p $buildDir/${i%%/}/firmware_win/bootrom + mkdir -p "$buildDir/${i%%/}/firmware_win/JTAG Only" + mkdir -p "$buildDir/${i%%/}/Windows Driver" #you have to thank QT5 for all that dlls - cp $mingwDir/bin/{libbz2-1.dll,libdouble-conversion.dll,libfreetype-*.dll,libgcc_s_*.dll,libglib-2.0-0.dll,libgraphite2.dll,libharfbuzz-0.dll,libiconv-2.dll,libicudt64.dll,libicuin64.dll,libicuuc64.dll,libintl-8.dll,libpcre-1.dll,libpcre2-16-0.dll,libpng16-16.dll,libreadline*.dll,libstdc++-*.dll,libtermcap-0.dll,libwinpthread-1.dll,Qt5Core.dll,Qt5Gui.dll,Qt5Widgets.dll,zlib1.dll,libsndfile-1.dll,libFLAC-8.dll,libogg-0.dll,libspeex-1.dll,libvorbis-0.dll,libvorbisenc-2.dll} $buildDir/$i/win$arch - cp -r /ps/autobuild/* $buildDir/$i/win$arch - cp -r $pm3Dir/$i/client/{proxmark3.exe,flasher.exe,*.dic,lualibs,scripts,hardnested} $buildDir/$i/win$arch - cp $mingwDir/share/qt5/plugins/platforms/qwindows.dll $buildDir/$i/win$arch/platforms - cp $pm3Dir/$i/armsrc/obj/{fullimage.elf,fullimage.s19} $buildDir/$i/firmware_win - cp $pm3Dir/$i/bootrom/obj/{bootrom.elf,bootrom.s19} $buildDir/$i/firmware_win/bootrom - cp $pm3Dir/$i/recovery/{bootrom.bin,fullimage.bin,proxmark3_recovery.bin} "$buildDir/$i/firmware_win/JTAG Only" - cp $pm3Dir/$i/driver/proxmark3.inf "$buildDir/$i/Windows Driver" - rm $buildDir/$i/win$arch/hardnested/{*.h,*.c} - cd $buildDir/$i - zip -r $copyDir/$i-$arch/$i-$arch-$date-$hash.zip ./* + cp $mingwDir/bin/{libbz2-1.dll,libdouble-conversion.dll,libfreetype-*.dll,libgcc_s_*.dll,libglib-2.0-0.dll,libgraphite2.dll,libharfbuzz-0.dll,libiconv-2.dll,libicudt64.dll,libicuin64.dll,libicuuc64.dll,libintl-8.dll,libpcre-1.dll,libpcre2-16-0.dll,libpng16-16.dll,libreadline*.dll,libstdc++-*.dll,libtermcap-0.dll,libwinpthread-1.dll,Qt5Core.dll,Qt5Gui.dll,Qt5Widgets.dll,zlib1.dll,libsndfile-1.dll,libFLAC-8.dll,libogg-0.dll,libspeex-1.dll,libvorbis-0.dll,libvorbisenc-2.dll} $buildDir/${i%%/}/win$arch + cp -r /ps/autobuild/* $buildDir/${i%%/}/win$arch + cp -r $pm3Dir/${i%%/}/client/{proxmark3.exe,flasher.exe,*.dic,lualibs,scripts,hardnested} $buildDir/${i%%/}/win$arch + cp $mingwDir/share/qt5/plugins/platforms/qwindows.dll $buildDir/${i%%/}/win$arch/platforms + cp $pm3Dir/${i%%/}/armsrc/obj/{fullimage.elf,fullimage.s19} $buildDir/${i%%/}/firmware_win + cp $pm3Dir/${i%%/}/bootrom/obj/{bootrom.elf,bootrom.s19} $buildDir/${i%%/}/firmware_win/bootrom + cp $pm3Dir/${i%%/}/recovery/{bootrom.bin,fullimage.bin,proxmark3_recovery.bin} "$buildDir/${i%%/}/firmware_win/JTAG Only" + cp $pm3Dir/${i%%/}/driver/proxmark3.inf "$buildDir/${i%%/}/Windows Driver" + rm $buildDir/${i%%/}/win$arch/hardnested/{*.h,*.c} + cd $buildDir/${i%%/} + zip -r $copyDir/${i%%/}-$arch/${i%%/}-$arch-$date-$hash.zip ./* echo done fi fi From dc357e3501f15075fd5aeb2831fa9864291f6063 Mon Sep 17 00:00:00 2001 From: gator96100 Date: Sun, 2 Feb 2020 00:05:09 +0100 Subject: [PATCH 10/10] check for special characters in install path --- msys2/ps/user_setup.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/msys2/ps/user_setup.sh b/msys2/ps/user_setup.sh index 1094c153a..1cb342ac0 100644 --- a/msys2/ps/user_setup.sh +++ b/msys2/ps/user_setup.sh @@ -1,4 +1,8 @@ #!/bin/bash +if ! (echo "$PWD" | grep -Eq ^[a-zA-Z0-9\/\._\-]+$) ; then + echo "Error: Install path contains special characters!" + sleep infinity +fi MKPASSWD_CURRENT="$( mkpasswd -c )" MKGROUP_CURRENT="$( mkgroup -c )"