Which parts of the binary blob are actually needed?

Andrew John Hughes gnu_andrew at member.fsf.org
Wed May 16 21:37:49 UTC 2007


On Wednesday 16 May 2007 21:58, Kelly O'Hair wrote:
> Unofficial list is:
>
> Binary Libraries:
>
>   lib/i386/libt2k.so    (or bin/t2k.dll)
>   lib/i386/libdcpr.so   (or bin/dcpr.dll)
>   lib/i386/libjsound.so (or bin/jsound.dll) and libjsoundalsa.so on Linux?
>
> Security Jar Files:
>
>   lib/jce.jar
>   lib/ext/sunjce_provider.jar
>   lib/security/US_export_policy.jar
>   lib/security/local_policy.jar
>
> Classes From rt.jar:
>
>    com/sun/jmx/snmp/SnmpDataTypeEnums.class
>    com/sun/jmx/snmp/SnmpDefinitions.class
>    com/sun/jmx/snmp/SnmpOid.class
>    com/sun/jmx/snmp/SnmpOidDatabase.class
>    com/sun/jmx/snmp/SnmpOidDatabaseSupport.class
>    com/sun/jmx/snmp/SnmpOidRecord.class
>    com/sun/jmx/snmp/SnmpOidTable.class
>    com/sun/jmx/snmp/SnmpOidTableSupport.class
>    com/sun/jmx/snmp/SnmpParameters.class
>    com/sun/jmx/snmp/SnmpPduPacket.class
>    com/sun/jmx/snmp/SnmpPeer.class
>    com/sun/jmx/snmp/SnmpTimeticks.class
>    com/sun/jmx/snmp/SnmpVarBind.class
>    com/sun/jmx/snmp/SnmpVarBindList.class
>    com/sun/jmx/snmp/Timestamp.class
>    com/sun/jmx/snmp/daemon/SendQ.class
>    com/sun/jmx/snmp/daemon/SnmpInformRequest.class
>    com/sun/jmx/snmp/daemon/SnmpQManager.class
>    com/sun/jmx/snmp/daemon/SnmpRequestCounter.class
>    com/sun/jmx/snmp/daemon/SnmpResponseHandler.class
>    com/sun/jmx/snmp/daemon/SnmpSendServer.class
>    com/sun/jmx/snmp/daemon/SnmpSession.class
>    com/sun/jmx/snmp/daemon/SnmpSocket.class
>    com/sun/jmx/snmp/daemon/SnmpTimerServer.class
>    com/sun/jmx/snmp/daemon/WaitQ.class
>    com/sun/media/sound/AbstractDataLine.class
>    com/sun/media/sound/AbstractLine.class
>    com/sun/media/sound/AbstractMidiDevice$AbstractReceiver.class
>    com/sun/media/sound/AbstractMidiDevice$BasicTransmitter.class
>    com/sun/media/sound/AbstractMidiDevice$TransmitterList.class
>    com/sun/media/sound/AbstractMidiDevice.class
>    com/sun/media/sound/AbstractMidiDeviceProvider$Info.class
>    com/sun/media/sound/AbstractMidiDeviceProvider.class
>    com/sun/media/sound/AbstractMixer.class
>    com/sun/media/sound/AbstractPlayer.class
>    com/sun/media/sound/AiffFileFormat.class
>    com/sun/media/sound/AiffFileReader.class
>    com/sun/media/sound/AiffFileWriter.class
>    com/sun/media/sound/AlawCodec$AlawCodecStream.class
>    com/sun/media/sound/AlawCodec.class
>    com/sun/media/sound/AuFileFormat.class
>    com/sun/media/sound/AuFileReader.class
>    com/sun/media/sound/AuFileWriter.class
>    com/sun/media/sound/AutoClosingClip.class
>    com/sun/media/sound/AutoConnectSequencer.class
>    com/sun/media/sound/CircularBuffer.class
>    com/sun/media/sound/DataPusher.class
>    com/sun/media/sound/DirectAudioDevice$1.class
>    com/sun/media/sound/DirectAudioDevice$DirectBAOS.class
>    com/sun/media/sound/DirectAudioDevice$DirectClip.class
>    com/sun/media/sound/DirectAudioDevice$DirectDL$Balance.class
>    com/sun/media/sound/DirectAudioDevice$DirectDL$Gain.class
>    com/sun/media/sound/DirectAudioDevice$DirectDL$Mute.class
>    com/sun/media/sound/DirectAudioDevice$DirectDL$Pan.class
>    com/sun/media/sound/DirectAudioDevice$DirectDL.class
>    com/sun/media/sound/DirectAudioDevice$DirectDLI.class
>    com/sun/media/sound/DirectAudioDevice$DirectSDL.class
>    com/sun/media/sound/DirectAudioDevice$DirectTDL.class
>    com/sun/media/sound/DirectAudioDevice.class
>   
> com/sun/media/sound/DirectAudioDeviceProvider$DirectAudioDeviceInfo.class
> com/sun/media/sound/DirectAudioDeviceProvider.class
>    com/sun/media/sound/EventDispatcher$ClipInfo.class
>    com/sun/media/sound/EventDispatcher$EventInfo.class
>    com/sun/media/sound/EventDispatcher$LineMonitor.class
>    com/sun/media/sound/EventDispatcher.class
>    com/sun/media/sound/FastShortMessage.class
>    com/sun/media/sound/FastSysexMessage.class
>    com/sun/media/sound/HeadspaceInstrument.class
>    com/sun/media/sound/HeadspaceMixer$1.class
>    com/sun/media/sound/HeadspaceMixer$MidiLine.class
>    com/sun/media/sound/HeadspaceMixer$MidiLineInfo.class
>    com/sun/media/sound/HeadspaceMixer$MixerInfo.class
>   
> com/sun/media/sound/HeadspaceMixer$MixerReverbControl$MixerReverbType.class
> com/sun/media/sound/HeadspaceMixer$MixerReverbControl.class
>    com/sun/media/sound/HeadspaceMixer.class
>    com/sun/media/sound/HeadspaceMixerProvider.class
>    com/sun/media/sound/HeadspaceSample.class
>    com/sun/media/sound/HeadspaceSoundbank.class
>    com/sun/media/sound/HsbParser.class
>    com/sun/media/sound/JDK13Services$1.class
>    com/sun/media/sound/JDK13Services$ProviderCache.class
>    com/sun/media/sound/JDK13Services.class
>    com/sun/media/sound/JSSecurityManager$1.class
>    com/sun/media/sound/JSSecurityManager$2.class
>    com/sun/media/sound/JSSecurityManager$3.class
>    com/sun/media/sound/JSSecurityManager$4.class
>    com/sun/media/sound/JSSecurityManager$5.class
>    com/sun/media/sound/JSSecurityManager$6.class
>    com/sun/media/sound/JSSecurityManager$7.class
>    com/sun/media/sound/JSSecurityManager.class
>    com/sun/media/sound/JavaSoundAudioClip$DirectBAOS.class
>    com/sun/media/sound/JavaSoundAudioClip.class
>    com/sun/media/sound/MidiInDevice$1.class
>    com/sun/media/sound/MidiInDevice$MidiInTransmitter.class
>    com/sun/media/sound/MidiInDevice.class
>    com/sun/media/sound/MidiInDeviceProvider$1.class
>    com/sun/media/sound/MidiInDeviceProvider$MidiInDeviceInfo.class
>    com/sun/media/sound/MidiInDeviceProvider.class
>    com/sun/media/sound/MidiOutDevice$MidiOutReceiver.class
>    com/sun/media/sound/MidiOutDevice.class
>    com/sun/media/sound/MidiOutDeviceProvider$1.class
>    com/sun/media/sound/MidiOutDeviceProvider$MidiOutDeviceInfo.class
>    com/sun/media/sound/MidiOutDeviceProvider.class
>    com/sun/media/sound/MidiUtils$TempoCache.class
>    com/sun/media/sound/MidiUtils.class
>    com/sun/media/sound/MixerClip$1.class
>    com/sun/media/sound/MixerClip$MixerClipApplyReverbControl.class
>    com/sun/media/sound/MixerClip$MixerClipGainControl.class
>    com/sun/media/sound/MixerClip$MixerClipMuteControl.class
>    com/sun/media/sound/MixerClip$MixerClipPanControl.class
>    com/sun/media/sound/MixerClip$MixerClipSampleRateControl.class
>    com/sun/media/sound/MixerClip.class
>    com/sun/media/sound/MixerMidiChannel.class
>    com/sun/media/sound/MixerSequencer$1.class
>    com/sun/media/sound/MixerSequencer$ControllerVectorElement.class
>    com/sun/media/sound/MixerSequencer$MixerSequencerInfo.class
>    com/sun/media/sound/MixerSequencer$RecordingTrack.class
>    com/sun/media/sound/MixerSequencer.class
>    com/sun/media/sound/MixerSequencerProvider.class
>    com/sun/media/sound/MixerSourceLine$1.class
>   
> com/sun/media/sound/MixerSourceLine$MixerSourceLineApplyReverbControl.class
> com/sun/media/sound/MixerSourceLine$MixerSourceLineGainControl.class
> com/sun/media/sound/MixerSourceLine$MixerSourceLineMuteControl.class
> com/sun/media/sound/MixerSourceLine$MixerSourceLinePanControl.class
> com/sun/media/sound/MixerSourceLine$MixerSourceLineSampleRateControl.class
> com/sun/media/sound/MixerSourceLine.class
>    com/sun/media/sound/MixerSynth$1.class
>    com/sun/media/sound/MixerSynth$MixerSynthInfo.class
>    com/sun/media/sound/MixerSynth$SynthReceiver.class
>    com/sun/media/sound/MixerSynth.class
>    com/sun/media/sound/MixerSynthProvider.class
>    com/sun/media/sound/MixerThread.class
>    com/sun/media/sound/PCMtoPCMCodec$PCMtoPCMCodecStream.class
>    com/sun/media/sound/PCMtoPCMCodec.class
>    com/sun/media/sound/Platform.class
>    com/sun/media/sound/PortMixer$1.class
>    com/sun/media/sound/PortMixer$BoolCtrl$BCT.class
>    com/sun/media/sound/PortMixer$BoolCtrl.class
>    com/sun/media/sound/PortMixer$CompCtrl$CCT.class
>    com/sun/media/sound/PortMixer$CompCtrl.class
>    com/sun/media/sound/PortMixer$FloatCtrl$FCT.class
>    com/sun/media/sound/PortMixer$FloatCtrl.class
>    com/sun/media/sound/PortMixer$PortInfo.class
>    com/sun/media/sound/PortMixer$PortMixerPort.class
>    com/sun/media/sound/PortMixer.class
>    com/sun/media/sound/PortMixerProvider$PortMixerInfo.class
>    com/sun/media/sound/PortMixerProvider.class
>    com/sun/media/sound/Printer.class
>    com/sun/media/sound/RealTimeSequencer$1.class
>    com/sun/media/sound/RealTimeSequencer$ControllerListElement.class
>    com/sun/media/sound/RealTimeSequencer$DataPump.class
>    com/sun/media/sound/RealTimeSequencer$PlayThread.class
>    com/sun/media/sound/RealTimeSequencer$RealTimeSequencerInfo.class
>    com/sun/media/sound/RealTimeSequencer$RecordingTrack.class
>    com/sun/media/sound/RealTimeSequencer$SequencerReceiver.class
>    com/sun/media/sound/RealTimeSequencer$SequencerTransmitter.class
>    com/sun/media/sound/RealTimeSequencer.class
>    com/sun/media/sound/RealTimeSequencerProvider.class
>    com/sun/media/sound/ReferenceCountingDevice.class
>    com/sun/media/sound/RmfFileReader.class
>    com/sun/media/sound/SMFParser.class
>    com/sun/media/sound/SimpleInputDevice$1.class
>    com/sun/media/sound/SimpleInputDevice$InputDeviceDataLine.class
>    com/sun/media/sound/SimpleInputDevice$InputDevicePort.class
>    com/sun/media/sound/SimpleInputDevice$InputDevicePortInfo.class
>    com/sun/media/sound/SimpleInputDevice.class
>    com/sun/media/sound/SimpleInputDeviceProvider$1.class
>    com/sun/media/sound/SimpleInputDeviceProvider$InputDeviceInfo.class
>    com/sun/media/sound/SimpleInputDeviceProvider.class
>    com/sun/media/sound/StandardMidiFileReader.class
>    com/sun/media/sound/StandardMidiFileWriter.class
>    com/sun/media/sound/SunCodec.class
>    com/sun/media/sound/SunFileReader.class
>    com/sun/media/sound/SunFileWriter.class
>    com/sun/media/sound/Toolkit.class
>    com/sun/media/sound/UlawCodec$UlawCodecStream.class
>    com/sun/media/sound/UlawCodec.class
>    com/sun/media/sound/WaveFileFormat.class
>    com/sun/media/sound/WaveFileReader.class
>    com/sun/media/sound/WaveFileWriter.class
>    java/awt/color/CMMException.class
>    java/awt/color/ColorSpace.class
>    java/awt/color/ICC_ColorSpace.class
>    java/awt/color/ICC_Profile$1.class
>    java/awt/color/ICC_Profile$2.class
>    java/awt/color/ICC_Profile$3.class
>    java/awt/color/ICC_Profile.class
>    java/awt/color/ICC_ProfileGray.class
>    java/awt/color/ICC_ProfileRGB.class
>    java/awt/image/BandedSampleModel.class
>    java/awt/image/ColorConvertOp.class
>    java/awt/image/ComponentSampleModel.class
>    java/awt/image/DataBuffer$1.class
>    java/awt/image/DataBuffer.class
>    java/awt/image/DataBufferByte.class
>    java/awt/image/DataBufferInt.class
>    java/awt/image/DataBufferShort.class
>    java/awt/image/DataBufferUShort.class
>    java/awt/image/MultiPixelPackedSampleModel.class
>    java/awt/image/Raster.class
>    java/awt/image/RenderedImage.class
>    java/awt/image/SampleModel.class
>    java/awt/image/SinglePixelPackedSampleModel.class
>    java/awt/image/WritableRaster.class
>    java/awt/image/WritableRenderedImage.class
>    java/awt/image/renderable/ContextualRenderedImageFactory.class
>    java/awt/image/renderable/ParameterBlock.class
>    java/awt/image/renderable/RenderContext.class
>    java/awt/image/renderable/RenderableImage.class
>    java/awt/image/renderable/RenderableImageOp.class
>    java/awt/image/renderable/RenderableImageProducer.class
>    java/awt/image/renderable/RenderedImageFactory.class
>    sun/dc/path/FastPathProducer.class
>    sun/dc/path/PathConsumer.class
>    sun/dc/path/PathError.class
>    sun/dc/path/PathException.class
>    sun/dc/pr/PRError.class
>    sun/dc/pr/PRException.class
>    sun/dc/pr/PathDasher.class
>    sun/dc/pr/PathFiller.class
>    sun/dc/pr/PathStroker.class
>    sun/dc/pr/Rasterizer$ConsumerDisposer.class
>    sun/dc/pr/Rasterizer.class
>
> -The End-
>
> -kto
>
> Bernhard Rosenkraenzer wrote:
> > I've just had a look at the "full" openjdk release -- and noticed the
> > binary blob is just about the size of the full jdk. I'm assuming it
> > contains some unnecessary bits (e.g. bits that will be replaced with
> > components that are built during the openjdk build process, such as the
> > "java" and "javac" executables).
> >
> > What parts of the blob actually make it to the final build? (And has
> > anyone checked if they can be replaced with components from any of the
> > free JDK reimplementations?)
> >
> > Regards,
> > bero

A number of the GNU Classpath developers (including myself) are looking into 
how OpenJDK can be built, in its present form, without the binary 
dependencies, through various methods such as using bits of Classpath, 
breaking of small chunks, etc.  Sun is also of course working towards this in 
the long term, with the community when a process of committing patches is 
established.
-- 
Andrew :-)

Help end the Java Trap!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <https://mail.openjdk.org/pipermail/build-dev/attachments/20070516/3cb6c7d5/attachment.sig>


More information about the build-dev mailing list