VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

It it legal to do so? Afaik they usually are under GPL license or comparable, so they can be distributed with an emulator? E.g. Generic Super PC/Turbo XT BIOS(I have permission from it's developer, so that shouldn't be a problem) and SeaBIOS(for 386+ systems)?

Edit: As far as I can see, both can be used and distributed with non-GPL or non-opensource programs as ROMs(as long as it's not using modified source, which requires the resulting modified source code to be distributed as well due to copyleft license)? So they would be perfect for our x86 emulators? The only thing theoretically missing is a open source BIOS for IBM AT emulation?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 1 of 4, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++

First, remember that SeaBIOS is shipped under the LGPLv3, so you can even couple proprietary programs with it via dynamic linking. The GPL is a little less permissive, but the FSF is generally okay with pipes, socket communication, and other general interfaces being used to communicate between GPL and non GPL software so long as the interface isn't passing through significant internal state.

If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.

GPLv2 FAQ

See also, the same idea in slightly different language.

All hail the Great Capacitor Brand Finder

Reply 2 of 4, by superfury

User metadata
Rank l33t++
Rank
l33t++

Read that FAQ. But it only says thing that apply to linking and modification of apps/libraries. In this case does neither: I add a copy of a full compiled program unmodified, not compiled from source. It's not linked to my program directly in any way, it's just ran on it's virtual CPU, just like any other software that's running on a real computer. Are links to sources still required in that way? Is binary distribution of the ROM allowed when not connected to the app? It's just loaded a a ROM and ran on it's virtual CPU like a standalone program.

So there is no internal state to apply. It's to be bundled with the app, but doesn't get used/interact with the app in any way(as linking and what I can see seems to infer).

In essence, I'm distributing two seperate apps in one bundle(BIOS ROM and the emulator itself).

So is it legal to add a duplicate of the GPL ROM binary with the UniPCemu binary(and SDL2 library)?

One thing I do notice is that the VGA ROM supplied with fake86 is the Tseng Labs ET4000 VGA ROM. Does that make it illegal to download said fake86 binary(straight from the developer's website)?

Last edited by superfury on 2018-06-17, 09:24. Edited 1 time in total.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 3 of 4, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++

I'm not sure about fake86, but FWIW I agree with your assessment. You do have some responsibilities as far as information to the end user and you must be able to provide source for any GPL/AGPL/LGPL software on request (by email, for instance) and include an offer to that effect with the overall package. Also, you can't place the overall package under a license more restrictive than the version of GPL used or imply such, so you must be careful about EULAs. The proprietary bit has one license, and the free software bit has another.

All hail the Great Capacitor Brand Finder

Reply 4 of 4, by superfury

User metadata
Rank l33t++
Rank
l33t++

I'm also wondering about which SeaBIOS binary I need for use with my 80386 emulator? The binaries in the release folder have different sizes, versions and filename formats. Is the legacy ones the one I need when using it combined with option ROMs and a 80386? I can't find any explanation about them on the website&wiki.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io