PiDP-8/I Software

Artifact [1d45a4bccf]
Log In

Artifact 1d45a4bccf68c18ffa09e900d4fcc9aeeac8afa4:

Wiki page [OS Compatibility] by tangent 2019-05-11 20:26:18.
D 2019-05-11T20:26:18.722
L OS\sCompatibility
N text/x-markdown
P c36b4e61744f2f858e4ea5ece4a173b67c92789b
U tangent
W 6044
# The Situation

Although the core software underlying the PiDP-8/I software distribution is broadly portable, the dominance of Raspbian in the Raspberry Pi space means it gets the most attention when it comes to testing and development. This article documents what it known to work, where, today.

If you need the software to work on some platform where it currently doesn't, [we accept patches!](/doc/trunk/HACKERS.md) You can also send problem reports [to our development forum](/forum), file a [bug report](/bugs), or [discuss it on the users' mailing list](https://groups.google.com/forum/#!forum/pidp-8).


# Raspbian, Debian, Ubuntu

The current stable release of the PiDP-8/I software distribution was built for and tested with the [Raspbian Stretch Lite](https://www.raspberrypi.org/blog/raspbian-stretch/) distribution. Prior releases were built atop the [Raspbian Jessie Lite](https://www.raspberrypi.org/blog/raspbian-jessie-is-here/) distribution; current software should still work on Jessie, though we no longer test that, having upgraded all of our development systems to Stretch.

Raspbian-based OSes like [pipaOS](http://pipaos.mitako.eu/) should also work, but this is not tested by the project's current developers.

The project's primary maintainer occasionally builds the software on Debian and Ubuntu systems as well, which works fine, since Raspbian and Ubuntu are both derivatives of Debian. On such systems, the software is designed to detect the absence of the PiDP-8/I front panel hardware and work without it.

Because of that success, we expect it will run on any other Debian derivative, too.

The configuration script and documentation advice on installing third-party dependencies is given in terms of Debian type OSes. That makes using the PiDP-8/I software distribution on this class of OSes the most straightforward.


# Non-Debian Linuxes

There are non-Debian type Linux based OSes for the Raspberry Pi such as [openSuSE for the Pi 3](https://en.opensuse.org/HCL:Raspberry_Pi3) and [CentOS for the Pi 3](https://wiki.centos.org/SpecialInterestGroup/AltArch/Arm32/RaspberryPi3). Since the primary developers on this project haven't tried any of these Pi Linux distros, and no one has reported on their attempts to make it work, we can only speculate on the workarounds required, if any.

Off the Pi, pretty much every Linux distribution should be able to build and run our software, once you've installed all of its prerequisites. We've built and run it successfully a few times on 64-bit Intel boxes under CentOS, for example.


# macOS

This project's current primary maintainers use macOS at home, so the PiDP-8/I software is frequently built and tested on macOS while we are working on features that do not require the PiDP-8/I front panel hardware.

Why? Because it builds 3-12 times faster than on a Pi 3, depending on what has to be built!

The third party dependency advice given by the configure script and in the documentation needs to be adjusted. We recommend getting such things from [Homebrew](https://brew.sh/).


# FreeBSD

Because of our regular testing on macOS, the port to FreeBSD was straightforward. On the FreeBSD 11.2 system we did the work on, we had to install the following non-core packages:

    $ sudo pkg install coreutils gmake perl5 python py27-pip

Avoid the temptation to install the `python3` package instead: this package follows the Python project's recommendation to install the interpreter only as "`python3`" to avoid conflicts with Python 2. We try to write our Python scripts to work on both versions, but until we [cut over to requiring Python 3 only](/tktview?name=26283b9b30), we can't change our script shebang lines to work with this package.

It is expected that the code that drives the PiDP-8/I front panel hardware will not work on [FreeBSD for the Raspberry Pi](https://wiki.freebsd.org/FreeBSD/arm/Raspberry%20Pi). We have an [open feature ticket](/tktview?name=856225858e) for that, if you want to work on it.


# Windows

The PiDP-8/I software's build system requires a POSIX type environment, so it's far simpler to just add that atop Windows than to port our software to build natively on Windows. You have several choices:


## Linux VM

Currently, for maximum compatibility, your best option is to install some sort of Linux virtual machine on your Windows box.

Windows 10 Pro and up include [Hyper-V](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v), which runs Linux VMs quite well.

For those running Home class versions of Windows, the best free option is [Oracle's VirtualBox](https://www.virtualbox.org/).


## Cygwin

This works, and appears to work *well* besides in the multiple times we've tried it. The most recent test was on 2019.05.11 with 64-bit Cygwin 3.0.7 on Windows 10.

You will have to install the `libncurses-devel` and `python2-pip` packages as well as standard Unix build tools: GCC, GNU Make, etc. Having done all that, the software will build and run.

For `bin/pidp8i` to run properly, you need to run the trunk version of our software: the systemd improvements made to it for the most recent stable release don't work under Cygwin, but we've fixed that on trunk.


## Windows Subsystem for Linux

This worked well when we tried it last, which was on 2019.05.11 with a somewhat out-of-date installation of Windows 10 Pro.

Older versions of WSL failed miserably due to problems in the terminal emulation, but it appears these bugs have been fixed.

If there are still bugs we did not find in our brief testing, the changes announced at Build 2019 for [WSL 2](https://devblogs.microsoft.com/commandline/announcing-wsl-2/) and [the Windows console](https://github.com/microsoft/Terminal) should clear things up, as they'll provide a considerably more comprehensive Linux environment than with early WSL versions.

As with Cygwin, there are portability fixes on trunk now that are not yet released.
Z 20168547f6a9bc4df011f782ef751713