From 1643470a8772069d9984e217f6e2fd9b1c84fb4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Tue, 12 May 2015 15:07:05 +0300 Subject: Autopatch by default Also fix a number of issues with packages from the index. Some packages were temporarily removed and will be added back once they build correctly. --- core/deps.mk | 84 ++++++++++++++++++++++++++++++++++++++++++++++----------- packages.v1.tsv | 60 ++++++++++++++++------------------------- packages.v1.txt | 60 ++++++++++++++++------------------------- packages.v2.tsv | 62 +++++++++++++++++------------------------- test/Makefile | 36 ++++++++++++++++++++++--- 5 files changed, 172 insertions(+), 130 deletions(-) diff --git a/core/deps.mk b/core/deps.mk index 504eea5..3cc2558 100644 --- a/core/deps.mk +++ b/core/deps.mk @@ -55,11 +55,55 @@ distclean:: distclean-deps distclean-pkg # Deps related targets. -define dep_autopatch.erl +# @todo rename GNUmakefile and makefile into Makefile first, if they exist +# While Makefile file could be GNUmakefile or makefile, +# in practice only Makefile is needed so far. +define dep_autopatch + if [ -f $(DEPS_DIR)/$(1)/Makefile ]; then \ + if [ 0 != `grep -c rebar $(DEPS_DIR)/$(1)/Makefile` ]; then \ + $(call dep_autopatch2,$(1)); \ + else \ + $(call dep_autopatch_erlang_mk,$(1)); \ + fi \ + else \ + $(call dep_autopatch2,$(1)); \ + fi +endef + +define dep_autopatch2 + if [ ! -f $(DEPS_DIR)/$(1)/rebar.config ]; then \ + $(call dep_autopatch_gen,$(1)); \ + else \ + $(call dep_autopatch_rebar,$(1)); \ + fi +endef + +# Overwrite erlang.mk with the current file by default. +ifeq ($(NO_AUTOPATCH_ERLANG_MK),) +define dep_autopatch_erlang_mk + rm -f $(DEPS_DIR)/$(1)/erlang.mk; \ + cd $(DEPS_DIR)/$(1)/ && ln -s ../../erlang.mk +endef +else +define dep_autopatch_erlang_mk + echo -n +endef +endif + +define dep_autopatch_gen + printf "%s\n" \ + "ERLC_OPTS = +debug_info" \ + "include ../../erlang.mk" > $(DEPS_DIR)/$(1)/Makefile +endef + +define dep_autopatch_rebar + $(call erlang,$(call dep_autopatch_rebar.erl,$(1))) +endef + +define dep_autopatch_rebar.erl DepDir = "$(DEPS_DIR)/$(1)/", fun() -> - {ok, Conf} = case file:consult(DepDir ++ "rebar.config") of - {error, enoent} -> {ok, []}; Res -> Res end, + {ok, Conf} = file:consult(DepDir ++ "rebar.config"), File = case lists:keyfind(deps, 1, Conf) of false -> []; {_, Deps} -> [begin {Method, Repo, Commit} = case Repos of {git, R} -> {git, R, master}; @@ -68,14 +112,14 @@ define dep_autopatch.erl {M, R, C} -> {M, R, C} end, io_lib:format("DEPS += ~s\ndep_~s = ~s ~s ~s~n", [Name, Name, Method, Repo, Commit]) - end || {Name, _, Repos} <- Deps] + end || {Name, _, Repos} <- Deps, {Name, _, Repos, [raw]} <- Deps] end, First = case lists:keyfind(erl_first_files, 1, Conf) of false -> []; {_, Files} -> Names = [[" ", begin "lre." ++ R = lists:reverse(F), lists:reverse(R) end] || "src/" ++ F <- Files], io_lib:format("COMPILE_FIRST +=~s\n", [Names]) end, - ok = file:write_file("$(DEPS_DIR)/$(1)/Makefile", ["ERLC_OPTS = +debug_info\n\n", File, First, "\ninclude erlang.mk"]) + ok = file:write_file("$(DEPS_DIR)/$(1)/Makefile", ["ERLC_OPTS = +debug_info\n\n", File, First, "\ninclude ../../erlang.mk"]) end(), AppSrcOut = "$(DEPS_DIR)/$(1)/src/$(1).app.src", AppSrcIn = case filelib:is_regular(AppSrcOut) of false -> "$(DEPS_DIR)/$(1)/ebin/$(1).app"; true -> AppSrcOut end, @@ -89,12 +133,6 @@ define dep_autopatch.erl halt(). endef -ifeq ($(V),0) -define dep_autopatch_verbose - @echo " PATCH " $(1); -endef -endif - define dep_fetch if [ "$$$$VS" = "git" ]; then \ git clone -q -n -- $$$$REPO $(DEPS_DIR)/$(1); \ @@ -122,16 +160,32 @@ ifeq (,$(dep_$(1))) REPO=$$$$(echo $$$$DEPPKG | cut -d " " -f2); \ COMMIT=$$$$(echo $$$$DEPPKG | cut -d " " -f3); \ $(call dep_fetch,$(1)) +else +ifeq (1,$(words $(dep_$(1)))) + $(dep_verbose) VS=git; \ + REPO=$(dep_$(1)); \ + COMMIT=master; \ + $(call dep_fetch,$(1)) +else +ifeq (2,$(words $(dep_$(1)))) + $(dep_verbose) VS=git; \ + REPO=$(word 1,$(dep_$(1))); \ + COMMIT=$(word 2,$(dep_$(1))); \ + $(call dep_fetch,$(1)) else $(dep_verbose) VS=$(word 1,$(dep_$(1))); \ REPO=$(word 2,$(dep_$(1))); \ COMMIT=$(word 3,$(dep_$(1))); \ $(call dep_fetch,$(1)) endif -ifneq ($(filter $(1),$(AUTOPATCH)),) - $(call dep_autopatch_verbose,$(1)) \ - $(call erlang,$(call dep_autopatch.erl,$(1))); \ - cd $(DEPS_DIR)/$(1)/ && ln -s ../../erlang.mk +endif +endif + -@if [ -f $(DEPS_DIR)/$(1)/configure ]; then \ + echo " CONF " $(1); \ + cd $(DEPS_DIR)/$(1) && ./configure; \ + fi +ifeq ($(filter $(1),$(NO_AUTOPATCH)),) + @$(call dep_autopatch,$(1)) endif endef diff --git a/packages.v1.tsv b/packages.v1.tsv index b61a607..a57ef07 100644 --- a/packages.v1.tsv +++ b/packages.v1.tsv @@ -1,67 +1,53 @@ -apns4erl https://github.com/inaka/apns4erl.git http://inaka.github.com/apns4erl Apple Push Notification Server for Erlang -bullet https://github.com/extend/bullet http://ninenines.eu Simple, reliable, efficient streaming for Cowboy. +apns4erl https://github.com/inaka/apns4erl http://inaka.github.com/apns4erl Apple Push Notification Server for Erlang cake https://github.com/darach/cake-erl https://github.com/darach/cake-erl Really simple terminal colorization -classifier https://github.com/inaka/classifier.git https://github.com/inaka/classifier An Erlang Bayesian Filter and Text Classifier +classifier https://github.com/inaka/classifier https://github.com/inaka/classifier An Erlang Bayesian Filter and Text Classifier cowboy https://github.com/ninenines/cowboy http://ninenines.eu Small, fast and modular HTTP server. cowlib https://github.com/ninenines/cowlib http://ninenines.eu Support library for manipulating Web protocols. -czmq https://github.com/gar1t/erlang-czmq.git https://github.com/gar1t/erlang-czmq External port bindings for CZMQ. -debbie https://github.com/crownedgrouse/debbie.git https://github.com/crownedgrouse/debbie .DEB Built In Erlang -e2 https://github.com/gar1t/e2.git http://e2project.org Library to simply writing correct OTP applications. -ebitly https://github.com/inaka/ebitly.git http://inaka.github.com/ebitly Bit.ly API wrapper for Erlang -edgar https://github.com/crownedgrouse/edgar.git https://github.com/crownedgrouse/edgar Erlang Does GNU AR -edis https://github.com/inaka/edis.git http://inaka.github.com/edis/ An Erlang implementation of Redis KV Store -eganglia https://github.com/inaka/eganglia.git https://github.com/inaka/eganglia.git Erlang library to interact with Ganglia +debbie https://github.com/crownedgrouse/debbie https://github.com/crownedgrouse/debbie .DEB Built In Erlang +e2 https://github.com/gar1t/e2 http://e2project.org Library to simply writing correct OTP applications. +edgar https://github.com/crownedgrouse/edgar https://github.com/crownedgrouse/edgar Erlang Does GNU AR +eganglia https://github.com/inaka/eganglia https://github.com/inaka/eganglia Erlang library to interact with Ganglia ehsa https://bitbucket.org/a12n/ehsa https://bitbucket.org/a12n/ehsa Erlang HTTP server basic and digest authentication modules -elvis https://github.com/inaka/elvis.git https://github.com/inaka/elvis.git Erlang Style Reviewer -emysql https://github.com/Eonblast/Emysql.git https://github.com/Eonblast/Emysql Stable, pure Erlang MySQL driver. +elvis https://github.com/inaka/elvis https://github.com/inaka/elvis Erlang Style Reviewer +emysql https://github.com/Eonblast/Emysql https://github.com/Eonblast/Emysql Stable, pure Erlang MySQL driver. eper https://github.com/massemanet/eper https://github.com/massemanet/eper Erlang performance and debugging tools. epgsql https://github.com/epgsql/epgsql https://github.com/epgsql/epgsql Erlang PostgreSQL client library. eredis https://github.com/wooga/eredis https://github.com/wooga/eredis Non-blocking Redis client with focus on performance and robustness -erldb https://github.com/erldb/erldb.git http://erldb.org ORM (Object-relational mapping) application implemented in Erlang -erlexec https://github.com/saleyn/erlexec http://saleyn.github.com/erlexec Execute and control OS processes from Erlang/OTP. erlydtl https://github.com/erlydtl/erlydtl https://github.com/erlydtl/erlydtl Django Template Language for Erlang. erwa https://github.com/bwegh/erwa https://github.com/bwegh/erwa A WAMP router and client written in Erlang. exs1024 https://github.com/jj1bdx/exs1024 https://github.com/jj1bdx/exs1024 Xorshift1024star pseudo random number generator for Erlang. exs64 https://github.com/jj1bdx/exs64 https://github.com/jj1bdx/exs64 Xorshift64star pseudo random number generator for Erlang. exsplus128 https://github.com/jj1bdx/exsplus128 https://github.com/jj1bdx/exsplus128 Xorshift128plus pseudo random number generator for Erlang. feeder https://github.com/michaelnisi/feeder https://github.com/michaelnisi/feeder Stream parse RSS and Atom formatted XML feeds. -geas https://github.com/crownedgrouse/geas.git https://github.com/crownedgrouse/geas Guess Erlang Application Scattering -getopt https://github.com/jcomellas/getopt.git https://github.com/jcomellas/getopt Module to parse command line arguments using the GNU getopt syntax -gproc https://github.com/uwiger/gproc.git https://github.com/uwiger/gproc Extended process registry for Erlang -gun https://github.com/extend/gun http//ninenines.eu Asynchronous SPDY, HTTP and Websocket client written in Erlang. +geas https://github.com/crownedgrouse/geas https://github.com/crownedgrouse/geas Guess Erlang Application Scattering +getopt https://github.com/jcomellas/getopt https://github.com/jcomellas/getopt Module to parse command line arguments using the GNU getopt syntax +gproc https://github.com/uwiger/gproc https://github.com/uwiger/gproc Extended process registry for Erlang +gun https://github.com/ninenines/gun http//ninenines.eu Asynchronous SPDY, HTTP and Websocket client written in Erlang. hanoidb https://github.com/krestenkrab/hanoidb https://github.com/krestenkrab/hanoidb Erlang LSM BTree Storage ibrowse https://github.com/cmullaparthi/ibrowse https://github.com/cmullaparthi/ibrowse Erlang HTTP client -itweet https://github.com/inaka/itweet.git http://inaka.github.com/itweet/ Twitter Stream API on ibrowse +itweet https://github.com/inaka/itweet http://inaka.github.com/itweet/ Twitter Stream API on ibrowse jiffy https://github.com/davisp/jiffy https://github.com/davisp/jiffy JSON NIFs for Erlang. jiffy_v https://github.com/shizzard/jiffy-v https://github.com/shizzard/jiffy-v JSON validation utility -jobs https://github.com/esl/jobs https://github.com/esl/jobs a Job scheduler for load regulation jsx https://github.com/talentdeficit/jsx https://github.com/talentdeficit/jsx An Erlang application for consuming, producing and manipulating JSON. katja https://github.com/nifoc/katja https://github.com/nifoc/katja A simple Riemann client written in Erlang. lager https://github.com/basho/lager https://github.com/basho/lager A logging framework for Erlang/OTP. -lasse https://github.com/inaka/lasse.git https://github.com/inaka/lasse.git SSE handler for Cowboy -leptus https://github.com/s1n4/leptus https://github.com/s1n4/leptus Erlang REST framework +lasse https://github.com/inaka/lasse https://github.com/inaka/lasse SSE handler for Cowboy live https://github.com/ninenines/live http://ninenines.eu Automated module and configuration reloader. -mekao https://github.com/ddosia/mekao.git https://github.com/ddosia/mekao SQL constructor -modlib https://github.com/gar1t/modlib.git https://github.com/gar1t/modlib Web framework based on Erlang's inets httpd -neo4j https://github.com/dmitriid/neo4j-erlang https://github.com/dmitriid/neo4j-erlang Erlang client library for Neo4J. -nodefinder https://github.com/erlanger/nodefinder.git https://github.com/erlanger/nodefinder automatic node discovery via UDP multicast +mekao https://github.com/ddosia/mekao https://github.com/ddosia/mekao SQL constructor +modlib https://github.com/gar1t/modlib https://github.com/gar1t/modlib Web framework based on Erlang's inets httpd +nodefinder https://github.com/erlanger/nodefinder https://github.com/erlanger/nodefinder automatic node discovery via UDP multicast pegjs https://github.com/dmitriid/pegjs https://github.com/dmitriid/pegjs An implementation of PEG.js grammar for Erlang. -proper https://github.com/manopapad/proper http://proper.softlab.ntua.gr PropEr: a QuickCheck-inspired property-based testing tool for Erlang. -psycho https://github.com/gar1t/psycho.git https://github.com/gar1t/psycho HTTP server that provides a WSGI-like interface for applications and middleware. -ptrackerl https://github.com/inaka/ptrackerl.git https://github.com/inaka/ptrackerl.git Pivotal Tracker API Client written in Erlang -pusherman https://github.com/inaka/pusherman.git https://github.com/inaka/pusherman.git queuing system for push notifications +ptrackerl https://github.com/inaka/ptrackerl https://github.com/inaka/ptrackerl Pivotal Tracker API Client written in Erlang ranch https://github.com/ninenines/ranch http://ninenines.eu Socket acceptor pool for TCP protocols. resource_discovery https://github.com/erlware/resource_discovery http://erlware.org/ An application used to dynamically discover resources present in an Erlang node cluster. sfmt-erlang https://github.com/jj1bdx/sfmt-erlang https://github.com/jj1bdx/sfmt-erlang SFMT pseudo random number generator for Erlang. -sheriff https://github.com/extend/sheriff http://ninenines.eu Parse transform for type based validation. -shotgun https://github.com/inaka/shotgun.git https://github.com/inaka/shotgun.git better than just a gun -sumo_db https://github.com/inaka/sumo_db.git https://github.com/inaka/sumo_db.git Erlang Persistency Framework -swab https://github.com/crownedgrouse/swab.git https://github.com/crownedgrouse/swab General purpose buffer handling module -sync https://github.com/rustyio/sync.git https://github.com/rustyio/sync On-the-fly recompiling and reloading in Erlang. +shotgun https://github.com/inaka/shotgun https://github.com/inaka/shotgun better than just a gun +swab https://github.com/crownedgrouse/swab https://github.com/crownedgrouse/swab General purpose buffer handling module +sync https://github.com/rustyio/sync https://github.com/rustyio/sync On-the-fly recompiling and reloading in Erlang. tddreloader https://github.com/version2beta/tddreloader https://github.com/version2beta/tddreloader Shell utility for recompiling, reloading, and testing code as it changes tinymt-erlang https://github.com/jj1bdx/tinymt-erlang https://github.com/jj1bdx/tinymt-erlang TinyMT pseudo random number generator for Erlang. unicorn https://github.com/shizzard/unicorn https://github.com/shizzard/unicorn Generic configuration server uuid https://github.com/okeuday/uuid https://github.com/okeuday/uuid Erlang UUID Implementation -worker_pool https://github.com/inaka/worker_pool.git https://github.com/inaka/worker_pool a simple erlang worker pool -xref_runner https://github.com/inaka/xref_runner.git https://github.com/inaka/xref_runner.git Erlang Xref Runner (inspired in rebar xref) +worker_pool https://github.com/inaka/worker_pool https://github.com/inaka/worker_pool a simple erlang worker pool +xref_runner https://github.com/inaka/xref_runner https://github.com/inaka/xref_runner Erlang Xref Runner (inspired in rebar xref) zeta https://github.com/s1n4/zeta https://github.com/s1n4/zeta HTTP access log parser in Erlang diff --git a/packages.v1.txt b/packages.v1.txt index b61a607..a57ef07 100644 --- a/packages.v1.txt +++ b/packages.v1.txt @@ -1,67 +1,53 @@ -apns4erl https://github.com/inaka/apns4erl.git http://inaka.github.com/apns4erl Apple Push Notification Server for Erlang -bullet https://github.com/extend/bullet http://ninenines.eu Simple, reliable, efficient streaming for Cowboy. +apns4erl https://github.com/inaka/apns4erl http://inaka.github.com/apns4erl Apple Push Notification Server for Erlang cake https://github.com/darach/cake-erl https://github.com/darach/cake-erl Really simple terminal colorization -classifier https://github.com/inaka/classifier.git https://github.com/inaka/classifier An Erlang Bayesian Filter and Text Classifier +classifier https://github.com/inaka/classifier https://github.com/inaka/classifier An Erlang Bayesian Filter and Text Classifier cowboy https://github.com/ninenines/cowboy http://ninenines.eu Small, fast and modular HTTP server. cowlib https://github.com/ninenines/cowlib http://ninenines.eu Support library for manipulating Web protocols. -czmq https://github.com/gar1t/erlang-czmq.git https://github.com/gar1t/erlang-czmq External port bindings for CZMQ. -debbie https://github.com/crownedgrouse/debbie.git https://github.com/crownedgrouse/debbie .DEB Built In Erlang -e2 https://github.com/gar1t/e2.git http://e2project.org Library to simply writing correct OTP applications. -ebitly https://github.com/inaka/ebitly.git http://inaka.github.com/ebitly Bit.ly API wrapper for Erlang -edgar https://github.com/crownedgrouse/edgar.git https://github.com/crownedgrouse/edgar Erlang Does GNU AR -edis https://github.com/inaka/edis.git http://inaka.github.com/edis/ An Erlang implementation of Redis KV Store -eganglia https://github.com/inaka/eganglia.git https://github.com/inaka/eganglia.git Erlang library to interact with Ganglia +debbie https://github.com/crownedgrouse/debbie https://github.com/crownedgrouse/debbie .DEB Built In Erlang +e2 https://github.com/gar1t/e2 http://e2project.org Library to simply writing correct OTP applications. +edgar https://github.com/crownedgrouse/edgar https://github.com/crownedgrouse/edgar Erlang Does GNU AR +eganglia https://github.com/inaka/eganglia https://github.com/inaka/eganglia Erlang library to interact with Ganglia ehsa https://bitbucket.org/a12n/ehsa https://bitbucket.org/a12n/ehsa Erlang HTTP server basic and digest authentication modules -elvis https://github.com/inaka/elvis.git https://github.com/inaka/elvis.git Erlang Style Reviewer -emysql https://github.com/Eonblast/Emysql.git https://github.com/Eonblast/Emysql Stable, pure Erlang MySQL driver. +elvis https://github.com/inaka/elvis https://github.com/inaka/elvis Erlang Style Reviewer +emysql https://github.com/Eonblast/Emysql https://github.com/Eonblast/Emysql Stable, pure Erlang MySQL driver. eper https://github.com/massemanet/eper https://github.com/massemanet/eper Erlang performance and debugging tools. epgsql https://github.com/epgsql/epgsql https://github.com/epgsql/epgsql Erlang PostgreSQL client library. eredis https://github.com/wooga/eredis https://github.com/wooga/eredis Non-blocking Redis client with focus on performance and robustness -erldb https://github.com/erldb/erldb.git http://erldb.org ORM (Object-relational mapping) application implemented in Erlang -erlexec https://github.com/saleyn/erlexec http://saleyn.github.com/erlexec Execute and control OS processes from Erlang/OTP. erlydtl https://github.com/erlydtl/erlydtl https://github.com/erlydtl/erlydtl Django Template Language for Erlang. erwa https://github.com/bwegh/erwa https://github.com/bwegh/erwa A WAMP router and client written in Erlang. exs1024 https://github.com/jj1bdx/exs1024 https://github.com/jj1bdx/exs1024 Xorshift1024star pseudo random number generator for Erlang. exs64 https://github.com/jj1bdx/exs64 https://github.com/jj1bdx/exs64 Xorshift64star pseudo random number generator for Erlang. exsplus128 https://github.com/jj1bdx/exsplus128 https://github.com/jj1bdx/exsplus128 Xorshift128plus pseudo random number generator for Erlang. feeder https://github.com/michaelnisi/feeder https://github.com/michaelnisi/feeder Stream parse RSS and Atom formatted XML feeds. -geas https://github.com/crownedgrouse/geas.git https://github.com/crownedgrouse/geas Guess Erlang Application Scattering -getopt https://github.com/jcomellas/getopt.git https://github.com/jcomellas/getopt Module to parse command line arguments using the GNU getopt syntax -gproc https://github.com/uwiger/gproc.git https://github.com/uwiger/gproc Extended process registry for Erlang -gun https://github.com/extend/gun http//ninenines.eu Asynchronous SPDY, HTTP and Websocket client written in Erlang. +geas https://github.com/crownedgrouse/geas https://github.com/crownedgrouse/geas Guess Erlang Application Scattering +getopt https://github.com/jcomellas/getopt https://github.com/jcomellas/getopt Module to parse command line arguments using the GNU getopt syntax +gproc https://github.com/uwiger/gproc https://github.com/uwiger/gproc Extended process registry for Erlang +gun https://github.com/ninenines/gun http//ninenines.eu Asynchronous SPDY, HTTP and Websocket client written in Erlang. hanoidb https://github.com/krestenkrab/hanoidb https://github.com/krestenkrab/hanoidb Erlang LSM BTree Storage ibrowse https://github.com/cmullaparthi/ibrowse https://github.com/cmullaparthi/ibrowse Erlang HTTP client -itweet https://github.com/inaka/itweet.git http://inaka.github.com/itweet/ Twitter Stream API on ibrowse +itweet https://github.com/inaka/itweet http://inaka.github.com/itweet/ Twitter Stream API on ibrowse jiffy https://github.com/davisp/jiffy https://github.com/davisp/jiffy JSON NIFs for Erlang. jiffy_v https://github.com/shizzard/jiffy-v https://github.com/shizzard/jiffy-v JSON validation utility -jobs https://github.com/esl/jobs https://github.com/esl/jobs a Job scheduler for load regulation jsx https://github.com/talentdeficit/jsx https://github.com/talentdeficit/jsx An Erlang application for consuming, producing and manipulating JSON. katja https://github.com/nifoc/katja https://github.com/nifoc/katja A simple Riemann client written in Erlang. lager https://github.com/basho/lager https://github.com/basho/lager A logging framework for Erlang/OTP. -lasse https://github.com/inaka/lasse.git https://github.com/inaka/lasse.git SSE handler for Cowboy -leptus https://github.com/s1n4/leptus https://github.com/s1n4/leptus Erlang REST framework +lasse https://github.com/inaka/lasse https://github.com/inaka/lasse SSE handler for Cowboy live https://github.com/ninenines/live http://ninenines.eu Automated module and configuration reloader. -mekao https://github.com/ddosia/mekao.git https://github.com/ddosia/mekao SQL constructor -modlib https://github.com/gar1t/modlib.git https://github.com/gar1t/modlib Web framework based on Erlang's inets httpd -neo4j https://github.com/dmitriid/neo4j-erlang https://github.com/dmitriid/neo4j-erlang Erlang client library for Neo4J. -nodefinder https://github.com/erlanger/nodefinder.git https://github.com/erlanger/nodefinder automatic node discovery via UDP multicast +mekao https://github.com/ddosia/mekao https://github.com/ddosia/mekao SQL constructor +modlib https://github.com/gar1t/modlib https://github.com/gar1t/modlib Web framework based on Erlang's inets httpd +nodefinder https://github.com/erlanger/nodefinder https://github.com/erlanger/nodefinder automatic node discovery via UDP multicast pegjs https://github.com/dmitriid/pegjs https://github.com/dmitriid/pegjs An implementation of PEG.js grammar for Erlang. -proper https://github.com/manopapad/proper http://proper.softlab.ntua.gr PropEr: a QuickCheck-inspired property-based testing tool for Erlang. -psycho https://github.com/gar1t/psycho.git https://github.com/gar1t/psycho HTTP server that provides a WSGI-like interface for applications and middleware. -ptrackerl https://github.com/inaka/ptrackerl.git https://github.com/inaka/ptrackerl.git Pivotal Tracker API Client written in Erlang -pusherman https://github.com/inaka/pusherman.git https://github.com/inaka/pusherman.git queuing system for push notifications +ptrackerl https://github.com/inaka/ptrackerl https://github.com/inaka/ptrackerl Pivotal Tracker API Client written in Erlang ranch https://github.com/ninenines/ranch http://ninenines.eu Socket acceptor pool for TCP protocols. resource_discovery https://github.com/erlware/resource_discovery http://erlware.org/ An application used to dynamically discover resources present in an Erlang node cluster. sfmt-erlang https://github.com/jj1bdx/sfmt-erlang https://github.com/jj1bdx/sfmt-erlang SFMT pseudo random number generator for Erlang. -sheriff https://github.com/extend/sheriff http://ninenines.eu Parse transform for type based validation. -shotgun https://github.com/inaka/shotgun.git https://github.com/inaka/shotgun.git better than just a gun -sumo_db https://github.com/inaka/sumo_db.git https://github.com/inaka/sumo_db.git Erlang Persistency Framework -swab https://github.com/crownedgrouse/swab.git https://github.com/crownedgrouse/swab General purpose buffer handling module -sync https://github.com/rustyio/sync.git https://github.com/rustyio/sync On-the-fly recompiling and reloading in Erlang. +shotgun https://github.com/inaka/shotgun https://github.com/inaka/shotgun better than just a gun +swab https://github.com/crownedgrouse/swab https://github.com/crownedgrouse/swab General purpose buffer handling module +sync https://github.com/rustyio/sync https://github.com/rustyio/sync On-the-fly recompiling and reloading in Erlang. tddreloader https://github.com/version2beta/tddreloader https://github.com/version2beta/tddreloader Shell utility for recompiling, reloading, and testing code as it changes tinymt-erlang https://github.com/jj1bdx/tinymt-erlang https://github.com/jj1bdx/tinymt-erlang TinyMT pseudo random number generator for Erlang. unicorn https://github.com/shizzard/unicorn https://github.com/shizzard/unicorn Generic configuration server uuid https://github.com/okeuday/uuid https://github.com/okeuday/uuid Erlang UUID Implementation -worker_pool https://github.com/inaka/worker_pool.git https://github.com/inaka/worker_pool a simple erlang worker pool -xref_runner https://github.com/inaka/xref_runner.git https://github.com/inaka/xref_runner.git Erlang Xref Runner (inspired in rebar xref) +worker_pool https://github.com/inaka/worker_pool https://github.com/inaka/worker_pool a simple erlang worker pool +xref_runner https://github.com/inaka/xref_runner https://github.com/inaka/xref_runner Erlang Xref Runner (inspired in rebar xref) zeta https://github.com/s1n4/zeta https://github.com/s1n4/zeta HTTP access log parser in Erlang diff --git a/packages.v2.tsv b/packages.v2.tsv index 6dca150..488b7f7 100644 --- a/packages.v2.tsv +++ b/packages.v2.tsv @@ -1,67 +1,53 @@ -apns4erl git https://github.com/inaka/apns4erl.git 1.0 http://inaka.github.com/apns4erl Apple Push Notification Server for Erlang -bullet git https://github.com/extend/bullet master http://ninenines.eu Simple, reliable, efficient streaming for Cowboy. +apns4erl git https://github.com/inaka/apns4erl 1.0.4 http://inaka.github.com/apns4erl Apple Push Notification Server for Erlang cake git https://github.com/darach/cake-erl v0.1.2 https://github.com/darach/cake-erl Really simple terminal colorization -classifier git https://github.com/inaka/classifier.git 1 https://github.com/inaka/classifier An Erlang Bayesian Filter and Text Classifier +classifier git https://github.com/inaka/classifier master https://github.com/inaka/classifier An Erlang Bayesian Filter and Text Classifier cowboy git https://github.com/ninenines/cowboy 1.0.1 http://ninenines.eu Small, fast and modular HTTP server. cowlib git https://github.com/ninenines/cowlib 1.0.1 http://ninenines.eu Support library for manipulating Web protocols. -czmq git https://github.com/gar1t/erlang-czmq.git master https://github.com/gar1t/erlang-czmq External port bindings for CZMQ. -debbie git https://github.com/crownedgrouse/debbie.git master https://github.com/crownedgrouse/debbie .DEB Built In Erlang -e2 git https://github.com/gar1t/e2.git master http://e2project.org Library to simply writing correct OTP applications. -ebitly git https://github.com/inaka/ebitly.git 0.0.1 http://inaka.github.com/ebitly Bit.ly API wrapper for Erlang -edgar git https://github.com/crownedgrouse/edgar.git master https://github.com/crownedgrouse/edgar Erlang Does GNU AR -edis git https://github.com/inaka/edis.git 0.2.0 http://inaka.github.com/edis/ An Erlang implementation of Redis KV Store -eganglia git https://github.com/inaka/eganglia.git 0.9.1 https://github.com/inaka/eganglia.git Erlang library to interact with Ganglia +debbie git https://github.com/crownedgrouse/debbie master https://github.com/crownedgrouse/debbie .DEB Built In Erlang +e2 git https://github.com/gar1t/e2 master http://e2project.org Library to simply writing correct OTP applications. +edgar git https://github.com/crownedgrouse/edgar master https://github.com/crownedgrouse/edgar Erlang Does GNU AR +eganglia git https://github.com/inaka/eganglia v0.9.1 https://github.com/inaka/eganglia Erlang library to interact with Ganglia ehsa hg https://bitbucket.org/a12n/ehsa 2.0.4 https://bitbucket.org/a12n/ehsa Erlang HTTP server basic and digest authentication modules -elvis git https://github.com/inaka/elvis.git 0.1.0-alpha https://github.com/inaka/elvis.git Erlang Style Reviewer -emysql git https://github.com/Eonblast/Emysql.git master https://github.com/Eonblast/Emysql Stable, pure Erlang MySQL driver. +elvis git https://github.com/inaka/elvis 0.2.4 https://github.com/inaka/elvis Erlang Style Reviewer +emysql git https://github.com/Eonblast/Emysql master https://github.com/Eonblast/Emysql Stable, pure Erlang MySQL driver. eper git https://github.com/massemanet/eper master https://github.com/massemanet/eper Erlang performance and debugging tools. epgsql git https://github.com/epgsql/epgsql master https://github.com/epgsql/epgsql Erlang PostgreSQL client library. eredis git https://github.com/wooga/eredis master https://github.com/wooga/eredis Non-blocking Redis client with focus on performance and robustness -erldb git https://github.com/erldb/erldb.git master http://erldb.org ORM (Object-relational mapping) application implemented in Erlang -erlexec git https://github.com/saleyn/erlexec master http://saleyn.github.com/erlexec Execute and control OS processes from Erlang/OTP. erlydtl git https://github.com/erlydtl/erlydtl master https://github.com/erlydtl/erlydtl Django Template Language for Erlang. erwa git https://github.com/bwegh/erwa 0.1.1 https://github.com/bwegh/erwa A WAMP router and client written in Erlang. exs1024 git https://github.com/jj1bdx/exs1024 master https://github.com/jj1bdx/exs1024 Xorshift1024star pseudo random number generator for Erlang. exs64 git https://github.com/jj1bdx/exs64 master https://github.com/jj1bdx/exs64 Xorshift64star pseudo random number generator for Erlang. exsplus128 git https://github.com/jj1bdx/exsplus128 master https://github.com/jj1bdx/exsplus128 Xorshift128plus pseudo random number generator for Erlang. -feeder git https://github.com/michaelnisi/feeder 1.4.2 https://github.com/michaelnisi/feeder Stream parse RSS and Atom formatted XML feeds. -geas git https://github.com/crownedgrouse/geas.git master https://github.com/crownedgrouse/geas Guess Erlang Application Scattering -getopt git https://github.com/jcomellas/getopt.git master https://github.com/jcomellas/getopt Module to parse command line arguments using the GNU getopt syntax -gproc git https://github.com/uwiger/gproc.git master https://github.com/uwiger/gproc Extended process registry for Erlang -gun git https://github.com/extend/gun master http//ninenines.eu Asynchronous SPDY, HTTP and Websocket client written in Erlang. +feeder git https://github.com/michaelnisi/feeder v1.4.6 https://github.com/michaelnisi/feeder Stream parse RSS and Atom formatted XML feeds. +geas git https://github.com/crownedgrouse/geas master https://github.com/crownedgrouse/geas Guess Erlang Application Scattering +getopt git https://github.com/jcomellas/getopt master https://github.com/jcomellas/getopt Module to parse command line arguments using the GNU getopt syntax +gproc git https://github.com/uwiger/gproc master https://github.com/uwiger/gproc Extended process registry for Erlang +gun git https://github.com/ninenines/gun master http//ninenines.eu Asynchronous SPDY, HTTP and Websocket client written in Erlang. hanoidb git https://github.com/krestenkrab/hanoidb master https://github.com/krestenkrab/hanoidb Erlang LSM BTree Storage ibrowse git https://github.com/cmullaparthi/ibrowse v4.1.1 https://github.com/cmullaparthi/ibrowse Erlang HTTP client -itweet git https://github.com/inaka/itweet.git 3.0 http://inaka.github.com/itweet/ Twitter Stream API on ibrowse +itweet git https://github.com/inaka/itweet v2.0 http://inaka.github.com/itweet/ Twitter Stream API on ibrowse jiffy git https://github.com/davisp/jiffy master https://github.com/davisp/jiffy JSON NIFs for Erlang. jiffy_v git https://github.com/shizzard/jiffy-v 0.3.3 https://github.com/shizzard/jiffy-v JSON validation utility -jobs git https://github.com/esl/jobs 0.3 https://github.com/esl/jobs a Job scheduler for load regulation jsx git https://github.com/talentdeficit/jsx master https://github.com/talentdeficit/jsx An Erlang application for consuming, producing and manipulating JSON. katja git https://github.com/nifoc/katja master https://github.com/nifoc/katja A simple Riemann client written in Erlang. lager git https://github.com/basho/lager master https://github.com/basho/lager A logging framework for Erlang/OTP. -lasse git https://github.com/inaka/lasse.git 0.1.0 https://github.com/inaka/lasse.git SSE handler for Cowboy -leptus git https://github.com/s1n4/leptus https://github.com/s1n4/leptus Erlang REST framework +lasse git https://github.com/inaka/lasse 0.1.0 https://github.com/inaka/lasse SSE handler for Cowboy live git https://github.com/ninenines/live master http://ninenines.eu Automated module and configuration reloader. -mekao git https://github.com/ddosia/mekao.git master https://github.com/ddosia/mekao SQL constructor -modlib git https://github.com/gar1t/modlib.git master https://github.com/gar1t/modlib Web framework based on Erlang's inets httpd -neo4j git https://github.com/dmitriid/neo4j-erlang master https://github.com/dmitriid/neo4j-erlang Erlang client library for Neo4J. -nodefinder git https://github.com/erlanger/nodefinder.git 0.2.3 https://github.com/erlanger/nodefinder automatic node discovery via UDP multicast +mekao git https://github.com/ddosia/mekao master https://github.com/ddosia/mekao SQL constructor +modlib git https://github.com/gar1t/modlib master https://github.com/gar1t/modlib Web framework based on Erlang's inets httpd +nodefinder git https://github.com/erlanger/nodefinder 0.2.3 https://github.com/erlanger/nodefinder automatic node discovery via UDP multicast pegjs git https://github.com/dmitriid/pegjs 0.3 https://github.com/dmitriid/pegjs An implementation of PEG.js grammar for Erlang. -proper git https://github.com/manopapad/proper master http://proper.softlab.ntua.gr PropEr: a QuickCheck-inspired property-based testing tool for Erlang. -psycho git https://github.com/gar1t/psycho.git master https://github.com/gar1t/psycho HTTP server that provides a WSGI-like interface for applications and middleware. -ptrackerl git https://github.com/inaka/ptrackerl.git 0.2 https://github.com/inaka/ptrackerl.git Pivotal Tracker API Client written in Erlang -pusherman git https://github.com/inaka/pusherman.git 1 https://github.com/inaka/pusherman.git queuing system for push notifications +ptrackerl git https://github.com/inaka/ptrackerl master https://github.com/inaka/ptrackerl Pivotal Tracker API Client written in Erlang ranch git https://github.com/ninenines/ranch 1.1.0 http://ninenines.eu Socket acceptor pool for TCP protocols. resource_discovery git https://github.com/erlware/resource_discovery master http://erlware.org/ An application used to dynamically discover resources present in an Erlang node cluster. sfmt-erlang git https://github.com/jj1bdx/sfmt-erlang master https://github.com/jj1bdx/sfmt-erlang SFMT pseudo random number generator for Erlang. -sheriff git https://github.com/extend/sheriff master http://ninenines.eu Parse transform for type based validation. -shotgun git https://github.com/inaka/shotgun.git 0.1.0 https://github.com/inaka/shotgun.git better than just a gun -sumo_db git https://github.com/inaka/sumo_db.git 1 https://github.com/inaka/sumo_db.git Erlang Persistency Framework -swab git https://github.com/crownedgrouse/swab.git master https://github.com/crownedgrouse/swab General purpose buffer handling module -sync git https://github.com/rustyio/sync.git master https://github.com/rustyio/sync On-the-fly recompiling and reloading in Erlang. +shotgun git https://github.com/inaka/shotgun 0.1.0 https://github.com/inaka/shotgun better than just a gun +swab git https://github.com/crownedgrouse/swab master https://github.com/crownedgrouse/swab General purpose buffer handling module +sync git https://github.com/rustyio/sync master https://github.com/rustyio/sync On-the-fly recompiling and reloading in Erlang. tddreloader git https://github.com/version2beta/tddreloader master https://github.com/version2beta/tddreloader Shell utility for recompiling, reloading, and testing code as it changes tinymt-erlang git https://github.com/jj1bdx/tinymt-erlang master https://github.com/jj1bdx/tinymt-erlang TinyMT pseudo random number generator for Erlang. unicorn git https://github.com/shizzard/unicorn 0.3.0 https://github.com/shizzard/unicorn Generic configuration server uuid git https://github.com/okeuday/uuid v1.4.0 https://github.com/okeuday/uuid Erlang UUID Implementation -worker_pool git https://github.com/inaka/worker_pool.git 1.0.2 https://github.com/inaka/worker_pool a simple erlang worker pool -xref_runner git https://github.com/inaka/xref_runner.git 0.2.0 https://github.com/inaka/xref_runner.git Erlang Xref Runner (inspired in rebar xref) +worker_pool git https://github.com/inaka/worker_pool 1.0.2 https://github.com/inaka/worker_pool a simple erlang worker pool +xref_runner git https://github.com/inaka/xref_runner 0.2.0 https://github.com/inaka/xref_runner Erlang Xref Runner (inspired in rebar xref) zeta git https://github.com/s1n4/zeta https://github.com/s1n4/zeta HTTP access log parser in Erlang diff --git a/test/Makefile b/test/Makefile index 5449ee5..9b7d4a1 100644 --- a/test/Makefile +++ b/test/Makefile @@ -35,7 +35,9 @@ endif .PHONY: all clean app ct eunit tests-cover docs -all: clean app ct eunit tests-cover docs +.NOTPARALLEL: + +all: clean app ct eunit tests-cover docs pkgs $i '+---------------------+' $i '| All tests passed. |' $i '+---------------------+' @@ -195,8 +197,7 @@ docs: app1 $t rm app1/Makefile-doc $i "Test 'docs' passed." -# Test application used for testing. -app1: +define app1_setup $i "Setting up app." $t mkdir -p app1 $t cd .. && make @@ -207,6 +208,35 @@ app1: "-export([succ/1])." \ "succ(N) -> N + 1." \ > app1/src/m.erl +endef + +define pkg_test_target +pkg-$(1)-clean: + $t rm -rf app1 + +pkg-$(1)-app1: + $(call app1_setup) + +pkg-$(1): pkg-$(1)-clean pkg-$(1)-app1 + $i + $i " pkgs: Checking that '$(1)' builds correctly" + $i + $t printf "%s\n" \ + "PROJECT = app1" \ + "DEPS = $(1)" \ + "include erlang.mk" \ + > app1/Makefile + cp ../packages.v2.tsv app1/.erlang.mk.packages.v2 + $t make -C app1 +endef + +$(foreach pkg,$(shell awk '{print $$1}' ../packages.v2.tsv),$(eval $(call pkg_test_target,$(pkg)))) + +pkgs: $(foreach pkg,$(shell awk '{print $$1}' ../packages.v2.tsv),pkg-$(pkg)) + +# Test application used for testing. +app1: + $(call app1_setup) # Extra module in app1 used for testing eunit define create-module-t -- cgit v1.2.3