Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Commits on Jul 7, 2014
  1. @capflam

    Massive autotools refactoring & cleanup

    capflam authored
    Now, all makefile are generated by automake. This way, many things are more
    configurable and maintainable.
    
    Main (visible) changes:
    
     * Now, you can configure and compile Yaws outside the source directory. It is
       also possible to generate an archive for distribution, using the 'dist' target
       (from now, 'distcheck' target should always pass).
    
     * We track .erl dependencies using '-M*' flags of ERLC.
    
     * generated header 'yaws_configure.hrl' disappears. HAVE_SENDFILE,
       HAVE_ERLANG_SENDFILE and HAVE_CRYPTO_HASH macros are defined in ERLC flags.
    
     * yaws_generated:localinstall/0 function disappears (see comment about local
       install).
    
     * To create a windows installer, we just need to run the 'mkinstaller'
       target. Read win32/README.developer for details.
    
     * We use standard Erlang installation path for Yaws, relative to the erlang
       library directory (/usr/lib/erlang/lib). Now, '$(libdir)/yaws' is a link. We
       do the same for yapp application.
    
     * "local install" was removed. Now, to do a "developer install", we just need
       to set a prefix during the project configuration using --prefix option. So,
       you need to install yaws to test it.
    
     * DESTDIR variable is still supported.
    
     * scripts/make-release was rewritten to use 'dist' and 'mkinstaller' targets.
    
     * Installation of Yaws applications has slightly changed. Now they are
       installed in their own directory, in '$(localstatedir)/yaws'. So, chat
       application will be installed in '$(localstatedir)/yaws/chat', with 'www' and
       'ebin' subdirs.
    
    Main targets (others than all/install/clean....):
    
      * all           : compile Yaws
      * debug         : compile Yaws with debug flags
      * clean         : remove files produced by all or debug target
      * install       : do a proper install of Yaws
      * doc or docs   : build the documentation
      * check or test : launch tests
      * cleantest     : remove files produced by check target
      * dialyzer      : run dialyzer on Yaws
      * mkinstaller   : build an installer for windows
      * cleaninstaller: remove files produced by mkinstaller target
      * apps          : compile Yaws applications (chat,mail,wiki,yapp)
      * cleanapps     : remove files produced by apps target
      * installapps   : install Yaws applications
      * fullinstall   : install + installapps
      * fullclean     : clean + cleantest + cleanapps + cleaninstaller
    
      To install an application, run: (cd application/{APP} && make install)
    
    Of course, many things can be customized during configuration and Rebar still
    works as expected. To do an install with (almost) the same tree than with
    previous of Yaws, do:
    
      $> ./configure yawsdir=${prefix}/lib/yaws yappdir=${prefix}/lib/yapp \
            --sysconfdir=/etc --localstatedir=/var
      $> make install
    
    Here is the default installation tree on my debian:
    
       usr
        ├── lib
        │   └── erlang
        │       └── lib
        │           ├── yapp-0.4.2
        │           │   ├── doc/
        │           │   ├── ebin/
        │           │   ├── examples/
        │           │   └── priv/docroot/
        │           └── yaws-1.98
        │               ├── ebin/
        │               ├── include/
        │               └── priv/
        │               ├── examples/
        │
        ├── local/bin/yaws
        │
        ├── local/etc/init.d/yaws
        ├── local/etc/yaws/
        ├── local/etc/mail/yaws-webmail.conf
        │
        ├── local/lib/pkgconfig/yaws.pc
        ├── local/lib/yapp -> /usr/lib/erlang/lib/yapp-0.4.2
        ├── local/lib/yaws -> /usr/lib/erlang/lib/yaws-1.98
        │
        ├── local/share/doc/yaws/yaws.pdf
        ├── local/share/man/{man1,man5}/
        │
        ├── local/var/log/yaws
        ├── local/var/run/yaws
        └── local/var/yaws
            ├── chat/{ebin,www}
            ├── mail/{ebin,www}
            ├── wiki/{ebin,www}
            └── www
Commits on Sep 19, 2013
  1. @capflam

    Add the way to configure the version of sendfile method to use

    capflam authored
    Now, at compile time, we only check if sendfile syscall and file:sendfile/5
    are supported. Then, dynamically, we can configure which version to use.
    This can be done using the directive large_file_sendfile. Supported values
    are:
    
     * erlang: if supported, use file:sendfile/5
     * yaws: if supported, use the Yaws sendfile linked-in driver
     * disable: do not use any sendfile method, but gen_tcp:send/2
    
    If an unsupported method is configured, we fall back on gen_tcp:send/2.
    
    file:sendfile/5 implementation is buggy (in R15 & R16). When async-threads
    are enabled, in efile driver, the tcp socket is set in blocking mode and the
    sendfile syscall is executed on an async-thread. So an unresponsive client
    could block it for a very long time and therefore block the async-thread.
    In this way, all async-threads could be easily blocked.
    So, by default, the use of sendfile is disable.
Commits on Apr 1, 2012
  1. @tuncer @vinoski

    Use file:sendfile/5 if available

    tuncer authored vinoski committed
    Due to a bug in file:sendfile/5 in R15B, the yaws configure script enables
    the use of file:sendfile/5 only for versions R15B01 or greater.
Commits on Oct 31, 2011
  1. @vinoski

    whitespace cleanup

    vinoski authored
    Remove all trailing whitespace from all text files. Some bot sent
    Klacke and me a pull request saying it had done this for us, but I
    reviewed the diffs and it was affecting lines that shouldn't have been
    affected, so perl and I did it ourselves instead.
Commits on Sep 25, 2010
  1. 1.89 rel work

    authored
Commits on Dec 15, 2009
  1. @vinoski

    do not pass the --id option if the default id is used

    vinoski authored
    The default id in the code is represented as the string "default". If
    the --id option passes default to set the id, it becomes the atom
    default which of course differs from the string "default". By not
    using --id to specify the default id, we get the value "default" as
    the default.
    
    Make sure ids passed in via the --id option that yaws_sup.erl sees as
    atoms are converted to lists. This matches what's done for other
    options involving ids such as --check and --stop.
    
    Other changes in this commit make sure that the $HOME/.yaws/yaws/ID
    path is used consistently across the code and documentation, and also
    a couple minor whitespace/indentation cleanups.
Commits on Jun 1, 2009
Commits on May 28, 2009
  1. prepare for 1.82

    authored
Commits on May 4, 2009
  1. comment in code

    authored
Commits on Apr 1, 2009
  1. @vinoski
Commits on Feb 22, 2009
  1. @ndim

    win32: Detect absence of installbuilder and abort

    ndim authored Claes Wikstrom committed
  2. @ndim

    win32: make cross-compilation easier

    ndim authored Claes Wikstrom committed
    The exact prefix for the MinGW32 cross compiler varies
    from system to system, so we make it configurable.
Commits on Feb 12, 2009
  1. prep for 1.80

    authored
    git-svn-id: https://erlyaws.svn.sourceforge.net/svnroot/erlyaws/trunk/yaws@1388 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
Commits on Feb 11, 2009
  1. win32 work

    authored
    git-svn-id: https://erlyaws.svn.sourceforge.net/svnroot/erlyaws/trunk/yaws@1383 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
Something went wrong with that request. Please try again.