Tom Parker  committed b155c43

Update windows guide and fix a couple of minor items in the Makefile

  • Participants
  • Parent commits 301479a
  • Branches windows

Comments (0)

Files changed (3)

 setup-useradd: installfiles useradd inituser
 # WARNING: this is experimental
-setup-windows: installfiles windows-add inituser-windows
+setup-windows: installfiles adduser-windows inituser-windows
 	    --comment  "Mercurial repositories" $(NEWUSER)
 # WARNING: this is experimental
-	net user $(NEWUSER) foo /add
+	net user $(NEWUSER) /add
 	su -l -c "$(DESTDIR)$(LIBDIR)/init/hginit $(DESTDIR)$(LIBDIR)" $(NEWUSER)
 # WARNING: this is experimental
-	ssh ${NEWUSER}@localhost "sh $(DESTDIR)$(LIBDIR)/init/hginit $(DESTDIR)$(LIBDIR)"
+	mkdir /home/$(NEWUSER)
+	chmod 755 $(DESTDIR)$(LIBDIR)/init/*
+	ssh $(NEWUSER)@localhost "sh $(DESTDIR)$(LIBDIR)/init/hginit $(DESTDIR)$(LIBDIR)"

File README-windows.txt

+Windows setup for mercurial-server
+WARNING: Windows is *not* a supported system. We've gotten this guide to work ok
+but the permissions are still broken in various ways to do with the underlying
+issues in Windows' permissions system. Unix-based systems, especially Debian and
+derivatives are still the main target. Patches to this guide to improve the
+support are welcome however!
+1) Install Cygwin ( using the setup.exe from there. Tested
+against 1.7.12-1, may work with earlier versions. You'll need the base install
+plus the following additional packages:
+- docbook-xsl
+- libxslt
+- make
+- mercurial
+- openssh
+- python
+Note that even if you've already got them installed in Windows, Python and
+Mercurial still need to be installed in Cygwin.
+2) Open a new Cygwin terminal as Adminstrator (right click on "Cygwin Terminal"
+start menu option and pick "Run as administrator")
+3) Run "ssh-host-config -y" and "cygrunsrv -S sshd" to get sshd running. We need
+this because there's no proper su in Cygwin (see
+ for why this is)
+3) Goto the mercurial-server folder and "make setup-windows"
+4) Run "passwd hg" and set the password for the hg user. 
+5) Following the example from the main mercurial-server documentation (in that the server
+is called 'jeeves', your username is 'jay' and the client is called 'spoon'),
+but with a few differences for Cygwin, we can now get you initial access. We
+assume that you've generated a key with PuTTYgen
+( and then
+copied the contents of the "public key" box into a file called my-key.
+jay@jeeves:~$ mkdir -p /etc/mercurial-server/keys/root/jay
+jay@jeeves:~$ cp my-key /etc/mercurial-server/keys/root/jay/spoon
+jay@jeeves:~$ chown hg /etc/mercurial-server/keys/root/jay/spoon
+jay@jeeves:~$ ssh hg@localhost /usr/share/mercurial-server/refresh-auth
+The rest of the instructions in the normal mercurial-server documentation should
+now work. Note that although it's possible to add keys/access info to
+/etc/mercurial-server it's much easier to do things via the hgadmin repository,
+and doing things via /etc should probably be limited to only if you mess up the
+setup in hgadmin.
+# vim: tw=80 fo=cqt wm=0

File windows.txt

-- base cygwin
-- mercurial (not external tortoise)
-- libxslt, docbook-xsl (xsltproc)
-- python (not external)
-- mkdir /home/hg
-- chmod 755 /usr/local/share/mercurial-server/init/*
-- sshd - no su!
-- admin, make setup-windows
-- hg user password is foo
-- once key is cp'ed, chown it to hg