PSARC 2008/364 Integrate Snack into Solaris
Frank Che
Frank.Che at sun.com
Wed Jun 11 00:56:06 PDT 2008
Case material updated:
1. Updated the case proposal to integrate the Tcl/Tk extension only.
Removed the support for Python and those C/C++ APIs. Propose to put the
libraries to /usr/lib/tcl8.4/snack2.2.10 instead of /usr/lib/. New
proposal was saved as spec.txt in case directory.
2. Updated the 'Snack.1t' man page file according to proposed changed,
new file saved as 'Snack.1t.update1' in the 'material' sub-directory.
3. Removed those HTML documents on C/C++ APIs from the 'material'
sub-directory.
Frank.
Garrett D'Amore wrote:
> Lin Guo wrote:
>> Hi Garrett,
>>
>> Thanks for your comments.
>>
>> Please don't worry about the audio interface. I will ask for your
>> comment before switching to OSS to make sure everything is OK and
>> nothing will be broken.
>> As for the C API and the location of the libraries and the "ext"
>> example, they are the same issue: Whether the project should export
>> the C/C++ API at this moment.
>> You know, now the only consumer of snack is "aMSN" which uses snack
>> as a Tcl/Tk extension.
>> I am considering just export the Tcl/Tk related interfaces , leaving
>> others in the following case when a consumer is identified.(As you
>> suggested)
>> In that case, I will put the libraries to /usr/lib/tcl8.4/snack2.2
>> directory since only "pkgindex.tcl" script will use them. The "ext"
>> directory will not be delivered.
>> I will modify the proposal based on above description. Any comments
>> will be greatly appreciated.
>
> This sounds like a great plan to me. Thanks.
>
> -- Garrett
>>
>> Thanks,
>> Lin
>>
>> Garrett D'Amore wrote:
>>> Lin Guo wrote:
>>>> Garrett D'Amore wrote:
>>>>>
>>>>> I have a couple of concerns here.
>>>>>
>>>>> 1) What are the dependencies of snack for audio? Can it support
>>>>> OSS? Can it support Sun Audio? How is the selection made (if
>>>>> any)? (PSARC 2008/318 specifies a task to introduce OSS into
>>>>> Solaris, and I'm concerned that adding a new layer of middleware
>>>>> creates more work for my project. While this shouldn't act as a
>>>>> show stopper for this case, it does suggest that we should
>>>>> probably communicate offline.)
>>>> Snack supports Sun Audio, OSS and ALSA. Compiling snack with
>>>> different configure flag may enable different audio support.
>>>> Whenever OSS is integrated to Solaris and is stable, I will change
>>>> snack to OSS since OSS has new features that not provided by Sun
>>>> Audio.
>>>
>>> Okay, as long as it won't automatically switch to OSS when OSS
>>> integrates (e.g. by way of autoconf), then we're OK. We will want
>>> to switch, but I think we want to control the "when", to make sure
>>> we don't mess up support for Sun Ray, which will probably be
>>> delivered in a subsequent phase.
>>>
>>>>>
>>>>> 2) /usr/lib/libsound.so seems *awfully* generic as a name to me.
>>>>> My concern here is that this will create problems or conflicts
>>>>> with other audio middleware? Can the project team provide more
>>>>> detail about why this particular name is required? (It seems like
>>>>> you also have libsnack. Is libaudio just a symbolic link to
>>>>> libsnack? Has the project team done any survey of other FOSS
>>>>> systems to verify that a) this libaudio doesn't conflict with any
>>>>> known uses, and b) the Snack libraries are popular enough to
>>>>> minimize the likelihood of any new conflicts occurring in the future?
>>>> It really my concerns when I saw the "awful" name. libsound is not
>>>> a symbolic link to libsnack, it provides similar functionalities to
>>>> libsnack except graphics support.
>>>> I looked into other FOSS systems and found that libsound is in
>>>> /usr/lib too. Google results prove that snack libraries are popular
>>>> enough to prevent conflicts with other libraries.
>>>
>>> OK. If you're confident that this won't be an issue, then I'm
>>> happy. (Can you, off hand, name any distros which have this
>>> installed or delivered either by default, or as a commonly used
>>> add-on? I did see RPMs for it, but I'm not sure if that means it is
>>> popular or not.)
>>>
>>>>
>>>>>
>>>>> 3) Your case describes Python and Tcl/Tk, but your materials
>>>>> include a C API. Is there a need to make this public at this time
>>>>> (are there any consumers for this now, or anticipated in the future)?
>>>> There is no consumers for this C API now. But the C API is a part
>>>> of snack project. Using it, you could write your own snack
>>>> extensions in C/C++. You can also create custom commands that
>>>> operate on Snack's sound objects. That means if snack Tcl/Tk
>>>> commands are not enough for your application. You could create
>>>> custom commands to extend Snack and then use the commands just as
>>>> any other Snack sound commands in writing your application.
>>>
>>> Can I make a suggestion then, that you start with the C/C++ API
>>> being Project Private for now. It will be quite easy to uplevel the
>>> API later, if it proves to be desirable or necessary, but without
>>> any identified consumers, I prefer to take the safe road and avoid
>>> making promises. (Plus, this frees the project team from having to
>>> supply documentation for those APIs.)
>>>
>>> Another way of looking at it is, if you don't have any consumers,
>>> then you really can't be sure what the stability of the API will be.
>>>
>>> Note that this is only a *suggestion*, so take it or leave it at
>>> your discretion.
>>>
>>>>>
>>>>>
>>>>> 4) /usr/share/doc/snack-2.2/ext/aclocal.m4 -- is this snack's
>>>>> actual m4 that it uses for its own configuration, or is this
>>>>> intended as samples for applications to include in their own
>>>>> autoconf scripts to detect snack? (If only the former, please
>>>>> remove it. If the latter, then it sounds good to me.)
>>>> It is the latter. A whole example of how to write a snack extension
>>>> is in "ext" directory including the m4 file.
>>>
>>> Ah, so that's what the ext is. Are such extensions C/C++, or are
>>> they are written in some other language? (Again, while this sounds
>>> possibly interesting, I think it leads into the questions in 3 above
>>> -- if there are no known consumers, might be better to add the work
>>> to make it public in a following case, when at least one consumer is
>>> identified.)
>>>
>>>>
>>>> Thanks for your comments,
>>>
>>> Sure. I appreciate your answers to my questions. It sounds like
>>> your project is right on track.
>>>
>>> - -Garrett
>>>
>>>> Lin
>>>>>
>>>>> -- Garrett
>>>>>
>>>>> Thanks!
>>>>>
>>>>> -- Garrett
>>>>>
>>>>> Frank Che wrote:
>>>>>> I'm sponsoring this fast track case for Lin Guo. The timer is set to
>>>>>> 06/12/2008. This case is to integrate an open source package, snack
>>>>>> sound toolkit, into Solaris. It requests a minor release binding.
>>>>>>
>>>>>> Two man page files created by the submitter and those HTML documents
>>>>>> provided by snack are placed in the 'material' sub-directory of
>>>>>> this case.
>>>>>>
>>>>>> A contract with Python is in progress now.
>>>>>>
>>>>>> -Frank
>>>>>>
>>>>>> Template Version: @(#)sac_nextcase 1.66 04/17/08 SMI
>>>>>> This information is Copyright 2008 Sun Microsystems
>>>>>> 1. Introduction
>>>>>> 1.1. Project/Component Working Name:
>>>>>> Integrate Snack into Solaris
>>>>>> 1.2. Name of Document Author/Supplier:
>>>>>> Author: Lin Guo
>>>>>> 1.3 Date of This Document:
>>>>>> 04 June, 2008
>>>>>>
>>>>>> 4. Technical Description
>>>>>> Summary
>>>>>>
>>>>>> This project integrates snack into Solaris.
>>>>>> This project requests a minor binding.
>>>>>>
>>>>>> 4.1 Proposal
>>>>>>
>>>>>> The Snack Sound Toolkit is a open source package. It is designed
>>>>>> to be
>>>>>> used with a scripting language such as Tcl/Tk or Python. Using
>>>>>> Snack
>>>>>> you can create powerful multi-platform audio applications with
>>>>>> just a
>>>>>> few lines of code.
>>>>>>
>>>>>> With features such as:
>>>>>>
>>>>>> * High level sound objects, with flexible storage management and
>>>>>> streaming support.
>>>>>> * Multiple simultaneous playback and recording threads (system
>>>>>> dependent).
>>>>>> * All audio data handled as floating point internally for fast and
>>>>>> accurate computations.
>>>>>> * Multi-platform support.
>>>>>> * Script compilation tool included, for easy deployment using
>>>>>> stand-alone executables.
>>>>>> * Filters which can be used to process sound objects or during
>>>>>> playback for on-the-fly operation.
>>>>>> * Visualization with waveforms, spectrograms, and spectrum
>>>>>> sections.
>>>>>> Postscript support.
>>>>>> * Real-time visualization/spectrum analysis.
>>>>>> * Web enabled, possible to run scripts embedded in web pages
>>>>>> through
>>>>>> the use of the Tcl Plugins
>>>>>> * Extensible, new commands, filters, and sound file formats can be
>>>>>> added using the Snack C-library.
>>>>>> * Lots of examples included as well as a skeleton C-extension.
>>>>>> * Supported sound file formats: WAV, AU, AIFF, MP3, CSL, SD, SMP.
>>>>>>
>>>>>> The first consumer of the library is aMSN -- a free open source MSN
>>>>>> Messenger clone which is an Indiana package. AMSN uses snack for
>>>>>> voice
>>>>>> clips support.
>>>>>>
>>>>>> 32 and 64 bit libraries will be provided.
>>>>>>
>>>>>> snack provides detailed documentations in html format and examples
>>>>>> describing snack tcl commands and python commands that will be
>>>>>> released
>>>>>> with the integration. New man pages will be provided pointing to
>>>>>> the
>>>>>> html documentations. They are included in case directory.
>>>>>>
>>>>>> 4.2 Interfaces
>>>>>>
>>>>>> Exported Interface | Stability
>>>>>> |Description
>>>>>> --------------------------------------------|--------------|-------------------
>>>>>>
>>>>>> SUNWsnack | Uncommitted |
>>>>>> package name
>>>>>> /usr/include/snack/snack.h | Uncommitted |
>>>>>> header file
>>>>>> /usr/include/snack/snackDecls.h | Uncommitted |
>>>>>> header file
>>>>>> /usr/include/snack/confdefs.h | Uncommitted |
>>>>>> header file
>>>>>> /usr/include/snack/jkAudIO.h | Uncommitted |
>>>>>> header file
>>>>>> /usr/include/snack/jkCanvItems.h | Uncommitted |
>>>>>> header file
>>>>>> /usr/include/snack/jkFormant.h | Uncommitted |
>>>>>> header file
>>>>>> /usr/include/snack/jkFormatMP3.h | Uncommitted |
>>>>>> header file
>>>>>> /usr/include/snack/jkGetFO.h | Uncommitted |
>>>>>> header file
>>>>>> /usr/include/snack/jkSound.h | Uncommitted |
>>>>>> header file
>>>>>> /usr/lib/libsnackstub2.2.a | Uncommitted |
>>>>>> stubs library
>>>>>> /usr/lib/64/libsnackstub2.2.a | Uncommitted |
>>>>>> stubs library
>>>>>> /usr/lib/snackConfig.sh | Uncommitted |
>>>>>> snack extension config script
>>>>>> /usr/lib/64/snackConfig.sh | Uncommitted |
>>>>>> snack extension config script
>>>>>> /usr/lib/libsnack.so | Committed |
>>>>>> snack library symbolic link
>>>>>> /usr/lib/libsnack.so.2 | Uncommitted |
>>>>>> snack library symbolic link
>>>>>> /usr/lib/libsnack.so.2.2.10 | Uncommitted |
>>>>>> snack library
>>>>>> /usr/lib/64/libsnack.so | Committed |
>>>>>> snack library symbolic link
>>>>>> /usr/lib/64/libsnack.so.2 | Uncommitted |
>>>>>> snack library symbolic link
>>>>>> /usr/lib/64/libsnack.so.2.2.10 | Uncommitted |
>>>>>> snack library
>>>>>> /usr/lib/libsound.so | Committed |
>>>>>> snack library symbolic link
>>>>>> /usr/lib/libsound.so.2 | Uncommitted |
>>>>>> snack library symbolic link
>>>>>> /usr/lib/libsound.so.2.2.10 | Uncommitted |
>>>>>> snack library
>>>>>> /usr/lib/64/libsound.so | Committed |
>>>>>> snack library symbolic link
>>>>>> /usr/lib/64/libsound.so.2 | Uncommitted |
>>>>>> snack library symbolic link
>>>>>> /usr/lib/64/libsound.so.2.2.10 | Uncommitted |
>>>>>> snack library
>>>>>> /usr/lib/tcl8.4/snack2.2/pkgIndex.tcl | Uncommitted | tcl
>>>>>> package index
>>>>>> /usr/lib/tcl8.4/snack2.2/snack.tcl | Uncommitted |
>>>>>> snack script library
>>>>>> /usr/lib/python2.4/site-packages/tkSnack.py | Uncommitted |
>>>>>> python script
>>>>>> /usr/lib/python2.4/site-packages/tkSnack.pyc| Uncommitted |
>>>>>> Python Compiler Script
>>>>>> snack APIs | Uncommitted | C
>>>>>> functions
>>>>>> ---------------------------------------------|-------------|--------------------
>>>>>>
>>>>>>
>>>>>> Documents delivered:
>>>>>>
>>>>>> /usr/share/man/man1t/snack.1t
>>>>>> /usr/share/man/man3/libsnack.3
>>>>>> /usr/share/doc/snack-2.2/BSD.txt
>>>>>> /usr/share/doc/snack-2.2/COPYING
>>>>>> /usr/share/doc/snack-2.2/README
>>>>>> /usr/share/doc/snack-2.2/changes
>>>>>> /usr/share/doc/snack-2.2/html/AddSubCmd.html
>>>>>> /usr/share/doc/snack-2.2/html/Callback.html
>>>>>> /usr/share/doc/snack-2.2/html/CreateFilter.html
>>>>>> /usr/share/doc/snack-2.2/html/FileFormat.html
>>>>>> /usr/share/doc/snack-2.2/html/SampConv.html
>>>>>> /usr/share/doc/snack-2.2/html/SnackLib.html
>>>>>> /usr/share/doc/snack-2.2/html/SoundData.html
>>>>>> /usr/share/doc/snack-2.2/html/SoundObj.html
>>>>>> /usr/share/doc/snack-2.2/html/SoundProp.html
>>>>>> /usr/share/doc/snack-2.2/html/SoundSamp.html
>>>>>> /usr/share/doc/snack-2.2/html/tcl-man.html
>>>>>> /usr/share/doc/snack-2.2/html/python-man.html
>>>>>> /usr/share/doc/snack-2.2/examples/python/*.py
>>>>>> /usr/share/doc/snack-2.2/examples/tcl/*.tcl
>>>>>> /usr/share/doc/snack-2.2/ext/Makefile.in
>>>>>> /usr/share/doc/snack-2.2/ext/README
>>>>>> /usr/share/doc/snack-2.2/ext/aclocal.m4
>>>>>> /usr/share/doc/snack-2.2/ext/configure
>>>>>> /usr/share/doc/snack-2.2/ext/configure.in
>>>>>> /usr/share/doc/snack-2.2/ext/square.c
>>>>>> /usr/share/doc/snack-2.2/ext/square.dsp
>>>>>> /usr/share/doc/snack-2.2/ext/square.vcproj
>>>>>> /usr/share/doc/snack-2.2/ext/test.tcl
>>>>>>
>>>>>>
>>>>>> Imported Interface | Stability | Description
>>>>>> ------------------------+-----------------+-------------
>>>>>> libtcl/libtk 8.4.14 | Uncommitted | PSARC 2007/317
>>>>>> Python 2.4.x | External | PSARC 2005/532
>>>>>> ------------------------+-----------------+-------------
>>>>>>
>>>>>> 4.3 References
>>>>>>
>>>>>> [1] http://www.speech.kth.se/snack/
>>>>>> [2] PSARC 2007/317 Tcl/Tk upgrade to 8.4.14
>>>>>> [3] PSARC 2005/532 Python 2.4.x
>>>>>>
>>>>>> 6. Resources and Schedule
>>>>>> 6.4. Steering Committee requested information
>>>>>> 6.4.1. Consolidation C-team Name:
>>>>>> SFW
>>>>>> 6.5. ARC review type: FastTrack
>>>>>> 6.6. ARC Exposure: open
>>>>>>
>>>>>
>>>
>
More information about the opensolaris-arc
mailing list