1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/gmyth-stream/client/COPYING Wed Apr 11 18:39:39 2007 +0100
1.3 @@ -0,0 +1,340 @@
1.4 + GNU GENERAL PUBLIC LICENSE
1.5 + Version 2, June 1991
1.6 +
1.7 + Copyright (C) 1989, 1991 Free Software Foundation, Inc.
1.8 + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
1.9 + Everyone is permitted to copy and distribute verbatim copies
1.10 + of this license document, but changing it is not allowed.
1.11 +
1.12 + Preamble
1.13 +
1.14 + The licenses for most software are designed to take away your
1.15 +freedom to share and change it. By contrast, the GNU General Public
1.16 +License is intended to guarantee your freedom to share and change free
1.17 +software--to make sure the software is free for all its users. This
1.18 +General Public License applies to most of the Free Software
1.19 +Foundation's software and to any other program whose authors commit to
1.20 +using it. (Some other Free Software Foundation software is covered by
1.21 +the GNU Library General Public License instead.) You can apply it to
1.22 +your programs, too.
1.23 +
1.24 + When we speak of free software, we are referring to freedom, not
1.25 +price. Our General Public Licenses are designed to make sure that you
1.26 +have the freedom to distribute copies of free software (and charge for
1.27 +this service if you wish), that you receive source code or can get it
1.28 +if you want it, that you can change the software or use pieces of it
1.29 +in new free programs; and that you know you can do these things.
1.30 +
1.31 + To protect your rights, we need to make restrictions that forbid
1.32 +anyone to deny you these rights or to ask you to surrender the rights.
1.33 +These restrictions translate to certain responsibilities for you if you
1.34 +distribute copies of the software, or if you modify it.
1.35 +
1.36 + For example, if you distribute copies of such a program, whether
1.37 +gratis or for a fee, you must give the recipients all the rights that
1.38 +you have. You must make sure that they, too, receive or can get the
1.39 +source code. And you must show them these terms so they know their
1.40 +rights.
1.41 +
1.42 + We protect your rights with two steps: (1) copyright the software, and
1.43 +(2) offer you this license which gives you legal permission to copy,
1.44 +distribute and/or modify the software.
1.45 +
1.46 + Also, for each author's protection and ours, we want to make certain
1.47 +that everyone understands that there is no warranty for this free
1.48 +software. If the software is modified by someone else and passed on, we
1.49 +want its recipients to know that what they have is not the original, so
1.50 +that any problems introduced by others will not reflect on the original
1.51 +authors' reputations.
1.52 +
1.53 + Finally, any free program is threatened constantly by software
1.54 +patents. We wish to avoid the danger that redistributors of a free
1.55 +program will individually obtain patent licenses, in effect making the
1.56 +program proprietary. To prevent this, we have made it clear that any
1.57 +patent must be licensed for everyone's free use or not licensed at all.
1.58 +
1.59 + The precise terms and conditions for copying, distribution and
1.60 +modification follow.
1.61 +
1.62 + GNU GENERAL PUBLIC LICENSE
1.63 + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
1.64 +
1.65 + 0. This License applies to any program or other work which contains
1.66 +a notice placed by the copyright holder saying it may be distributed
1.67 +under the terms of this General Public License. The "Program", below,
1.68 +refers to any such program or work, and a "work based on the Program"
1.69 +means either the Program or any derivative work under copyright law:
1.70 +that is to say, a work containing the Program or a portion of it,
1.71 +either verbatim or with modifications and/or translated into another
1.72 +language. (Hereinafter, translation is included without limitation in
1.73 +the term "modification".) Each licensee is addressed as "you".
1.74 +
1.75 +Activities other than copying, distribution and modification are not
1.76 +covered by this License; they are outside its scope. The act of
1.77 +running the Program is not restricted, and the output from the Program
1.78 +is covered only if its contents constitute a work based on the
1.79 +Program (independent of having been made by running the Program).
1.80 +Whether that is true depends on what the Program does.
1.81 +
1.82 + 1. You may copy and distribute verbatim copies of the Program's
1.83 +source code as you receive it, in any medium, provided that you
1.84 +conspicuously and appropriately publish on each copy an appropriate
1.85 +copyright notice and disclaimer of warranty; keep intact all the
1.86 +notices that refer to this License and to the absence of any warranty;
1.87 +and give any other recipients of the Program a copy of this License
1.88 +along with the Program.
1.89 +
1.90 +You may charge a fee for the physical act of transferring a copy, and
1.91 +you may at your option offer warranty protection in exchange for a fee.
1.92 +
1.93 + 2. You may modify your copy or copies of the Program or any portion
1.94 +of it, thus forming a work based on the Program, and copy and
1.95 +distribute such modifications or work under the terms of Section 1
1.96 +above, provided that you also meet all of these conditions:
1.97 +
1.98 + a) You must cause the modified files to carry prominent notices
1.99 + stating that you changed the files and the date of any change.
1.100 +
1.101 + b) You must cause any work that you distribute or publish, that in
1.102 + whole or in part contains or is derived from the Program or any
1.103 + part thereof, to be licensed as a whole at no charge to all third
1.104 + parties under the terms of this License.
1.105 +
1.106 + c) If the modified program normally reads commands interactively
1.107 + when run, you must cause it, when started running for such
1.108 + interactive use in the most ordinary way, to print or display an
1.109 + announcement including an appropriate copyright notice and a
1.110 + notice that there is no warranty (or else, saying that you provide
1.111 + a warranty) and that users may redistribute the program under
1.112 + these conditions, and telling the user how to view a copy of this
1.113 + License. (Exception: if the Program itself is interactive but
1.114 + does not normally print such an announcement, your work based on
1.115 + the Program is not required to print an announcement.)
1.116 +
1.117 +These requirements apply to the modified work as a whole. If
1.118 +identifiable sections of that work are not derived from the Program,
1.119 +and can be reasonably considered independent and separate works in
1.120 +themselves, then this License, and its terms, do not apply to those
1.121 +sections when you distribute them as separate works. But when you
1.122 +distribute the same sections as part of a whole which is a work based
1.123 +on the Program, the distribution of the whole must be on the terms of
1.124 +this License, whose permissions for other licensees extend to the
1.125 +entire whole, and thus to each and every part regardless of who wrote it.
1.126 +
1.127 +Thus, it is not the intent of this section to claim rights or contest
1.128 +your rights to work written entirely by you; rather, the intent is to
1.129 +exercise the right to control the distribution of derivative or
1.130 +collective works based on the Program.
1.131 +
1.132 +In addition, mere aggregation of another work not based on the Program
1.133 +with the Program (or with a work based on the Program) on a volume of
1.134 +a storage or distribution medium does not bring the other work under
1.135 +the scope of this License.
1.136 +
1.137 + 3. You may copy and distribute the Program (or a work based on it,
1.138 +under Section 2) in object code or executable form under the terms of
1.139 +Sections 1 and 2 above provided that you also do one of the following:
1.140 +
1.141 + a) Accompany it with the complete corresponding machine-readable
1.142 + source code, which must be distributed under the terms of Sections
1.143 + 1 and 2 above on a medium customarily used for software interchange; or,
1.144 +
1.145 + b) Accompany it with a written offer, valid for at least three
1.146 + years, to give any third party, for a charge no more than your
1.147 + cost of physically performing source distribution, a complete
1.148 + machine-readable copy of the corresponding source code, to be
1.149 + distributed under the terms of Sections 1 and 2 above on a medium
1.150 + customarily used for software interchange; or,
1.151 +
1.152 + c) Accompany it with the information you received as to the offer
1.153 + to distribute corresponding source code. (This alternative is
1.154 + allowed only for noncommercial distribution and only if you
1.155 + received the program in object code or executable form with such
1.156 + an offer, in accord with Subsection b above.)
1.157 +
1.158 +The source code for a work means the preferred form of the work for
1.159 +making modifications to it. For an executable work, complete source
1.160 +code means all the source code for all modules it contains, plus any
1.161 +associated interface definition files, plus the scripts used to
1.162 +control compilation and installation of the executable. However, as a
1.163 +special exception, the source code distributed need not include
1.164 +anything that is normally distributed (in either source or binary
1.165 +form) with the major components (compiler, kernel, and so on) of the
1.166 +operating system on which the executable runs, unless that component
1.167 +itself accompanies the executable.
1.168 +
1.169 +If distribution of executable or object code is made by offering
1.170 +access to copy from a designated place, then offering equivalent
1.171 +access to copy the source code from the same place counts as
1.172 +distribution of the source code, even though third parties are not
1.173 +compelled to copy the source along with the object code.
1.174 +
1.175 + 4. You may not copy, modify, sublicense, or distribute the Program
1.176 +except as expressly provided under this License. Any attempt
1.177 +otherwise to copy, modify, sublicense or distribute the Program is
1.178 +void, and will automatically terminate your rights under this License.
1.179 +However, parties who have received copies, or rights, from you under
1.180 +this License will not have their licenses terminated so long as such
1.181 +parties remain in full compliance.
1.182 +
1.183 + 5. You are not required to accept this License, since you have not
1.184 +signed it. However, nothing else grants you permission to modify or
1.185 +distribute the Program or its derivative works. These actions are
1.186 +prohibited by law if you do not accept this License. Therefore, by
1.187 +modifying or distributing the Program (or any work based on the
1.188 +Program), you indicate your acceptance of this License to do so, and
1.189 +all its terms and conditions for copying, distributing or modifying
1.190 +the Program or works based on it.
1.191 +
1.192 + 6. Each time you redistribute the Program (or any work based on the
1.193 +Program), the recipient automatically receives a license from the
1.194 +original licensor to copy, distribute or modify the Program subject to
1.195 +these terms and conditions. You may not impose any further
1.196 +restrictions on the recipients' exercise of the rights granted herein.
1.197 +You are not responsible for enforcing compliance by third parties to
1.198 +this License.
1.199 +
1.200 + 7. If, as a consequence of a court judgment or allegation of patent
1.201 +infringement or for any other reason (not limited to patent issues),
1.202 +conditions are imposed on you (whether by court order, agreement or
1.203 +otherwise) that contradict the conditions of this License, they do not
1.204 +excuse you from the conditions of this License. If you cannot
1.205 +distribute so as to satisfy simultaneously your obligations under this
1.206 +License and any other pertinent obligations, then as a consequence you
1.207 +may not distribute the Program at all. For example, if a patent
1.208 +license would not permit royalty-free redistribution of the Program by
1.209 +all those who receive copies directly or indirectly through you, then
1.210 +the only way you could satisfy both it and this License would be to
1.211 +refrain entirely from distribution of the Program.
1.212 +
1.213 +If any portion of this section is held invalid or unenforceable under
1.214 +any particular circumstance, the balance of the section is intended to
1.215 +apply and the section as a whole is intended to apply in other
1.216 +circumstances.
1.217 +
1.218 +It is not the purpose of this section to induce you to infringe any
1.219 +patents or other property right claims or to contest validity of any
1.220 +such claims; this section has the sole purpose of protecting the
1.221 +integrity of the free software distribution system, which is
1.222 +implemented by public license practices. Many people have made
1.223 +generous contributions to the wide range of software distributed
1.224 +through that system in reliance on consistent application of that
1.225 +system; it is up to the author/donor to decide if he or she is willing
1.226 +to distribute software through any other system and a licensee cannot
1.227 +impose that choice.
1.228 +
1.229 +This section is intended to make thoroughly clear what is believed to
1.230 +be a consequence of the rest of this License.
1.231 +
1.232 + 8. If the distribution and/or use of the Program is restricted in
1.233 +certain countries either by patents or by copyrighted interfaces, the
1.234 +original copyright holder who places the Program under this License
1.235 +may add an explicit geographical distribution limitation excluding
1.236 +those countries, so that distribution is permitted only in or among
1.237 +countries not thus excluded. In such case, this License incorporates
1.238 +the limitation as if written in the body of this License.
1.239 +
1.240 + 9. The Free Software Foundation may publish revised and/or new versions
1.241 +of the General Public License from time to time. Such new versions will
1.242 +be similar in spirit to the present version, but may differ in detail to
1.243 +address new problems or concerns.
1.244 +
1.245 +Each version is given a distinguishing version number. If the Program
1.246 +specifies a version number of this License which applies to it and "any
1.247 +later version", you have the option of following the terms and conditions
1.248 +either of that version or of any later version published by the Free
1.249 +Software Foundation. If the Program does not specify a version number of
1.250 +this License, you may choose any version ever published by the Free Software
1.251 +Foundation.
1.252 +
1.253 + 10. If you wish to incorporate parts of the Program into other free
1.254 +programs whose distribution conditions are different, write to the author
1.255 +to ask for permission. For software which is copyrighted by the Free
1.256 +Software Foundation, write to the Free Software Foundation; we sometimes
1.257 +make exceptions for this. Our decision will be guided by the two goals
1.258 +of preserving the free status of all derivatives of our free software and
1.259 +of promoting the sharing and reuse of software generally.
1.260 +
1.261 + NO WARRANTY
1.262 +
1.263 + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
1.264 +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
1.265 +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
1.266 +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
1.267 +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
1.268 +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
1.269 +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
1.270 +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
1.271 +REPAIR OR CORRECTION.
1.272 +
1.273 + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
1.274 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
1.275 +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
1.276 +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
1.277 +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
1.278 +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
1.279 +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
1.280 +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
1.281 +POSSIBILITY OF SUCH DAMAGES.
1.282 +
1.283 + END OF TERMS AND CONDITIONS
1.284 +
1.285 + How to Apply These Terms to Your New Programs
1.286 +
1.287 + If you develop a new program, and you want it to be of the greatest
1.288 +possible use to the public, the best way to achieve this is to make it
1.289 +free software which everyone can redistribute and change under these terms.
1.290 +
1.291 + To do so, attach the following notices to the program. It is safest
1.292 +to attach them to the start of each source file to most effectively
1.293 +convey the exclusion of warranty; and each file should have at least
1.294 +the "copyright" line and a pointer to where the full notice is found.
1.295 +
1.296 + <one line to give the program's name and a brief idea of what it does.>
1.297 + Copyright (C) <year> <name of author>
1.298 +
1.299 + This program is free software; you can redistribute it and/or modify
1.300 + it under the terms of the GNU General Public License as published by
1.301 + the Free Software Foundation; either version 2 of the License, or
1.302 + (at your option) any later version.
1.303 +
1.304 + This program is distributed in the hope that it will be useful,
1.305 + but WITHOUT ANY WARRANTY; without even the implied warranty of
1.306 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1.307 + GNU General Public License for more details.
1.308 +
1.309 + You should have received a copy of the GNU General Public License
1.310 + along with this program; if not, write to the Free Software
1.311 + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
1.312 +
1.313 +
1.314 +Also add information on how to contact you by electronic and paper mail.
1.315 +
1.316 +If the program is interactive, make it output a short notice like this
1.317 +when it starts in an interactive mode:
1.318 +
1.319 + Gnomovision version 69, Copyright (C) year name of author
1.320 + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
1.321 + This is free software, and you are welcome to redistribute it
1.322 + under certain conditions; type `show c' for details.
1.323 +
1.324 +The hypothetical commands `show w' and `show c' should show the appropriate
1.325 +parts of the General Public License. Of course, the commands you use may
1.326 +be called something other than `show w' and `show c'; they could even be
1.327 +mouse-clicks or menu items--whatever suits your program.
1.328 +
1.329 +You should also get your employer (if you work as a programmer) or your
1.330 +school, if any, to sign a "copyright disclaimer" for the program, if
1.331 +necessary. Here is a sample; alter the names:
1.332 +
1.333 + Yoyodyne, Inc., hereby disclaims all copyright interest in the program
1.334 + `Gnomovision' (which makes passes at compilers) written by James Hacker.
1.335 +
1.336 + <signature of Ty Coon>, 1 April 1989
1.337 + Ty Coon, President of Vice
1.338 +
1.339 +This General Public License does not permit incorporating your program into
1.340 +proprietary programs. If your program is a subroutine library, you may
1.341 +consider it more useful to permit linking proprietary applications with the
1.342 +library. If this is what you want to do, use the GNU Library General
1.343 +Public License instead of this License.
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/gmyth-stream/client/INSTALL Wed Apr 11 18:39:39 2007 +0100
2.3 @@ -0,0 +1,236 @@
2.4 +Installation Instructions
2.5 +*************************
2.6 +
2.7 +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
2.8 +Software Foundation, Inc.
2.9 +
2.10 +This file is free documentation; the Free Software Foundation gives
2.11 +unlimited permission to copy, distribute and modify it.
2.12 +
2.13 +Basic Installation
2.14 +==================
2.15 +
2.16 +These are generic installation instructions.
2.17 +
2.18 + The `configure' shell script attempts to guess correct values for
2.19 +various system-dependent variables used during compilation. It uses
2.20 +those values to create a `Makefile' in each directory of the package.
2.21 +It may also create one or more `.h' files containing system-dependent
2.22 +definitions. Finally, it creates a shell script `config.status' that
2.23 +you can run in the future to recreate the current configuration, and a
2.24 +file `config.log' containing compiler output (useful mainly for
2.25 +debugging `configure').
2.26 +
2.27 + It can also use an optional file (typically called `config.cache'
2.28 +and enabled with `--cache-file=config.cache' or simply `-C') that saves
2.29 +the results of its tests to speed up reconfiguring. (Caching is
2.30 +disabled by default to prevent problems with accidental use of stale
2.31 +cache files.)
2.32 +
2.33 + If you need to do unusual things to compile the package, please try
2.34 +to figure out how `configure' could check whether to do them, and mail
2.35 +diffs or instructions to the address given in the `README' so they can
2.36 +be considered for the next release. If you are using the cache, and at
2.37 +some point `config.cache' contains results you don't want to keep, you
2.38 +may remove or edit it.
2.39 +
2.40 + The file `configure.ac' (or `configure.in') is used to create
2.41 +`configure' by a program called `autoconf'. You only need
2.42 +`configure.ac' if you want to change it or regenerate `configure' using
2.43 +a newer version of `autoconf'.
2.44 +
2.45 +The simplest way to compile this package is:
2.46 +
2.47 + 1. `cd' to the directory containing the package's source code and type
2.48 + `./configure' to configure the package for your system. If you're
2.49 + using `csh' on an old version of System V, you might need to type
2.50 + `sh ./configure' instead to prevent `csh' from trying to execute
2.51 + `configure' itself.
2.52 +
2.53 + Running `configure' takes awhile. While running, it prints some
2.54 + messages telling which features it is checking for.
2.55 +
2.56 + 2. Type `make' to compile the package.
2.57 +
2.58 + 3. Optionally, type `make check' to run any self-tests that come with
2.59 + the package.
2.60 +
2.61 + 4. Type `make install' to install the programs and any data files and
2.62 + documentation.
2.63 +
2.64 + 5. You can remove the program binaries and object files from the
2.65 + source code directory by typing `make clean'. To also remove the
2.66 + files that `configure' created (so you can compile the package for
2.67 + a different kind of computer), type `make distclean'. There is
2.68 + also a `make maintainer-clean' target, but that is intended mainly
2.69 + for the package's developers. If you use it, you may have to get
2.70 + all sorts of other programs in order to regenerate files that came
2.71 + with the distribution.
2.72 +
2.73 +Compilers and Options
2.74 +=====================
2.75 +
2.76 +Some systems require unusual options for compilation or linking that the
2.77 +`configure' script does not know about. Run `./configure --help' for
2.78 +details on some of the pertinent environment variables.
2.79 +
2.80 + You can give `configure' initial values for configuration parameters
2.81 +by setting variables in the command line or in the environment. Here
2.82 +is an example:
2.83 +
2.84 + ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
2.85 +
2.86 + *Note Defining Variables::, for more details.
2.87 +
2.88 +Compiling For Multiple Architectures
2.89 +====================================
2.90 +
2.91 +You can compile the package for more than one kind of computer at the
2.92 +same time, by placing the object files for each architecture in their
2.93 +own directory. To do this, you must use a version of `make' that
2.94 +supports the `VPATH' variable, such as GNU `make'. `cd' to the
2.95 +directory where you want the object files and executables to go and run
2.96 +the `configure' script. `configure' automatically checks for the
2.97 +source code in the directory that `configure' is in and in `..'.
2.98 +
2.99 + If you have to use a `make' that does not support the `VPATH'
2.100 +variable, you have to compile the package for one architecture at a
2.101 +time in the source code directory. After you have installed the
2.102 +package for one architecture, use `make distclean' before reconfiguring
2.103 +for another architecture.
2.104 +
2.105 +Installation Names
2.106 +==================
2.107 +
2.108 +By default, `make install' installs the package's commands under
2.109 +`/usr/local/bin', include files under `/usr/local/include', etc. You
2.110 +can specify an installation prefix other than `/usr/local' by giving
2.111 +`configure' the option `--prefix=PREFIX'.
2.112 +
2.113 + You can specify separate installation prefixes for
2.114 +architecture-specific files and architecture-independent files. If you
2.115 +pass the option `--exec-prefix=PREFIX' to `configure', the package uses
2.116 +PREFIX as the prefix for installing programs and libraries.
2.117 +Documentation and other data files still use the regular prefix.
2.118 +
2.119 + In addition, if you use an unusual directory layout you can give
2.120 +options like `--bindir=DIR' to specify different values for particular
2.121 +kinds of files. Run `configure --help' for a list of the directories
2.122 +you can set and what kinds of files go in them.
2.123 +
2.124 + If the package supports it, you can cause programs to be installed
2.125 +with an extra prefix or suffix on their names by giving `configure' the
2.126 +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
2.127 +
2.128 +Optional Features
2.129 +=================
2.130 +
2.131 +Some packages pay attention to `--enable-FEATURE' options to
2.132 +`configure', where FEATURE indicates an optional part of the package.
2.133 +They may also pay attention to `--with-PACKAGE' options, where PACKAGE
2.134 +is something like `gnu-as' or `x' (for the X Window System). The
2.135 +`README' should mention any `--enable-' and `--with-' options that the
2.136 +package recognizes.
2.137 +
2.138 + For packages that use the X Window System, `configure' can usually
2.139 +find the X include and library files automatically, but if it doesn't,
2.140 +you can use the `configure' options `--x-includes=DIR' and
2.141 +`--x-libraries=DIR' to specify their locations.
2.142 +
2.143 +Specifying the System Type
2.144 +==========================
2.145 +
2.146 +There may be some features `configure' cannot figure out automatically,
2.147 +but needs to determine by the type of machine the package will run on.
2.148 +Usually, assuming the package is built to be run on the _same_
2.149 +architectures, `configure' can figure that out, but if it prints a
2.150 +message saying it cannot guess the machine type, give it the
2.151 +`--build=TYPE' option. TYPE can either be a short name for the system
2.152 +type, such as `sun4', or a canonical name which has the form:
2.153 +
2.154 + CPU-COMPANY-SYSTEM
2.155 +
2.156 +where SYSTEM can have one of these forms:
2.157 +
2.158 + OS KERNEL-OS
2.159 +
2.160 + See the file `config.sub' for the possible values of each field. If
2.161 +`config.sub' isn't included in this package, then this package doesn't
2.162 +need to know the machine type.
2.163 +
2.164 + If you are _building_ compiler tools for cross-compiling, you should
2.165 +use the option `--target=TYPE' to select the type of system they will
2.166 +produce code for.
2.167 +
2.168 + If you want to _use_ a cross compiler, that generates code for a
2.169 +platform different from the build platform, you should specify the
2.170 +"host" platform (i.e., that on which the generated programs will
2.171 +eventually be run) with `--host=TYPE'.
2.172 +
2.173 +Sharing Defaults
2.174 +================
2.175 +
2.176 +If you want to set default values for `configure' scripts to share, you
2.177 +can create a site shell script called `config.site' that gives default
2.178 +values for variables like `CC', `cache_file', and `prefix'.
2.179 +`configure' looks for `PREFIX/share/config.site' if it exists, then
2.180 +`PREFIX/etc/config.site' if it exists. Or, you can set the
2.181 +`CONFIG_SITE' environment variable to the location of the site script.
2.182 +A warning: not all `configure' scripts look for a site script.
2.183 +
2.184 +Defining Variables
2.185 +==================
2.186 +
2.187 +Variables not defined in a site shell script can be set in the
2.188 +environment passed to `configure'. However, some packages may run
2.189 +configure again during the build, and the customized values of these
2.190 +variables may be lost. In order to avoid this problem, you should set
2.191 +them in the `configure' command line, using `VAR=value'. For example:
2.192 +
2.193 + ./configure CC=/usr/local2/bin/gcc
2.194 +
2.195 +causes the specified `gcc' to be used as the C compiler (unless it is
2.196 +overridden in the site shell script). Here is a another example:
2.197 +
2.198 + /bin/bash ./configure CONFIG_SHELL=/bin/bash
2.199 +
2.200 +Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
2.201 +configuration-related scripts to be executed by `/bin/bash'.
2.202 +
2.203 +`configure' Invocation
2.204 +======================
2.205 +
2.206 +`configure' recognizes the following options to control how it operates.
2.207 +
2.208 +`--help'
2.209 +`-h'
2.210 + Print a summary of the options to `configure', and exit.
2.211 +
2.212 +`--version'
2.213 +`-V'
2.214 + Print the version of Autoconf used to generate the `configure'
2.215 + script, and exit.
2.216 +
2.217 +`--cache-file=FILE'
2.218 + Enable the cache: use and save the results of the tests in FILE,
2.219 + traditionally `config.cache'. FILE defaults to `/dev/null' to
2.220 + disable caching.
2.221 +
2.222 +`--config-cache'
2.223 +`-C'
2.224 + Alias for `--cache-file=config.cache'.
2.225 +
2.226 +`--quiet'
2.227 +`--silent'
2.228 +`-q'
2.229 + Do not print messages saying which checks are being made. To
2.230 + suppress all normal output, redirect it to `/dev/null' (any error
2.231 + messages will still be shown).
2.232 +
2.233 +`--srcdir=DIR'
2.234 + Look for the package's source code in directory DIR. Usually
2.235 + `configure' can determine that directory automatically.
2.236 +
2.237 +`configure' also accepts some other, not widely useful, options. Run
2.238 +`configure --help' for more details.
2.239 +
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3.2 +++ b/gmyth-stream/client/Makefile.am Wed Apr 11 18:39:39 2007 +0100
3.3 @@ -0,0 +1,8 @@
3.4 +SUBDIRS = src test
3.5 +
3.6 +pcfiles = gmyth-stream-client.pc
3.7 +pkgconfigdir = $(libdir)/pkgconfig
3.8 +pkgconfig_DATA = $(pcfiles)
3.9 +
3.10 +EXTRA_DIST = \
3.11 + ChangeLog
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4.2 +++ b/gmyth-stream/client/configure.ac Wed Apr 11 18:39:39 2007 +0100
4.3 @@ -0,0 +1,79 @@
4.4 +# -*- Autoconf -*-
4.5 +# Process this file with autoconf to produce a configure script.
4.6 +
4.7 +AC_PREREQ(2.50)
4.8 +
4.9 +AC_INIT([gmyth-stream],[0.1])
4.10 +
4.11 +AC_CONFIG_MACRO_DIR([m4])
4.12 +AC_CONFIG_HEADER(config.h)
4.13 +
4.14 +AS_VERSION(gmyth-stream, GMYTH_STREAM, 0, 1, 0, 0, GMYTH_STREAM_SVN="no", GMYTH_STREAM_SVN="yes")
4.15 +GMYTH_STREAM_MAJORMINOR=$GMYTH_STREAM_MAJOR_VERSION.$GMYTH_STREAM_MINOR_VERSION
4.16 +AC_SUBST(GMYTH_STREAM_MAJORMINOR)
4.17 +
4.18 +dnl AM_MAINTAINER_MODE provides the option to enable maintainer mode
4.19 +AM_MAINTAINER_MODE
4.20 +dnl make aclocal work in maintainer mode
4.21 +AC_SUBST(ACLOCAL_AMFLAGS, "-I m4")
4.22 +
4.23 +AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
4.24 +
4.25 +# Checks for programs.
4.26 +# check for tools
4.27 +# Make sure CFLAGS is defined to stop AC_PROC_CC adding -g
4.28 +CFLAGS="$CFLAGS -Wall"
4.29 +AC_PROG_CC
4.30 +AC_PROG_LIBTOOL
4.31 +
4.32 +# Checks for libraries.
4.33 +
4.34 +# Checks for header files.
4.35 +AC_HEADER_STDC
4.36 +
4.37 +#Test if --disable-debug given
4.38 +AC_ARG_ENABLE(debug,
4.39 + AC_HELP_STRING([--disable-debug], [enable debugging mode]))
4.40 +if test x"$enable_debug" != xno; then
4.41 + CFLAGS="$CFLAGS -g -DGMYTH_STREAM_USE_DEBUG"
4.42 +else
4.43 + CFLAGS="$CFLAGS -O2 -DG_DISABLE_CHECKS"
4.44 +fi
4.45 +
4.46 +
4.47 +# Checks required packages ####################################################
4.48 +###############################################################################
4.49 +
4.50 +## Check for pkgconfig ########################################################
4.51 +###############################################################################
4.52 +AC_CHECK_PROG(HAVE_PKGCONFIG, pkg-config, yes, no)
4.53 +if test "x$HAVE_PKGCONFIG" = "xno"; then
4.54 + AC_MSG_ERROR(you need to have pkgconfig installed !)
4.55 +fi
4.56 +
4.57 +## Check for Glib2.0 ##########################################################
4.58 +###############################################################################
4.59 +PKG_CHECK_MODULES(GLIB, glib-2.0 gobject-2.0, HAVE_GLIB=yes,HAVE_GLIB=no)
4.60 +if test "x$HAVE_GLIB" = "xno"; then
4.61 + AC_MSG_ERROR(you need glib-2.0 installed)
4.62 +fi
4.63 +AC_SUBST(GLIB_CFLAGS)
4.64 +AC_SUBST(GLIB_LIBS)
4.65 +
4.66 +AC_SUBST(CFLAGS)
4.67 +AC_SUBST(LDFLAGS)
4.68 +AC_SUBST(LIBS)
4.69 +
4.70 +AC_OUTPUT([
4.71 +Makefile
4.72 +gmyth-stream-client.pc
4.73 +src/Makefile
4.74 +test/Makefile
4.75 +])
4.76 +
4.77 +if test "x$enable_debug" != "xno"; then
4.78 + AC_MSG_NOTICE([Debug: Enabled])
4.79 +else
4.80 + AC_MSG_NOTICE([Debug: Disabled])
4.81 +fi
4.82 +
5.1 --- a/gmyth-stream/client/src/Makefile.am Wed Apr 11 18:12:09 2007 +0100
5.2 +++ b/gmyth-stream/client/src/Makefile.am Wed Apr 11 18:39:39 2007 +0100
5.3 @@ -1,8 +1,13 @@
5.4 lib_LTLIBRARIES = libgmythstreamclient.la
5.5
5.6 +libgmythstreamclient_includedir = \
5.7 + $(pkgincludedir)
5.8 +
5.9 +libgmythstreamclient_include_HEADERS = \
5.10 + gmyth-stream-client.h
5.11 +
5.12 libgmythstreamclient_la_SOURCES = \
5.13 - gmyth-stream-client.c \
5.14 - gmyth-stream-client.h
5.15 + gmyth-stream-client.c
5.16
5.17 libgmythstreamclient_la_CFLAGS = \
5.18 $(GLIB_CFLAGS)
5.19 @@ -10,5 +15,4 @@
5.20 libgmythstreamclient_la_LDFLAGS = \
5.21 $(GLIB_LIBS)
5.22
5.23 -
5.24 CLEANFILES =
6.1 --- a/gmyth-stream/client/src/gmyth-stream-client.c Wed Apr 11 18:12:09 2007 +0100
6.2 +++ b/gmyth-stream/client/src/gmyth-stream-client.c Wed Apr 11 18:39:39 2007 +0100
6.3 @@ -11,6 +11,7 @@
6.4 #include <glib/gprintf.h>
6.5 #include <string.h>
6.6
6.7 +
6.8 #include "gmyth-stream-client.h"
6.9
6.10
6.11 @@ -23,8 +24,10 @@
6.12 struct _GMythStreamClientPrivate
6.13 {
6.14 GList *streams;
6.15 + struct hostent *host;
6.16 gint sock;
6.17 gboolean connected;
6.18 + struct sockaddr_in addr;
6.19 };
6.20
6.21 typedef struct _StreamData StreamData;
6.22 @@ -33,24 +36,26 @@
6.23 {
6.24 guint id;
6.25 guint port;
6.26 + gint s;
6.27 };
6.28
6.29 -static void gmyth_stream_client_class_init (GMythStreamClientClass *klass);
6.30 -static void gmyth_stream_client_init (GMythStreamClient *object);
6.31 -static void gmyth_stream_client_dispose (GObject *object);
6.32 -static void gmyth_stream_client_finalize (GObject *object);
6.33 +static void gmyth_stream_client_class_init (GMythStreamClientClass *klass);
6.34 +static void gmyth_stream_client_init (GMythStreamClient *object);
6.35 +static void gmyth_stream_client_dispose (GObject *object);
6.36 +static void gmyth_stream_client_finalize (GObject *object);
6.37 +static StreamData* gmtyh_stream_client_get_streamdata (GMythStreamClient *self,
6.38 + guint stream_id);
6.39 +
6.40
6.41 G_DEFINE_TYPE(GMythStreamClient, gmyth_stream_client, G_TYPE_OBJECT)
6.42
6.43 static void
6.44 gmyth_stream_client_class_init (GMythStreamClientClass *klass)
6.45 -{
6.46 +{
6.47 GObjectClass *gobject_class;
6.48 -
6.49 gobject_class = (GObjectClass *) klass;
6.50
6.51 g_type_class_add_private (klass, sizeof (GMythStreamClientPrivate));
6.52 -
6.53 gobject_class->dispose = gmyth_stream_client_dispose;
6.54 gobject_class->finalize = gmyth_stream_client_finalize;
6.55 }
6.56 @@ -60,20 +65,20 @@
6.57 {
6.58 }
6.59
6.60 -static void
6.61 +static void
6.62 gmyth_stream_client_dispose (GObject *object)
6.63 {
6.64 gmyth_stream_client_disconnect (GMYTH_STREAM_CLIENT (object));
6.65 }
6.66
6.67
6.68 -static void
6.69 +static void
6.70 gmyth_stream_client_finalize (GObject *object)
6.71 {
6.72 }
6.73
6.74 -GMythStreamClient*
6.75 -gmyth_stream_client_new ()
6.76 +GMythStreamClient*
6.77 +gmyth_stream_client_new ()
6.78 {
6.79 return GMYTH_STREAM_CLIENT (g_object_new (GMYTH_TYPE_STREAM_CLIENT, NULL));
6.80 }
6.81 @@ -81,26 +86,22 @@
6.82 gboolean
6.83 gmyth_stream_client_connect (GMythStreamClient *self, const gchar *server, guint port)
6.84 {
6.85 - struct sockaddr_in addr;
6.86 - struct hostent *hp;
6.87 -
6.88 GMythStreamClientPrivate *priv = GMYTH_STREAM_CLIENT_GET_PRIVATE (self);
6.89 -
6.90 g_return_val_if_fail (priv->connected == FALSE, TRUE);
6.91
6.92 priv->sock = socket (PF_INET, SOCK_STREAM, 0);
6.93 - if (priv->sock == -1) {
6.94 + if (priv->sock == -1) {
6.95 g_debug ("Fail to create sock");
6.96 return FALSE;
6.97 }
6.98
6.99 - memset(&addr, 0, sizeof(addr));
6.100 - hp = gethostbyname(server);
6.101 - memcpy(&addr, *(hp->h_addr_list),sizeof(struct in_addr));
6.102 - addr.sin_family = AF_INET;
6.103 - addr.sin_port = htons (port);
6.104 + memset(&(priv->addr), 0, sizeof(priv->addr));
6.105 + priv->host = gethostbyname(server);
6.106 + memcpy(&(priv->addr), *(priv->host->h_addr_list), sizeof(struct in_addr));
6.107 + priv->addr.sin_family = AF_INET;
6.108 + priv->addr.sin_port = htons (port);
6.109
6.110 - if (connect (priv->sock, (struct sockaddr *) &addr, sizeof (addr)) == -1) {
6.111 + if (connect (priv->sock, (struct sockaddr *) &(priv->addr), sizeof (priv->addr)) == -1) {
6.112 g_debug ("Fail to connect with server");
6.113 shutdown (priv->sock, SHUT_RDWR);
6.114 priv->sock = -1;
6.115 @@ -115,7 +116,7 @@
6.116 gmyth_stream_client_disconnect (GMythStreamClient *self)
6.117 {
6.118 GMythStreamClientPrivate *priv = GMYTH_STREAM_CLIENT_GET_PRIVATE (self);
6.119 -
6.120 +
6.121 g_return_if_fail (priv->connected == FALSE);
6.122
6.123 GList *lst = priv->streams;
6.124 @@ -125,10 +126,10 @@
6.125 gmyth_stream_client_close_stream (self, data->id);
6.126 }
6.127
6.128 - close (priv->sock);
6.129 + close (priv->sock);
6.130 shutdown (priv->sock, SHUT_RDWR);
6.131 priv->sock = -1;
6.132 - priv->connected = FALSE;
6.133 + priv->connected = FALSE;
6.134 }
6.135
6.136 guint
6.137 @@ -144,61 +145,90 @@
6.138 guint port,
6.139 const gchar* opt)
6.140 {
6.141 - gint stream_id = 0;
6.142 gchar *cmd;
6.143 StreamData *data = NULL;
6.144 GMythStreamClientPrivate *priv = GMYTH_STREAM_CLIENT_GET_PRIVATE (self);
6.145 -
6.146 +
6.147 g_return_val_if_fail (priv->connected == TRUE, FALSE);
6.148 -
6.149 - if (send (priv->sock, "SETUP", 5, MSG_CONFIRM) == -1)
6.150 - return -1;
6.151 + g_return_val_if_fail (file_name != NULL, FALSE);
6.152
6.153 - cmd = g_strdup_printf ("%s %s %s %d %f %s %d %d %d %d %s",
6.154 - file_name, mux, vcodec, vbitrate, fps,
6.155 - acodec, abitrate, width, height, port, opt);
6.156 -
6.157 -
6.158 + cmd = g_strdup_printf ("SETUP %s %s %s %d %f %s %d %d %d %d %s\n",
6.159 + file_name,
6.160 + (mux == NULL? "X" : mux),
6.161 + (vcodec == NULL ? "X" : vcodec),
6.162 + vbitrate,
6.163 + fps,
6.164 + (acodec == NULL ? "X" : acodec),
6.165 + abitrate,
6.166 + width, height, port,
6.167 + (opt == NULL ? "X" : opt));
6.168 +
6.169 if (send (priv->sock, cmd, strlen (cmd), MSG_CONFIRM) == -1) {
6.170 - g_free (cmd);
6.171 - return -1;
6.172 + g_free (cmd);
6.173 + return -1;
6.174 }
6.175 g_free (cmd);
6.176
6.177 -
6.178 +
6.179 data = g_new0 (StreamData, 1);
6.180 - data->id = stream_id;
6.181 - data->port = port;
6.182 + data->port = port;
6.183 + data->id = data->s = socket (PF_INET, SOCK_STREAM, 0);
6.184 +
6.185
6.186 priv->streams = g_list_append (priv->streams, data);
6.187 - return stream_id;
6.188 + return data->id;
6.189 +}
6.190 +
6.191 +static gchar**
6.192 +_parse_return (int fd)
6.193 +{
6.194 +
6.195 }
6.196
6.197 gboolean
6.198 gmyth_stream_client_play_stream (GMythStreamClient *self,
6.199 - guint stream_id)
6.200 + guint stream_id)
6.201 {
6.202 GMythStreamClientPrivate *priv = GMYTH_STREAM_CLIENT_GET_PRIVATE (self);
6.203 -
6.204 + StreamData *data;
6.205 + struct sockaddr_in addr;
6.206 + gchar **retval;
6.207 +
6.208 g_return_val_if_fail (priv->connected == TRUE, FALSE);
6.209 -
6.210 - if (send (priv->sock, "PLAY", 4, MSG_MORE) == -1) {
6.211 - return FALSE;
6.212 - }
6.213 +
6.214 + data = gmtyh_stream_client_get_streamdata (self, stream_id);
6.215 + g_return_val_if_fail (data != NULL, FALSE);
6.216 +
6.217 + if (send (priv->sock, "PLAY\n", 5, MSG_MORE) == -1) {
6.218 + return FALSE;
6.219 + }
6.220 +
6.221 + retval = _read_message (priv->sock);
6.222 +
6.223 + g_usleep (10 * G_USEC_PER_SEC);
6.224 +
6.225 + memset(&addr, 0, sizeof(addr));
6.226 + memcpy(&addr, *(priv->host->h_addr_list), sizeof(struct in_addr));
6.227 + addr.sin_family = AF_INET;
6.228 + addr.sin_port = htons (data->port);
6.229 + g_debug ("request connection on port %d", data->port);
6.230 + if (connect(data->s,(struct sockaddr*) &addr, sizeof(addr)) == -1)
6.231 + g_warning ("Fail to connect to server");
6.232 +
6.233 return TRUE;
6.234 -}
6.235 +}
6.236
6.237 void
6.238 gmyth_stream_client_pause_stream (GMythStreamClient *self,
6.239 - guint stream_id)
6.240 + guint stream_id)
6.241 {
6.242 GMythStreamClientPrivate *priv = GMYTH_STREAM_CLIENT_GET_PRIVATE (self);
6.243 -
6.244 +
6.245 g_return_if_fail (priv->connected == TRUE);
6.246 -
6.247 - if (send (priv->sock, "PAUSE", 5, MSG_MORE) == -1) {
6.248 - return;
6.249 - }
6.250 +
6.251 + if (send (priv->sock, "PAUSE\n", 6, MSG_MORE) == -1) {
6.252 + return;
6.253 + }
6.254 }
6.255
6.256 void
6.257 @@ -206,13 +236,27 @@
6.258 guint stream_id)
6.259 {
6.260 GMythStreamClientPrivate *priv = GMYTH_STREAM_CLIENT_GET_PRIVATE (self);
6.261 -
6.262 +
6.263 g_return_if_fail (priv->connected == TRUE);
6.264 -
6.265 - if (send (priv->sock, "STOP", 4, MSG_MORE) == -1) {
6.266 - return;
6.267 - }
6.268 -
6.269 - //TODO: remove from streams list
6.270 -
6.271 + if (send (priv->sock, "STOP\n", 5, MSG_MORE) == -1) {
6.272 + return;
6.273 + }
6.274 + //TODO: remove from streams list
6.275 }
6.276 +
6.277 +static StreamData*
6.278 +gmtyh_stream_client_get_streamdata (GMythStreamClient *self,
6.279 + guint stream_id)
6.280 +{
6.281 + GMythStreamClientPrivate *priv = GMYTH_STREAM_CLIENT_GET_PRIVATE (self);
6.282 + GList *lst;
6.283 +
6.284 + lst = priv->streams;
6.285 + for (; lst != NULL; lst = lst->next) {
6.286 + StreamData *data = (StreamData *) lst->data;
6.287 + if (data->id == stream_id) {
6.288 + return data;
6.289 + }
6.290 + }
6.291 + return NULL;
6.292 +}