mirror of
				https://github.com/mintty/wsltty.git
				synced 2025-11-04 09:01:52 +00:00 
			
		
		
		
	Compare commits
	
		
			21 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					432b71d2fd | ||
| 
						 | 
					1b41dfa1e0 | ||
| 
						 | 
					336db2f19b | ||
| 
						 | 
					1f67e41333 | ||
| 
						 | 
					0520b71e1f | ||
| 
						 | 
					92b982690e | ||
| 
						 | 
					f0a3449ada | ||
| 
						 | 
					3d4055a63b | ||
| 
						 | 
					2fb994604a | ||
| 
						 | 
					5da3a053a9 | ||
| 
						 | 
					ad65aa9931 | ||
| 
						 | 
					c9acce8d76 | ||
| 
						 | 
					1533c27b36 | ||
| 
						 | 
					3e3eaf6e31 | ||
| 
						 | 
					482df018c9 | ||
| 
						 | 
					23fc790c26 | ||
| 
						 | 
					e5c67ecc7c | ||
| 
						 | 
					20075c6378 | ||
| 
						 | 
					05ce002fc6 | ||
| 
						 | 
					cc37c6c2d5 | ||
| 
						 | 
					5ef4879be2 | 
@@ -17,6 +17,8 @@ See LICENSE.PuTTY for PuTTY's copyright notice, contributors, and license.
 | 
			
		||||
The sources of PuTTY 0.60 can be downloaded from
 | 
			
		||||
ftp://ftp.chiark.greenend.org.uk/users/sgtatham/putty-0.60.
 | 
			
		||||
 | 
			
		||||
The minibidi algorithm is under MIT license as quoted in the source file.
 | 
			
		||||
 | 
			
		||||
Sixel code (sixel.c) is relicensed under GPL like mintty with the 
 | 
			
		||||
permission of its author (kmiya@culti); Sixel colour conversion code 
 | 
			
		||||
(sixel_hls.c) is licensed by its author Ross Combs under the license 
 | 
			
		||||
@@ -31,3 +33,7 @@ The colour schemes / theme files bundled with mintty are included
 | 
			
		||||
under various licenses. The source and license or permission are 
 | 
			
		||||
quoted in the respective theme files.
 | 
			
		||||
 | 
			
		||||
Bell sounds files are included, mostly under the creative commons license 
 | 
			
		||||
