INSTALL: Fix instructions for compiling from git. The command line lacked the configure command.
Merge branch 'refs/heads/t/lopsub' The bulk of the changes in this release is the conversion of all command line parsers from gengetopt to lopsub. The series also contains a few cleanups that have become possible due to the switch from gengetopt to lopsub. The patches towards the end of the series rename para_fade to para_mixer. Naturally, the merge conflicted rather heavily against the other topic branches that have been merged since the lopsub branch was started. Conflicting files: Makefile.real afh.c afh_recv.c configure.ac osx_write.c write.c The resolutions for these conflicts were recorded with git rerere and have been tested for quite some time. Cooking for three weeks. * refs/heads/t/lopsub: (74 commits) audioc: Avoid double free in audioc_i9e_line_handler(). audiod: Avoid uninitialized memory access. Simplify mixer setup. mixer: Implement non-linear time scale for fading. mixer: Allow arbitrary relative time for sleep subcommand. Convert para_fade to subcommands, rename it to para_mixer. build: Create .dep files only during compilation. build: Simplify definition of $m4_lls_deps. build: Rename command list variables. build: Combine $(CFLAGS) and $(STRICT_CFLAGS). build: Let .d files depend only on .c. build: Don't create phony targets for dependencies. build: Remove duplicate dependency. build: Remove cmdline_dir and friends. build: Remove some unused variables from Makefile.real. build: Remove m4/gengetopt. Remove gengetopt and help2man checks from configure.ac. Remove man_util.bash. Remove ggo.c and ggo.h. manual: Do not mention gengetopt and help2man any more. ...
Convert audiod commands to lopsub. The four command lists (server, afs, audiod, play) and all executables will be converted to the long option parser library (lopsub). This first patch converts the audiod commands (on, off, cycle...) and adds the necessary infrastructure to the build system. The option parser for para_audiod is still generated by gengetopt and will be converted in a subsequent patch. The build system is updated to include an autoconf test which checks for the lopsub library and the lopsubgen executable. If the check fails, it prints instructions on how to download the lopsub package. Moreover, a section on lopsub is added to the INSTALL file and the library is listed as a required tool in the manual. The options and help texts of all audiod commands are moved from audiod.cmd to the new file audiod_cmd.suite.m4. Until all command lists are converted, man_util.bash needs an ugly hack to deal with the two kinds of files. The help texts have been reworked slightly, but no syntactical changes were performed. However, one side effect of the change is that options to audiod commands now accept short and long options, and that short options may be combined in the usual way. The error subsystem of paraslash is extended to treat lopsub errors analogous to errors from the osl libary: we reserve a new bit for error codes returned from lopsub library functions and a lls() wrapper function that must be used for all lopsub functions which return a lopsub error code on failure. The E_INVALID_AUDIOD_CMD error code can be removed since invalid commands are now detected by the lopsub library, which returns its own error code in this case. As a result of the conversion, struct audiod_command can be removed. Command handlers now take a pointer to a lopsub parse result instead of the (argc, argv) pair. The patch also changes the completers for audiod commands in audioc.c. to use the information in the generated audioc_cmd.lsg.h header file instead of duplicating this information. With the patch applied, para_audiod and para_audioc need to be linked with -llopsub. We still need to include ggo.h from audiod_command.c until receivers, filters and writers have been converted as well.
build: Do not strip installed executables by default. The "install" target currently strips all executables while installing them, which is not recommended according to GNU conventions. Instead, there should exist the "install-strip" target for this purpose. Moreover, the current install target assumes the GNU variant of the install utility because we call install with --strip-program, an option which is not available on *BSD. This patch addresses both issues. It removes the autoconf check and lets the user directly define the path to the install executable by setting INSTALL, INSTALL_PROGRAM, INSTALL_DATA, as recommended by the GNU project. These variables are used in the commands to be executed when the install target is made. They have reasonable and portable defaults, so not setting them at all should be fine on all supported platforms, addressing the issue with --strip-program. The new phony target install-strip runs install -s but does not try to be smart about how to tell the install implementation which strip program to use. The cross compiling example can be simplified to reflect the fact that CROSS_COMPILE is no longer used in the Makefile.
doc: Remove systemlinux links from documentation. The systemlinux.org server is still up, but the paraslash web page just redirects to people.tuebingen.mpg.de, so only mention the latter in the documentation.
build: Reduce redundancy in configure.ac, convert osl detection. We've had a fair number of bugs in configure.ac due to the fact that most parts of it were created by copy+paste from an existing part. This commit is an attempt to reduce this redundancy by factoring out the reappearing parts to common macros. This will also reduce the number of lines of configure.ac considerably, although this first patch naturally adds more lines than it removes. This commit introduces four new macros in configure.ac: * AC_ARG_WITH: handles --with-xxx-headers and --with-xxx-libs options for configure. The generated options are identical to the old ones, so there are no compatibility issues. * LIB_SUBST_FLAGS: creates preprocessor defines and make variables * STASH_FLAGS: saves copies of the CPPFLAGS, LDFLAGS and LIBS variables * UNSTASH_FLAGS restores stashed values Only libosl detection is converted to use the new macros. Subsequent patches will convert other libraries.
Update web URLs to tuebingen.mpg.de. systemlinux.org has been down for a while. Meanwhile the paraslash web pages have been set up at a new location hosted by the MPI campus of Tübingen. This commit lists the alternative URLs in README, INSTALL and manual.
INSTALL: Add an example for cross-compiling. These are the commands I use to compile paraslash on the raspberry pi.
The new comprehensive paraslash user manual.
Mention wma support in FEATURES,README, etc.
Documentation updates for 0.4.
Merge branch 'master' into next
INSTALL: Fix the help text on how to create the RSA key pair. Some day, I will write a user-friendly script that generates the keys...
Stronger crypto for client authentication. This patch changes the way clients are authenticated: - The size of the challenge has been increased from sizeof(unsigned long) to 64. Openssl's Rand_bytes() is used to get the random buffer for the challenge and the rc4 keys. - The client responds with the sha1 hash of the challenge rather than sending back the decrypted challenge in plain text. - The rc4 keys are now 2 x 32 bytes long. They are rsa encrypted and sent together with the challenge. - Authentication requests for invalid users are not immediatedly denied as this would reveal the fact that the user does not exist. - rsa keys are required to be at least 2048 bits long.
INSTALL: Minor improvements.
Use symbolic names for loglevels and clean up the ggo mess. We now use m4 to generate the ggo files, which allows to get rid of a lot of duplicated command line options and improves the readability of the man pages.
Replace the ortp sender/receiver by the generic udp sender/receiver. The ortp code was broken for quite some time. The new code is smaller and we drop the dependency on libortp.
INSTALL: Add comment that /var/paraslash should be writable. Thanks to Johannes Wörner for pointing this out.
INSTALL: Replace "para" by "para_client". The para alias is only introduced in README.afs. Reported by Johannes Wörner.
INSTALL: Use $LOGNAME instead of hardcoding the user name.