Red Hat Bugzilla – Bug 478806
Review Request: simh - A highly portable, multi-system emulator
Last modified: 2010-01-09 10:58:59 EST
Spec URL: http://lucilanga.fedorapeople.org/simh.spec
SRPM URL: http://lucilanga.fedorapeople.org/simh-3.8.0-1.fc10.src.rpm
Description: SIMH is a historical computer simulation system. It consists of simulators
for approximately 33 different computers, all written around a common user
interface package and set of supporting libraries.
SIMH can be used to simulate any computer system for which sufficient detail
is available, but the focus to date has been on simulating computer systems
of historic interest.
SIMH implements simulators for:
* Data General Nova, Eclipse
* Digital Equipment Corporation PDP-1, PDP-4, PDP-7, PDP-8, PDP-9, PDP-10,
PDP-11, PDP-15, VAX
* GRI Corporation GRI-909, GRI-99
* IBM 1401, 1620, 1130, 7090/7094, System 3
* Interdata (Perkin-Elmer) 16b and 32b systems
* Hewlett-Packard 2114, 2115, 2116, 2100, 21MX, 1000
* Honeywell H316/H516
* MITS Altair 8800, with both 8080 and Z80
* Royal-Mcbee LGP-30, LGP-21
* Scientific Data Systems SDS 940
I like the idea of this package, but emulators have historically been problematic for Fedora. The issue is licenses for ROMs, firmware, boot media or what have you which is required for the software to actually be useful.
Please see http://fedoraproject.org/wiki/Licensing:SoftwareTypes#Emulators and make sure that this software meets the requirements. If you have questions and would like the Legal folks to look at it, please add "FE-Legal" to the "Blocks:" field above.
VAX emulation contained firmware named ka655.bin which I removed from the package.
I also removed emulation for Ibm1130 because license was somewhat vague. The other files from this package are licensed under MIT, no other ROM images or firmware are provided by this package.
Right, but does what remains actually do anything without ROMs, OS images or anything else that you'd have to go elsewhere to get?
Well most of this computers come from late '60 and early '70 when computers had large front panels of switches allowing the user to enter programs directly from the panel into memory. This package allows to examine and deposit memory or registers of such systems.
There are ways of creating your own images to boot from. There is also a tools package (simtools) available for this computers that allows cross-compiling and image manipulation.
Also there are lots of software available for this machines that are public domain and completely unrestricted.
(In reply to comment #4)
> Also there are lots of software available for this machines that are public
> domain and completely unrestricted.
Available e.g. at http://simh.trailing-edge.com/software.html
(In reply to comment #2)
> I also removed emulation for Ibm1130 because license was somewhat vague. The
Are you referring to missing word "distribute" in the first sentence? I would ask on fedora-legal first and then tried to contact the author. The last sentence contains both "modification" and "distribution", so maybe he will be willing to modify the license.
> (In reply to comment #6)
> Are you referring to missing word "distribute" in the first sentence? I would
> ask on fedora-legal first and then tried to contact the author. The last
> sentence contains both "modification" and "distribution", so maybe he will be
> willing to modify the license.
Yes it is vague, it does not say anything about the right to distribute.
Changing the license might be a little difficult as Ibm1130 is a separate package that is included in simh and usually lags behind Ibm1130 latest package. Even if I can contact Ibm1130 upstream I will have to wait for simh to sync with Ibm1130 package.
Given all of the legal issues surrounding this package, I suspect any reviewer is going to want the legal folks to sign off first. I've blocked FE-Legal.
Citing the emulator rule:
"If it requires ROMs (or image files in any format) of copyrighted or patented material to be useful (and the owners of those copyrights and patents have not given their express written permission), then it's not permitted."
In reviewing this, the intent from upstream is:
"The goal of the project is to create highly portable system simulators and to publish them as freeware on the Internet, with freely available copies of significant or representative software."
Also, there is a significant amount of software (many versions of UNIX) for this emulator which are under Fedora acceptable licenses, and none of the software prominently available seems to be stolen/pirated.
So, it passes that test.
The licensing is mostly MIT, but there is also some GPL+ (literally, v1+) code in there, notably in AltairZ80/. The license tag should be:
License: MIT and GPL+
(each target is compiled into its own binary, so only AltairZ80 is GPL+)
Until the firmware license for the IBM1130 is resolved, please leave it out (and the VAX firmware). Since they are removed, I see no other legal issues here. Lifting FE-Legal.
- Updated package to the latest version (3.8.1).
- Updated license
- Removed separate doc files
- Several spec cleanups.
The generate-tarball.sh file seems to have nothing to do with this package.
It seems that you've done more than just remove files from the tarball. The change to the makefile is the kind of thing that's better done as a patch
(In reply to comment #11)
> The generate-tarball.sh file seems to have nothing to do with this package.
I'm having the same problem over and over perhaps because the naming of this file.
> It seems that you've done more than just remove files from the tarball. The
> change to the makefile is the kind of thing that's better done as a patch
In the makfile I just removed ibm1130 from ALL target. Do I need to specifically remove entire ibm1130 makefile definitions ?
I think you misunderstood; I don't think it's necessary to remove all mention of ibm1130 from the makefile, I just found changes to the "nopatents" tarball (which is misnamed, since the issue isn't one of patents) that went beyond actually deleting files. Now that I can see the script which generates that file, I can see you sed that out, which is an unusual way to do it but which doesn't violate any guidelines as far as I know.
%description mentions the removed IBM 1130 support. I also don't know if the 33 number is still accurate.
In a multiple licensing scenario, you need to include some comment in your spec indicating which files are under which license. http://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Multiple_Licensing_Scenarios
Spot provided that information in comment 9 so this should be a trivial addition.
I did try to test these, but honestly I've no idea what I'm doing so I can't really do that. I did run simh-altair and entered "go"; it segfaulted immediately. simh-hp2100 just spun forever; I let it run for five minutes and it did nothing. The others seemed to behave as I'd expect (breaking with HALT instructions and the like. Can you check those two and verify that they work as expected for you?
* source files match upstream (confirmed by manual inspection).
* package meets naming and versioning guidelines.
* specfile is properly named, is cleanly written and uses macros consistently.
* summary is OK.
X description still mentions removed content.
* dist tag is present.
* build root is OK.
* license field matches the actual license.
* license is open source-compatible.
* license text not included upstream.
* latest version is being packaged.
* BuildRequires are proper.
* compiler flags are appropriate.
* %clean is present.
* package builds in mock (rawhide, x86_64).
* package installs properly.
* debuginfo package looks complete.
* rpmlint is silent.
* final provides and requires are sane:
simh = 3.8.1-2.fc12
simh(x86-64) = 3.8.1-2.fc12
* owns the directory it creates.
* doesn't own any directories it shouldn't.
* no duplicates in %files.
* file permissions are appropriate.
* no generically named files
* code, not content.
* documentation is small, so no -doc subpackage is necessary.
* %docs are not necessary for the proper functioning of the package.
* no headers.
* no pkgconfig files.
* no static libraries.
* no libtool .la files.
(In reply to comment #13)
> I did try to test these, but honestly I've no idea what I'm doing so I can't
> really do that. I did run simh-altair and entered "go"; it segfaulted
Looks like a valid bug there, I will address it upstream.
I've updated the files with regard to above comments.
Now I'm getting a broken debuginfo package; it's missing the sources causing rpmlint to complain:
simh-debuginfo.x86_64: E: debuginfo-without-sources
Looking at the build log, I see:
+ make -j16 -e 'OPT=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' USE_NETWORK=1
make: Nothing to be done for `all'.
and no calls to the compiler, which is pretty odd. Then I checked your tarball, and it seems to have the compiled sources already there in a BIN directory.
I've added the wrong source file.
Hopefully should be ok now:
It appears that I've somehow missed your response. Sorry about that.
The latest package builds fine, rpmlint is silent, and it seems that all of my comments have been addressed.
Sorry for this taking so long.
Thank you for the review.
New Package CVS Request
Package Name: simh
Short Description: A highly portable, multi-system emulator
Branches: F-11 F-12 EL-5