Installation on Windows
=======================

In addition to the dependencies specified in
:ref:`installation`, noting that the python dependencies can
be installed with pip, which comes with Python, you will likely need to install
several other dependencies, or make some changes to get previously mentioned
dependencies to work.

Python
------

https://www.python.org/downloads/windows/

Python provides an option to add it to your ``PATH`` environment
variable during installation, which you should select (otherwise, you
must add the python scripts directory to your ``PATH``).

Git
---

https://git-scm.com/download/win

While a dependency for all systems, it generally is not already
installed on Windows.

By default, Git will add the necessary directory to your ``PATH`` (the
“recommended” option), and as long as you do not choose the “Use Git
from Git Bash Only” option when installing, Portmod will be able to find
your Git installation automatically.

7-zip
-----

https://www.7-zip.org/

7-zip is optional, and can be replaced with other archive tools which
are supported by patool (unfortunately, no nicely formatted list exists,
but see `the
repo <https://github.com/wummel/patool/tree/master/patoolib/programs>`__
for supported programs).

7-zip is recommended as it covers most archive types not supported
natively by patool, including the commonly encountered types (see note
on patool in dependencies section on the :ref:`installation` page).

The 7-zip program files directory needs to be added to your ``PATH``
environment variable so that it can be detected by patool.

Sandboxie
---------

https://github.com/sandboxie-plus/Sandboxie/releases

Note that the classic version is required due to
a change in the interface in the "plus" version.

Sandboxie is the Sandbox tool Portmod interfaces with on Windows
(see :ref:`sandbox`).
Note that Portmod automatically configures Sandboxie; you do not
need to, and indeed should not, modify the sandbox configurations
generated by Portmod.

The sandboxie program files directory needs to be added to your ``PATH``
environment variable so that it can be detected by portmod.

PySAT
-----
(known on pypi as python-sat)

The PySAT wheels distributed on pypi require Microsoft Visual C++
Redistributable, which if you don’t already have, can be found at the
following location:

https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

Setup information
-----------------

It is worth noting that, while Portmod in general does not require
administrator privileges, you may need administrator privileges to
create symlinks on certain versions of Windows (newer versions of
Windows 10 should support creating symlinks without privileges, though
it may be necessary to enable a developer feature for this).
Currently the only symlink portmod requires is the profile symlink, so
when you select a profile using
``portmod <prefix> select profile set``, you will need to ensure that
``portmod`` is run with administrator privileges.
