"To port over" is to take a software module, such as a program, library or interface, and re-implement it in a language, platform or other environment with which the original implementation was incompatible, allowing the feature set of this module to be available to developers or end users in the new environment. The word "port" can also be a noun, referring to the end product of this process.
The etymology is based on the word and concept of "portable". The basic idea is to change as little as possible about the specification of what is being reimplemented, making the new system behave as the old one does. The ideal is that the new implementation is completely "interoperable", able to accept the same inputs in the same ways, and produce the same outputs, as the original. This allows users, and dependent systems, to transfer their knowledge of the older system easily to the new one.
This is usually a little more involved than a company offering different versions of their product that are compatible with different operating systems; often, the developer of a port is not the same person or group that developed the original. As such, the term implies a certain amount of "reverse engineering", where the original product is examined to determine its function and inner workings, and this knowledge is then used to re-create it.