~clint-fewbar/ubuntu/precise/rabbitmq-server/fixed-upstream-tag

« back to all changes in this revision

Viewing changes to generate_deps

  • Committer: Elliot Murphy
  • Date: 2010-11-30 15:12:51 UTC
  • mfrom: (0.2.9 upstream)
  • Revision ID: elliot@elliotmurphy.com-20101130151251-ziiiaf3kbomv3yse
Tags: 2.2.0-0ubuntu1
* New upstream release, fixes FTBFS for 2.1.1-1ubuntu1
  - fix issue that causes cross-cluster communication to
    deadlock after sustained cluster activity
  - fix queue memory leak when using the management plugin
    or other consumers of queue statistics
  - brokers started with rabbitmq_multi.bat are now restartable
  - clustering reset no longer destroys installed plugins
  - fix race condition between queue declaration and connection
    termination that causes spurious noproc errors to appear
    in the log
  - fix memory leak when long-running channels consume and
    cancel on many queues
  - queue.declare and exchange.declare raise precondition_failed
    rather than not_allowed when attempting to redeclare a queue
    or exchange with parameters different than those currently
    known to the broker
  - automatic, lossless upgrade to new versions of RabbitMQ
    (when not clustered)
  - support per-queue message TTL. See:
    http://www.rabbitmq.com/extensions.html#queue-ttl
  - the volume of pending acks is now bounded by disk space rather
    than by memory
  - store passwords as hashes
  - allow server properties to be configured in the RabbitMQ
    config file
  - SSL connections are listed as such by rabbitmqctl
  - simplify permission configuration by removing the client
    permission scope
  - improve performance of message routing
  - removed support for basic.recover with requeue=false
  - remove build-time dependency on OTP source to allow users to
    build without the OTP source present
  - eliminate all valid dialyzer errors

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
%% -*- erlang -*-
3
3
-mode(compile).
4
4
 
5
 
main([IncludeDir, ErlDir, EbinDir, TargetFile]) ->
6
 
    ErlDirContents = filelib:wildcard("*.erl", ErlDir),
7
 
    ErlFiles = [filename:join(ErlDir, FileName) || FileName <- ErlDirContents],
 
5
%% We expect the list of Erlang source and header files to arrive on
 
6
%% stdin, with the entries colon-separated.
 
7
main([TargetFile, EbinDir]) ->
 
8
    ErlsAndHrls = [ string:strip(S,left) ||
 
9
                      S <- string:tokens(io:get_line(""), ":\n")],
 
10
    ErlFiles = [F || F <- ErlsAndHrls, lists:suffix(".erl", F)],
8
11
    Modules = sets:from_list(
9
12
                [list_to_atom(filename:basename(FileName, ".erl")) ||
10
 
                    FileName <- ErlDirContents]),
11
 
    Headers = sets:from_list(
12
 
                [filename:join(IncludeDir, FileName) ||
13
 
                    FileName <- filelib:wildcard("*.hrl", IncludeDir)]),
 
13
                    FileName <- ErlFiles]),
 
14
    HrlFiles = [F || F <- ErlsAndHrls, lists:suffix(".hrl", F)],
 
15
    IncludeDirs = lists:usort([filename:dirname(Path) || Path <- HrlFiles]),
 
16
    Headers = sets:from_list(HrlFiles),
14
17
    Deps = lists:foldl(
15
18
             fun (Path, Deps1) ->
16
 
                     dict:store(Path, detect_deps(IncludeDir, EbinDir,
 
19
                     dict:store(Path, detect_deps(IncludeDirs, EbinDir,
17
20
                                                  Modules, Headers, Path),
18
21
                                Deps1)
19
22
             end, dict:new(), ErlFiles),
33
36
    ok = file:sync(Hdl),
34
37
    ok = file:close(Hdl).
35
38
 
36
 
detect_deps(IncludeDir, EbinDir, Modules, Headers, Path) ->
37
 
    {ok, Forms} = epp:parse_file(Path, [IncludeDir], [{use_specs, true}]),
 
39
detect_deps(IncludeDirs, EbinDir, Modules, Headers, Path) ->
 
40
    {ok, Forms} = epp:parse_file(Path, IncludeDirs, [{use_specs, true}]),
38
41
    lists:foldl(
39
42
      fun ({attribute, _LineNumber, Attribute, Behaviour}, Deps)
40
43
          when Attribute =:= behaviour orelse Attribute =:= behavior ->