(https://creativecommons.org/publicdomain/zero/1.0/), see also the README 
 | 
			
		||||
in the sounds subdirectory.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								README.md
									
									
									
									
									
								
							@@ -73,7 +73,7 @@ A Windows Appx package and certificate is available in the [wsltty.appx](https:/
 | 
			
		||||
 | 
			
		||||
WSLtty can be invoked with
 | 
			
		||||
* installed Start Menu shortcuts (or Desktop shortcuts if copied there)
 | 
			
		||||
* *.bat scripts
 | 
			
		||||
* *.bat scripts (optionally with WSL command as parameters)
 | 
			
		||||
* Explorer context menu (if installed from the Start Menu `WSLtty` subfolder)
 | 
			
		||||
 | 
			
		||||
Starting the mintty terminal directly from the WSLtty installation location 
 | 
			
		||||
@@ -99,6 +99,12 @@ One Desktop shortcut is installed:
 | 
			
		||||
Other, distribution-specific shortcuts can be copied to the desktop 
 | 
			
		||||
from the Start Menu if desired.
 | 
			
		||||
 | 
			
		||||
The Start menu folder WSLtty contains the link 
 | 
			
		||||
<img align=absmiddle height=25 src=https://user-images.githubusercontent.com/12740416/57078483-a7846a00-6cee-11e9-9c5e-8c2e9e56cae4.png>`configure WSL shortcuts`.
 | 
			
		||||
This function is initially run when wsltty is installed.
 | 
			
		||||
If should be rerun after adding or removing WSL distributions, 
 | 
			
		||||
in order to create the respective set of shortcuts in the Start menu.
 | 
			
		||||
 | 
			
		||||
#### Command line scripts `wsl*.bat` ####
 | 
			
		||||
 | 
			
		||||
WSLtty installs the following scripts into `%LOCALAPPDATA%\Microsoft\WindowsApps` 
 | 
			
		||||
@@ -117,9 +123,23 @@ WSLtty provides context menu entries for all installed WSL distributions
 | 
			
		||||
and one for the configured default distribution,
 | 
			
		||||
to start a respective WSL terminal in a specific folder from an Explorer window.
 | 
			
		||||
They are not installed by default.
 | 
			
		||||
 | 
			
		||||
To add launch entries for the default or all WSL distributions to the 
 | 
			
		||||
Explorer context menu, or remove them, run the respective script from the 
 | 
			
		||||
Start Menu subfolder `WSLtty`.
 | 
			
		||||
Start Menu subfolder `WSLtty`:
 | 
			
		||||
* <img align=absmiddle height=25 src=https://user-images.githubusercontent.com/12740416/57078483-a7846a00-6cee-11e9-9c5e-8c2e9e56cae4.png>`add default to context menu`
 | 
			
		||||
  adds context menu entries for the default WSL distribution
 | 
			
		||||
* <img align=absmiddle height=25 src=https://user-images.githubusercontent.com/12740416/57078483-a7846a00-6cee-11e9-9c5e-8c2e9e56cae4.png>`add to context menu`
 | 
			
		||||
  adds context menu entries for all WSL distributions
 | 
			
		||||
* <img align=absmiddle height=25 src=https://user-images.githubusercontent.com/12740416/57078483-a7846a00-6cee-11e9-9c5e-8c2e9e56cae4.png>`remove from context menu`
 | 
			
		||||
  removes context menu entries for WSL distributions
 | 
			
		||||
 | 
			
		||||
#### Icon ####
 | 
			
		||||
 | 
			
		||||
Wsltty installation and the mintty terminal try to use the icon of the 
 | 
			
		||||
respective WSL distribution. If it cannot be determined, a penguin icon 
 | 
			
		||||
is used as a default. You can replace it with your preferred fallback icon 
 | 
			
		||||
by replacing the icon file `%LOCALAPPDATA%\wsltty\wsl.ico`.
 | 
			
		||||
 | 
			
		||||
#### Mintty settings ####
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -97,21 +97,15 @@ echo Creating %1.bat
 | 
			
		||||
 | 
			
		||||
echo @echo off> %1.bat
 | 
			
		||||
echo rem Start mintty terminal for WSL package %name% in current directory>> %1.bat
 | 
			
		||||
echo %target% -i "%icon%" %minttyargs% %bridgeargs%>> %1.bat
 | 
			
		||||
echo %target% -i "%icon%" %minttyargs% %bridgeargs% %%*>> %1.bat
 | 
			
		||||
/EOB
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
lxss="/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss"
 | 
			
		||||
schema="/HKEY_CURRENT_USER/Software/Classes/Local Settings/Software/Microsoft/Windows/CurrentVersion/AppModel/SystemAppData"
 | 
			
		||||
 | 
			
		||||
#(regtool list "$lxss" 2>/dev/null && echo || echo "No WSL packages registered" >&2) |
 | 
			
		||||
(
 | 
			
		||||
  if $alldistros
 | 
			
		||||
  then  regtool list "$lxss" 2>/dev/null
 | 
			
		||||
  else  true
 | 
			
		||||
  fi && echo || echo "No WSL packages registered" >&2) |
 | 
			
		||||
while read guid
 | 
			
		||||
do
 | 
			
		||||
config () {
 | 
			
		||||
  guid="$1"
 | 
			
		||||
  ok=false
 | 
			
		||||
  case $guid in
 | 
			
		||||
  {*)
 | 
			
		||||
@@ -151,7 +145,7 @@ do
 | 
			
		||||
    bridgeargs='--distro-guid "'"$guid"'" -t'
 | 
			
		||||
 | 
			
		||||
    ok=true;;
 | 
			
		||||
  "")	# WSL default installation
 | 
			
		||||
  DefaultDistribution|"")	# WSL default installation
 | 
			
		||||
    distro=
 | 
			
		||||
    name=WSL
 | 
			
		||||
    icon="$installdir"'\wsl.ico'
 | 
			
		||||
@@ -167,28 +161,36 @@ do
 | 
			
		||||
  echoc "- icon $icon"
 | 
			
		||||
  echoc "- root $root"
 | 
			
		||||
  target="$installdir"'\bin\mintty.exe'
 | 
			
		||||
  bridgeargs=" "
 | 
			
		||||
  bridgeargs=" "	# deprecated
 | 
			
		||||
 | 
			
		||||
  if $ok && [ -n "$distro" ]
 | 
			
		||||
  then	# fix #163: backend missing +x with certain mount options
 | 
			
		||||
	echo Setting +x wslbridge-backend for distro "'$distro'"
 | 
			
		||||
	(cd "$LOCALAPPDATA/wsltty/bin"; wsl.exe -d "$distro" chmod +x wslbridge-backend)
 | 
			
		||||
#	(cd "$LOCALAPPDATA/wsltty/bin"; "$SYSTEMROOT/System32/bash.exe" "$guid" -c chmod +x wslbridge-backend)
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if $ok && $config
 | 
			
		||||
  then
 | 
			
		||||
    export target minttyargs bridgeargs icon
 | 
			
		||||
    export name target minttyargs bridgeargs icon
 | 
			
		||||
 | 
			
		||||
    if $contextmenu
 | 
			
		||||
    then
 | 
			
		||||
      # context menu entries
 | 
			
		||||
      #cmd /C mkcontext "$name"
 | 
			
		||||
      direckey='HKEY_CURRENT_USER\Software\Classes\Directory'
 | 
			
		||||
      keyname="${name}_Terminal"
 | 
			
		||||
      if $remove
 | 
			
		||||
      then
 | 
			
		||||
        reg delete "$direckey\\shell\\$name" /f
 | 
			
		||||
        reg delete "$direckey\\Background\\shell\\$name" /f
 | 
			
		||||
        reg delete "$direckey\\shell\\$keyname" /f
 | 
			
		||||
        reg delete "$direckey\\Background\\shell\\$keyname" /f
 | 
			
		||||
      else
 | 
			
		||||
        reg add "$direckey\\shell\\$name" /d "$name Terminal" /f
 | 
			
		||||
        reg add "$direckey\\shell\\$name" /v Icon /d "$icon" /f
 | 
			
		||||
        cmd /C reg add "$direckey\\shell\\$name\\command" /d "\"$target\" -i \"$icon\" --dir \"%1\" $minttyargs $bridgeargs" /f
 | 
			
		||||
        reg add "$direckey\\Background\\shell\\$name" /d "$name Terminal" /f
 | 
			
		||||
        reg add "$direckey\\Background\\shell\\$name" /v Icon /d "$icon" /f
 | 
			
		||||
        cmd /C reg add "$direckey\\Background\\shell\\$name\\command" /d "\"$target\" -i \"$icon\" $minttyargs $bridgeargs" /f
 | 
			
		||||
        reg add "$direckey\\shell\\$keyname" /d "$name Terminal" /f
 | 
			
		||||
        reg add "$direckey\\shell\\$keyname" /v Icon /d "$icon" /f
 | 
			
		||||
        cmd /C reg add "$direckey\\shell\\$keyname\\command" /d "\"$target\" -i \"$icon\" --dir \"%1\" $minttyargs $bridgeargs" /f
 | 
			
		||||
        reg add "$direckey\\Background\\shell\\$keyname" /d "$name Terminal" /f
 | 
			
		||||
        reg add "$direckey\\Background\\shell\\$keyname" /v Icon /d "$icon" /f
 | 
			
		||||
        cmd /C reg add "$direckey\\Background\\shell\\$keyname\\command" /d "\"$target\" -i \"$icon\" $minttyargs $bridgeargs" /f
 | 
			
		||||
      fi
 | 
			
		||||
    else
 | 
			
		||||
      # invocation shortcuts and scripts
 | 
			
		||||
@@ -217,7 +219,14 @@ do
 | 
			
		||||
 | 
			
		||||
        # default desktop shortcut in ~ -> Desktop
 | 
			
		||||
        if [ "$name" = "WSL" ]
 | 
			
		||||
        then	cmd /C copy "$name Terminal.lnk" "%USERPROFILE%\\Desktop"
 | 
			
		||||
        then
 | 
			
		||||
              #cmd /C copy "$name Terminal.lnk" "%USERPROFILE%\\Desktop"
 | 
			
		||||
              #cmd /C copy "$name Terminal.lnk" "%APPDATA%\\..\\Desktop\\"
 | 
			
		||||
              # the above does not work reliably (see #166)
 | 
			
		||||
              # determine actual Desktop folder
 | 
			
		||||
              desktopkey='\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop'
 | 
			
		||||
              desktop=`regtool get "$desktopkey"`
 | 
			
		||||
              cmd /C copy "$name Terminal.lnk" "$desktop\\"
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        # launch script in ~ -> WSLtty home, WindowsApps launch folder
 | 
			
		||||
@@ -228,4 +237,18 @@ do
 | 
			
		||||
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# ensure proper parameter passing to cmd /C
 | 
			
		||||
chcp.com 65001 # just in case; seems to work without as well
 | 
			
		||||
 | 
			
		||||
# configure for all distros, plus default distro
 | 
			
		||||
for guid in `
 | 
			
		||||
  if $alldistros
 | 
			
		||||
  then  regtool list "$lxss" 2>/dev/null
 | 
			
		||||
  else  echo DefaultDistribution
 | 
			
		||||
  fi || echo "No WSL packages registered" >&2
 | 
			
		||||
`
 | 
			
		||||
do	config $guid
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										20
									
								
								install.bat
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								install.bat
									
									
									
									
									
								
							@@ -26,11 +26,12 @@ copy "add to context menu.lnk" "%installdir%"
 | 
			
		||||
copy "add default to context menu.lnk" "%installdir%"
 | 
			
		||||
copy "remove from context menu.lnk" "%installdir%"
 | 
			
		||||
copy "configure WSL shortcuts.lnk" "%installdir%"
 | 
			
		||||
copy "WSL Terminal.lnk" "%installdir%"
 | 
			
		||||
copy "WSL Terminal %%.lnk" "%installdir%"
 | 
			
		||||
copy wsl.ico "%installdir%"
 | 
			
		||||
rem copy "WSL Terminal.lnk" "%installdir%"
 | 
			
		||||
rem copy "WSL Terminal %%.lnk" "%installdir%"
 | 
			
		||||
copy config-distros.sh "%installdir%"
 | 
			
		||||
copy mkshortcut.vbs "%installdir%"
 | 
			
		||||
rem allow persistent customization of default icon:
 | 
			
		||||
if not exist "%installdir%\wsl.ico" copy tux.ico "%installdir%\wsl.ico"
 | 
			
		||||
 | 
			
		||||
if not exist "%installdir%\bin" goto instbin
 | 
			
		||||
rem move previous programs possibly in use out of the way
 | 
			
		||||
@@ -59,10 +60,13 @@ mkdir "%installdir%\usr\share\mintty\lang"
 | 
			
		||||
copy lang.zoo "%installdir%\usr\share\mintty\lang"
 | 
			
		||||
mkdir "%installdir%\usr\share\mintty\themes"
 | 
			
		||||
copy themes.zoo "%installdir%\usr\share\mintty\themes"
 | 
			
		||||
mkdir "%installdir%\usr\share\mintty\sounds"
 | 
			
		||||
copy sounds.zoo "%installdir%\usr\share\mintty\sounds"
 | 
			
		||||
mkdir "%installdir%\usr\share\mintty\info"
 | 
			
		||||
copy charnames.txt "%installdir%\usr\share\mintty\info"
 | 
			
		||||
mkdir "%installdir%\usr\share\mintty\icon"
 | 
			
		||||
copy wsl.ico "%installdir%\usr\share\mintty\icon"
 | 
			
		||||
copy tux.ico "%installdir%\usr\share\mintty\icon"
 | 
			
		||||
copy mintty.ico "%installdir%\usr\share\mintty\icon"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
rem create Start Menu Folder
 | 
			
		||||
@@ -77,8 +81,8 @@ copy "add to context menu.lnk" "%smf%"
 | 
			
		||||
copy "add default to context menu.lnk" "%smf%"
 | 
			
		||||
copy "remove from context menu.lnk" "%smf%"
 | 
			
		||||
copy "configure WSL shortcuts.lnk" "%smf%"
 | 
			
		||||
copy "WSL Terminal.lnk" "%smf%"
 | 
			
		||||
copy "WSL Terminal %%.lnk" "%smf%"
 | 
			
		||||
rem copy "WSL Terminal.lnk" "%smf%"
 | 
			
		||||
rem copy "WSL Terminal %%.lnk" "%smf%"
 | 
			
		||||
rem clean up previous installation
 | 
			
		||||
rmdir /S /Q "%smf%\context menu shortcuts"
 | 
			
		||||
 | 
			
		||||
@@ -87,6 +91,8 @@ cd /D "%installdir%\usr\share\mintty\lang"
 | 
			
		||||
"%installdir%\bin\zoo" xO lang
 | 
			
		||||
cd /D "%installdir%\usr\share\mintty\themes"
 | 
			
		||||
"%installdir%\bin\zoo" xO themes
 | 
			
		||||
cd /D "%installdir%\usr\share\mintty\sounds"
 | 
			
		||||
"%installdir%\bin\zoo" xO sounds
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
:migrate configuration
 | 
			
		||||
@@ -109,8 +115,8 @@ rmdir "%oldroot%\home"
 | 
			
		||||
 | 
			
		||||
rem create user config directory and subfolders
 | 
			
		||||
mkdir "%configdir%\lang"
 | 
			
		||||
mkdir "%configdir%\sounds"
 | 
			
		||||
mkdir "%configdir%\themes"
 | 
			
		||||
mkdir "%configdir%\sounds"
 | 
			
		||||
 | 
			
		||||
rem create config file if it does not yet exist
 | 
			
		||||
if not exist "%configdir%\config" echo # To use common configuration in %%APPDATA%%\mintty, simply remove this file>"%configdir%\config"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										46
									
								
								makefile
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								makefile
									
									
									
									
									
								
							@@ -8,14 +8,18 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# wsltty release
 | 
			
		||||
ver=1.9.2
 | 
			
		||||
ver=3.0.1
 | 
			
		||||
 | 
			
		||||
# wsltty appx release
 | 
			
		||||
verx=0.9.2
 | 
			
		||||
# wsltty appx release - must have 4 parts!
 | 
			
		||||
verx=3.0.1.0
 | 
			
		||||
 | 
			
		||||
# Windows SDK version for appx
 | 
			
		||||
WINSDKKEY=/HKEY_LOCAL_MACHINE/SOFTWARE/WOW6432Node/Microsoft/.NET Framework Platform/Setup/Multi-Targeting Pack
 | 
			
		||||
WINSDKVER=`regtool list '$(WINSDKKEY)' | sed -e '$$ q' -e d`
 | 
			
		||||
 | 
			
		||||
##############################
 | 
			
		||||
# mintty release version
 | 
			
		||||
minttyver=2.9.2
 | 
			
		||||
minttyver=3.0.1
 | 
			
		||||
 | 
			
		||||
# or mintty branch or commit version
 | 
			
		||||
#minttyver=master
 | 
			
		||||
@@ -90,6 +94,19 @@ check:
 | 
			
		||||
	# check 64 bit to provide 64-Bit stability support:
 | 
			
		||||
	uname -m | grep x86_64
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
# patch version information for appx package configuration
 | 
			
		||||
 | 
			
		||||
fix-verx:
 | 
			
		||||
	echo patching $(WINSDKVER) into Launcher config
 | 
			
		||||
	cd Launcher; sed -i~ -e "/<supportedRuntime / s,Version=v[.0-9]*,Version=$(WINSDKVER)," app.config
 | 
			
		||||
	echo patched app.config
 | 
			
		||||
	cd Launcher; sed -i~ -e "/<TargetFrameworkVersion>/ s,v[.0-9]*,$(WINSDKVER)," Launcher.csproj
 | 
			
		||||
	echo patched Launcher.csproj
 | 
			
		||||
	echo patching $(verx) into app config
 | 
			
		||||
	sed -i~ -e '/<Identity / s,Version="[.0-9]*",Version="$(verx)",' AppxManifest.xml
 | 
			
		||||
	echo patched AppxManifest.xml
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
# generation
 | 
			
		||||
 | 
			
		||||
@@ -104,18 +121,26 @@ wslbridge-package:
 | 
			
		||||
 | 
			
		||||
wslbridge-source:	wslbridge-$(wslbridge-commit).zip
 | 
			
		||||
	unzip -o wslbridge-$(wslbridge-commit).zip
 | 
			
		||||
	cd wslbridge-$(wslbridge-commit)/backend; patch -T -p1 < ../../wslbridge-backend-static.patch
 | 
			
		||||
	tr -d '\015' < wslbridge-$(wslbridge-commit)/LICENSE.txt > LICENSE.wslbridge
 | 
			
		||||
 | 
			
		||||
wslbridge-$(wslbridge-commit).zip:
 | 
			
		||||
	$(wgeto) https://github.com/rprichard/wslbridge/archive/$(wslbridge-commit).zip -o wslbridge-$(wslbridge-commit).zip
 | 
			
		||||
 | 
			
		||||
wslbridge-frontend:	wslbridge-source
 | 
			
		||||
	echo ------------- Compiling wslbridge frontend
 | 
			
		||||
	cd wslbridge-$(wslbridge-commit)/frontend; make
 | 
			
		||||
	strip wslbridge-$(wslbridge-commit)/out/wslbridge.exe
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
	cp wslbridge-$(wslbridge-commit)/out/wslbridge.exe bin/
 | 
			
		||||
 | 
			
		||||
wslbridge-backend:	wslbridge-source
 | 
			
		||||
#wslbridge-backend:	wslbridge-source
 | 
			
		||||
# tweak dependency to support build testing on non-Windows 10:
 | 
			
		||||
backend-bin=wslbridge-$(wslbridge-commit)/out/wslbridge-backend
 | 
			
		||||
backend-src=wslbridge-$(wslbridge-commit)/backend/wslbridge-backend.cc
 | 
			
		||||
wslbridge-backend:	$(backend-bin) wslbridge-source
 | 
			
		||||
$(backend-bin):	$(backend-src)
 | 
			
		||||
	echo ------------- Compiling wslbridge backend
 | 
			
		||||
	cd wslbridge-$(wslbridge-commit)/backend; if uname -m | grep x86_64; then cmd /C wsl make; else wslbridge make; fi
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
	cp wslbridge-$(wslbridge-commit)/out/wslbridge-backend bin/
 | 
			
		||||
@@ -123,6 +148,7 @@ wslbridge-backend:	wslbridge-source
 | 
			
		||||
mintty-get:
 | 
			
		||||
	$(wgeto) https://github.com/mintty/mintty/archive/$(minttyver).zip -o mintty-$(minttyver).zip
 | 
			
		||||
	unzip -o mintty-$(minttyver).zip
 | 
			
		||||
	cp mintty-$(minttyver)/icon/terminal.ico mintty.ico
 | 
			
		||||
 | 
			
		||||
wslbuild=LDFLAGS="-static -static-libgcc -s"
 | 
			
		||||
appxbuild=$(wslbuild) CCOPT=-DWSLTTY_APPX
 | 
			
		||||
@@ -136,6 +162,7 @@ mintty-build:
 | 
			
		||||
	cd mintty-$(minttyver)/src; make $(wslbuild) $(wslversion)
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
	cp mintty-$(minttyver)/bin/mintty.exe bin/
 | 
			
		||||
	strip bin/mintty.exe
 | 
			
		||||
 | 
			
		||||
mintty-build-appx:
 | 
			
		||||
	# ensure rebuild of version-specific check and message
 | 
			
		||||
@@ -144,20 +171,24 @@ mintty-build-appx:
 | 
			
		||||
	cd mintty-$(minttyver)/src; make $(appxbuild) $(appxversion)
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
	cp mintty-$(minttyver)/bin/mintty.exe bin/
 | 
			
		||||
	strip bin/mintty.exe
 | 
			
		||||
 | 
			
		||||
mintty-pkg:
 | 
			
		||||
	cp mintty-$(minttyver)/LICENSE LICENSE.mintty
 | 
			
		||||
	cd mintty-$(minttyver)/lang; zoo a lang *.po; mv lang.zoo ../../
 | 
			
		||||
	cd mintty-$(minttyver)/themes; zoo a themes *[!~]; mv themes.zoo ../../
 | 
			
		||||
	cd mintty-$(minttyver)/sounds; zoo a sounds *.wav *.WAV *.md; mv sounds.zoo ../../
 | 
			
		||||
	# add charnames.txt to support "Character Info"
 | 
			
		||||
	cd mintty-$(minttyver)/src; sh ./mknames
 | 
			
		||||
	cp mintty-$(minttyver)/src/charnames.txt .
 | 
			
		||||
 | 
			
		||||
mintty-appx:
 | 
			
		||||
	mkdir -p usr/share/mintty
 | 
			
		||||
	cd usr/share/mintty; mkdir -p lang themes info
 | 
			
		||||
	cd usr/share/mintty; mkdir -p lang themes sounds info
 | 
			
		||||
	cp mintty-$(minttyver)/lang/*.po usr/share/mintty/lang/
 | 
			
		||||
	cp mintty-$(minttyver)/themes/*[!~] usr/share/mintty/themes/
 | 
			
		||||
	cp mintty-$(minttyver)/sounds/*.wav usr/share/mintty/sounds/
 | 
			
		||||
	cp mintty-$(minttyver)/sounds/*.WAV usr/share/mintty/sounds/
 | 
			
		||||
	# add charnames.txt to support "Character Info"
 | 
			
		||||
	cd mintty-$(minttyver)/src; sh ./mknames
 | 
			
		||||
	cp mintty-$(minttyver)/src/charnames.txt usr/share/mintty/info/
 | 
			
		||||
@@ -187,6 +218,7 @@ cop:	ver
 | 
			
		||||
	cp bin/zoo.exe rel/
 | 
			
		||||
	cp lang.zoo rel/
 | 
			
		||||
	cp themes.zoo rel/
 | 
			
		||||
	cp sounds.zoo rel/
 | 
			
		||||
	cp charnames.txt rel/
 | 
			
		||||
	cp bin/wslbridge.exe rel/
 | 
			
		||||
	cp bin/wslbridge-backend rel/
 | 
			
		||||
@@ -224,7 +256,7 @@ pkg:	wslbridge cygwin mintty-get mintty-build mintty-pkg cab
 | 
			
		||||
wsltty-appx:	wslbridge appx-bin mintty-get mintty-build-appx mintty-appx
 | 
			
		||||
 | 
			
		||||
# appx package target:
 | 
			
		||||
appx:	wsltty-appx
 | 
			
		||||
appx:	wsltty-appx fix-verx
 | 
			
		||||
	sh ./build.sh
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								makewinx.cfg
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								makewinx.cfg
									
									
									
									
									
								
							@@ -25,7 +25,7 @@ SourceFiles=SourceFiles
 | 
			
		||||
[Strings]
 | 
			
		||||
InstallPrompt=Install Mintty terminal for WSL (Windows Subsystem for Linux)?
 | 
			
		||||
DisplayLicense=
 | 
			
		||||
FinishMessage=Mintty for WSL installed - for documentation see https://github.com/mintty/wsltty
 | 
			
		||||
FinishMessage=Mintty for WSL installed - for documentation and configuration see https://github.com/mintty/wsltty
 | 
			
		||||
TargetName=wsltty-%version%-install.exe
 | 
			
		||||
FriendlyName=wsltty
 | 
			
		||||
AppLaunched=cmd.exe /c install.bat
 | 
			
		||||
@@ -47,7 +47,7 @@ FILE11="dash.exe"
 | 
			
		||||
FILE12="regtool.exe"
 | 
			
		||||
FILE13="install.bat"
 | 
			
		||||
FILE14="uninstall.bat"
 | 
			
		||||
FILE15="wsl.ico"
 | 
			
		||||
FILE15="tux.ico"
 | 
			
		||||
FILE16="add to context menu.lnk"
 | 
			
		||||
FILE17="add default to context menu.lnk"
 | 
			
		||||
FILE18="remove from context menu.lnk"
 | 
			
		||||
@@ -55,9 +55,9 @@ FILE19="wsltty home & help.url"
 | 
			
		||||
FILE20="zoo.exe"
 | 
			
		||||
FILE21="lang.zoo"
 | 
			
		||||
FILE22="themes.zoo"
 | 
			
		||||
FILE23="WSL Terminal %.lnk"
 | 
			
		||||
FILE24="WSL Terminal.lnk"
 | 
			
		||||
FILE25="mkshortcut.vbs"
 | 
			
		||||
FILE23="sounds.zoo"
 | 
			
		||||
FILE24="mkshortcut.vbs"
 | 
			
		||||
FILE25="mintty.ico"
 | 
			
		||||
 | 
			
		||||
[SourceFiles]
 | 
			
		||||
SourceFiles0=.
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ rem lnk.Arguments = Wscript.Arguments.Named("arguments")
 | 
			
		||||
lnk.TargetPath = wshell.ExpandEnvironmentStrings("%target%")
 | 
			
		||||
minttyargs = wshell.ExpandEnvironmentStrings("%minttyargs%")
 | 
			
		||||
bridgeargs = wshell.ExpandEnvironmentStrings("%bridgeargs%")
 | 
			
		||||
lnk.Arguments = minttyargs & bridgeargs
 | 
			
		||||
lnk.Arguments = minttyargs & " " & bridgeargs
 | 
			
		||||
rem wscript.echo "minttyargs: " & minttyargs
 | 
			
		||||
rem wscript.echo lnk.Arguments
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 472 KiB After Width: | Height: | Size: 472 KiB  | 
							
								
								
									
										61
									
								
								wslbridge-backend-static.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								wslbridge-backend-static.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
diff -rup orig/Makefile new/Makefile
 | 
			
		||||
--- orig/Makefile	2018-05-06 01:12:36.000000000 +0200
 | 
			
		||||
+++ new/Makefile	2019-05-01 08:16:53.647051200 +0200
 | 
			
		||||
@@ -5,7 +5,7 @@ all : ../out/wslbridge-backend
 | 
			
		||||
 ../out/wslbridge-backend : wslbridge-backend.cc ../common/SocketIo.cc ../common/SocketIo.h ../VERSION.txt Makefile
 | 
			
		||||
 	mkdir -p ../out
 | 
			
		||||
 	$(CXX) -std=c++11 -fno-exceptions \
 | 
			
		||||
-		-static-libgcc -static-libstdc++ \
 | 
			
		||||
+		-static -static-libgcc -static-libstdc++ \
 | 
			
		||||
 		-D_GNU_SOURCE \
 | 
			
		||||
 		-DWSLBRIDGE_VERSION=$(shell cat ../VERSION.txt) \
 | 
			
		||||
 		-Wall -O2 $< ../common/SocketIo.cc -o $@ -lutil -pthread
 | 
			
		||||
diff -rup orig/wslbridge-backend.cc new/wslbridge-backend.cc
 | 
			
		||||
--- orig/wslbridge-backend.cc	2018-05-06 01:12:36.000000000 +0200
 | 
			
		||||
+++ new/wslbridge-backend.cc	2019-05-01 08:19:12.799688500 +0200
 | 
			
		||||
@@ -494,6 +494,45 @@ static void frontendVersionCheck(const c
 | 
			
		||||
 
 | 
			
		||||
 } // namespace
 | 
			
		||||
 
 | 
			
		||||
+#define getpwuid _getpwuid
 | 
			
		||||
+
 | 
			
		||||
+struct passwd * getpwuid(int uid)
 | 
			
		||||
+{
 | 
			
		||||
+    FILE * pwd = fopen("/etc/passwd", "r");
 | 
			
		||||
+    if (pwd) {
 | 
			
		||||
+        char pwbuf[222];
 | 
			
		||||
+        static struct passwd pw;
 | 
			
		||||
+        pw.pw_shell = 0;
 | 
			
		||||
+        while (fgets(pwbuf, sizeof pwbuf, pwd)) {
 | 
			
		||||
+            char * sep = strchr(pwbuf, ':');
 | 
			
		||||
+            if (!sep) continue;
 | 
			
		||||
+            sep = strchr(++sep, ':');
 | 
			
		||||
+            if (!sep) continue;
 | 
			
		||||
+            int pwuid;
 | 
			
		||||
+            if (sscanf(sep, ":%d:", &pwuid) == 1 && pwuid == uid) {
 | 
			
		||||
+                // pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell
 | 
			
		||||
+                //                  ^
 | 
			
		||||
+                sep = strchr(++sep, ':');
 | 
			
		||||
+                if (!sep) continue;
 | 
			
		||||
+                sep = strchr(++sep, ':');
 | 
			
		||||
+                if (!sep) continue;
 | 
			
		||||
+                sep = strchr(++sep, ':');
 | 
			
		||||
+                if (!sep) continue;
 | 
			
		||||
+                sep = strchr(++sep, ':');
 | 
			
		||||
+                if (!sep) continue;
 | 
			
		||||
+                pw.pw_shell = ++sep;
 | 
			
		||||
+                sep = strchr(++sep, '\n');
 | 
			
		||||
+                if (sep)
 | 
			
		||||
+                    *sep = 0;
 | 
			
		||||
+                break;
 | 
			
		||||
+            }
 | 
			
		||||
+        }
 | 
			
		||||
+        fclose(pwd);
 | 
			
		||||
+        return &pw;
 | 
			
		||||
+    }
 | 
			
		||||
+    return 0;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 int main(int argc, char *argv[]) {
 | 
			
		||||
 
 | 
			
		||||
     // If the backend crashes, it prints a message to its stderr, which is a
 | 
			
		||||
		Reference in New Issue
	
	Block a user