tiff: moved to github
tiff: moved to github

git-svn-id: svn://svn.openwrt.org/openwrt/packages@41779 3c298f89-4303-0410-b956-a3cf2f4a3e73

file:a/lang/luaexpat/Makefile (deleted)
#  
# Copyright (C) 2009 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=luaexpat  
PKG_VERSION:=1.1  
PKG_RELEASE:=2  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=http://luaforge.net/frs/download.php/2469  
PKG_MD5SUM:=6ecb895ccf5cff1e7f2facd438b1f8d0  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/luaexpat  
SUBMENU:=Lua  
SECTION:=lang  
CATEGORY:=Languages  
TITLE:=LuaExpat  
URL:=http://www.keplerproject.org/luaexpat/  
DEPENDS:=+lua +libexpat  
endef  
 
define Package/luaexpat/description  
LuaExpat is a SAX XML parser based on the Expat library.  
endef  
 
define Build/Configure  
endef  
 
define Build/Compile  
$(CP) files/compat-5.1r5 $(PKG_BUILD_DIR)/compat-5.1r5  
$(MAKE) -C $(PKG_BUILD_DIR) \  
EXPAT_INC="$(STAGING_DIR)/usr/include/" \  
LUA_INC="$(STAGING_DIR)/usr/include/" \  
LUA_LIBDIR="$(STAGING_DIR)/usr/lib/" \  
COMPAT_DIR="$(PKG_BUILD_DIR)/compat-5.1r5" \  
LIB_OPTION="-shared $(TARGET_LDFLAGS)" \  
CC="$(TARGET_CC) $(TARGET_CFLAGS) $(FPIC) -std=c99" \  
LD="$(TARGET_CROSS)ld -shared"  
endef  
 
define Package/luaexpat/install  
$(INSTALL_DIR) $(1)/usr/lib/lua  
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/lxp.so.1.1.0 $(1)/usr/lib/lua/lxp.so  
$(INSTALL_DIR) $(1)/usr/lib/lua/lxp  
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/lxp/lom.lua $(1)/usr/lib/lua/lxp  
endef  
 
$(eval $(call BuildPackage,luaexpat))  
 
/*  
** Compat-5.1  
** Copyright Kepler Project 2004-2006 (http://www.keplerproject.org/compat)  
** $Id: compat-5.1.c,v 1.13 2006/02/20 21:12:47 carregal Exp $  
*/  
 
#include <stdio.h>  
#include <string.h>  
#include "lua.h"  
#include "lauxlib.h"  
#include "compat-5.1.h"  
 
static void getfield(lua_State *L, int idx, const char *name) {  
const char *end = strchr(name, '.');  
lua_pushvalue(L, idx);  
while (end) {  
lua_pushlstring(L, name, end - name);  
lua_gettable(L, -2);  
lua_remove(L, -2);  
if (lua_isnil(L, -1)) return;  
name = end+1;  
end = strchr(name, '.');  
}  
lua_pushstring(L, name);  
lua_gettable(L, -2);  
lua_remove(L, -2);  
}  
 
static void setfield(lua_State *L, int idx, const char *name) {  
const char *end = strchr(name, '.');  
lua_pushvalue(L, idx);  
while (end) {  
lua_pushlstring(L, name, end - name);  
lua_gettable(L, -2);  
/* create table if not found */  
if (lua_isnil(L, -1)) {  
lua_pop(L, 1);  
lua_newtable(L);  
lua_pushlstring(L, name, end - name);  
lua_pushvalue(L, -2);  
lua_settable(L, -4);  
}  
lua_remove(L, -2);  
name = end+1;  
end = strchr(name, '.');  
}  
lua_pushstring(L, name);  
lua_pushvalue(L, -3);  
lua_settable(L, -3);  
lua_pop(L, 2);  
}  
 
LUALIB_API void luaL_module(lua_State *L, const char *libname,  
const luaL_reg *l, int nup) {  
if (libname) {  
getfield(L, LUA_GLOBALSINDEX, libname); /* check whether lib already exists */  
if (lua_isnil(L, -1)) {  
int env, ns;  
lua_pop(L, 1); /* get rid of nil */  
lua_pushliteral(L, "require");  
lua_gettable(L, LUA_GLOBALSINDEX); /* look for require */  
lua_getfenv(L, -1); /* getfenv(require) */  
lua_remove(L, -2); /* remove function require */  
env = lua_gettop(L);  
 
lua_newtable(L); /* create namespace for lib */  
ns = lua_gettop(L);  
getfield(L, env, "package.loaded"); /* get package.loaded table */  
if (lua_isnil(L, -1)) { /* create package.loaded table */  
lua_pop(L, 1); /* remove previous result */  
lua_newtable(L);  
lua_pushvalue(L, -1);  
setfield(L, env, "package.loaded");  
}  
else if (!lua_istable(L, -1))  
luaL_error(L, "name conflict for library `%s'", libname);  
lua_pushstring(L, libname);  
lua_pushvalue(L, ns);  
lua_settable(L, -3); /* package.loaded[libname] = ns */  
lua_pop(L, 1); /* get rid of package.loaded table */  
lua_pushvalue(L, ns); /* copy namespace */  
setfield(L, LUA_GLOBALSINDEX, libname);  
lua_remove (L, env); /* remove env */  
}  
lua_insert(L, -(nup+1)); /* move library table to below upvalues */  
}  
for (; l->name; l++) {  
int i;  
lua_pushstring(L, l->name);  
for (i=0; i<nup; i++) /* copy upvalues to the top */  
lua_pushvalue(L, -(nup+1));  
lua_pushcclosure(L, l->func, nup);  
lua_settable(L, -(nup+3));  
}  
lua_pop(L, nup); /* remove upvalues */  
}  
 
 
/*  
** Compat-5.1  
** Copyright Kepler Project 2004-2006 (http://www.keplerproject.org/compat/)  
** $Id: compat-5.1.h,v 1.8 2006/02/20 21:12:47 carregal Exp $  
*/  
 
#ifndef COMPAT_H  
 
LUALIB_API void luaL_module(lua_State *L, const char *libname,  
const luaL_reg *l, int nup);  
#define luaL_openlib luaL_module  
 
#endif  
 
--  
-- Compat-5.1  
-- Copyright Kepler Project 2004-2006 (http://www.keplerproject.org/compat)  
-- According to Lua 5.1  
-- $Id: compat-5.1.lua,v 1.22 2006/02/20 21:12:47 carregal Exp $  
--  
 
_COMPAT51 = "Compat-5.1 R5"  
 
local LUA_DIRSEP = '/'  
local LUA_OFSEP = '_'  
local OLD_LUA_OFSEP = ''  
local POF = 'luaopen_'  
local LUA_PATH_MARK = '?'  
local LUA_IGMARK = ':'  
 
local assert, error, getfenv, ipairs, loadfile, loadlib, pairs, setfenv, setmetatable, type = assert, error, getfenv, ipairs, loadfile, loadlib, pairs, setfenv, setmetatable, type  
local find, format, gfind, gsub, sub = string.find, string.format, string.gfind, string.gsub, string.sub  
 
--  
-- avoid overwriting the package table if it's already there  
--  
package = package or {}  
local _PACKAGE = package  
 
package.path = LUA_PATH or os.getenv("LUA_PATH") or  
("./?.lua;" ..  
"/usr/local/share/lua/5.0/?.lua;" ..  
"/usr/local/share/lua/5.0/?/?.lua;" ..  
"/usr/local/share/lua/5.0/?/init.lua" )  
 
package.cpath = LUA_CPATH or os.getenv("LUA_CPATH") or  
"./?.so;" ..  
"./l?.so;" ..  
"/usr/local/lib/lua/5.0/?.so;" ..  
"/usr/local/lib/lua/5.0/l?.so"  
 
--  
-- make sure require works with standard libraries  
--  
package.loaded = package.loaded or {}  
package.loaded.debug = debug  
package.loaded.string = string  
package.loaded.math = math  
package.loaded.io = io  
package.loaded.os = os  
package.loaded.table = table  
package.loaded.base = _G  
package.loaded.coroutine = coroutine  
local _LOADED = package.loaded  
 
--  
-- avoid overwriting the package.preload table if it's already there  
--  
package.preload = package.preload or {}  
local _PRELOAD = package.preload  
 
 
--  
-- looks for a file `name' in given path  
--  
local function findfile (name, pname)  
name = gsub (name, "%.", LUA_DIRSEP)  
local path = _PACKAGE[pname]  
assert (type(path) == "string", format ("package.%s must be a string", pname))  
for c in gfind (path, "[^;]+") do  
c = gsub (c, "%"..LUA_PATH_MARK, name)  
local f = io.open (c)  
if f then  
f:close ()  
return c  
end  
end  
return nil -- not found  
end  
 
 
--  
-- check whether library is already loaded  
--  
local function loader_preload (name)  
assert (type(name) == "string", format (  
"bad argument #1 to `require' (string expected, got %s)", type(name)))  
assert (type(_PRELOAD) == "table", "`package.preload' must be a table")  
return _PRELOAD[name]  
end  
 
 
--  
-- Lua library loader  
--  
local function loader_Lua (name)  
assert (type(name) == "string", format (  
"bad argument #1 to `require' (string expected, got %s)", type(name)))  
local filename = findfile (name, "path")  
if not filename then  
return false  
end  
local f, err = loadfile (filename)  
if not f then  
error (format ("error loading module `%s' (%s)", name, err))  
end  
return f  
end  
 
 
local function mkfuncname (name)  
name = gsub (name, "^.*%"..LUA_IGMARK, "")  
name = gsub (name, "%.", LUA_OFSEP)  
return POF..name  
end  
 
local function old_mkfuncname (name)  
--name = gsub (name, "^.*%"..LUA_IGMARK, "")  
name = gsub (name, "%.", OLD_LUA_OFSEP)  
return POF..name  
end  
 
--  
-- C library loader  
--  
local function loader_C (name)  
assert (type(name) == "string", format (  
"bad argument #1 to `require' (string expected, got %s)", type(name)))  
local filename = findfile (name, "cpath")  
if not filename then  
return false  
end  
local funcname = mkfuncname (name)  
local f, err = loadlib (filename, funcname)  
if not f then  
funcname = old_mkfuncname (name)  
f, err = loadlib (filename, funcname)  
if not f then  
error (format ("error loading module `%s' (%s)", name, err))  
end  
end  
return f  
end  
 
 
local function loader_Croot (name)  
local p = gsub (name, "^([^.]*).-$", "%1")  
if p == "" then  
return  
end  
local filename = findfile (p, "cpath")  
if not filename then  
return  
end  
local funcname = mkfuncname (name)  
local f, err, where = loadlib (filename, funcname)  
if f then  
return f  
elseif where ~= "init" then  
error (format ("error loading module `%s' (%s)", name, err))  
end  
end  
 
-- create `loaders' table  
package.loaders = package.loaders or { loader_preload, loader_Lua, loader_C, loader_Croot, }  
local _LOADERS = package.loaders  
 
 
--  
-- iterate over available loaders  
--  
local function load (name, loaders)  
-- iterate over available loaders  
assert (type (loaders) == "table", "`package.loaders' must be a table")  
for i, loader in ipairs (loaders) do  
local f = loader (name)  
if f then  
return f  
end  
end  
error (format ("module `%s' not found", name))  
end  
 
-- sentinel  
local sentinel = function () end  
 
--  
-- new require  
--  
function _G.require (modname)  
assert (type(modname) == "string", format (  
"bad argument #1 to `require' (string expected, got %s)", type(name)))  
local p = _LOADED[modname]  
if p then -- is it there?  
if p == sentinel then  
error (format ("loop or previous error loading module '%s'", modname))  
end  
return p -- package is already loaded  
end  
local init = load (modname, _LOADERS)  
_LOADED[modname] = sentinel  
local actual_arg = _G.arg  
_G.arg = { modname }  
local res = init (modname)  
if res then  
_LOADED[modname] = res  
end  
_G.arg = actual_arg  
if _LOADED[modname] == sentinel then  
_LOADED[modname] = true  
end  
return _LOADED[modname]  
end  
 
 
-- findtable  
local function findtable (t, f)  
assert (type(f)=="string", "not a valid field name ("..tostring(f)..")")  
local ff = f.."."  
local ok, e, w = find (ff, '(.-)%.', 1)  
while ok do  
local nt = rawget (t, w)  
if not nt then  
nt = {}  
t[w] = nt  
elseif type(t) ~= "table" then  
return sub (f, e+1)  
end  
t = nt  
ok, e, w = find (ff, '(.-)%.', e+1)  
end  
return t  
end  
 
--  
-- new package.seeall function  
--  
function _PACKAGE.seeall (module)  
local t = type(module)  
assert (t == "table", "bad argument #1 to package.seeall (table expected, got "..t..")")  
local meta = getmetatable (module)  
if not meta then  
meta = {}  
setmetatable (module, meta)  
end  
meta.__index = _G  
end  
 
 
--  
-- new module function  
--  
function _G.module (modname, ...)  
local ns = _LOADED[modname]  
if type(ns) ~= "table" then  
ns = findtable (_G, modname)  
if not ns then  
error (string.format ("name conflict for module '%s'", modname))  
end  
_LOADED[modname] = ns  
end  
if not ns._NAME then  
ns._NAME = modname  
ns._M = ns  
ns._PACKAGE = gsub (modname, "[^.]*$", "")  
end  
setfenv (2, ns)  
for i, f in ipairs (arg) do  
f (ns)  
end  
end  
 
--- a/config  
+++ b/config  
@@ -31,6 +31,6 @@  
-Wshadow \  
-Wwrite-strings  
 
-CFLAGS = $(CWARNS) -ansi -O2 -I$(LUA_INC) \  
+CFLAGS = $(CWARNS) -O2 -I$(LUA_INC) \  
-I$(COMPAT_DIR) -I$(EXPAT_INC)  
CC = gcc  
 
#  
# Copyright (C) 2008-2010 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=luafilesystem  
PKG_VERSION:=1.6.2  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=https://github.com/keplerproject/luafilesystem.git  
PKG_SOURCE_VERSION:=2fd989cd6c777583be1c93616018c55b2cbb1bcf  
PKG_SOURCE_PROTO:=git  
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/luafilesystem  
SUBMENU:=Lua  
SECTION:=lang  
CATEGORY:=Languages  
TITLE:=LuaFileSystem  
URL:=http://keplerproject.github.com/luafilesystem/  
DEPENDS:=+liblua  
endef  
 
define Package/luafilesystem/description  
This package contains the LuaFileSystem library, a set of portable  
functions for directory creation, listing and deletion and for file  
locking.  
endef  
 
define Build/Configure  
endef  
 
TARGET_CFLAGS += $(FPIC) $(TARGET_CPPFLAGS)  
 
TARGET_LDFLAGS += -llua  
 
define Build/Compile  
$(MAKE) -C $(PKG_BUILD_DIR) \  
$(TARGET_CONFIGURE_OPTS) \  
CFLAGS="$(TARGET_CFLAGS) -std=gnu99" \  
LDFLAGS="$(TARGET_LDFLAGS)"  
$(TARGET_CROSS)ar r $(PKG_BUILD_DIR)/src/luafilesystem.a $(PKG_BUILD_DIR)/src/lfs.o  
endef  
 
define Build/InstallDev  
$(INSTALL_DIR) $(STAGING_DIR)/usr/include  
$(INSTALL_DIR) $(STAGING_DIR)/usr/lib/lua  
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/lfs.h $(STAGING_DIR)/usr/include  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/lfs.so $(STAGING_DIR)/usr/lib/lua  
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/luafilesystem.a $(STAGING_DIR)/usr/lib/lua  
endef  
 
define Package/luafilesystem/install  
$(INSTALL_DIR) $(1)/usr/lib/lua  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/lfs.so $(1)/usr/lib/lua/lfs.so  
endef  
 
$(eval $(call BuildPackage,luafilesystem))  
 
file:a/lang/luasocket/Makefile (deleted)
#  
# Copyright (C) 2009-2013 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=luasocket  
PKG_SOURCE_VERSION:=6d5e40c324c84d9c1453ae88e0ad5bdd0a631448  
PKG_VERSION:=3.0-rc1-20130909  
PKG_RELEASE:=2  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2  
PKG_SOURCE_URL:=https://github.com/diegonehab/luasocket.git  
PKG_SOURCE_PROTO:=git  
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/luasocket  
SUBMENU:=Lua  
SECTION:=lang  
CATEGORY:=Languages  
TITLE:=LuaSocket  
URL:=http://luasocket.luaforge.net/  
DEPENDS:=+lua  
endef  
 
define Package/luasocket/description  
LuaSocket is the most comprehensive networking support  
library for the Lua language. It provides easy access to  
TCP, UDP, DNS, SMTP, FTP, HTTP, MIME and much more.  
endef  
 
define Build/Configure  
endef  
 
define Build/Compile  
$(MAKE) -C $(PKG_BUILD_DIR)/ \  
LIBDIR="$(TARGET_LDFLAGS)" \  
CC="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_CPPFLAGS) -std=gnu99" \  
LD="$(TARGET_CROSS)ld -shared" \  
all  
endef  
 
 
define Package/luasocket/install  
$(INSTALL_DIR) $(1)/usr/lib/lua  
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/{ltn12,mime,socket}.lua $(1)/usr/lib/lua  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mime.so.1.0.3 $(1)/usr/lib/lua  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/socket.so.3.0-rc1 $(1)/usr/lib/lua  
$(INSTALL_DIR) $(1)/usr/lib/lua/mime  
ln -sf ../mime.so.1.0.3 $(1)/usr/lib/lua/mime/core.so  
$(INSTALL_DIR) $(1)/usr/lib/lua/socket  
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/{ftp,http,smtp,tp,url,headers}.lua $(1)/usr/lib/lua/socket  
ln -sf ../socket.so.3.0-rc1 $(1)/usr/lib/lua/socket/core.so  
endef  
 
$(eval $(call BuildPackage,luasocket))  
 
From 96fdf07acf78ecfc9be76a8b0591f38fe6f1a875 Mon Sep 17 00:00:00 2001  
From: Steven Barth <steven@midlink.org>  
Date: Sat, 9 Nov 2013 12:01:42 +0100  
Subject: [PATCH] Add interface resolving  
 
---  
src/if.c | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  
src/if.h | 27 ++++++++++++++  
src/luasocket.c | 2 +  
src/makefile | 2 +  
src/options.c | 9 +++++  
5 files changed, 153 insertions(+)  
create mode 100644 src/if.c  
create mode 100644 src/if.h  
 
diff --git a/src/if.c b/src/if.c  
new file mode 100644  
index 0000000..db231aa  
--- /dev/null  
+++ b/src/if.c  
@@ -0,0 +1,113 @@  
+/*  
+ * $Id: if.c $  
+ *  
+ * Author: Markus Stenberg <fingon@iki.fi>  
+ *  
+ * Copyright (c) 2012 cisco Systems, Inc.  
+ *  
+ * Created: Tue Dec 4 14:50:34 2012 mstenber  
+ * Last modified: Wed Dec 5 18:51:08 2012 mstenber  
+ * Edit time: 24 min  
+ *  
+ */  
+  
+#include <sys/types.h>  
+#include <sys/socket.h>  
+#include <net/if.h>  
+  
+#include "if.h"  
+  
+#include "lauxlib.h"  
+  
+static int if_global_indextoname(lua_State *L);  
+static int if_global_nametoindex(lua_State *L);  
+static int if_global_nameindex(lua_State *L);  
+  
+static luaL_Reg func[] = {  
+ { "indextoname", if_global_indextoname},  
+ { "nametoindex", if_global_nametoindex},  
+ { "nameindex", if_global_nameindex},  
+ { NULL, NULL}  
+};  
+  
+int if_open(lua_State *L)  
+{  
+ lua_pushstring(L, "iface");  
+ lua_newtable(L);  
+ luaL_openlib(L, NULL, func, 0);  
+ lua_settable(L, -3);  
+ return 0;  
+}  
+  
+int if_global_indextoname(lua_State *L)  
+{  
+ unsigned int ifnumber;  
+ const char *name;  
+ char buf[IF_NAMESIZE+1];  
+  
+ if (!lua_isnumber(L, 1))  
+ {  
+ lua_pushnil(L);  
+ lua_pushstring(L, "indextoname expects only number argument");  
+ return 2;  
+ }  
+ ifnumber = lua_tonumber(L, 1);  
+ if (!(name = if_indextoname(ifnumber, buf)))  
+ {  
+ lua_pushnil(L);  
+ lua_pushstring(L, "nonexistent interface");  
+ return 2;  
+ }  
+ lua_pushstring(L, name);  
+ return 1;  
+}  
+  
+int if_global_nametoindex(lua_State *L)  
+{  
+ unsigned int ifnumber;  
+ if (!lua_isstring(L, 1))  
+ {  
+ lua_pushnil(L);  
+ lua_pushstring(L, "nametoindex expects only string argument");  
+ return 2;  
+ }  
+ if (!(ifnumber = if_nametoindex(lua_tostring(L, 1))))  
+ {  
+ lua_pushnil(L);  
+ lua_pushstring(L, "nonexistent interface");  
+ return 2;  
+ }  
+ lua_pushnumber(L, ifnumber);  
+ return 1;  
+}  
+  
+int if_global_nameindex(lua_State *L)  
+{  
+ struct if_nameindex *ni, *oni;  
+ int i = 1;  
+ oni = ni = if_nameindex();  
+ lua_newtable(L);  
+ while (ni && ni->if_index && *(ni->if_name))  
+ {  
+ /* at result[i], we store.. */  
+ lua_pushnumber(L, i);  
+  
+ /* new table with two items - index, name*/  
+ lua_newtable(L);  
+ lua_pushstring(L, "index");  
+ lua_pushnumber(L, ni->if_index);  
+ lua_settable(L, -3);  
+  
+ lua_pushstring(L, "name");  
+ lua_pushstring(L, ni->if_name);  
+ lua_settable(L, -3);  
+  
+ /* Then, actually store it */  
+ lua_settable(L, -3);  
+  
+ i++;  
+ ni++;  
+ }  
+ if_freenameindex(oni);  
+ return 1;  
+}  
diff --git a/src/if.h b/src/if.h  
new file mode 100644  
index 0000000..dc7faf8  
--- /dev/null  
+++ b/src/if.h  
@@ -0,0 +1,27 @@  
+/*  
+ * $Id: if.h $  
+ *  
+ * Author: Markus Stenberg <fingon@iki.fi>  
+ *  
+ * Copyright (c) 2012 cisco Systems, Inc.  
+ *  
+ * Created: Tue Dec 4 14:37:24 2012 mstenber  
+ * Last modified: Tue Dec 4 14:51:43 2012 mstenber  
+ * Edit time: 7 min  
+ *  
+ */  
+  
+/* This module provides Lua wrapping for the advanced socket API  
+ * defined in RFC3542, or mainly, the access to the system's interface  
+ * list. It is necessary for use of recvmsg/sendmsg.  
+ *  
+ * TODO - Do something clever with Windows?  
+ */  
+#ifndef IF_H  
+#define IF_H  
+  
+#include "lua.h"  
+  
+int if_open(lua_State *L);  
+  
+#endif /* IF_H */  
diff --git a/src/luasocket.c b/src/luasocket.c  
index e6ee747..85d41a6 100644  
--- a/src/luasocket.c  
+++ b/src/luasocket.c  
@@ -31,6 +31,7 @@  
#include "tcp.h"  
#include "udp.h"  
#include "select.h"  
+#include "if.h"  
 
/*-------------------------------------------------------------------------*\  
* Internal function prototypes  
@@ -51,6 +52,7 @@ static const luaL_Reg mod[] = {  
{"tcp", tcp_open},  
{"udp", udp_open},  
{"select", select_open},  
+ {"iface", if_open},  
{NULL, NULL}  
};  
 
diff --git a/src/makefile b/src/makefile  
index 8d3521e..09d4882 100644  
--- a/src/makefile  
+++ b/src/makefile  
@@ -262,6 +262,7 @@ SOCKET_OBJS= \  
auxiliar.$(O) \  
options.$(O) \  
inet.$(O) \  
+ if.$(O) \  
$(SOCKET) \  
except.$(O) \  
select.$(O) \  
@@ -387,6 +388,7 @@ auxiliar.$(O): auxiliar.c auxiliar.h  
buffer.$(O): buffer.c buffer.h io.h timeout.h  
except.$(O): except.c except.h  
inet.$(O): inet.c inet.h socket.h io.h timeout.h usocket.h  
+if.$(O): if.c if.h  
io.$(O): io.c io.h timeout.h  
luasocket.$(O): luasocket.c luasocket.h auxiliar.h except.h \  
timeout.h buffer.h io.h inet.h socket.h usocket.h tcp.h \  
diff --git a/src/options.c b/src/options.c  
index 8ac2a14..1c73e6f 100644  
--- a/src/options.c  
+++ b/src/options.c  
@@ -3,6 +3,9 @@  
* LuaSocket toolkit  
\*=========================================================================*/  
#include <string.h>  
+#include <sys/types.h>  
+#include <sys/socket.h>  
+#include <net/if.h>  
 
#include "lauxlib.h"  
 
@@ -285,6 +288,12 @@ static int opt_ip6_setmembership(lua_State *L, p_socket ps, int level, int name)  
if (!lua_isnil(L, -1)) {  
if (lua_isnumber(L, -1)) {  
val.ipv6mr_interface = (unsigned int) lua_tonumber(L, -1);  
+ } else if (lua_isstring(L, -1)) {  
+ if (!(val.ipv6mr_interface = if_nametoindex(lua_tostring(L, -1)))) {  
+ lua_pushnil(L);  
+ lua_pushstring(L, "nonexistent interface");  
+ return 2;  
+ }  
} else  
luaL_argerror(L, -1, "number 'interface' field expected");  
}  
--  
1.8.4.rc3  
 
 
file:a/libs/avahi/Makefile (deleted)
#  
# Copyright (C) 2007-2012 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
ifeq ($(BUILD_VARIANT),dbus)  
PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)/dbus/$(PKG_NAME)-$(PKG_VERSION)  
PKG_ALT_DIR=$(BUILD_DIR)/$(PKG_NAME)/nodbus/$(PKG_NAME)-$(PKG_VERSION)  
else  
PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)/nodbus/$(PKG_NAME)-$(PKG_VERSION)  
PKG_ALT_DIR=$(BUILD_DIR)/$(PKG_NAME)/dbus/$(PKG_NAME)-$(PKG_VERSION)  
endif  
 
 
PKG_NAME:=avahi  
PKG_VERSION:=0.6.31  
PKG_RELEASE:=5  
 
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=http://avahi.org/download/  
PKG_MD5SUM:=2f22745b8f7368ad5a0a3fddac343f2d  
 
PKG_BUILD_DEPENDS:=libexpat libdaemon libgdbm intltool/host libpthread dbus  
 
PKG_FIXUP:=autoreconf  
PKG_REMOVE_FILES:=autogen.sh  
 
PKG_INSTALL:=1  
PKG_BUILD_PARALLEL:=1  
 
 
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/avahi/Default  
SECTION:=net  
CATEGORY:=Network  
TITLE:=An mDNS/DNS-SD implementation  
URL:=http://www.avahi.org/  
endef  
 
define Package/avahi/Default/description  
Avahi is an mDNS/DNS-SD (aka RendezVous/Bonjour/ZeroConf)  
implementation (library). It facilitates  
service discovery on a local network -- this means that  
you can plug your laptop or computer into a network and  
instantly be able to view other people who you can chat with,  
find printers to print to or find files being shared.  
This kind of technology is already found in MacOS X  
(branded 'Rendezvous', 'Bonjour' and sometimes 'ZeroConf')  
and is very convenient.  
endef  
 
define Package/libavahi  
$(call Package/avahi/Default)  
SECTION:=libs  
CATEGORY:=Libraries  
DEPENDS:=+libpthread +SSP_SUPPORT:libssp  
TITLE+= (library)  
endef  
 
define Package/libavahi/description  
$(call Package/avahi/Default/description)  
.  
The libavahi package contains the mDNS/DNS-SD shared libraries,  
used by other programs. Specifically, it provides  
libavahi-core and libavahi-common libraries.  
By default, it is built without D-Bus support,  
i.e. the --disable-dbus configuration flag is set.  
To enable D-Bus support, select the package  
libavahi-dbus-support.  
endef  
 
define Package/avahi-autoipd  
$(call Package/avahi/Default)  
SUBMENU:=IP Addresses and Names  
DEPENDS:=+libdaemon  
TITLE:=IPv4LL network address configuration daemon  
endef  
 
define Package/avahi-autoipd/description  
$(call Package/avahi/Default/description)  
.  
This package implements IPv4LL, "Dynamic Configuration of IPv4 Link-Local  
Addresses" (IETF RFC3927), a protocol for automatic IP address configuration  
from the link-local 169.254.0.0/16 range without the need for a central  
server. It is primarily intended to be used in ad-hoc networks which lack a  
DHCP server.  
endef  
 
define Package/avahi-daemon  
$(call Package/avahi/Default)  
SUBMENU:=IP Addresses and Names  
ifeq ($(BUILD_VARIANT),dbus)  
DEPENDS:=+libavahi +libexpat +librt +libdaemon +libdbus  
else  
DEPENDS:=+libavahi +libexpat +librt +libdaemon  
endif  
TITLE+= (daemon)  
endef  
 
define Package/avahi-daemon/description  
$(call Package/avahi/Default/description)  
.  
This package contains an mDNS/DNS-SD daemon.  
endef  
 
define Package/avahi-daemon/conffiles  
/etc/avahi/avahi-daemon.conf  
/etc/avahi/services/http.service  
/etc/avahi/services/ssh.service  
endef  
 
define Package/avahi-dnsconfd  
$(call Package/avahi/Default)  
SUBMENU:=IP Addresses and Names  
DEPENDS:=+libavahi +libdaemon  
TITLE:=A Unicast DNS server from mDNS/DNS-SD configuration daemon  
endef  
 
define Package/avahi-dnsconfd/description  
$(call Package/avahi/Default/description)  
.  
This package contains a Unicast DNS server from mDNS/DNS-SD configuration  
daemon, which may be used to configure conventional DNS servers using mDNS  
in a DHCP-like fashion. Especially useful on IPv6.  
endef  
 
define Package/libavahi-dbus-support  
$(call Package/avahi/Default)  
SECTION:=libs  
CATEGORY:=Libraries  
VARIANT:=dbus  
DEPENDS:=+dbus +libavahi  
TITLE+= (D-Bus support)  
endef  
 
define Package/libavahi-dbus-support/description  
$(call Package/libavahi/description)  
.  
The libavahi-dbus-support package enables  
D-Bus support in avahi, needed to support  
the libavahi-client library and avahi-utils.  
Selecting this package modifies the build configuration  
so that avahi packages are built with support for D-BUS enabled;  
it does not generate a separate binary of its own.  
It also automatically adds the D-Bus package to the build.  
libavahi-dbus-support is selected automatically if you select  
libavahi-client or avahi-utils.  
endef  
 
define Package/libavahi-client  
$(call Package/avahi/Default)  
SECTION:=libs  
CATEGORY:=Libraries  
DEPENDS:=+libavahi-dbus-support +avahi-daemon  
TITLE+= (libavahi-client library)  
endef  
 
define Package/libavahi-client/description  
$(call Package/avahi/Default/description)  
.  
This packages adds the libavahi-client library.  
It also automatically adds the required  
libavahi-dbus-support and the avahi-daemon packages.  
For more information please see the avahi documentation.  
endef  
 
define Package/avahi-utils  
$(call Package/avahi/Default)  
SUBMENU:=IP Addresses and Names  
DEPENDS:=+libavahi-client +libgdbm  
TITLE+= (utilities)  
endef  
 
define Package/avahi-utils/description  
$(call Package/avahi/Default/description)  
.  
This packages installs the following avahi utility programs:  
avahi-browse, avahi-publish, avahi-resolve, avahi-set-host-name.  
It also automatically adds the required libavahi-client package.  
For more information please see the avahi documentation.  
endef  
 
TARGET_CFLAGS += $(FPIC) -DGETTEXT_PACKAGE  
 
CONFIGURE_ARGS+= \  
--enable-shared \  
--enable-static \  
--disable-glib \  
--disable-gobject \  
--disable-qt3 \  
--disable-qt4 \  
--disable-gtk \  
--disable-gtk3 \  
--with-xml=expat \  
--disable-dbm \  
--enable-gdbm \  
--enable-libdaemon \  
--disable-python \  
--disable-pygtk \  
--disable-python-dbus \  
--disable-mono \  
--disable-monodoc \  
--disable-doxygen-doc \  
--disable-doxygen-dot \  
--disable-doxygen-man \  
--disable-doxygen-rtf \  
--disable-doxygen-xml \  
--disable-doxygen-chm \  
--disable-doxygen-chi \  
--disable-doxygen-html \  
--disable-doxygen-ps \  
--disable-doxygen-pdf \  
--disable-xmltoman \  
--with-distro=none \  
--with-avahi-user=nobody \  
--with-avahi-group=nogroup \  
--with-autoipd-user=nobody \  
--with-autoipd-group=nogroup  
 
ifneq ($(CONFIG_SSP_SUPPORT),y)  
CONFIGURE_ARGS+= \  
--disable-stack-protector  
endif  
 
ifeq ($(BUILD_VARIANT),dbus)  
CONFIGURE_ARGS += \  
--enable-dbus  
else  
CONFIGURE_ARGS += \  
--disable-dbus  
endif  
 
CONFIGURE_VARS+= \  
CFLAGS="$$$$CFLAGS -DNDEBUG -DDISABLE_SYSTEMD" \  
ac_cv_header_sys_capability_h=no \  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-* $(1)/usr/lib/  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/  
endef  
 
define Package/libavahi-dbus-support/install  
$(INSTALL_DIR) $(1)/etc/dbus-1/system.d  
$(CP) $(PKG_INSTALL_DIR)/etc/dbus-1/system.d/* $(1)/etc/dbus-1/system.d  
endef  
 
define Package/libavahi/install  
# The next line removes the ".build" file from the "other" build.  
# The effect is that, if the other build is re-selected in the future,  
# the build system will be forced to replace all the code in the  
# installer packages, removing anything from the current build.  
# "Other" means this: if the current build is "dbus", the other is "nodebus",  
# and if the current build is "nodbus", the other is "dbus".  
$(RM) -f $(PKG_ALT_DIR)/.built  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-{common,core}.so.* $(1)/usr/lib/  
endef  
 
define Package/libavahi-client/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-client.so.* $(1)/usr/lib/  
endef  
 
define Package/avahi-utils/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/  
endef  
 
define Package/avahi-autoipd/install  
$(INSTALL_DIR) $(1)/etc/avahi  
$(CP) $(PKG_INSTALL_DIR)/etc/avahi/avahi-autoipd.action $(1)/etc/avahi/  
$(INSTALL_DIR) $(1)/usr/sbin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/avahi-autoipd $(1)/usr/sbin/  
endef  
 
define Package/avahi-daemon/install  
$(INSTALL_DIR) $(1)/usr/sbin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/avahi-daemon $(1)/usr/sbin/  
$(INSTALL_DIR) $(1)/etc/avahi  
$(INSTALL_DATA) ./files/avahi-daemon.conf $(1)/etc/avahi/  
$(INSTALL_DIR) $(1)/etc/avahi/services  
$(INSTALL_DATA) ./files/service-http $(1)/etc/avahi/services/http.service  
$(INSTALL_DATA) ./files/service-ssh $(1)/etc/avahi/services/ssh.service  
$(INSTALL_DIR) $(1)/etc/init.d  
$(INSTALL_BIN) ./files/avahi-daemon.init $(1)/etc/init.d/avahi-daemon  
endef  
 
define Package/avahi-dnsconfd/install  
$(INSTALL_DIR) $(1)/etc/avahi  
$(CP) $(PKG_INSTALL_DIR)/etc/avahi/avahi-dnsconfd.action $(1)/etc/avahi/  
$(INSTALL_DIR) $(1)/usr/sbin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/avahi-dnsconfd $(1)/usr/sbin/  
endef  
 
$(eval $(call BuildPackage,libavahi-client))  
$(eval $(call BuildPackage,avahi-utils))  
$(eval $(call BuildPackage,libavahi-dbus-support))  
$(eval $(call BuildPackage,libavahi))  
$(eval $(call BuildPackage,avahi-autoipd))  
$(eval $(call BuildPackage,avahi-daemon))  
$(eval $(call BuildPackage,avahi-dnsconfd))  
 
[server]  
#host-name=foo  
#domain-name=local  
use-ipv4=yes  
use-ipv6=no  
check-response-ttl=no  
use-iff-running=no  
 
[publish]  
publish-addresses=yes  
publish-hinfo=yes  
publish-workstation=no  
publish-domain=yes  
#publish-dns-servers=192.168.1.1  
#publish-resolv-conf-dns-servers=yes  
 
[reflector]  
enable-reflector=no  
reflect-ipv=no  
 
[rlimits]  
#rlimit-as=  
rlimit-core=0  
rlimit-data=4194304  
rlimit-fsize=0  
rlimit-nofile=30  
rlimit-stack=4194304  
rlimit-nproc=3  
 
#!/bin/sh /etc/rc.common  
# Copyright (C) 2006 OpenWrt.org  
START=61  
 
BIN=avahi-daemon  
DEFAULT=/etc/default/$BIN  
OPTIONS="-D"  
RUN_D=/var/run/$BIN  
 
start() {  
[ -f $DEFAULT ] && . $DEFAULT  
mkdir -p $RUN_D  
$BIN $OPTIONS  
}  
 
stop() {  
$BIN -k  
}  
 
reload() {  
$BIN -r  
}  
 
 
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->  
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">  
<service-group>  
<name replace-wildcards="yes">Web Server on %h</name>  
<service>  
<type>_http._tcp</type>  
<port>80</port>  
<txt-record>path=/</txt-record>  
</service>  
</service-group>  
 
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->  
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">  
<service-group>  
<name replace-wildcards="yes">Secure Shell on %h</name>  
<service>  
<type>_ssh._tcp</type>  
<port>22</port>  
</service>  
</service-group>  
 
--- a/Makefile.am  
+++ b/Makefile.am  
@@ -75,8 +75,7 @@ SUBDIRS = \  
avahi-compat-howl \  
avahi-autoipd \  
avahi-ui \  
- avahi-ui-sharp \  
- po  
+ avahi-ui-sharp  
 
DX_INPUT = \  
$(srcdir)/avahi-common/address.h \  
--- a/avahi-python/avahi-discover/Makefile.am  
+++ b/avahi-python/avahi-discover/Makefile.am  
@@ -38,7 +38,6 @@ if HAVE_GDBM  
pythonscripts += \  
avahi-discover  
desktop_DATA += avahi-discover.desktop  
-@INTLTOOL_DESKTOP_RULE@  
avahi_discover_PYTHON += __init__.py  
endif  
 
@@ -46,7 +45,6 @@ if HAVE_DBM  
pythonscripts += \  
avahi-discover  
desktop_DATA += avahi-discover.desktop  
-@INTLTOOL_DESKTOP_RULE@  
avahi_discover_PYTHON += __init__.py  
endif  
 
--- a/avahi-ui/Makefile.am  
+++ b/avahi-ui/Makefile.am  
@@ -78,7 +78,6 @@ endif  
 
bin_PROGRAMS = bssh  
desktop_DATA += bssh.desktop bvnc.desktop  
-@INTLTOOL_DESKTOP_RULE@  
 
bssh_SOURCES = bssh.c  
 
@@ -106,6 +105,4 @@ endif # HAVE_GLIB  
endif  
endif  
 
-@INTLTOOL_DESKTOP_RULE@  
-  
CLEANFILES = $(desktop_DATA) $(desktop_DATA_in)  
--- a/configure.ac  
+++ b/configure.ac  
@@ -23,7 +23,7 @@ AC_INIT([avahi],[0.6.29],[avahi (at) lis  
AC_CONFIG_SRCDIR([avahi-core/server.c])  
AC_CONFIG_MACRO_DIR([common])  
AC_CONFIG_HEADERS([config.h])  
-AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax])  
+AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability tar-pax])  
 
AC_SUBST(PACKAGE_URL, [http://avahi.org/])  
 
@@ -43,8 +43,6 @@ AC_SUBST(HOWL_COMPAT_VERSION, [0.9.8])  
 
AC_CANONICAL_HOST  
 
-AM_SILENT_RULES([yes])  
-  
AC_CHECK_PROG([STOW], [stow], [yes], [no])  
 
AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [  
@@ -412,12 +410,6 @@ if test "x$have_kqueue" = "xyes" ; then  
AC_DEFINE([HAVE_KQUEUE], 1, [Enable BSD kqueue() usage])  
fi  
 
-IT_PROG_INTLTOOL([0.35.0])  
-GETTEXT_PACKAGE=avahi  
-AC_SUBST([GETTEXT_PACKAGE])  
-AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])  
-AM_GLIB_GNU_GETTEXT  
-  
avahilocaledir='${prefix}/${DATADIRNAME}/locale'  
AC_SUBST(avahilocaledir)  
 
 
file:a/libs/expat/Makefile (deleted)
#  
# Copyright (C) 2006 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=expat  
PKG_VERSION:=2.1.0  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_MD5SUM:=dd7dab7a5fea97d2a6a43f511449b7cd  
PKG_SOURCE_URL:=@SF/expat  
 
PKG_LICENSE:=MIT  
PACKAGE_LICENSE_FILES:=COPYING  
 
PKG_FIXUP:=autoreconf  
PKG_REMOVE_FILES:=conftools/libtool.m4  
 
PKG_BUILD_PARALLEL:=1  
 
include $(INCLUDE_DIR)/host-build.mk  
include $(INCLUDE_DIR)/package.mk  
 
define Package/libexpat  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=An XML parsing library  
URL:=http://expat.sourceforge.net/  
endef  
 
define Package/libexpat/description  
A fast, non-validating, stream-oriented XML parsing library.  
endef  
 
 
TARGET_CFLAGS += $(FPIC)  
 
CONFIGURE_ARGS += \  
--enable-shared \  
--enable-static  
 
define Build/Compile  
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) DESTDIR="$(PKG_INSTALL_DIR)" install  
endef  
 
define Host/Install  
$(MAKE) -C $(HOST_BUILD_DIR) install  
endef  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include/expat{,_external}.h $(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libexpat.{a,so*} $(1)/usr/lib/  
endef  
 
define Package/libexpat/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libexpat.so.* $(1)/usr/lib/  
endef  
 
$(eval $(call HostBuild))  
$(eval $(call BuildPackage,libexpat))  
 
file:a/libs/faad2/Config.in (deleted)
config FAAD2_ALWAYS_USE_FLOATING_POINT  
depends on PACKAGE_libfaad2  
bool "Build FAAD2 to use floating-point math even if using soft floats."  
default n  
help  
By default, libfaad2 will be built to use fixed point rather  
than floating point math if emulated floating point operations  
are being used. (See the CONFIG_SOFT_FLOAT option.) Set this  
option if you would like to use floating point math regardless  
of whether floating point emulation is in use.  
 
For the best real-time decoding ability, leave this option off.  
 
file:a/libs/faad2/Makefile (deleted)
#  
# Copyright (C) 2008 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=faad2  
PKG_VERSION:=2.7  
PKG_RELEASE:=2  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2  
PKG_SOURCE_URL:=@SF/faac  
PKG_MD5SUM:=4c332fa23febc0e4648064685a3d4332  
 
PKG_CONFIG_DEPENDS := \  
CONFIG_SOFT_FLOAT \  
CONFIG_FAAD2_ALWAYS_USE_FLOATING_POINT  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
TARGET_CFLAGS += $(FPIC)  
 
# Use fixed point math, if we're using soft floats, and the user didn't  
# specifically ask to use floats anyways.  
ifeq ($(CONFIG_SOFT_FLOAT)-$(CONFIG_FAAD2_ALWAYS_USE_FLOATING_POINT),y-)  
TARGET_CFLAGS+= -DFIXED_POINT  
endif  
 
define Package/faad2/Default  
URL:=http://www.audiocoding.com/faad2.html  
TITLE:=Freeware Advanced Audio Decoder  
endef  
 
define Package/faad2/Default/description  
FAAD2 is the fastest ISO AAC audio decoder available.  
FAAD2 correctly decodes all MPEG-4 and MPEG-2 MAIN,  
LOW, LTP, LD and ER object type AAC files.  
endef  
 
define Package/faad2  
$(call Package/faad2/Default)  
SECTION:=sound  
CATEGORY:=Sound  
TITLE+=player  
DEPENDS:=+libfaad2  
endef  
 
define Package/faad2/description  
$(call Package/faad2/Default/description)  
This package contains a binary to play AAC or MP4 files.  
endef  
 
define Package/libfaad2  
$(call Package/faad2/Default)  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE+=library  
DEPENDS:=@BUILD_PATENTED  
MENU:=1  
endef  
 
define Package/libfaad2/config  
source "$(SOURCE)/Config.in"  
endef  
 
define Package/libfaad2/description  
$(call Package/faad2/Default/description)  
This package contains the library.  
endef  
 
define Build/Configure  
# This replacement were do according to many comments on the web because of gcc 3.4.5 version (.6 included).-  
# wich doesn't recognices the -iquote parameter to AM_CFLAGS  
($(SED) 's,-iquote $$$$(top_srcdir),-I$$$$(top_srcdir),g' $(PKG_BUILD_DIR)/libfaad/Makefile.am; \  
$(SED) 's,-iquote $$$$(top_srcdir),-I$$$$(top_srcdir),g' $(PKG_BUILD_DIR)/libfaad/Makefile.in);  
(cd $(PKG_BUILD_DIR); rm -rf config.{cache,status}; \  
autoreconf -vif \  
);  
$(call Build/Configure/Default, \  
--with-mp4v2 \  
--without-xmms \  
, \  
FAAD2_CPPFLAGS="-fno-builtin-cos -fno-builtin-sin -fno-builtin-log" \  
)  
endef  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfaad.{a,so*} $(1)/usr/lib/  
endef  
 
define Package/faad2/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/faad $(1)/usr/bin/  
endef  
 
define Package/libfaad2/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfaad.so.* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,faad2))  
$(eval $(call BuildPackage,libfaad2))  
 
file:a/libs/flac/Makefile (deleted)
#  
# Copyright (C) 2006-2009 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=flac  
PKG_VERSION:=1.2.1  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=@SF/flac  
PKG_MD5SUM:=  
PKG_INSTALL:=1  
 
PKG_LICENSE:=GFDLv1.2 GPLv2 LGPLv2.1 BSD-3c  
PKG_LICENSE_FILES:=README COPYING.FDL COPYING.GPL COPYING.LGPL COPYING.Xiph  
 
PKG_FIXUP:=autoreconf  
PKG_REMOVE_FILES:=autogen.sh aclocal.m4  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libflac  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=Free Lossless Audio Codec library  
URL:=http://flac.sourceforge.net/  
endef  
 
define Build/Configure  
$(call Build/Configure/Default, \  
--disable-cpplibs \  
--disable-sse \  
--disable-3dnow \  
--disable-altivec \  
--disable-doxgen-docs \  
--disable-local-xmms-plugin \  
--disable-xmms-plugin \  
--disable-ogg \  
--disable-oggtest \  
--disable-debug \  
)  
endef  
 
TARGET_CFLAGS += $(FPIC)  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/include/FLAC \  
$(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/libFLAC.{a,so*,la} \  
$(1)/usr/lib/  
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* \  
$(1)/usr/lib/pkgconfig/  
 
$(INSTALL_DIR) $(1)/usr/share/aclocal/  
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/share/aclocal/* \  
$(1)/usr/share/aclocal/  
endef  
 
define Package/libflac/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libFLAC.so* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libflac))  
 
--- a/Makefile.am  
+++ b/Makefile.am  
@@ -30,7 +30,7 @@  
 
AUTOMAKE_OPTIONS = foreign 1.7  
 
-SUBDIRS = doc include m4 man src examples test build obj  
+SUBDIRS = include m4 src build obj  
 
DISTCLEANFILES = libtool-disable-static  
 
--- a/Makefile.in  
+++ b/Makefile.in  
@@ -234,7 +234,7 @@ target_alias = @target_alias@  
 
AUTOMAKE_OPTIONS = foreign 1.7  
 
-SUBDIRS = doc include m4 man src examples test build obj  
+SUBDIRS = include m4 src build obj  
 
DISTCLEANFILES = libtool-disable-static  
 
--- a/src/Makefile.am  
+++ b/src/Makefile.am  
@@ -30,12 +30,6 @@ SUBDIRS = \  
metaflac \  
monkeys_audio_utilities \  
$(XMMS_DIRS) \  
- plugin_winamp2 \  
- test_grabbag \  
- test_libs_common \  
- test_libFLAC \  
- test_seeking \  
- test_streams \  
$(CPPLIBS_DIRS)  
 
EXTRA_DIST = \  
--- a/src/Makefile.in  
+++ b/src/Makefile.in  
@@ -221,7 +221,7 @@ target_alias = @target_alias@  
 
@FLaC__HAS_XMMS_TRUE@XMMS_DIRS = plugin_common plugin_xmms  
 
-@FLaC__WITH_CPPLIBS_TRUE@CPPLIBS_DIRS = libFLAC++ test_libFLAC++  
+@FLaC__WITH_CPPLIBS_TRUE@CPPLIBS_DIRS = libFLAC++  
 
SUBDIRS = \  
libFLAC \  
@@ -230,12 +230,6 @@ SUBDIRS = \  
metaflac \  
monkeys_audio_utilities \  
$(XMMS_DIRS) \  
- plugin_winamp2 \  
- test_grabbag \  
- test_libs_common \  
- test_libFLAC \  
- test_seeking \  
- test_streams \  
$(CPPLIBS_DIRS)  
 
 
@@ -256,9 +250,8 @@ RECURSIVE_TARGETS = info-recursive dvi-r  
check-recursive installcheck-recursive  
DIST_COMMON = $(srcdir)/Makefile.in Makefile.am  
DIST_SUBDIRS = libFLAC share flac metaflac monkeys_audio_utilities \  
- plugin_common plugin_xmms plugin_winamp2 test_grabbag \  
- test_libs_common test_libFLAC test_seeking test_streams \  
- libFLAC++ test_libFLAC++  
+ plugin_common plugin_xmms plugin_winamp2 \  
+ libFLAC++  
all: all-recursive  
 
.SUFFIXES:  
 
--- a/src/Makefile.am  
+++ b/src/Makefile.am  
@@ -26,9 +26,6 @@ endif  
SUBDIRS = \  
libFLAC \  
share \  
- flac \  
- metaflac \  
- monkeys_audio_utilities \  
$(XMMS_DIRS) \  
$(CPPLIBS_DIRS)  
 
--- a/src/Makefile.in  
+++ b/src/Makefile.in  
@@ -226,9 +226,6 @@ target_alias = @target_alias@  
SUBDIRS = \  
libFLAC \  
share \  
- flac \  
- metaflac \  
- monkeys_audio_utilities \  
$(XMMS_DIRS) \  
$(CPPLIBS_DIRS)  
 
 
--- a/Makefile.am  
+++ b/Makefile.am  
@@ -34,6 +34,8 @@ SUBDIRS = include m4 src build obj  
 
DISTCLEANFILES = libtool-disable-static  
 
+ACLOCAL_AMFLAGS = -I m4  
+  
EXTRA_DIST = \  
COPYING.FDL \  
COPYING.GPL \  
 
--- a/src/libFLAC/Makefile.in  
+++ b/src/libFLAC/Makefile.in  
@@ -66,6 +66,7 @@ NORMAL_UNINSTALL = :  
PRE_UNINSTALL = :  
POST_UNINSTALL = :  
host_triplet = @host@  
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_FALSE@@FLaC__USE_ALTIVEC_TRUE@am__append_1 = -maltivec -mabi=altivec  
ACLOCAL = @ACLOCAL@  
ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@  
AMDEP_FALSE = @AMDEP_FALSE@  
@@ -234,13 +235,21 @@ target_alias = @target_alias@  
 
lib_LTLIBRARIES = libFLAC.la  
@DEBUG_TRUE@DEBUGCFLAGS = -DFLAC__OVERFLOW_DETECT  
+# Linux-gcc for PPC does not have -force_cpusubtype_ALL, it is Darwin-specific  
+#@@@ PPC optimizations temporarily disabled  
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_FALSE@CPUCFLAGS = \  
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_FALSE@ $(am__append_1) \  
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_FALSE@ -DFLAC__NO_ASM  
+  
+# FIXME: The following logic should be part of configure, not of Makefile.am  
+  
# The -force_cpusubtype_ALL is needed to insert a ppc64 instruction  
# into cpu.c with an asm().  
#@@@ PPC optimizations temporarily disabled  
-@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_TRUE@CPUCFLAGS = -faltivec -force_cpusubtype_ALL -DFLAC__NO_ASM  
-# Linux-gcc for PPC does not have -force_cpusubtype_ALL, it is Darwin-specific  
-#@@@ PPC optimizations temporarily disabled  
-@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_FALSE@CPUCFLAGS = -maltivec -mabi=altivec -DFLAC__NO_ASM  
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_TRUE@CPUCFLAGS = -faltivec \  
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_TRUE@ -force_cpusubtype_ALL \  
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_TRUE@ -DFLAC__NO_ASM \  
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_TRUE@ $(am__append_1)  
 
AM_CFLAGS = $(DEBUGCFLAGS) $(CPUCFLAGS) @OGG_CFLAGS@  
@FLaC__CPU_PPC_TRUE@@FLaC__NO_ASM_FALSE@ARCH_SUBDIRS = ppc  
--- a/src/libFLAC/Makefile.am  
+++ b/src/libFLAC/Makefile.am  
@@ -32,6 +32,9 @@ lib_LTLIBRARIES = libFLAC.la  
if DEBUG  
DEBUGCFLAGS = -DFLAC__OVERFLOW_DETECT  
endif  
+  
+# FIXME: The following logic should be part of configure, not of Makefile.am  
+  
if FLaC__CPU_PPC  
# The -force_cpusubtype_ALL is needed to insert a ppc64 instruction  
# into cpu.c with an asm().  
@@ -40,8 +43,12 @@ if FLaC__SYS_DARWIN  
CPUCFLAGS = -faltivec -force_cpusubtype_ALL -DFLAC__NO_ASM  
else  
# Linux-gcc for PPC does not have -force_cpusubtype_ALL, it is Darwin-specific  
+CPUCFLAGS =  
+if FLaC__USE_ALTIVEC  
+CPUCFLAGS += -maltivec -mabi=altivec  
+endif  
#@@@ PPC optimizations temporarily disabled  
-CPUCFLAGS = -maltivec -mabi=altivec -DFLAC__NO_ASM  
+CPUCFLAGS += -DFLAC__NO_ASM  
endif  
endif  
 
 
file:a/libs/intltool/Makefile (deleted)
#  
# Copyright (C) 2009 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=intltool  
PKG_LIBVER:=0.40  
PKG_VERSION:=$(PKG_LIBVER).6  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2  
PKG_SOURCE_URL:=@GNOME/intltool/$(PKG_LIBVER)  
PKG_MD5SUM:=69bc0353323112f42ad4f9cf351bc3e5  
 
PKG_HOST_ONLY:=1  
 
include $(INCLUDE_DIR)/host-build.mk  
include $(INCLUDE_DIR)/package.mk  
 
define Package/intltool  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=set of tools to centralize translation using GNU gettext  
URL:=http://www.freedesktop.org/wiki/Software/intltool  
BUILDONLY:=1  
endef  
 
define Package/intltool/description  
intltool is a set of tools to centralize translation of many different  
file formats using GNU gettext-compatible PO files.  
endef  
 
define Require/perl-xml-parser  
perl -e 'use XML::Parser;'  
endef  
 
$(eval $(call Require,perl-xml-parser, \  
Please install Perl XML::Parser \  
))  
 
$(eval $(call BuildPackage,intltool))  
$(eval $(call HostBuild))  
 
#  
# Copyright (C) 2006-2010 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=audiofile  
PKG_VERSION:=0.2.7  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:= \  
http://github.com/downloads/mpruett/audiofile/ \  
http://www.68k.org/~michael/audiofile/  
PKG_MD5SUM:=a39be317a7b1971b408805dc5e371862  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libaudiofile  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=Audio File library  
URL:=http://www.68k.org/~michael/audiofile/  
endef  
 
define Package/libaudiofile/description  
The audiofile library allows the processing of audio data to and from audio  
files of many common formats (currently AIFF, AIFF-C, WAVE, NeXT/Sun, BICS,  
and raw data).  
endef  
 
CONFIGURE_ARGS+= \  
--enable-shared \  
--enable-static \  
--with-build-cc="$(HOSTCC)" \  
 
TARGET_CFLAGS+= $(FPIC) -std=c99  
 
define Build/InstallDev  
$(INSTALL_DIR) $(2)/bin  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/bin/audiofile-config \  
$(2)/bin/  
$(SED) \  
's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' \  
$(2)/bin/audiofile-config  
 
$(INSTALL_DIR) $(1)/usr/include  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/include/{af_vfs,audiofile,aupvlist}.h \  
$(1)/usr/include/  
 
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/libaudiofile.{la,a,so*} \  
$(1)/usr/lib/  
 
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/pkgconfig/audiofile.pc \  
$(1)/usr/lib/pkgconfig/  
endef  
 
define Package/libaudiofile/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/libaudiofile.so.* \  
$(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libaudiofile))  
 
--- a/audiofile-config.in  
+++ b/audiofile-config.in  
@@ -45,7 +45,9 @@ while test $# -gt 0; do  
echo $includes  
;;  
--libs)  
- libdirs=-L@libdir@  
+ if test @libdir@ != /usr/libdir ; then  
+ libdirs=-L@libdir@  
+ fi  
echo $libdirs -laudiofile -lm  
;;  
*)  
 
file:a/libs/libdaemon/Makefile (deleted)
#  
# Copyright (C) 2006-2014 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libdaemon  
PKG_VERSION:=0.14  
PKG_RELEASE:=3  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=http://0pointer.de/lennart/projects/libdaemon/  
PKG_MD5SUM:=509dc27107c21bcd9fbf2f95f5669563  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libdaemon  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=A lightweight C library that eases the writing of UNIX daemons  
URL:=http://0pointer.de/lennart/projects/libdaemon/  
endef  
 
define Package/libdaemon/description  
libdaemon is a lightweight C library that eases the writing of UNIX daemons.  
It consists of the following parts:  
- A wrapper around fork() which does the correct daemonization procedure of a process  
- A wrapper around syslog() for simpler and compatible log output to Syslog or STDERR  
- An API for writing PID files  
- An API for serializing UNIX signals into a pipe for usage with select() or poll()  
- An API for running subprocesses with STDOUT and STDERR redirected to syslog  
 
APIs like these are used in most daemon software available. It is not that  
simple to get it done right and code duplication is not a goal.  
endef  
 
define Build/Configure  
$(call Build/Configure/Default, \  
--enable-shared \  
--enable-static \  
--disable-lynx \  
, \  
ac_cv_func_setpgrp_void=yes \  
)  
endef  
 
TARGET_CFLAGS += $(FPIC)  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include/libdaemon $(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libdaemon.a $(1)/usr/lib/  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libdaemon.so* $(1)/usr/lib/  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libdaemon.pc $(1)/usr/lib/pkgconfig/  
endef  
 
define Package/libdaemon/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libdaemon.so.* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libdaemon))  
 
From 013963ba35e8fe8897211c0acf5ee98f9a871fc1 Mon Sep 17 00:00:00 2001  
From: Michael Heimpold <mhei@heimpold.de>  
Date: Fri, 10 Jan 2014 19:38:51 +0100  
Subject: [PATCH] daemon_set_verbosity: fix erroneous error message  
 
When calling this function with a value other than LOG_DEBUG  
the error message was triggered erroneously.  
 
Signed-off-by: Michael Heimpold <mhei@heimpold.de>  
---  
 
libdaemon/dlog.c | 2 +-  
1 file changed, 1 insertion(+), 1 deletion(-)  
 
diff --git a/libdaemon/dlog.c b/libdaemon/dlog.c  
index 1cc0566..cc2b918 100644  
--- a/libdaemon/dlog.c  
+++ b/libdaemon/dlog.c  
@@ -42,7 +42,7 @@ static int daemon_verbosity_level = LOG_INFO;  
void daemon_set_verbosity(int verbosity_prio) {  
 
/* Allow using negative verbosity levels to hide _all_ messages */  
- if (verbosity_prio > 0 && (verbosity_prio & LOG_PRIMASK) != LOG_PRIMASK)  
+ if (verbosity_prio > 0 && (verbosity_prio & LOG_PRIMASK) != verbosity_prio)  
daemon_log(LOG_ERR, "The value %d is not a valid priority value", verbosity_prio);  
 
daemon_verbosity_level = verbosity_prio & LOG_PRIMASK;  
--  
1.7.10.4  
 
 
file:a/libs/libexif/Makefile (deleted)
#  
# Copyright (C) 2006-2014 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libexif  
PKG_VERSION:=0.6.21  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2  
PKG_SOURCE_URL:=@SF/libexif  
PKG_MD5SUM:=27339b89850f28c8f1c237f233e05b27  
 
PKG_LICENSE:=LGPLv2.1  
PKG_LICENSE_FILES:=COPYING  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libexif  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=library for jpeg files with exif tags  
URL:=http://libexif.sourceforge.net/  
endef  
 
define Package/libexif/description  
libexif is a library for parsing, editing, and saving EXIF data. It is  
intended to replace lots of redundant implementations in command-line  
utilities and programs with GUIs.  
endef  
 
CONFIGURE_ARGS+= \  
--enable-shared \  
--enable-static \  
--disable-rpath \  
--without-libiconv-prefix \  
--without-libintl-prefix \  
 
TARGET_CFLAGS += $(FPIC)  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include/libexif $(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libexif*.{a,so*} $(1)/usr/lib/  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libexif.pc $(1)/usr/lib/pkgconfig/  
endef  
 
define Package/libexif/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libexif*.so.* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libexif))  
 
--- a/Makefile.in  
+++ b/Makefile.in  
@@ -289,7 +289,7 @@ target_alias = @target_alias@  
top_build_prefix = @top_build_prefix@  
top_builddir = @top_builddir@  
top_srcdir = @top_srcdir@  
-SUBDIRS = m4m po libexif test doc binary contrib  
+SUBDIRS = m4m po libexif test binary contrib  
EXTRA_DIST = @PACKAGE_TARNAME@.spec README-Win32.txt libexif.pc.in \  
libexif-uninstalled.pc.in  
pkgconfigdir = $(libdir)/pkgconfig  
 
file:a/libs/libgcrypt/Makefile (deleted)
#  
# Copyright (C) 2005-2011 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libgcrypt  
PKG_VERSION:=1.5.3  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2  
PKG_SOURCE_URL:=ftp://ftp.gnupg.org/gcrypt/libgcrypt  
PKG_MD5SUM:=993159b2924ae7b0e4eaff0743c2db35  
 
PKG_FIXUP:=patch-libtool  
PKG_INSTALL:=1  
PKG_BUILD_PARALLEL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libgcrypt  
SECTION:=libs  
CATEGORY:=Libraries  
DEPENDS:=+libgpg-error  
TITLE:=GNU crypto library  
URL:=http://directory.fsf.org/security/libgcrypt.html  
endef  
 
define Package/libgcrypt/description  
This is a general purpose cryptographic library based on the code from  
GnuPG. It provides functions for all cryptograhic building blocks:  
symmetric ciphers (AES, DES, Arcfour, CAST5), hash algorithms (MD5, SHA-1,  
RIPE-MD160, SHA-224/256, SHA-384/512), MACs (HMAC for all hash  
algorithms), public key algorithms (RSA, DSA), large integer functions,  
random numbers and a lot of supporting functions. Some algorithms have  
been disabled to reduce size (Blowfish, Twofish, Serpent,  
RC2, SEED, Camellia, CRC, MD4, TIGER-192, Whirlpool, ElGamal, ECC).  
endef  
 
CONFIGURE_ARGS += \  
--enable-shared \  
--enable-static \  
--disable-asm \  
--with-gpg-error-prefix="$(STAGING_DIR)/usr" \  
--enable-digests="md5 rmd160 sha1 sha256 sha512" \  
--enable-ciphers="arcfour des aes cast5" \  
--enable-pubkey-ciphers="rsa dsa"  
 
TARGET_CFLAGS += $(FPIC)  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/bin $(2)/bin $(1)/usr/include $(1)/usr/lib $(1)/usr/share/aclocal  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/libgcrypt-config $(1)/usr/bin/  
$(CP) $(PKG_INSTALL_DIR)/usr/include/gcrypt*.h $(1)/usr/include/  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libgcrypt.{la,a,so*} $(1)/usr/lib/  
$(CP) $(PKG_INSTALL_DIR)/usr/share/aclocal/libgcrypt.m4 $(1)/usr/share/aclocal/  
$(SED) 's,^libdir=\"$$$${exec_prefix}/lib,libdir=\"$(STAGING_DIR)/usr/lib,g' $(1)/usr/bin/libgcrypt-config  
$(SED) 's,^includedir=\"$$$${prefix}/include/,includedir=\"$(STAGING_DIR)/usr/include/,g' $(1)/usr/bin/libgcrypt-config  
ln -sf $(STAGING_DIR)/usr/bin/libgcrypt-config $(2)/bin/  
endef  
 
define Package/libgcrypt/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libgcrypt.so.* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libgcrypt))  
 
#  
# Copyright (C) 2005-2011 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libgpg-error  
PKG_VERSION:=1.9  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2  
PKG_SOURCE_URL:=ftp://ftp.gnupg.org/gcrypt/libgpg-error  
PKG_MD5SUM:=521b98aa9395e7eaf0ef2236233a0796  
 
PKG_BUILD_PARALLEL:=1  
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libgpg-error  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=GnuPG error handling helper library  
URL:=http://www.gnupg.org/related_software/libgpg-error/  
endef  
 
define Package/libgpg-error/description  
An helper library for common error codes and descriptions.  
This is a library that defines common error values for all GnuPG  
components. Among these are GPG, GPGSM, GPGME, GPG-Agent, libgcrypt,  
Libksba, DirMngr, Pinentry, SmartCard Daemon and possibly more in the  
future.  
endef  
 
TARGET_CFLAGS += $(FPIC)  
 
CONFIGURE_ARGS += \  
--enable-shared \  
--enable-static \  
--disable-rpath  
 
define Build/InstallDev  
$(INSTALL_DIR) $(2)/bin $(1)/usr/bin  
$(INSTALL_BIN) \  
$(PKG_INSTALL_DIR)/usr/bin/gpg-error-config \  
$(2)/bin/  
$(SED) \  
's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' \  
$(2)/bin/gpg-error-config  
ln -sf $(STAGING_DIR)/host/bin/gpg-error-config $(1)/usr/bin/gpg-error-config  
 
$(INSTALL_DIR) $(1)/usr/include  
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/include/gpg-error.h \  
$(1)/usr/include/  
 
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/libgpg-error.{la,a,so*} \  
$(1)/usr/lib/  
 
$(INSTALL_DIR) $(1)/usr/share/aclocal  
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/share/aclocal/gpg-error.m4 \  
$(1)/usr/share/aclocal/  
endef  
 
define Package/libgpg-error/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/libgpg-error.so.* \  
$(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libgpg-error))  
 
file:a/libs/libid3tag/Makefile (deleted)
#  
# Copyright (C) 2006-2010 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libid3tag  
PKG_VERSION:=0.15.1b  
PKG_RELEASE:=3  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=@SF/mad  
PKG_MD5SUM:=e5808ad997ba32c498803822078748c3  
 
PKG_LICENSE:=GPLv2  
PKG_LICENSE_FILES:=COPYING  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libid3tag  
SECTION:=libs  
CATEGORY:=Libraries  
DEPENDS:=+zlib  
TITLE:=An ID3 tag manipulation library  
URL:=http://mad.sourceforge.net/  
endef  
 
define Package/libid3tag/description  
libid3tag is a library for reading and (eventually) writing ID3 tags, both  
ID3v1 and the various versions of ID3v2.  
endef  
 
TARGET_CFLAGS += $(FPIC)  
 
CONFIGURE_VARS += CC="$(TARGET_CC) $(TARGET_CFLAGS)"  
 
define Build/Configure  
$(call Build/Configure/Default, \  
--enable-shared \  
--enable-static \  
--disable-debugging \  
--disable-profiling \  
)  
endef  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include/id3tag.h $(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libid3tag.so* $(1)/usr/lib/  
endef  
 
define Package/libid3tag/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libid3tag.so.* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libid3tag))  
 
file:a/libs/libmad/Makefile (deleted)
#  
# Copyright (C) 2006-2010 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libmad  
PKG_VERSION:=0.15.1b  
PKG_RELEASE:=3  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=@SF/mad \  
ftp://ftp.mars.org/pub/mpeg/  
PKG_MD5SUM:=1be543bc30c56fb6bea1d7bf6a64e66c  
 
PKG_LICENSE:=GPLv2  
PKG_LICENSE_FILES:=COPYING  
 
PKG_FIXUP:=autoreconf  
 
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
FPM:=default  
ifeq ($(ARCH),armeb)  
FPM:=arm  
endif  
ifeq ($(ARCH),i386)  
FPM:=intel  
endif  
ifeq ($(ARCH),mipsel)  
FPM:=mips  
endif  
 
define Package/libmad  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=An high-quality MPEG audio decoding library  
URL:=http://www.underbit.com/products/mad/  
DEPENDS:=@BUILD_PATENTED  
endef  
 
define Package/libmad/description  
MAD is a high-quality MPEG audio decoder. It currently supports  
MPEG-1 and the MPEG-2 extension to lower sampling frequencies,  
as well as the de facto MPEG 2.5 format. All three audio layers -  
Layer I, Layer II, and Layer III (i.e. MP3) - are fully implemented.  
endef  
 
TARGET_CFLAGS += $(FPIC)  
 
CONFIGURE_ARGS+= \  
--enable-shared \  
--enable-static \  
--enable-fpm="$(FPM)" \  
--disable-debugging \  
--enable-speed \  
 
MAKE_FLAGS+= \  
CFLAGS="$(TARGET_CFLAGS)" \  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include/mad.h $(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libmad.{a,so*} $(1)/usr/lib/  
endef  
 
define Package/libmad/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libmad.so.* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libmad))  
 
diff -ur libmad-0.15.1b-orig/fixed.h libmad-0.15.1b/fixed.h  
--- libmad-0.15.1b-orig/fixed.h 2004-02-17 12:32:03.000000000 +1030  
+++ libmad-0.15.1b/fixed.h 2009-08-05 10:46:30.000000000 +0930  
@@ -299,6 +299,23 @@  
 
# elif defined(FPM_MIPS)  
 
+/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */  
+#if defined (__GNUC__) && defined (__GNUC_MINOR__)  
+#define __GNUC_PREREQ(maj, min) \  
+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))  
+#else  
+#define __GNUC_PREREQ(maj, min) 0  
+#endif  
+  
+#if __GNUC_PREREQ(4,4)  
+ typedef unsigned int u64_di_t __attribute__ ((mode (DI)));  
+# define MAD_F_MLX(hi, lo, x, y) \  
+ do { \  
+ u64_di_t __ll = (u64_di_t) (x) * (y); \  
+ hi = __ll >> 32; \  
+ lo = __ll; \  
+ } while (0)  
+#else  
/*  
* This MIPS version is fast and accurate; the disposition of the least  
* significant bit depends on OPT_ACCURACY via mad_f_scale64().  
@@ -328,6 +345,7 @@  
: "%r" ((x) >> 12), "r" ((y) >> 16))  
# define MAD_F_MLZ(hi, lo) ((mad_fixed_t) (lo))  
# endif  
+#endif /* __GNU_PREREQ(4,4) */  
 
# if defined(OPT_SPEED)  
# define mad_f_scale64(hi, lo) \  
diff -ur libmad-0.15.1b-orig/mad.h libmad-0.15.1b/mad.h  
--- libmad-0.15.1b-orig/mad.h 2004-02-17 13:25:44.000000000 +1030  
+++ libmad-0.15.1b/mad.h 2009-08-05 10:42:40.000000000 +0930  
@@ -344,6 +344,23 @@  
 
# elif defined(FPM_MIPS)  
 
+/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */  
+#if defined (__GNUC__) && defined (__GNUC_MINOR__)  
+#define __GNUC_PREREQ(maj, min) \  
+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))  
+#else  
+#define __GNUC_PREREQ(maj, min) 0  
+#endif  
+  
+#if __GNUC_PREREQ(4,4)  
+ typedef unsigned int u64_di_t __attribute__ ((mode (DI)));  
+# define MAD_F_MLX(hi, lo, x, y) \  
+ do { \  
+ u64_di_t __ll = (u64_di_t) (x) * (y); \  
+ hi = __ll >> 32; \  
+ lo = __ll; \  
+ } while (0)  
+#else  
/*  
* This MIPS version is fast and accurate; the disposition of the least  
* significant bit depends on OPT_ACCURACY via mad_f_scale64().  
@@ -373,6 +390,7 @@  
: "%r" ((x) >> 12), "r" ((y) >> 16))  
# define MAD_F_MLZ(hi, lo) ((mad_fixed_t) (lo))  
# endif  
+#endif /* __GNU_PREREQ(4,4) */  
 
# if defined(OPT_SPEED)  
# define mad_f_scale64(hi, lo) \  
 
file:a/libs/libmms/Makefile (deleted)
#  
# Copyright (C) 2010-2011 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libmms  
PKG_VERSION:=0.6  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=@SF/libmms  
PKG_MD5SUM:=650ad04a4c8bd79246390b81b29680b6  
 
PKG_LICENSE:=LGPLv2.1  
PKG_LICENSE_FILES:=COPYING.LIB  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
include $(INCLUDE_DIR)/nls.mk  
 
define Package/libmms  
SECTION:=libs  
CATEGORY:=Libraries  
DEPENDS:=+glib2  
TITLE:=MMS stream protocol library  
URL:=http://libmms.sourceforge.net  
endef  
 
define Package/libmms/description  
LibMMS is a common library for parsing mms:// and mmsh:// type network streams.  
These are commonly used to stream Windows Media Video content over the web.  
LibMMS itself is only for receiving MMS stream,  
it doesn't handle sending at all.  
endef  
 
TARGET_CFLAGS += $(FPIC)  
 
define Build/Configure  
(cd $(PKG_BUILD_DIR); ./autogen.sh );  
$(call Build/Configure/Default)  
endef  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include/libmms $(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libmms.{a,so*} $(1)/usr/lib/  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig  
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc \  
$(1)/usr/lib/pkgconfig  
endef  
 
define Package/libmms/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libmms.so.* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libmms))  
 
diff -burN libmms-0.6.original/src/mms.c libmms-0.6.modified/src/mms.c  
--- libmms-0.6.original/src/mms.c 2010-05-31 12:13:04.000000000 +0200  
+++ libmms-0.6.modified/src/mms.c 2012-06-25 12:44:06.000000000 +0200  
@@ -40,7 +40,6 @@  
#include <errno.h>  
#include <stdlib.h>  
#include <time.h>  
-#include <iconv.h>  
 
/********** logging **********/  
#define lprintf(...) if (getenv("LIBMMS_DEBUG")) fprintf(stderr, __VA_ARGS__)  
@@ -447,17 +446,21 @@  
return 1;  
}  
 
-static int string_utf16(iconv_t url_conv, char *dest, char *src, int dest_len)  
+static int string_utf16(char *dest, char *src, int dest_len)  
{  
char *ip = src, *op = dest;  
size_t ip_len = strlen(src);  
- size_t op_len = dest_len - 2; /* reserve 2 bytes for 0 termination */  
 
- if (iconv(url_conv, &ip, &ip_len, &op, &op_len) == (size_t)-1) {  
+ if (2 * ip_len + 2 > dest_len) {  
lprintf("mms: Error converting uri to unicode: %s\n", strerror(errno));  
return 0;  
}  
 
+ while (ip_len--) {  
+ *op++ = *ip++;  
+ *op++ = 0x00;  
+ }  
+  
/* 0 terminate the string */  
*op++ = 0;  
*op++ = 0;  
@@ -1012,7 +1015,6 @@  
*/  
/* FIXME: got somewhat broken during xine_stream_t->(void*) conversion */  
mms_t *mms_connect (mms_io_t *io, void *data, const char *url, int bandwidth) {  
- iconv_t url_conv = (iconv_t)-1;  
mms_t *this;  
int res;  
uint32_t openid;  
@@ -1071,12 +1073,6 @@  
goto fail;  
}  
 
- url_conv = iconv_open("UTF-16LE", "UTF-8");  
- if (url_conv == (iconv_t)-1) {  
- lprintf("mms: could not get iconv handle to convert url to unicode\n");  
- goto fail;  
- }  
-  
/*  
* let the negotiations begin...  
*/  
@@ -1088,7 +1084,7 @@  
mms_gen_guid(this->guid);  
sprintf(this->str, "NSPlayer/7.0.0.1956; {%s}; Host: %s", this->guid,  
this->host);  
- res = string_utf16(url_conv, this->scmd_body + command_buffer.pos, this->str,  
+ res = string_utf16(this->scmd_body + command_buffer.pos, this->str,  
CMD_BODY_LEN - command_buffer.pos);  
if(!res)  
goto fail;  
@@ -1117,7 +1113,7 @@  
mms_buffer_put_32 (&command_buffer, 0x00000000);  
mms_buffer_put_32 (&command_buffer, 0x00989680);  
mms_buffer_put_32 (&command_buffer, 0x00000002);  
- res = string_utf16(url_conv, this->scmd_body + command_buffer.pos,  
+ res = string_utf16(this->scmd_body + command_buffer.pos,  
"\\\\192.168.0.129\\TCP\\1037",  
CMD_BODY_LEN - command_buffer.pos);  
if(!res)  
@@ -1156,7 +1152,7 @@  
mms_buffer_put_32 (&command_buffer, 0x00000000); /* ?? */  
mms_buffer_put_32 (&command_buffer, 0x00000000); /* ?? */  
 
- res = string_utf16(url_conv, this->scmd_body + command_buffer.pos,  
+ res = string_utf16(this->scmd_body + command_buffer.pos,  
this->uri, CMD_BODY_LEN - command_buffer.pos);  
if(!res)  
goto fail;  
@@ -1266,7 +1262,6 @@  
}  
}  
 
- iconv_close(url_conv);  
lprintf("mms: connect: passed\n");  
 
return this;  
@@ -1280,8 +1275,6 @@  
gnet_uri_delete(this->guri);  
if (this->uri)  
free(this->uri);  
- if (url_conv != (iconv_t)-1)  
- iconv_close(url_conv);  
 
free (this);  
return NULL;  
 
#  
# Copyright (C) 2011 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libmpdclient  
PKG_VERSION:=2.4  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2  
PKG_SOURCE_URL:=https://sourceforge.net/projects/musicpd/files/libmpdclient/$(PKG_VERSION)/  
#PKG_SOURCE_URL:=@SF/musicpd/files/libmpdclient/$(PKG_VERSION)  
PKG_MD5SUM:=8c166c5212dd95d538d3a35bb9ad4634  
 
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libmpdclient  
TITLE:=libmpdclient  
SECTION:=libs  
CATEGORY:=Libraries  
URL:=http://mpd.wikia.com/wiki/ClientLib:libmpdclient  
DEPENDS:=  
endef  
 
define Package/libmpdclient/description  
A stable, documented, asynchronous API library for interfacing MPD in the C, C++ & Objective C languages.  
endef  
 
TARGET_CFLAGS+="-std=gnu99"  
 
#TARGET_LDFLAGS+=-lpthread  
 
define Build/Configure  
$(call Build/Configure/Default)  
endef  
 
define Build/InstallDev  
$(INSTALL_DIR) \  
$(1)/usr/include \  
$(1)/usr/lib \  
$(1)/usr/lib/pkgconfig  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/* \  
$(1)/usr/lib/  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/include/* \  
$(1)/usr/include/  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/pkgconfig \  
$(1)/usr/lib/  
endef  
 
define Package/libmpdclient/install  
$(INSTALL_DIR) \  
$(1)/usr/lib  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/libmpdclient.so* \  
$(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libmpdclient))  
 
file:a/libs/libmpeg2/Makefile (deleted)
#  
# Copyright (C) 2011 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libmpeg2  
PKG_VERSION:=0.5.1  
PKG_RELEASE:=1  
 
PKG_SOURCE:=libmpeg2-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=http://libmpeg2.sourceforge.net/files/  
PKG_MD5SUM:=0f92c7454e58379b4a5a378485bbd8ef  
 
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libmpeg2  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=MPEG-1 & -2 decoding library  
URL:=http://libmpeg2.sourceforge.net/  
MAINTAINER:=W. Michael Petullo <mike@flyn.org>  
endef  
 
define Package/libmpeg2/decription  
Libmpeg2 is a library for decoding MPEG-1 and MPEG-2 video streams  
endef  
 
CONFIGURE_ARGS += \  
--disable-sdl \  
--without-x \  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/include/mpeg2dec \  
$(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/libmpeg2{,convert}.{a,so*} \  
$(1)/usr/lib/  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig  
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libmpeg2{,convert}.pc \  
$(1)/usr/lib/pkgconfig/  
endef  
 
define Package/libmpeg2/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/libmpeg2{,convert}.so.* \  
$(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libmpeg2))  
 
--- a/libmpeg2/motion_comp_altivec.c  
+++ b/libmpeg2/motion_comp_altivec.c  
@@ -25,6 +25,8 @@  
 
#ifdef ARCH_PPC  
 
+#ifdef __I_WANT_ALTIVEC__  
+  
#ifdef HAVE_ALTIVEC_H  
#include <altivec.h>  
#endif  
@@ -1007,4 +1009,6 @@ static void MC_avg_xy_8_altivec (uint8_t  
 
MPEG2_MC_EXTERN (altivec)  
 
+#endif /* __I_WANT_ALTIVEC__ */  
+  
#endif  
--- a/libmpeg2/idct_altivec.c  
+++ b/libmpeg2/idct_altivec.c  
@@ -25,6 +25,8 @@  
 
#ifdef ARCH_PPC  
 
+#ifdef __I_WANT_ALTIVEC__  
+  
#ifdef HAVE_ALTIVEC_H  
#include <altivec.h>  
#endif  
@@ -283,4 +285,6 @@ void mpeg2_idct_altivec_init (void)  
}  
}  
 
+#endif /* __I_WANT_ALTIVEC__ */  
+  
#endif  
--- a/libmpeg2/idct.c  
+++ b/libmpeg2/idct.c  
@@ -251,11 +251,13 @@ void mpeg2_idct_init (uint32_t accel)  
} else  
#endif  
#ifdef ARCH_PPC  
+#ifdef __I_WANT_ALTIVEC__  
if (accel & MPEG2_ACCEL_PPC_ALTIVEC) {  
mpeg2_idct_copy = mpeg2_idct_copy_altivec;  
mpeg2_idct_add = mpeg2_idct_add_altivec;  
mpeg2_idct_altivec_init ();  
} else  
+#endif /* __I_WANT_ALTIVEC__ */  
#endif  
#ifdef ARCH_ALPHA  
if (accel & MPEG2_ACCEL_ALPHA_MVI) {  
--- a/libmpeg2/motion_comp.c  
+++ b/libmpeg2/motion_comp.c  
@@ -43,9 +43,11 @@ void mpeg2_mc_init (uint32_t accel)  
else  
#endif  
#ifdef ARCH_PPC  
+#ifdef __I_WANT_ALTIVEC__  
if (accel & MPEG2_ACCEL_PPC_ALTIVEC)  
mpeg2_mc = mpeg2_mc_altivec;  
else  
+#endif /* __I_WANT_ALTIVEC__ */  
#endif  
#ifdef ARCH_ALPHA  
if (accel & MPEG2_ACCEL_ALPHA)  
 
diff -urN libmpeg2-0.5.1/libmpeg2/motion_comp_arm_s.S libmpeg2-0.5.1.new/libmpeg2/motion_comp_arm_s.S  
--- libmpeg2-0.5.1/libmpeg2/motion_comp_arm_s.S 2008-07-09 21:16:05.000000000 +0200  
+++ libmpeg2-0.5.1.new/libmpeg2/motion_comp_arm_s.S 2012-07-30 15:22:58.664964215 +0200  
@@ -19,6 +19,15 @@  
@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA  
 
 
+@ Data preload is supported only by ARM V5TE and above  
+  
+#if (defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_3__) \  
+ || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \  
+ || defined (__ARM_ARCH_4T__) || defined (__ARM_ARCH_5__) \  
+ || defined (__ARM_ARCH_5T__))  
+.macro pld reg  
+.endm  
+#endif  
.text  
 
@ ----------------------------------------------------------------  
 
file:a/libs/libogg/Makefile (deleted)
#  
# Copyright (C) 2008-2013 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libogg  
PKG_VERSION:=1.3.1  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz  
PKG_SOURCE_URL:=http://downloads.xiph.org/releases/ogg/  
PKG_MD5SUM:=ca25d8da0ddfc8c6cbbf78d847a209fe  
 
PKG_LICENSE:=BSD-3c  
PKG_LICENSE_FILES:=COPYING  
 
PKG_FIXUP:=autoreconf  
 
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libogg  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=libogg  
URL:=http://xiph.org/ogg/  
endef  
 
define Package/libogg/description  
Ogg project codecs use the Ogg bitstream format to arrange the raw,  
compressed bitstream into a more robust, useful form. For example,  
the Ogg bitstream makes seeking, time stamping and error recovery  
possible, as well as mixing several sepearate, concurrent media  
streams into a single physical bitstream.  
endef  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include/ogg/  
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/ogg/* $(1)/usr/include/ogg/  
$(INSTALL_DIR) $(1)/usr/lib/  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{so*,a,la} $(1)/usr/lib/  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig/  
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/  
$(INSTALL_DIR) $(1)/usr/share/aclocal/  
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/aclocal/* $(1)/usr/share/aclocal/  
endef  
 
define Package/libogg/install  
$(INSTALL_DIR) $(1)/usr/lib/  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so.* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libogg))  
 
file:a/libs/liboil/Makefile (deleted)
#  
# Copyright (C) 2007-2010 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=liboil  
PKG_VERSION:=0.3.17  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=http://liboil.freedesktop.org/download/  
PKG_MD5SUM:=47dc734f82faeb2964d97771cfd2e701  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/liboil  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=simple functions optimized for various CPUs  
URL:=http://liboil.freedesktop.org/wiki/  
DEPENDS:=+librt  
endef  
 
define Package/liboil/description  
Liboil is a library of simple functions that are optimized for various CPUs.  
These functions are generally loops implementing simple algorithms, such as  
converting an array of N integers to floating-point numbers or multiplying  
and summing an array of N numbers. Such functions are candidates for significant  
optimization using various techniques, especially by using extended instructions  
provided by modern CPUs (Altivec, MMX, SSE, etc.).  
endef  
 
CONFIGURE_ARGS += \  
--enable-shared \  
--enable-static \  
 
TARGET_CFLAGS += $(FPIC)  
 
# XXX: VFP_CFLAGS is set to '-mfpu=vfp' on arm by configure, but that breaks  
# final linking stages, so override it until we find why  
MAKE_FLAGS += \  
VFP_CFLAGS="" \  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include/liboil-0.3/* $(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/liboil-0.3.{a,so*} $(1)/usr/lib/  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/liboil-0.3.pc $(1)/usr/lib/pkgconfig/  
endef  
 
define Package/liboil/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/liboil-0.3.so.* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,liboil))  
 
--- a/Makefile.am  
+++ b/Makefile.am  
@@ -1,7 +1,7 @@  
 
AUTOMAKE_OPTIONS = foreign  
 
-SUBDIRS = liboil testsuite examples doc  
+SUBDIRS = liboil  
 
EXTRA_DIST = COPYING autogen.sh gtk-doc.make HACKING BUG-REPORTING  
 
--- a/Makefile.in  
+++ b/Makefile.in  
@@ -278,7 +278,7 @@ top_build_prefix = @top_build_prefix@  
top_builddir = @top_builddir@  
top_srcdir = @top_srcdir@  
AUTOMAKE_OPTIONS = foreign  
-SUBDIRS = liboil testsuite examples doc  
+SUBDIRS = liboil  
EXTRA_DIST = COPYING autogen.sh gtk-doc.make HACKING BUG-REPORTING  
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc  
pkgconfig_DATA = liboil-$(LIBOIL_MAJORMINOR).pc  
 
--- a/liboil.pc.in  
+++ b/liboil.pc.in  
@@ -1,7 +1,7 @@  
prefix=@prefix@  
exec_prefix=@exec_prefix@  
libdir=@libdir@  
-includedir=@includedir@/liboil-@LIBOIL_MAJORMINOR@  
+includedir=@includedir@  
toolsdir=${exec_prefix}/bin  
 
 
@@ -9,6 +9,6 @@ Name: liboil-@LIBOIL_MAJORMINOR@  
Description: Library of Optimized Inner Loops  
Version: @VERSION@  
Libs: -L${libdir} -loil-@LIBOIL_MAJORMINOR@ @LIBM@ @LIBRT@  
-Cflags: -I${includedir}  
+Cflags: -I${includedir}/liboil-@LIBOIL_MAJORMINOR@  
 
 
 
file:a/libs/libosip2/Makefile (deleted)
#  
# Copyright (C) 2006-2011 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libosip2  
PKG_VERSION:=3.5.0  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=@GNU/osip  
PKG_MD5SUM:=7691546f6b3349d10007fc1aaff0f4e0  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
PKG_BUILD_PARALLEL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libosip2  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=GNU oSIP library  
URL:=http://www.gnu.org/software/osip/  
DEPENDS:=+libpthread  
endef  
 
define Package/libosip2description  
GNU oSIP library, a Session Initiation Protocol (SIP) implementation.  
endef  
 
TARGET_CFLAGS += $(FPIC)  
 
define Build/Configure  
$(call Build/Configure/Default, \  
--enable-shared \  
--enable-static \  
--disable-debug \  
--disable-trace \  
--enable-pthread \  
--enable-semaphore \  
)  
endef  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include/osip{,parser}2 $(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libosip{,parser}2.{a,so*} $(1)/usr/lib/  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libosip2.pc $(1)/usr/lib/pkgconfig/  
endef  
 
define Package/libosip2/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libosip{,parser}2.so $(PKG_INSTALL_DIR)/usr/lib/libosip{,parser}2.so.* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libosip2))  
 
--- a/Makefile.am  
+++ b/Makefile.am  
@@ -1,3 +1,5 @@  
+ACLOCAL_AMFLAGS = -I scripts  
+  
EXTRA_DIST = README BUGS FEATURES HISTORY autogen.sh libosip2.pc.in  
 
SUBDIRS = include src scripts help platform  
 
file:a/libs/libsigc++/Makefile (deleted)
#  
# Copyright (C) 2006-2012 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libsigc++  
PKG_VERSION:=2.2.10  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz  
PKG_SOURCE_URL:=@GNOME/libsigc++/2.2  
PKG_MD5SUM:=73419b477f3bb9ddb9905c88a92f4b4c  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libsigcxx  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=typesafe callback system for standard C++  
URL:=http://libsigc.sourceforge.net/  
DEPENDS:=+libstdcpp  
endef  
 
define Package/libsigcxx/description  
It allows you to define signals and to connect those signals to any  
callback function, either global or a member function, regardless of  
whether it is static or virtual.  
endef  
 
TARGET_CFLAGS += $(FPIC)  
 
TARGET_CPPFLAGS += \  
-fno-strict-aliasing -fno-inline \  
 
CONFIGURE_ARGS += \  
--enable-shared \  
--enable-static \  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include/sigc++-2.0 $(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsigc-2.0.{a,so*} $(1)/usr/lib/  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/sigc++-2.0 $(1)/usr/lib/  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/sigc++-2.0.pc $(1)/usr/lib/pkgconfig/  
endef  
 
define Package/libsigcxx/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsigc-2.0.so.* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libsigcxx))  
 
--- a/Makefile.am  
+++ b/Makefile.am  
@@ -22,7 +22,7 @@ doc_subdirs = docs  
else  
doc_subdirs =  
endif  
-SUBDIRS = sigc++ tests examples $(doc_subdirs)  
+SUBDIRS = sigc++  
 
sigc_configdir = $(libdir)/$(SIGCXX_MODULE_NAME)/include  
nodist_sigc_config_HEADERS = sigc++config.h  
--- a/Makefile.in  
+++ b/Makefile.in  
@@ -116,7 +116,7 @@ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGE  
distdir dist dist-all distcheck  
ETAGS = etags  
CTAGS = ctags  
-DIST_SUBDIRS = sigc++ tests examples docs  
+DIST_SUBDIRS = sigc++  
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)  
distdir = $(PACKAGE)-$(VERSION)  
top_distdir = $(distdir)  
 
file:a/libs/libssh2/Makefile (deleted)
#  
# Copyright (C) 2012 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libssh2  
PKG_VERSION:=1.4.3  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=http://www.libssh2.org/download  
PKG_MD5SUM:=071004c60c5d6f90354ad1b701013a0b  
 
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libssh2  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=SSH2 library  
URL:=http://www.libssh2.org/  
DEPENDS:=+libopenssl +zlib  
endef  
 
define Package/libssh2/description  
libssh2 is a client-side C library implementing the SSH2 protocol.  
endef  
 
TARGET_CFLAGS += $(FPIC)  
 
CONFIGURE_ARGS += \  
--disable-examples-build \  
--with-libssl-prefix=$(STAGING_DIR)/usr  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(INSTALL_DIR) $(1)/usr/lib  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig  
$(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libssh2.so* $(1)/usr/lib/  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libssh2.pc $(1)/usr/lib/pkgconfig/  
endef  
 
define Package/libssh2/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libssh2.so* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libssh2))  
 
file:a/libs/libtheora/Makefile (deleted)
#  
# Copyright (C) 2008-2012 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libtheora  
PKG_VERSION:=1.1.1  
PKG_RELEASE:=1  
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2  
PKG_SOURCE_URL:=http://downloads.xiph.org/releases/theora/  
PKG_MD5SUM:=292ab65cedd5021d6b7ddd117e07cd8e  
PKG_FIXUP:=autoreconf  
 
PKG_BUILD_DEPENDS:=libvorbis  
 
include $(INCLUDE_DIR)/package.mk  
 
PKG_INSTALL=1  
 
define Package/libtheora  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=libtheora  
URL:=http://xiph.org/theora/  
DEPENDS:=+libogg  
endef  
 
define Package/libtheora/description  
Theora is Xiph.Org's first publicly released video codec, intended  
for use within the Foundation's Ogg multimedia streaming system.  
Theora is derived directly from On2's VP3 codec; Currently the  
encoders are nearly identical, but Theora will make use of new  
features supported by the decoder to improve over what is  
is possible with VP3.  
endef  
 
define Build/Configure  
$(call Build/Configure/Default, \  
--disable-examples \  
--disable-oggtest \  
--disable-vorbistest \  
--disable-sdltest \  
)  
endef  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include/theora/  
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/theora/* $(1)/usr/include/theora/  
$(INSTALL_DIR) $(1)/usr/lib/  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{so*,a,la} $(1)/usr/lib/  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig/  
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/  
endef  
 
define Package/libtheora/install  
$(INSTALL_DIR) $(1)/usr/lib/  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libtheora))  
 
diff -urN libtheora-1.1.1/Makefile.am libtheora-1.1.1.new/Makefile.am  
--- libtheora-1.1.1/Makefile.am 2009-07-14 01:55:02.000000000 +0200  
+++ libtheora-1.1.1.new/Makefile.am 2012-12-05 14:21:06.103521554 +0100  
@@ -8,7 +8,7 @@  
EXAMPLES_DIR =  
endif  
 
-SUBDIRS = lib include doc tests m4 $(EXAMPLES_DIR)  
+SUBDIRS = lib include m4 $(EXAMPLES_DIR)  
 
 
# we include the whole debian/ dir in EXTRA_DIST because there's a problem  
diff -urN libtheora-1.1.1/Makefile.in libtheora-1.1.1.new/Makefile.in  
--- libtheora-1.1.1/Makefile.in 2009-10-01 20:04:07.000000000 +0200  
+++ libtheora-1.1.1.new/Makefile.in 2012-12-05 14:21:18.239521864 +0100  
@@ -164,7 +164,7 @@  
@THEORA_ENABLE_EXAMPLES_TRUE@EXAMPLES_DIR = examples  
@THEORA_ENABLE_EXAMPLES_FALSE@EXAMPLES_DIR =  
 
-SUBDIRS = lib include doc tests m4 $(EXAMPLES_DIR)  
+SUBDIRS = lib include m4 $(EXAMPLES_DIR)  
 
# we include the whole debian/ dir in EXTRA_DIST because there's a problem  
# with autotools and HFS+ MacOSX file systems that caused debian/Makefile.am  
@@ -200,7 +200,7 @@  
missing mkinstalldirs theora-uninstalled.pc.in theora.pc.in \  
theoradec-uninstalled.pc.in theoradec.pc.in \  
theoraenc-uninstalled.pc.in theoraenc.pc.in  
-DIST_SUBDIRS = lib include doc tests m4 examples  
+DIST_SUBDIRS = lib include m4 examples  
all: config.h  
$(MAKE) $(AM_MAKEFLAGS) all-recursive  
 
 
--- libtheora-1.1.1/configure.ac 2009-10-01 20:00:33.000000000 +0200  
+++ libtheora-1.1.1.new/configure.ac 2012-12-05 14:22:26.319523608 +0100  
@@ -313,11 +313,6 @@  
dnl check for SDL  
HAVE_SDL=no  
 
-AM_PATH_SDL(,[  
- HAVE_SDL=yes  
- SDL_LIBS=`$SDL_CONFIG --libs`  
-],AC_MSG_WARN([*** Unable to find SDL -- Not compiling example players ***]))  
-  
dnl check for OSS  
HAVE_OSS=no  
AC_CHECK_HEADERS([sys/soundcard.h soundcard.h machine/soundcard.h],[  
 
file:a/libs/libupnp/Makefile (deleted)
#  
# Copyright (C) 2006-2011 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libupnp  
PKG_VERSION:=1.6.18  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2  
PKG_SOURCE_URL:=@SF/pupnp  
PKG_MD5SUM:=11c6484fd2e2927bf3b8d8108407ca56  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libupnp/Default  
SECTION:=libs  
CATEGORY:=Libraries  
URL:=http://pupnp.sourceforge.net/  
endef  
 
define Package/libupnp  
$(call Package/libupnp/Default)  
DEPENDS:=+libpthread  
TITLE:=UPnP SDK library  
MENU:=1  
endef  
 
define Package/libupnp/description  
The portable SDK for UPnP Devices (libupnp) provides developers with an API and  
open source code for building control points, devices, and bridges that are  
compliant with Version 1.0 of the Universal Plug and Play Device Architecture  
Specification.  
endef  
 
define Package/libupnp-sample  
$(call Package/libupnp/Default)  
DEPENDS:=libupnp  
TITLE:=UPnP sample applications  
endef  
 
define Package/libupnp-sample/description  
TVcontrolpoint & tvdevice sample applications run inside /etc/upnp-tvdevice/  
endef  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include/upnp $(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{ixml,threadutil,upnp}.{a,so*,la} $(1)/usr/lib/  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libupnp.pc $(1)/usr/lib/pkgconfig/  
endef  
 
define Package/libupnp/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{ixml,threadutil,upnp}.so.* $(1)/usr/lib/  
endef  
 
define Package/libupnp-sample/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/upnp/sample/.libs/* $(1)/usr/bin  
$(INSTALL_DIR) $(1)/etc/upnp-tvdevice/web  
$(INSTALL_DATA) $(PKG_BUILD_DIR)/upnp/sample/web/* $(1)/etc/upnp-tvdevice  
endef  
 
$(eval $(call BuildPackage,libupnp))  
$(eval $(call BuildPackage,libupnp-sample))  
 
file:a/libs/libvorbis/Makefile (deleted)
#  
# Copyright (C) 2008-2013 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libvorbis  
PKG_VERSION:=1.3.3  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz  
PKG_SOURCE_URL:=http://downloads.xiph.org/releases/vorbis/  
PKG_MD5SUM:=71b649d3e08e63ece16649df906ce8b9  
 
PKG_LICENSE:=BSD-3c  
PKG_LICENSE_FILES:=COPYING  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libvorbis  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=libvorbis  
URL:=http://xiph.org/vorbis/  
DEPENDS:=+libogg  
endef  
 
define Package/libvorbis/description  
Vorbis is a general purpose audio and music encoding format  
contemporary to MPEG-4's AAC and TwinVQ, the next generation beyond  
MPEG audio layer 3. Unlike the MPEG sponsored formats (and other  
proprietary formats such as RealAudio G2 and Windows' flavor of the  
month), the Vorbis CODEC specification belongs to the public domain.  
All the technical details are published and documented, and any  
software entity may make full use of the format without license  
fee, royalty or patent concerns.  
endef  
 
CONFIGURE_ARGS+= \  
--disable-oggtest \  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include/vorbis/  
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/vorbis/* $(1)/usr/include/vorbis/  
$(INSTALL_DIR) $(1)/usr/lib/  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{so*,a,la} $(1)/usr/lib/  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig/  
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/  
$(INSTALL_DIR) $(1)/usr/share/aclocal/  
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/aclocal/* $(1)/usr/share/aclocal/  
endef  
 
define Package/libvorbis/install  
$(INSTALL_DIR) $(1)/usr/lib/  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so.* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libvorbis))  
 
#  
# Copyright (C) 2006-2011 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libvorbisidec  
PKG_VERSION:=1.0.2+svn18153  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz  
PKG_SOURCE_URL:=http://ftp.de.debian.org/debian/pool/main/libv/libvorbisidec/  
PKG_MD5SUM:=4190859414c5d6760e316b5cf00fe7c5  
 
PKG_LICENSE:=BSD-3c  
PKG_LICENSE_FILES:=COPYING  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libvorbisidec  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=A fixed-point Ogg/Vorbis decoder library  
DEPENDS:= +libogg  
URL:=http://wiki.xiph.org/index.php/Tremor  
endef  
 
define Package/libvorbisidec/description  
libvorbisidec is "tremor", a fixed-point implementation of libvorbis.  
It also has libogg built-in. It is suitable as a replacement for  
libvorbis and libogg in tremor-aware applications.  
Tremor is a decoder only.  
endef  
 
TARGET_CFLAGS += $(FPIC)  
CONFIGURE_ARGS += --enable-shared --enable-static  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include/tremor $(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libvorbisidec.{a,so*} $(1)/usr/lib/  
endef  
 
define Package/libvorbisidec/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libvorbisidec.so.* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libvorbisidec))  
 
file:a/libs/libxml2/Makefile (deleted)
#  
# Copyright (C) 2006-2012 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libxml2  
PKG_VERSION:=2.9.1  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=http://gd.tuwien.ac.at/languages/libxml/ \  
http://xmlsoft.org/sources/ \  
ftp://fr.rpmfind.net/pub/libxml/  
PKG_MD5SUM:=9c0cfef285d5c4a5c80d00904ddab380  
 
PKG_LICENSE:=MIT  
PKG_LICENSE_FILES:=COPYING  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
PKG_BUILD_PARALLEL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libxml2  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=Gnome XML library  
URL:=http://xmlsoft.org/  
DEPENDS:=+libpthread +zlib  
endef  
 
define Package/libxml2/description  
A library for manipulating XML and HTML resources.  
endef  
 
TARGET_CFLAGS += $(FPIC)  
 
CONFIGURE_ARGS += \  
--enable-shared \  
--enable-static \  
--with-c14n \  
--without-catalog \  
--with-debug \  
--without-docbook \  
--with-html \  
--without-ftp \  
--without-http \  
--without-iconv \  
--without-iso8859x \  
--without-legacy \  
--with-output \  
--without-pattern \  
--without-push \  
--without-python \  
--with-reader \  
--without-readline \  
--without-regexps \  
--with-sax1 \  
--with-schemas \  
--with-threads \  
--with-tree \  
--with-valid \  
--with-writer \  
--with-xinclude \  
--with-xpath \  
--with-xptr \  
--with-zlib \  
--without-lzma  
 
define Build/InstallDev  
$(INSTALL_DIR) $(2)/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/xml2-config $(2)/bin/  
$(SED) 's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' $(2)/bin/xml2-config  
 
$(INSTALL_DIR) $(1)/usr/include  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/include/libxml2 \  
$(1)/usr/include/  
 
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/libxml2.{la,a,so*} \  
$(1)/usr/lib/  
 
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig  
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libxml-2.0.pc \  
$(1)/usr/lib/pkgconfig/  
 
$(INSTALL_DIR) $(2)/share/aclocal/  
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/share/aclocal/* \  
$(2)/share/aclocal  
endef  
 
define Package/libxml2/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/libxml2.so.* \  
$(1)/usr/lib/  
endef  
 
 
$(eval $(call BuildPackage,libxml2))  
 
file:a/libs/libxslt/Makefile (deleted)
#  
# Copyright (C) 2006-2011 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=libxslt  
PKG_VERSION:=1.1.28  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=http://xmlsoft.org/sources/ \  
ftp://fr.rpmfind.net/pub/libxml/  
PKG_MD5SUM:=9667bf6f9310b957254fdcf6596600b7  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libxslt  
SECTION:=libs  
CATEGORY:=Libraries  
DEPENDS:=+libxml2  
TITLE:=Gnome XSLT library  
URL:=http://xmlsoft.org/XSLT/  
endef  
 
define Package/libxslt/description  
A library for XML transformation using XSLT.  
endef  
 
define Package/libexslt  
SECTION:=libs  
CATEGORY:=Libraries  
DEPENDS:=+libxslt  
TITLE:=Gnome XSLT library Extention  
URL:=http://xmlsoft.org/XSLT/EXSLT/  
endef  
 
define Package/libexslt/description  
A extention for XSLT.  
endef  
 
define Package/xsltproc  
SECTION:=utils  
CATEGORY:=Utilities  
DEPENDS:=+libxml2 +libxslt +libexslt  
TITLE:=Gnome XSLT xsltproc Utility  
URL:=http://xmlsoft.org/XSLT/  
endef  
 
define Package/xsltproc/description  
XSLT XML transformation utility  
endef  
 
CONFIGURE_ARGS+= \  
--enable-shared \  
--enable-static \  
--without-python \  
--without-crypto \  
--without-debug \  
--without-mem-debug \  
--without-debugger \  
 
TARGET_CFLAGS += $(FPIC)  
 
define Build/InstallDev/Xslt  
$(INSTALL_DIR) $(1)/usr/bin $(2)/bin $(1)/usr/include/libxslt \  
$(1)/usr/include/libexslt $(1)/usr/lib \  
$(1)/usr/lib/pkgconfig $(2)/share/aclocal  
 
$(INSTALL_BIN) \  
$(PKG_INSTALL_DIR)/usr/bin/xslt-config \  
$(2)/bin/  
 
ln -sf $(STAGING_DIR)/host/bin/xslt-config $(1)/usr/bin/xslt-config  
 
$(SED) \  
's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' \  
$(2)/bin/xslt-config  
 
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/include/libxslt/* \  
$(1)/usr/include/libxslt/  
 
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/libxslt.{la,a,so*} \  
$(1)/usr/lib/  
 
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libxslt.pc \  
$(1)/usr/lib/pkgconfig/  
 
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/share/aclocal/* \  
$(2)/share/aclocal  
endef  
 
define Build/InstallDev/Exslt  
$(INSTALL_DIR) $(1)/usr/include/libexslt $(1)/usr/lib/pkgconfig  
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/include/libexslt/* \  
$(1)/usr/include/libexslt/  
 
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/libexslt.{la,a,so*} \  
$(1)/usr/lib/  
 
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libexslt.pc \  
$(1)/usr/lib/pkgconfig/  
endef  
 
define Build/InstallDev  
$(if $(CONFIG_PACKAGE_libxslt),$(call Build/InstallDev/Xslt,$(1),$(2)))  
$(if $(CONFIG_PACKAGE_libexslt),$(call Build/InstallDev/Exslt,$(1),$(2)))  
endef  
 
define Package/libxslt/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/libxslt.so.* \  
$(1)/usr/lib/  
endef  
 
define Package/libexslt/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/libexslt.so.* \  
$(1)/usr/lib/  
endef  
 
define Package/xsltproc/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) \  
$(PKG_INSTALL_DIR)/usr/bin/xsltproc \  
$(1)/usr/bin/  
endef  
 
$(eval $(call BuildPackage,libxslt))  
$(eval $(call BuildPackage,libexslt))  
$(eval $(call BuildPackage,xsltproc))  
 
file:a/libs/spandsp/Makefile (deleted)
#  
# Copyright (C) 2010-2012 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=spandsp  
PKG_VERSION:=0.0.6  
PKG_VERSION_SUFFIX:=pre17  
PKG_RELEASE:=2  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)$(PKG_VERSION_SUFFIX).tgz  
PKG_SOURCE_URL:=http://www.soft-switch.org/downloads/spandsp/  
PKG_MD5SUM:=cc860f77270cf3b881f8ccd42d2d0238  
 
PKG_INSTALL:=1  
PKG_BUILD_PARALLEL:=1  
PKG_FIXUP:=autoreconf  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libspandsp  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=spandsp library  
DEPENDS:=+libtiff  
endef  
 
TARGET_CFLAGS += $(FPIC)  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/{lib,include}  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libspandsp* $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/  
endef  
 
define Package/libspandsp/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libspandsp*so* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libspandsp))  
 
--- a/src/spandsp/fast_convert.h  
+++ b/src/spandsp/fast_convert.h  
@@ -197,7 +197,7 @@ extern "C"  
{  
return (long int) (x);  
}  
-#elif defined(__ppc__) || defined(__powerpc__)  
+#elif defined(THISISNOTDEFINEDYADDAYADDA)  
static __inline__ long int lfastrint(register double x)  
{  
int res[2];  
--- a/configure.ac  
+++ b/configure.ac  
@@ -152,9 +152,7 @@ AC_ARG_ENABLE(builtin_tiff,  
 
AC_FUNC_ERROR_AT_LINE  
AC_FUNC_VPRINTF  
-AC_FUNC_MALLOC  
AC_FUNC_MEMCMP  
-AC_FUNC_REALLOC  
AC_FUNC_SELECT_ARGTYPES  
 
AX_C99_FUNC_LRINT  
 
file:a/libs/tiff/Makefile (deleted)
#  
# Copyright (C) 2006-2012 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
# blogic@openwrt.org  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=tiff  
PKG_VERSION:=4.0.3  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=http://download.osgeo.org/libtiff  
PKG_MD5SUM:=051c1068e6a0627f461948c365290410  
 
PKG_FIXUP:=autoreconf  
PKG_REMOVE_FILES:=autogen.sh aclocal.m4  
 
PKG_INSTALL:=1  
 
PKG_CONFIG_DEPENDS:=CONFIG_PACKAGE_libtiffxx  
 
include $(INCLUDE_DIR)/uclibc++.mk  
include $(INCLUDE_DIR)/package.mk  
 
define Package/tiff/Default  
TITLE:=TIFF  
URL:=http://www.remotesensing.org/libtiff/  
endef  
 
define Package/libtiff  
$(call Package/tiff/Default)  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE+= library  
DEPENDS:=+zlib +libjpeg  
endef  
 
define Package/libtiffxx  
$(call Package/tiff/Default)  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE+= library(c++ bindings)  
DEPENDS:=+libtiff $(CXX_DEPENDS)  
endef  
 
define Package/tiff-utils  
$(call Package/tiff/Default)  
SECTION:=utils  
CATEGORY:=Utilities  
TITLE+= utilities  
DEPENDS:=+libtiff  
endef  
 
TARGET_CFLAGS += $(FPIC)  
 
define Build/Configure  
$(call Build/Configure/Default, \  
$(if $(CONFIG_PACKAGE_libtiffxx), \  
--enable-cxx, \  
--disable-cxx \  
) \  
--disable-lzma \  
--enable-ccitt \  
--enable-packbits \  
--enable-lzw \  
--enable-thunder \  
--enable-next \  
--enable-logluv \  
--enable-mdi \  
--enable-zlib \  
--enable-jpeg \  
--disable-old-jpeg \  
--disable-jbig \  
--without-x \  
)  
endef  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/{lib,include}  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib* $(1)/usr/lib/  
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/  
endef  
 
define Package/libtiff/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libtiff.so.* $(1)/usr/lib/  
endef  
 
define Package/libtiffxx/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libtiffxx.so.* $(1)/usr/lib/  
endef  
 
define Package/tiff-utils/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/  
endef  
 
$(eval $(call BuildPackage,libtiff))  
$(eval $(call BuildPackage,libtiffxx))  
$(eval $(call BuildPackage,tiff-utils))  
 
--- a/Makefile.am  
+++ b/Makefile.am  
@@ -25,7 +25,7 @@  
 
docdir = $(LIBTIFF_DOCDIR)  
 
-AUTOMAKE_OPTIONS = 1.12 dist-zip foreign  
+AUTOMAKE_OPTIONS = dist-zip foreign  
ACLOCAL_AMFLAGS = -I m4  
 
docfiles = \  
@@ -48,7 +48,7 @@ EXTRA_DIST = \  
 
dist_doc_DATA = $(docfiles)  
 
-SUBDIRS = port libtiff tools build contrib test man html  
+SUBDIRS = port libtiff tools build contrib  
 
release:  
(rm -f $(top_srcdir)/RELEASE-DATE && echo $(LIBTIFF_RELEASE_DATE) > $(top_srcdir)/RELEASE-DATE)  
--- a/test/Makefile.am  
+++ b/test/Makefile.am  
@@ -23,7 +23,7 @@  
 
# Process this file with automake to produce Makefile.in.  
 
-AUTOMAKE_OPTIONS = 1.12 color-tests parallel-tests foreign  
+AUTOMAKE_OPTIONS = color-tests parallel-tests foreign  
 
LIBTIFF = $(top_builddir)/libtiff/libtiff.la  
 
 
#  
# Copyright (C) 2013 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=shairport  
PKG_VERSION:=2014-05-08  
PKG_RELEASE:=$(PKG_SOURCE_VERSION)  
 
PKG_SOURCE_PROTO:=git  
PKG_SOURCE_URL:=git://github.com/abrasive/shairport.git  
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)  
PKG_SOURCE_VERSION:=078b21043cdcef6ffad7452db27f036770b23b0c  
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/shairport  
SECTION:=multimedia  
CATEGORY:=Multimedia  
DEPENDS:=+libpthread +avahi-utils +libopenssl +libao +libavahi-client \  
+alsa-utils  
TITLE:=ShairPort AirPort Express emulator  
endef  
 
define Package/shairport/description  
This program emulates an AirPort Express for the purpose of streaming  
music from iTunes and compatible iPods. It implements a server for the  
Apple RAOP protocol.  
ShairPort does not support AirPlay v2 (video and photo streaming).  
 
It supports multiple simultaneous streams, if your audio output chain  
(as detected by libao) does so.  
endef  
 
TARGET_CFLAGS += $(FPIC)  
 
LIBS:=-lao -lm -lcrypto -lpthread -lavahi-common -lavahi-client -lasound  
 
MAKE_FLAGS += \  
CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \  
LDFLAGS="$(TARGET_LDFLAGS) $(LIBS)"  
 
define Package/shairport/install  
$(INSTALL_DIR) $(1)/usr/sbin  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/shairport $(1)/usr/sbin/  
$(INSTALL_DIR) $(1)/etc/init.d/  
$(INSTALL_BIN) files/shairport.init $(1)/etc/init.d/shairport  
$(INSTALL_DIR) $(1)/etc/config  
$(INSTALL_CONF) files/shairport.config $(1)/etc/config/shairport  
endef  
 
$(eval $(call BuildPackage,shairport))  
 
config shairport  
option name 'AirPort'  
option password ''  
option port '5002'  
option buffer '256'  
option log '/var/log/shairport'  
option cmd_start ''  
option cmd_stop ''  
option cmd_wait '0'  
option audio_output ''  
option mdns ''  
 
#!/bin/sh /etc/rc.common  
# Copyright (C) 2013-2014 OpenWrt.org  
 
START=50  
USE_PROCD=1  
 
config_shairport() {  
local cfg="$1"  
 
local cfg_name  
local cfg_password  
local cfg_port  
local cfg_buffer  
local cfg_log  
local cfg_cmd_start  
local cfg_cmd_stop  
local cfg_cmd_wait  
local cfg_audio_output  
local cfg_mdns  
 
config_get cfg_name $cfg 'name' 'AirPort'  
config_get cfg_password $cfg 'password' ''  
config_get cfg_port $cfg 'port' '5002'  
config_get cfg_buffer $cfg 'buffer' '256'  
config_get cfg_log $cfg 'log' '/var/log/shairport'  
config_get cfg_cmd_start $cfg 'cmd_start' ''  
config_get cfg_cmd_stop $cfg 'cmd_stop' ''  
config_get_bool cfg_cmd_wait $cfg 'cmd_wait' '0'  
config_get cfg_audio_output $cfg 'audio_output' ''  
config_get cfg_mdns $cfg 'mdns' ''  
 
procd_open_instance  
 
procd_set_param command /usr/sbin/shairport  
procd_append_param command -a "$cfg_name"  
[ ! -z "$cfg_password" ] && procd_append_param command -k "$cfg_password"  
procd_append_param command -p $cfg_port  
procd_append_param command -b $cfg_buffer  
procd_append_param command -l $cfg_log  
[ ! -z "$cfg_cmd_start" ] && procd_append_param command -B "$cfg_cmd_start"  
[ ! -z "$cfg_cmd_stop" ] && procd_append_param command -E "$cfg_cmd_stop"  
[ "$cfg_cmd_wait" -eq 1 ] && procd_append_param command -w  
[ ! -z "$cfg_audio_output" ] && procd_append_param command -o "$cfg_audio_output"  
[ ! -z "$cfg_mdns" ] && procd_append_param command -m "$cfg_mdns"  
 
procd_set_param respawn  
procd_close_instance  
}  
 
start_service() {  
config_load shairport  
config_foreach config_shairport shairport  
}  
 
--- a/configure  
+++ b/configure  
@@ -59,7 +59,7 @@ do_pkg_config()  
 
do_pkg_config OpenSSL openssl  
do_pkg_config libao ao CONFIG_AO  
-do_pkg_config PulseAudio libpulse-simple CONFIG_PULSE  
+#do_pkg_config PulseAudio libpulse-simple CONFIG_PULSE  
do_pkg_config ALSA alsa CONFIG_ALSA  
do_pkg_config Avahi\ client avahi-client CONFIG_AVAHI  
 
 
file:a/net/krb5/Makefile (deleted)
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=krb5  
PKG_VERSION:=1.11  
PKG_RELEASE:=1  
 
PKG_SOURCE:=krb5-$(PKG_VERSION)-signed.tar  
PKG_SOURCE_URL:=http://web.mit.edu/kerberos/dist/krb5/$(PKG_VERSION)/  
PKG_MD5SUM:=1a13c53899806c4da99a798a04d25545  
 
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)  
 
PKG_BUILD_PARALLEL:=1  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
MAKE_PATH:=src  
 
define Package/krb5/Default  
SECTION:=net  
CATEGORY:=Network  
TITLE:=Kerberos  
URL:=http://web.mit.edu/kerberos/  
MAINTAINER:=W. Michael Petullo <mike@flyn.org>  
endef  
 
define Package/krb5-libs  
SECTION:=net  
CATEGORY:=Network  
TITLE:=Kerberos  
DEPENDS:=+libncurses  
TITLE:=Kerberos 5 Shared Libraries  
URL:=http://web.mit.edu/kerberos/  
MAINTAINER:=W. Michael Petullo <mike@flyn.org>  
endef  
 
define Package/krb5-server  
$(call Package/krb5/Default)  
DEPENDS:=+krb5-libs +libpthread  
TITLE:=Kerberos 5 Server  
endef  
 
define Package/krb5-client  
$(call Package/krb5/Default)  
DEPENDS:=+krb5-libs  
TITLE:=Kerberos 5 Client  
endef  
 
define Package/krb5/description  
Kerberos  
endef  
 
define Build/Prepare  
# Krb5 tarball contains signature and a second tarball  
# containing source code.  
tar xf "$(DL_DIR)/$(PKG_SOURCE)" -C "$(BUILD_DIR)"  
tar xzf "$(BUILD_DIR)/krb5-$(PKG_VERSION).tar.gz" -C "$(BUILD_DIR)"  
patch -p1 -d "$(PKG_BUILD_DIR)" < "$(PATCH_DIR)/001-fix-build-warning.patch"  
endef  
 
CONFIGURE_PATH = ./src  
 
CONFIGURE_VARS += \  
cross_compiling=yes \  
krb5_cv_attr_constructor_destructor=yes,yes \  
ac_cv_func_regcomp=yes \  
ac_cv_printf_positional=yes \  
ac_cv_file__etc_environment=no \  
ac_cv_file__etc_TIMEZONE=no  
 
CONFIGURE_ARGS += \  
--without-tcl \  
--without-libedit \  
--localstatedir=/etc  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include \  
$(1)/usr/include/krb5  
$(INSTALL_DIR) $(1)/usr  
$(CP) $(PKG_INSTALL_DIR)/usr/lib \  
$(1)/usr  
rm -f $(1)/usr/lib/libcom_err*  
endef  
 
define Package/krb5-libs/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(INSTALL_DIR) $(1)/usr/lib/krb5  
$(INSTALL_DIR) $(1)/usr/lib/krb5/plugins  
$(INSTALL_DIR) $(1)/usr/lib/krb5/plugins/kdb  
$(INSTALL_DIR) $(1)/usr/lib/krb5/plugins/libkrb5  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/krb5/plugins/kdb/db2.so $(1)/usr/lib/krb5/plugins/kdb  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib  
endef  
 
define Package/krb5-client/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/kdestroy $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/kinit $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/klist $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/kpasswd $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ksu $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/kvno $(1)/usr/bin  
$(INSTALL_DIR) $(1)/usr/sbin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/krb5-send-pr $(1)/usr/sbin  
endef  
 
# Removed some server-side software to reduce package size. This should be  
# put in a separate package if needed.  
define Package/krb5-server/install  
$(INSTALL_DIR) $(1)/etc/init.d  
$(INSTALL_BIN) ./files/krb5kdc $(1)/etc/init.d/krb5kdc  
# $(INSTALL_DIR) $(1)/usr/bin  
# $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sclient $(1)/usr/bin  
$(INSTALL_DIR) $(1)/usr/sbin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kadmin.local $(1)/usr/sbin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kadmind $(1)/usr/sbin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kdb5_util $(1)/usr/sbin  
# $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kprop $(1)/usr/sbin  
# $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kpropd $(1)/usr/sbin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/krb5kdc $(1)/usr/sbin  
# $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/sim_server $(1)/usr/sbin  
endef  
 
$(eval $(call BuildPackage,krb5-libs))  
$(eval $(call BuildPackage,krb5-server))  
$(eval $(call BuildPackage,krb5-client))  
 
file:a/net/krb5/files/krb5kdc (deleted)
#!/bin/sh /etc/rc.common  
# Copyright (C) 2009 OpenWrt.org  
 
START=60  
 
start() {  
mkdir -p /var/tmp  
mkdir -p /etc/krb5kdc  
 
[ -f /etc/krb5kdc/principal ] || ( echo; echo ) | kdb5_util create -s  
 
/usr/sbin/krb5kdc  
/usr/sbin/kadmind  
}  
 
stop() {  
killall krb5kdc 2> /dev/null  
killall kadmind 2> /dev/null  
}  
 
diff -ur krb5-1.11-vanilla/src/lib/krb5/krb/preauth2.c krb5-1.11/src/lib/krb5/krb/preauth2.c  
--- krb5-1.11-vanilla/src/lib/krb5/krb/preauth2.c 2012-12-18 03:47:05.000000000 +0100  
+++ krb5-1.11/src/lib/krb5/krb/preauth2.c 2013-02-18 03:53:20.580840173 +0100  
@@ -956,7 +956,7 @@  
size_t i, h;  
int out_pa_list_size = 0;  
krb5_pa_data **out_pa_list = NULL;  
- krb5_error_code ret, module_ret;  
+ krb5_error_code ret, module_ret = 0;  
krb5_responder_fn responder = opte->opt_private->responder;  
static const int paorder[] = { PA_INFO, PA_REAL };  
 
 
file:a/net/l2tpv3tun/Makefile (deleted)
#  
# Copyright (C) 2009-2010 Thomas Heil <heil@terminal-consulting.de>  
# Copyright (C) 2010-2011 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=l2tpv3tun  
PKG_VERSION:=0.2  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=ftp://www.openl2tp.org/releases  
PKG_MD5SUM:=d3b4a9af652cca9f34d3eea4a7ff6041  
 
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/kernel.mk  
include $(INCLUDE_DIR)/package.mk  
 
define Package/l2tpv3tun  
SECTION:=net  
CATEGORY:=Network  
DEPENDS:=+libnl-tiny +ip +kmod-l2tp +kmod-l2tp-ip +kmod-l2tp-eth  
TITLE:=Control utility for static L2TP v3 (Pseudowire) tunnels  
MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>  
URL:=http://www.openl2tp.org  
endef  
 
define Package/l2tpv3tun/description  
The l2tpv3tun utility is a command line frontend for configuring static  
L2TP v3 pseudowire tunnels.  
endef  
 
MAKE_FLAGS += \  
CC="$(TARGET_CC)" \  
CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/usr/include/libnl-tiny/" \  
LD="$(TARGET_CC)" \  
LDFLAGS="$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib/ -lnl-tiny"  
 
define Package/l2tpv3tun/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/l2tpv3tun $(1)/usr/bin/  
$(INSTALL_DIR) $(1)/lib/network  
$(INSTALL_BIN) ./files/l2tp.sh $(1)/lib/network/  
endef  
 
$(eval $(call BuildPackage,l2tpv3tun))  
 
# l2tp.sh - L2TPv3 tunnel backend  
# Copyright (c) 2010 OpenWrt.org  
 
l2tp_next_tunnel_id() {  
local max=0  
local val  
for val in $(  
local l  
l2tpv3tun show tunnel | while read l; do  
case "$l" in  
Tunnel*,*encap*) l="${l#Tunnel }"; echo "${l%%,*}";;  
esac  
done  
); do  
[ "$val" -gt "$max" ] && max="$val"  
done  
echo $((max + 1))  
}  
 
l2tp_next_session_id() {  
local tunnel="$1"  
local max=0  
local val  
for val in $(  
local l  
l2tpv3tun show session${tunnel:+ tunnel_id "$tunnel"} | while read l; do  
case "$l" in  
Session*in*) l="${l#Session }"; echo "${l%% *}";;  
esac  
done  
); do  
[ "$val" -gt "$max" ] && max="$val"  
done  
echo $((max + 1))  
}  
 
l2tp_tunnel_exists() {  
test -n "$(l2tpv3tun show tunnel tunnel_id "$1" 2>/dev/null)"  
}  
 
l2tp_session_exists() {  
test -n "$(l2tpv3tun show session tunnel_id "$1" session_id "$2" 2>/dev/null)"  
}  
 
l2tp_ifname() {  
l2tpv3tun show session tunnel_id "$1" session_id "$2" 2>/dev/null | \  
sed -ne 's/^.*interface name: //p'  
}  
 
l2tp_lock() {  
lock /var/lock/l2tp-setup  
}  
 
l2tp_unlock() {  
lock -u /var/lock/l2tp-setup  
}  
 
l2tp_log() {  
logger -t "ifup-l2tp" "$@"  
}  
 
 
# Hook into scan_interfaces() to synthesize a .device option  
# This is needed for /sbin/ifup to properly dispatch control  
# to setup_interface_l2tp() even if no .ifname is set in  
# the configuration.  
scan_l2tp() {  
local dev  
config_get dev "$1" device  
config_set "$1" device "${dev:+$dev }l2tp-$1"  
}  
 
coldplug_interface_l2tp() {  
setup_interface_l2tp "l2tp-$1" "$1"  
}  
 
setup_interface_l2tp() {  
local iface="$1"  
local cfg="$2"  
local link="l2tp-$cfg"  
 
l2tp_lock  
 
# prevent recursion  
local up="$(uci_get_state network "$cfg" up 0)"  
[ "$up" = 0 ] || {  
l2tp_unlock  
return 0  
}  
 
local tunnel_id  
config_get tunnel_id "$cfg" tunnel_id  
[ -n "$tunnel_id" ] || {  
tunnel_id="$(l2tp_next_tunnel_id)"  
uci_set_state network "$cfg" tunnel_id "$tunnel_id"  
l2tp_log "No tunnel ID specified, assuming $tunnel_id"  
}  
 
local peer_tunnel_id  
config_get peer_tunnel_id "$cfg" peer_tunnel_id  
[ -n "$peer_tunnel_id" ] || {  
peer_tunnel_id="$tunnel_id"  
uci_set_state network "$cfg" peer_tunnel_id "$peer_tunnel_id"  
l2tp_log "No peer tunnel ID specified, assuming $peer_tunnel_id"  
}  
 
local encap  
config_get encap "$cfg" encap udp  
 
local sport dport  
[ "$encap" = udp ] && {  
config_get sport "$cfg" sport 1701  
config_get dport "$cfg" dport 1701  
}  
 
local peeraddr  
config_get peeraddr "$cfg" peeraddr  
[ -z "$peeraddr" ] && config_get peeraddr "$cfg" peer6addr  
 
local localaddr  
case "$peeraddr" in  
*:*) config_get localaddr "$cfg" local6addr ;;  
*) config_get localaddr "$cfg" localaddr ;;  
esac  
 
[ -n "$localaddr" -a -n "$peeraddr" ] || {  
l2tp_log "Missing local or peer address for tunnel $cfg - skipping"  
return 1  
}  
 
(  
while ! l2tp_tunnel_exists "$tunnel_id"; do  
[ -n "$sport" ] && l2tpv3tun show tunnel 2>/dev/null | grep -q "ports: $sport/" && {  
l2tp_log "There already is a tunnel with src port $sport - skipping"  
l2tp_unlock  
return 1  
}  
 
l2tpv3tun add tunnel tunnel_id "$tunnel_id" peer_tunnel_id "$peer_tunnel_id" \  
encap "$encap" local "$localaddr" remote "$peeraddr" \  
${sport:+udp_sport "$sport"} ${dport:+udp_dport "$dport"}  
 
# Wait for tunnel  
sleep 1  
done  
 
 
local session_id  
config_get session_id "$cfg" session_id  
[ -n "$session_id" ] || {  
session_id="$(l2tp_next_session_id "$tunnel_id")"  
uci_set_state network "$cfg" session_id "$session_id"  
l2tp_log "No session ID specified, assuming $session_id"  
}  
 
local peer_session_id  
config_get peer_session_id "$cfg" peer_session_id  
[ -n "$peer_session_id" ] || {  
peer_session_id="$session_id"  
uci_set_state network "$cfg" peer_session_id "$peer_session_id"  
l2tp_log "No peer session ID specified, assuming $peer_session_id"  
}  
 
 
while ! l2tp_session_exists "$tunnel_id" "$session_id"; do  
l2tpv3tun add session ifname "$link" tunnel_id "$tunnel_id" \  
session_id "$session_id" peer_session_id "$peer_session_id"  
 
# Wait for session  
sleep 1  
done  
 
 
local dev  
config_get dev "$cfg" device  
 
local ifn  
config_get ifn "$cfg" ifname  
 
uci_set_state network "$cfg" ifname "${ifn:-$dev}"  
uci_set_state network "$cfg" device "$dev"  
 
local mtu  
config_get mtu "$cfg" mtu 1462  
 
local ttl  
config_get ttl "$cfg" ttl  
 
ip link set mtu "$mtu" ${ttl:+ ttl "$ttl"} dev "$link"  
 
# IP setup inherited from proto static  
prepare_interface "$link" "$cfg"  
setup_interface_static "${ifn:-$dev}" "$cfg"  
 
ip link set up dev "$link"  
 
uci_set_state network "$cfg" up 1  
l2tp_unlock  
) &  
}  
 
stop_interface_l2tp() {  
local cfg="$1"  
local link="l2tp-$cfg"  
 
local tunnel=$(uci_get_state network "$cfg" tunnel_id)  
local session=$(uci_get_state network "$cfg" session_id)  
 
[ -n "$tunnel" ] && [ -n "$session" ] && {  
l2tpv3tun del session tunnel_id "$tunnel" session_id "$session"  
l2tpv3tun del tunnel tunnel_id "$tunnel"  
}  
}  
 
--- a/main.c  
+++ b/main.c  
@@ -560,6 +560,7 @@ static void usage(void)  
fprintf(stderr, " session_id ID peer_session_id ID\n");  
fprintf(stderr, " [ cookie HEXSTR ] [ peer_cookie HEXSTR ]\n");  
fprintf(stderr, " [ offset OFFSET ] [ peer_offset OFFSET ]\n");  
+ fprintf(stderr, " [ ifname IFNAME ]\n");  
fprintf(stderr, " %s del tunnel tunnel_id ID\n", L2TP_CMD_ROOT);  
fprintf(stderr, " %s del session tunnel_id ID session_id ID\n", L2TP_CMD_ROOT);  
fprintf(stderr, " %s show tunnel [ tunnel_id ID ]\n", L2TP_CMD_ROOT);  
@@ -671,6 +672,9 @@ static int parse_args(int argc, char **a  
p->peer_cookie_len = slen / 2;  
if (hex2mem(*argv, p->peer_cookie, p->peer_cookie_len) < 0)  
invarg("cookie must be a hex string\n", *argv);  
+ } else if (strcmp(*argv, "ifname") == 0) {  
+ NEXT_ARG();  
+ p->ifname = *argv;  
} else if (strcmp(*argv, "tunnel") == 0) {  
p->tunnel = 1;  
} else if (strcmp(*argv, "session") == 0) {  
 
--- a/main.c  
+++ b/main.c  
@@ -100,7 +100,7 @@ struct l2tp_data {  
};  
 
/* netlink socket */  
-static struct nl_handle *nl_sock;  
+static struct nl_sock *nl_sock;  
static int nl_family;  
 
/*****************************************************************************  
@@ -788,9 +788,9 @@ static int do_show(int argc, char **argv  
 
int do_ipl2tp(int argc, char **argv)  
{  
- nl_sock = nl_handle_alloc();  
+ nl_sock = nl_socket_alloc();  
if (!nl_sock) {  
- perror("nl_handle_alloc");  
+ perror("nl_socket_alloc");  
return 1;  
}  
 
 
file:a/net/lighttpd/Makefile (deleted)
#  
# Copyright (C) 2006-2013 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=lighttpd  
PKG_VERSION:=1.4.35  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz  
PKG_SOURCE_URL:=http://download.lighttpd.net/lighttpd/releases-1.4.x  
PKG_MD5SUM:=c7ae774eab4cb7ac85e41b712f4ee9ba  
 
PKG_LICENSE:=BSD-3c  
PKG_LICENSE_FILES:=COPYING  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/lighttpd/Default  
SUBMENU:=Web Servers/Proxies  
SECTION:=net  
CATEGORY:=Network  
URL:=http://www.lighttpd.net/  
endef  
 
define Package/lighttpd  
$(call Package/lighttpd/Default)  
MENU:=1  
DEPENDS:=+LIGHTTPD_SSL:libopenssl +libpcre +libpthread  
TITLE:=A flexible and lightweight web server  
endef  
 
define Package/lighttpd/config  
config LIGHTTPD_SSL  
bool "SSL support"  
depends on PACKAGE_lighttpd  
default y  
help  
Implements SSL support in lighttpd (using libopenssl). This  
option is required if you enable the SSL engine in your  
lighttpd confguration file.  
endef  
 
CONFIGURE_ARGS+= \  
--libdir=/usr/lib/lighttpd \  
--sysconfdir=/etc/lighttpd \  
--enable-shared \  
--enable-static \  
--disable-rpath \  
--without-attr \  
--without-bzip2 \  
--without-fam \  
--without-gdbm \  
--without-ldap \  
--without-lua \  
--without-memcache \  
--with-pcre \  
--without-valgrind \  
$(call autoconf_bool,CONFIG_IPV6,ipv6)  
 
CONFIGURE_VARS+= \  
PCRE_LIB="-lpcre" \  
 
ifneq ($(strip $(CONFIG_LIGHTTPD_SSL)),)  
CONFIGURE_ARGS+= \  
--with-openssl="$(STAGING_DIR)/usr"  
else  
CONFIGURE_ARGS+= \  
--without-openssl  
endif  
 
ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-mysql-vhost),)  
CONFIGURE_ARGS+= \  
--with-mysql  
else  
CONFIGURE_ARGS+= \  
--without-mysql  
endif  
 
ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-webdav),)  
CONFIGURE_ARGS+= \  
--with-webdav-locks \  
--with-webdav-props  
# XXX: needed by sqlite3 to prevent segfaults in mod_webdav.so  
CONFIGURE_VARS+= \  
LIBS="-lpthread"  
else  
CONFIGURE_ARGS+= \  
--without-webdav-locks \  
--without-webdav-props  
endif  
 
define Build/Configure  
$(call Build/Configure/Default)  
# XXX: override pcre (mis)detection by ./configure when cross-compiling  
echo "#define HAVE_LIBPCRE 1" >>$(PKG_BUILD_DIR)/config.h  
echo "#define HAVE_PCRE_H 1" >>$(PKG_BUILD_DIR)/config.h  
endef  
 
define Package/lighttpd/conffiles  
/etc/lighttpd/lighttpd.conf  
endef  
 
define Package/lighttpd/install  
$(INSTALL_DIR) $(1)/etc/lighttpd  
$(INSTALL_DATA) ./files/lighttpd.conf $(1)/etc/lighttpd/  
$(INSTALL_DATA) $(PKG_BUILD_DIR)/doc/config/conf.d/mime.conf $(1)/etc/lighttpd/  
$(INSTALL_DIR) $(1)/etc/lighttpd/conf.d  
$(INSTALL_DIR) $(1)/etc/init.d  
$(INSTALL_BIN) ./files/lighttpd.init $(1)/etc/init.d/lighttpd  
$(INSTALL_DIR) $(1)/usr/lib/lighttpd  
for m in dirlisting indexfile staticfile; do \  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lighttpd/mod_$$$${m}.so $(1)/usr/lib/lighttpd/ ; \  
done  
$(INSTALL_DIR) $(1)/usr/sbin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/lighttpd $(1)/usr/sbin/  
endef  
 
define BuildPlugin  
define Package/lighttpd-mod-$(1)  
$(call Package/lighttpd/Default)  
DEPENDS:=lighttpd  
ifneq ($(3),)  
DEPENDS+= $(3)  
endif  
TITLE:=$(2) module  
endef  
 
define Package/lighttpd-mod-$(1)/install  
$(INSTALL_DIR) $$(1)/usr/lib/lighttpd  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lighttpd/mod_$(1).so $$(1)/usr/lib/lighttpd  
$(INSTALL_DIR) $$(1)/etc/lighttpd/conf.d  
if [ -f $(PKG_BUILD_DIR)/doc/config/conf.d/$(1).conf ]; then \  
$(CP) $(PKG_BUILD_DIR)/doc/config/conf.d/$(1).conf $$(1)/etc/lighttpd/conf.d/$(4)-$(1).conf ; \  
else \  
echo 'server.modules += ( "mod_$(1)" )' > $$(1)/etc/lighttpd/conf.d/$(4)-$(1).conf ; \  
fi  
endef  
 
$$(eval $$(call BuildPackage,lighttpd-mod-$(1)))  
endef  
 
$(eval $(call BuildPackage,lighttpd))  
$(eval $(call BuildPlugin,access,Access restrictions,,10))  
$(eval $(call BuildPlugin,accesslog,Access logging,,10))  
$(eval $(call BuildPlugin,alias,Directory alias,,10))  
$(eval $(call BuildPlugin,auth,Authentication,,05))  
$(eval $(call BuildPlugin,cgi,CGI,,10))  
$(eval $(call BuildPlugin,cml,Cache Meta Language,,10))  
$(eval $(call BuildPlugin,compress,Compress output,+PACKAGE_lighttpd-mod-compress:zlib,10))  
$(eval $(call BuildPlugin,evasive,Evasive,,10))  
$(eval $(call BuildPlugin,evhost,Exnhanced Virtual-Hosting,,10))  
$(eval $(call BuildPlugin,expire,Expire,,10))  
$(eval $(call BuildPlugin,extforward,Extract client,,10))  
$(eval $(call BuildPlugin,fastcgi,FastCGI,,10))  
$(eval $(call BuildPlugin,flv_streaming,FLV streaming,,10))  
$(eval $(call BuildPlugin,magnet,Magnet,,10))  
$(eval $(call BuildPlugin,mysql_vhost,Mysql virtual hosting,+PACKAGE_lighttpd-mod-mysql_vhost:libmysqlclient,10))  
$(eval $(call BuildPlugin,proxy,Proxy,,10))  
$(eval $(call BuildPlugin,redirect,URL redirection,+PACKAGE_lighttpd-mod-redirect:libpcre,10))  
$(eval $(call BuildPlugin,rewrite,URL rewriting,+PACKAGE_lighttpd-mod-rewrite:libpcre,10))  
$(eval $(call BuildPlugin,rrdtool,RRDtool,,10))  
$(eval $(call BuildPlugin,scgi,SCGI,,10))  
$(eval $(call BuildPlugin,secdownload,Secure and fast download,,10))  
$(eval $(call BuildPlugin,setenv,Environment variable setting,,10))  
$(eval $(call BuildPlugin,simple_vhost,Simple virtual hosting,,10))  
$(eval $(call BuildPlugin,ssi,SSI,+libpcre,10))  
$(eval $(call BuildPlugin,status,Server status display,,10))  
$(eval $(call BuildPlugin,trigger_b4_dl,Trigger before download,+PACKAGE_lighttpd-mod-trigger_b4_dl:libpcre,10))  
$(eval $(call BuildPlugin,userdir,User directory,,10))  
$(eval $(call BuildPlugin,usertrack,User tracking,,10))  
$(eval $(call BuildPlugin,webdav,WebDAV,+PACKAGE_lighttpd-mod-webdav:libsqlite3 +PACKAGE_lighttpd-mod-webdav:libuuid +PACKAGE_lighttpd-mod-webdav:libxml2,10))  
 
 
# lighttpd configuration file  
#  
server.modules = (  
)  
 
### only root can use these options  
#server.chroot = "/"  
 
######### Options that are good to be but not neccesary to be changed #######  
#server.port = 81  
#server.bind = "localhost"  
server.document-root = "/www"  
server.upload-dirs = ( "/tmp" )  
server.errorlog = "/var/log/lighttpd/error.log"  
server.pid-file = "/var/run/lighttpd.pid"  
#server.username = "www-data"  
#server.groupname = "www-data"  
#server.tag = "lighttpd"  
#server.errorlog-use-syslog = "enable"  
#server.network-backend = "write"  
 
index-file.names = ( "index.php", "index.html",  
"index.htm", "default.htm",  
" index.lighttpd.html" )  
 
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )  
 
## Use ipv6 if available  
#include_shell "/usr/share/lighttpd/use-ipv6.pl"  
 
#dir-listing.encoding = "utf-8"  
#server.dir-listing = "enable"  
 
include "/etc/lighttpd/mime.conf"  
include_shell "cat /etc/lighttpd/conf.d/*.conf"  
 
 
 
 
#!/bin/sh /etc/rc.common  
# Copyright (C) 2006-2011 OpenWrt.org  
 
SERVICE_USE_PID=1  
 
START=50  
 
start() {  
mkdir -m 0755 -p /var/log/lighttpd  
service_start /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf  
}  
 
stop() {  
service_stop /usr/sbin/lighttpd  
}  
 
 
file:a/net/znc/Makefile (deleted)
#  
# Copyright (C) 2009-2010 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=znc  
PKG_VERSION:=1.2  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=http://znc.in/releases \  
http://znc.in/releases/archive  
PKG_MD5SUM:=ef18e5402a82cc3fcab5c2ac5c2e6f3b  
 
PKG_BUILD_PARALLEL:=1  
 
 
define Package/znc/default  
SUBMENU:=Instant Messaging  
SECTION:=net  
CATEGORY:=Network  
TITLE:=ZNC  
URL:=http://en.znc.in/  
MAINTAINER:=Jonas Gorski <jogo@openwrt.org>  
endef  
 
define Package/znc  
$(Package/znc/default)  
DEPENDS:=+libopenssl +libpthread $(CXX_DEPENDS)  
MENU:=1  
endef  
 
define Package/znc/description  
ZNC is an IRC bouncer with many advanced features like detaching,  
multiple users, per channel playback buffer, SSL, IPv6, transparent DCC  
bouncing, and c++ module support to name a few.  
endef  
 
define Package/znc/conffiles  
/etc/config/znc  
endef  
 
 
define Package/znc/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/znc $(1)/usr/bin/  
$(INSTALL_DIR) $(1)/etc/init.d  
$(INSTALL_BIN) ./files/znc.init $(1)/etc/init.d/znc  
$(INSTALL_DIR) $(1)/etc/config  
$(INSTALL_DATA) ./files/znc.conf $(1)/etc/config/znc  
$(INSTALL_DIR) $(1)/usr/lib/znc/  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/modules/droproot.so $(1)/usr/lib/znc/  
endef  
 
 
ZNC_MODULES :=  
ZNC_MODULE_TARGETS := droproot.so  
 
define module  
define Package/znc-mod-$(strip $(1))  
$(Package/znc/default)  
TITLE+= ($(strip $(1)) plugin)  
DEPENDS:=znc  
endef  
 
define Package/znc-mod-$(strip $(1))/description  
$(strip $(2))  
endef  
 
define Package/znc-mod-$(strip $(1))/install  
$(INSTALL_DIR) $$(1)/usr/lib/znc/  
$(INSTALL_BIN) $$(PKG_BUILD_DIR)/modules/$(subst -,_,$(strip $(1))).so $$(1)/usr/lib/znc/  
# include webadmin page templates if existing  
if [ -d $$(PKG_BUILD_DIR)/modules/data/$(subst -,_,$(strip $(1))) ]; then \  
$(INSTALL_DIR) $$(1)/usr/share/znc/modules ;\  
$(CP) -r $$(PKG_BUILD_DIR)/modules/data/$(subst -,_,$(strip $(1))) $$(1)/usr/share/znc/modules ;\  
fi  
endef  
 
ZNC_MODULES += znc-mod-$(strip $(1))  
$(if $(CONFIG_PACKAGE_znc-mod-$(strip $(1))),ZNC_MODULE_TARGETS += $(subst -,_,$(strip $(1))).so)  
endef  
 
define webadmin  
define Package/znc-mod-webadmin  
$(Package/znc/default)  
TITLE+= (webadmin plugin)  
DEPENDS:=znc  
endef  
 
define Package/znc-mod-webadmin/description  
Allows you to add/remove/edit users and settings on the fly via a web browser.  
endef  
 
define Package/znc-mod-webadmin/install  
$(INSTALL_DIR) $$(1)/usr/lib/znc/  
$(INSTALL_BIN) $$(PKG_BUILD_DIR)/modules/webadmin.so $$(1)/usr/lib/znc/  
$(INSTALL_DIR) $$(1)/usr/share/znc/modules  
$(CP) -r $$(PKG_BUILD_DIR)/modules/data/webadmin $$(1)/usr/share/znc/modules  
$(INSTALL_DIR) $$(1)/usr/share/znc/webskins/  
$(CP) -r $$(PKG_BUILD_DIR)/webskins/_default_ $$(1)/usr/share/znc/webskins/  
endef  
 
ZNC_MODULES += znc-mod-webadmin  
$(if $(CONFIG_PACKAGE_znc-mod-webadmin),ZNC_MODULE_TARGETS += webadmin.so)  
endef  
 
define webskin  
define Package/znc-webskin-$(strip $(1))  
$(Package/znc/default)  
TITLE+= ($(strip $(1)) webskin)  
DEPENDS:=znc-mod-webadmin  
endef  
 
define Package/znc-webskin-$(strip $(1))/description  
$(strip $(1)) webskin for webadmin  
endef  
 
define Package/znc-webskin-$(strip $(1))/install  
$(INSTALL_DIR) $$(1)/usr/share/znc/webskins/  
$(CP) -r $$(PKG_BUILD_DIR)/webskins/$(strip $(1)) $$(1)/usr/share/znc/webskins/  
endef  
ZNC_MODULES += znc-webskin-$(strip $(1))  
endef  
 
, := ,  
 
$(eval $(call module,adminlog,Log user connects and disconnects and failed \  
logins to file or syslog.))  
 
$(eval $(call module,autoattach,Reattaches you to channels on activity.))  
 
$(eval $(call module,autocycle,Cycles a channel when you are the only one in \  
there and you don't have op.))  
 
$(eval $(call module,autoop,Auto op the good guys.))  
 
$(eval $(call module,autoreply,Gives a automatic reply if someone messages you \  
if you are away.))  
 
$(eval $(call module,autovoice,Autovoices everyone who joins some channel.))  
 
$(eval $(call module,awaynick,Change your nick while you are away.))  
 
$(eval $(call module,awaystore,Stores messages while away$(,) also auto away.))  
 
$(eval $(call module,block-motd,This module blocks the server's Message of the \  
Day.))  
 
$(eval $(call module,blockuser,Blocks certain users from using ZNC saying \  
their account was disabled.))  
 
$(eval $(call module,bouncedcc,Bounces dcc transfers through the znc server \  
instead of sending them directly to the user.))  
 
$(eval $(call module,buffextras,Add nick changes$(,) joins$(,) parts$(,) topic \  
changes etc. to your playback buffer.))  
 
$(eval $(call module,cert,Use a SSL certificate for connecting to a server.))  
 
$(eval $(call module,certauth,This module allows users to log in to ZNC via \  
SSL client keys.))  
 
$(eval $(call module,chansaver,Keeping config up to date when user joins and \  
parts.))  
 
$(eval $(call module,clearbufferonmsg,This module keeps the buffer until the \  
next message from the client.))  
 
$(eval $(call module,clientnotify,Notify about new incoming connections to \  
your user.))  
 
$(eval $(call module,controlpanel,Allows you to add/remove/edit users and \  
settings on the fly via IRC messages.))  
 
$(eval $(call module,crypt,Encryption for channel/private messages.))  
 
$(eval $(call module,ctcpflood,This module tries to block ctcp floods.))  
 
$(eval $(call module,dcc,Allows you to transfer files to and from ZNC.))  
 
$(eval $(call module,disconkick,This module will kick your client from all \  
channels where you are$(,) in case if ZNC disconnects from server.))  
 
$(eval $(call module,fail2ban,Block IPs for some time after a failed login.))  
 
$(eval $(call module,flooddetach,This module detaches you from channels which \  
are flooded.))  
 
$(eval $(call module,identfile,Places the ident of a user to a file when they \  
are trying to connect.))  
 
$(eval $(call module,keepnick,Tries to get you your primary nick.))  
 
$(eval $(call module,kickrejoin,Implements auto-rejoin-on-kick.))  
 
$(eval $(call module,lastseen,Logs when a user last logged in to ZNC.))  
 
$(eval $(call module,listsockets,This module displays a list of all open \  
sockets in ZNC.))  
 
$(eval $(call module,log,Log conversations to file.))  
 
$(eval $(call module,modules_online,This module fakes the online status of \  
ZNC-*users.))  
 
$(eval $(call module,nickserv,Auths you with NickServ.))  
 
$(eval $(call module,notes,This modules stores and displays short notes using \  
a key/note pairs and shows them to you on connect.))  
 
$(eval $(call module,notify-connect,Sends a notice to all admins when a user \  
logs in or out.))  
 
$(eval $(call module,partyline,Allows ZNC users to join internal channels and \  
query other ZNC users on the same ZNC.))  
 
$(eval $(call module,perform,Performs commands on connect.))  
 
$(eval $(call module,q,Auths you with Q (and a little more).))  
 
$(eval $(call module,raw,View all of the raw traffic.))  
 
$(eval $(call module,route-replies,Routes back answers to the right client \  
when connected with multiple clients.))  
 
$(eval $(call module,sasl,The SASL module allows you to authenticate to an \  
IRC network via SASL.))  
 
$(eval $(call module,savebuff,Saves your channel buffers into an encrypted \  
file so they can survive restarts and reboots.))  
 
$(eval $(call module,schat,SSL (encrypted) DCC chats.))  
 
$(eval $(call module,send-raw,Allows you to send raw traffic to IRC from \  
other users.))  
 
$(eval $(call module,simple-away,This module will automatically set you away \  
on IRC while you are disconnected from the bouncer.))  
 
$(eval $(call module,shell,Have your unix shell in a query window right inside \  
of your IRC client.))  
 
$(eval $(call module,stickychan,Keeps you sticked to specific channels.))  
 
$(eval $(call module,watch,Monitor activity for specific text patterns from \  
specific users and have the text sent to a special query window.))  
 
$(eval $(call webadmin))  
 
$(eval $(call webskin,dark-clouds))  
$(eval $(call webskin,forest))  
$(eval $(call webskin,ice))  
 
PKG_CONFIG_DEPENDS := $(patsubst %,CONFIG_PACKAGE_%,$(ZNC_MODULES))  
 
include $(INCLUDE_DIR)/uclibc++.mk  
include $(INCLUDE_DIR)/package.mk  
 
CONFIGURE_VARS += \  
CXXFLAGS="$(TARGET_CFLAGS) -fno-builtin -fno-rtti -nostdinc++" \  
CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \  
LDFLAGS="-nodefaultlibs -lc -L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \  
LIBS="-luClibc++ -lm -lssl -lcrypto $(LIBGCC_S) -lc"  
 
CONFIGURE_ARGS += \  
--disable-c-ares \  
--disable-perl  
 
define Build/Configure  
$(call Build/Configure/Default,)  
$(call libtool_disable_rpath)  
endef  
 
define Build/Compile  
$(call Build/Compile/Default,znc)  
+$(MAKE_VARS) $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/modules \  
$(MAKE_FLAGS) $(ZNC_MODULE_TARGETS)  
endef  
 
$(eval $(call BuildPackage,znc))  
$(foreach m,$(ZNC_MODULES),$(eval $(call BuildPackage,$(m))))  
 
file:a/net/znc/files/znc.conf (deleted)
config znc  
# where to listen for connections  
list listener '192.168.1.1 1234'  
# If using SSL sockets, use the following certifcate:  
# option znc_ssl_cert '/etc/znc.cert'  
 
# load global modules (You need to install them first):  
# list module 'fail2ban'  
 
# remove this to enable the service  
option disabled 1  
 
config user 'sampleUser'  
# Use either a plain text password or use the full sha256#... line.  
# You can generate one with 'znc -s'.  
option password 'changeme'  
option nick 'sampleUser'  
option altnick 'userSample'  
option ident 'openwrt'  
option realname 'John Doe'  
 
# This adds support for channels in znc configuration:  
# list channel '#chan optional_password'  
 
# list of allowed servers:  
# list server 'chat.freenode.net 6667'  
 
# load user modules ('<module> [params...]'):  
# list module 'simple_away -timer 10 disconnected'  
 
file:a/net/znc/files/znc.init (deleted)
#!/bin/sh /etc/rc.common  
# Copyright (C) 2010 Openwrt.org  
 
START=60  
 
ZNC_CONFIG_PATH=/tmp/etc/znc  
PID_FILE=${ZNC_CONFIG_PATH}/znc.pid  
ZNC_CONFIG=${ZNC_CONFIG_PATH}/configs/znc.conf  
 
EXTERNAL_CONFIG=0  
DISABLED=  
 
RUNAS_USER=  
RUNAS_GROUP=  
 
add_param() {  
echo "$1 = $2" >> $ZNC_CONFIG  
}  
 
add_chan() {  
chan=${1% *}  
pass=${1#* }  
echo " <Chan $chan>" >> $ZNC_CONFIG  
[ "$chan" != "$pass" ] && echo " Key = $pass" >> $ZNC_CONFIG  
echo " </Chan>" >> $ZNC_CONFIG  
}  
 
add_network() {  
local current_user="$1"  
local network="$2"  
local user  
local name  
 
config_get user "$network" user  
 
[ "$user" = "$current_user" ] || return 0  
 
config_get name "$network" name  
echo " <Network $name>" >> $ZNC_CONFIG  
config_list_foreach "$network" server "add_param \" Server\""  
config_list_foreach "$network" channel "add_chan"  
}  
 
znc_global() {  
local znc="$1"  
local anoniplimit  
local maxbuffersize  
local connectdelay  
local serverthrottle  
local znc_config_path  
local znc_pem_file  
 
config_get_bool DISABLED "$znc" disabled 0  
 
[ "$DISABLED" -eq 0 ] || return 0  
 
config_get znc_config_path "$znc" znc_config_path  
 
config_get RUNAS_USER "$znc" runas_user  
config_get RUNAS_GROUP "$znc" runas_group  
 
if [ "${znc_config_path}" ]  
then  
ZNC_CONFIG_PATH=$znc_config_path  
EXTERNAL_CONFIG=1  
else  
mkdir -p $ZNC_CONFIG_PATH/configs/  
[ ! -f "$ZNC_CONFIG" ] || rm "$ZNC_CONFIG"  
 
add_param "Version" "1.0"  
 
config_get anoniplimit "$znc" anoniplimit  
config_get maxbuffersize "$znc" maxbuffersize  
config_get connectdelay "$znc" connectdelay  
config_get serverthrottle "$znc" serverthrottle  
config_get znc_pem_file "$znc" znc_ssl_cert  
 
[ -z "$znc_pem_file" ] || ln -sf "$znc_pem_file" $ZNC_CONFIG_PATH/znc.pem  
 
[ -z $anoniplimit ] || echo "AnonIPLimit = $anoniplimit" >> $ZNC_CONFIG  
[ -z $maxbuffersize ] || echo "MaxBufferSize = $maxbuffersize" >> $ZNC_CONFIG  
[ -z $connectdelay ] || echo "ConnectDelay = $connectdelay" >> $ZNC_CONFIG  
[ -z $serverthrottle ] || echo "ServerThrottle = $anoniplimit" >> $ZNC_CONFIG  
 
echo "PidFile = $PID_FILE" >> $ZNC_CONFIG  
 
config_list_foreach "$znc" listener "add_param Listener"  
config_list_foreach "$znc" module "add_param LoadModule"  
 
add_param LoadModule "droproot ${RUNAS_USER:-nobody} ${RUNAS_GROUP:-nogroup}"  
fi  
}  
 
add_user() {  
local user="$1"  
local password  
local nick  
local altnick  
local ident  
local realname  
local buffer  
local quitmsg  
local chanmodes  
local vhost  
local server  
 
config_get password "$user" password  
config_get nick "$user" nick  
config_get altnick "$user" altnick  
config_get ident "$user" ident  
config_get realname "$user" realname  
config_get buffer "$user" buffer  
config_get quitmsg "$user" quitmsg  
config_get chanmodes "$user" chanmodes  
config_get vhost "$user" vhost  
config_get server "$user" server  
 
echo "<User $user>" >> $ZNC_CONFIG  
 
case "$password" in  
"md5#"* | "sha256#"* | "plain#"*)  
add_param " Pass" "$password"  
;;  
*)  
add_param " Pass" "plain#$password"  
;;  
esac  
 
add_param " Nick" "$nick"  
add_param " AltNick" "${altnick:-$nick"_"}"  
add_param " Ident" "${ident:-$nick}"  
add_param " RealName" "${realname:-$nick}"  
[ -z "$vhost" ] || add_param " VHost" "$vhost"  
add_param " Buffer" "${buffer:-50}"  
add_param " KeepBuffer" "false"  
add_param " ChanModes" "${chanmodes:-"+stn"}"  
[ -z "$quitmsg" ] || add_param " QuitMsg" "$quitmsg"  
 
config_list_foreach "$user" module "add_param \" LoadModule\""  
 
# add legacy network  
if [ "$server" ]; then  
echo " <Network Default>" >> $ZNC_CONFIG  
config_list_foreach "$user" server "add_param \" Server\""  
config_list_foreach "$user" channel "add_chan"  
echo " </Network>" >> $ZNC_CONFIG  
fi  
 
config_foreach "add_network \"$user\"" network  
 
echo "</User>" >> $ZNC_CONFIG  
}  
 
 
start() {  
config_load znc  
config_foreach znc_global znc  
 
if [ "$DISABLED" -eq 1 ]; then  
return 0  
fi  
 
if [ "$EXTERNAL_CONFIG" -eq 0 ]  
then  
config_foreach add_listener listener  
config_foreach add_user user  
 
chown -hR ${RUNAS_USER:-nobody}:${RUNAS_GROUP:-nogroup} /tmp/etc/znc  
fi  
 
if [ "$EXTERNAL_CONFIG" -eq 1 -a "$RUNAS_USER" ]  
then  
local SU=$(which su)  
if [ "$SU" ]  
then  
$SU -c "/usr/bin/znc -d$ZNC_CONFIG_PATH >/dev/null &" $RUNAS_USER  
else  
logger -s -t ZNC -p daemon.err "Could not run ZNC as user $RUNAS_USER: su not found."  
exit 1  
fi  
else  
/usr/bin/znc -d$ZNC_CONFIG_PATH >/dev/null &  
fi  
}  
 
stop() {  
if [ -f "$PID_FILE" ]  
then  
kill $(cat "$PID_FILE")  
else  
killall znc  
fi  
}  
 
 
From 5f655f9a25a377c01cb15517859eb514628a43d4 Mon Sep 17 00:00:00 2001  
From: Jonas Gorski <jonas.gorski+openwrt@gmail.com>  
Date: Wed, 6 Apr 2011 04:10:23 +0200  
Subject: [PATCH] Move the root check to after config parsing  
 
---  
src/main.cpp | 27 ++++++++++++++-------------  
1 files changed, 14 insertions(+), 13 deletions(-)  
 
--- a/src/main.cpp  
+++ b/src/main.cpp  
@@ -243,19 +243,6 @@ int main(int argc, char** argv) {  
CUtils::PrintStatus(true, "");  
}  
 
- if (isRoot()) {  
- CUtils::PrintError("You are running ZNC as root! Don't do that! There are not many valid");  
- CUtils::PrintError("reasons for this and it can, in theory, cause great damage!");  
- if (!bAllowRoot) {  
- delete pZNC;  
- return 1;  
- }  
- CUtils::PrintError("You have been warned.");  
- CUtils::PrintError("Hit CTRL+C now if you don't want to run ZNC as root.");  
- CUtils::PrintError("ZNC will start in 30 seconds.");  
- sleep(30);  
- }  
-  
if (bMakeConf) {  
if (!pZNC->WriteNewConfig(sConfig)) {  
delete pZNC;  
@@ -276,6 +263,20 @@ int main(int argc, char** argv) {  
return 1;  
}  
 
+ if (isRoot()) {  
+ CUtils::PrintError("You are running ZNC as root! Don't do that! There are not many valid");  
+ CUtils::PrintError("reasons for this and it can, in theory, cause great damage!");  
+ if (!bAllowRoot) {  
+ delete pZNC;  
+ return 1;  
+ }  
+ CUtils::PrintError("You have been warned.");  
+ CUtils::PrintError("Hit CTRL+C now if you don't want to run ZNC as root.");  
+ CUtils::PrintError("ZNC will start in 30 seconds.");  
+ sleep(30);  
+ }  
+  
+  
if (bForeground) {  
int iPid = getpid();  
CUtils::PrintMessage("Staying open for debugging [pid: " + CString(iPid) + "]");  
 
From fa14938321eda39f16bee6068296e6abc9df7b85 Mon Sep 17 00:00:00 2001  
From: Jonas Gorski <jonas.gorski+openwrt@gmail.com>  
Date: Wed, 6 Apr 2011 04:11:48 +0200  
Subject: [PATCH] Add a uClibc++ build workaround  
 
---  
modules/webadmin.cpp | 4 +++-  
1 files changed, 3 insertions(+), 1 deletions(-)  
 
--- a/modules/webadmin.cpp  
+++ b/modules/webadmin.cpp  
@@ -20,6 +20,7 @@  
#include <znc/IRCNetwork.h>  
#include <znc/IRCSock.h>  
 
+using std::string;  
using std::stringstream;  
using std::make_pair;  
using std::set;  
@@ -75,7 +76,7 @@ class CWebAdminMod : public CModule {  
public:  
MODCONSTRUCTOR(CWebAdminMod) {  
VPair vParams;  
- vParams.push_back(make_pair("user", ""));  
+ vParams.push_back(make_pair((string)"user", (string)""));  
AddSubPage(new CWebSubPage("settings", "Global Settings", CWebSubPage::F_ADMIN));  
AddSubPage(new CWebSubPage("edituser", "Your Settings", vParams));  
AddSubPage(new CWebSubPage("traffic", "Traffic Info", CWebSubPage::F_ADMIN));  
 
From 94aff4c3389111fc85054eb06b40bea26a216d0c Mon Sep 17 00:00:00 2001  
From: Jonas Gorski <jonas.gorski+openwrt@gmail.com>  
Date: Sat, 16 Apr 2011 05:51:04 +0200  
Subject: [PATCH] Don't rebuild everything when the Makefile's timestamp changed  
 
---  
Makefile.in | 2 +-  
modules/Makefile.in | 2 +-  
2 files changed, 2 insertions(+), 2 deletions(-)  
 
--- a/Makefile.in  
+++ b/Makefile.in  
@@ -104,7 +104,7 @@ clean:  
distclean: clean  
rm -rf $(DISTCLEAN)  
 
-src/%.o: src/%.cpp Makefile  
+src/%.o: src/%.cpp  
@mkdir -p .depend src  
$(E) Building core object $*...  
$(Q)$(CXX) $(CXXFLAGS) -c -o $@ $< -MD -MF .depend/$*.dep -MT $@  
--- a/modules/Makefile.in  
+++ b/modules/Makefile.in  
@@ -117,12 +117,12 @@ install_datadir:  
clean:  
rm -rf $(CLEAN)  
 
-%.o: %.cpp Makefile  
+%.o: %.cpp  
@mkdir -p .depend  
$(E) Building module $(notdir $(basename $@))...  
$(Q)$(CXX) $(MODFLAGS) -c -o $@ $< $($(notdir $(basename $@))CXXFLAGS) -MD -MF .depend/$(notdir $@).dep  
 
-%.so: %.o Makefile  
+%.so: %.o  
$(E) "Linking module" $(notdir $(basename $@))...  
$(Q)$(CXX) $(MODFLAGS) $(LDFLAGS) $(MODLINK) -o $@ $< $($(notdir $(basename $@))LDFLAGS) $(LIBS)  
 
 
--- /dev/null  
+++ b/modules/droproot.cpp  
@@ -0,0 +1,144 @@  
+/*  
+ * droproot.cpp  
+ *  
+ * Copyright (c) 2009 Vadtec (vadtec@vadtec.net)  
+ * This program is free software; you can redistribute it and/or modify it  
+ * under the terms of the GNU General Public License version 2 as published  
+ * by the Free Software Foundation.  
+ *  
+ * Copyright (C) 2004-2012 See the AUTHORS file for details.  
+ *  
+ * This program is free software; you can redistribute it and/or modify it  
+ * under the terms of the GNU General Public License version 2 as published  
+ * by the Free Software Foundation.  
+ */  
+  
+#include <znc/znc.h>  
+#include <znc/User.h>  
+#include <pwd.h>  
+#include <grp.h>  
+  
+class CDroproot : public CModule {  
+  
+public:  
+ MODCONSTRUCTOR(CDroproot) {  
+ }  
+  
+ virtual ~CDroproot() {  
+ }  
+  
+ uid_t GetUser(const CString& sUser, CString& sMessage) {  
+ uid_t ret = sUser.ToUInt();  
+  
+ if (ret != 0)  
+ return ret;  
+  
+ struct passwd *pUser = getpwnam(sUser.c_str());  
+  
+ if (!pUser) {  
+ sMessage = "User [" + sUser + "] not found!";  
+ return 0;  
+ }  
+  
+ return pUser->pw_uid;  
+ }  
+  
+ gid_t GetGroup(const CString& sGroup, CString& sMessage) {  
+ gid_t ret = sGroup.ToUInt();  
+  
+ if (ret != 0)  
+ return ret;  
+  
+ struct group *pGroup = getgrnam(sGroup.c_str());  
+  
+ if (!pGroup) {  
+ sMessage = "Group [" + sGroup + "] not found!";  
+ return 0;  
+ }  
+  
+ return pGroup->gr_gid;  
+ }  
+  
+ virtual bool OnLoad(const CString& sArgs, CString& sMessage) {  
+ CString sUser = sArgs.Token(0);  
+ CString sGroup = sArgs.Token(1, true);  
+  
+ if (sUser.empty() || sGroup.empty()) {  
+ sMessage = "Usage: LoadModule = Droproot <uid> <gid>";  
+ return false;  
+ }  
+  
+ m_user = GetUser(sUser, sMessage);  
+  
+ if (m_user == 0) {  
+ sMessage  
+ = "Error: Cannot run as root, check your config file | Useage: LoadModule = Droproot <uid> <gid>";  
+ return false;  
+ }  
+  
+ m_group = GetGroup(sGroup, sMessage);  
+  
+ if (m_group == 0) {  
+ sMessage  
+ = "Error: Cannot run as root, check your config file | Useage: LoadModule = Droproot <uid> <gid>";  
+ return false;  
+ }  
+  
+ return true;  
+ }  
+  
+ virtual bool OnBoot() {  
+ int u, eu, g, eg, sg;  
+  
+ if ((geteuid() == 0) || (getuid() == 0) || (getegid() == 0) || (getgid()  
+ == 0)) {  
+  
+ CUtils::PrintAction("Dropping root permissions");  
+  
+ // Clear all the supplementary groups  
+ sg = setgroups(0, NULL);  
+  
+ if (sg < 0) {  
+ CUtils::PrintStatus(false,  
+ "Could not remove supplementary groups! ["  
+ + CString(strerror(errno)) + "]");  
+  
+ return false;  
+ }  
+  
+ // Set the group (if we are root, this sets all three group IDs)  
+ g = setgid(m_group);  
+ eg = setegid(m_group);  
+  
+ if ((g < 0) || (eg < 0)) {  
+ CUtils::PrintStatus(false, "Could not switch group id! ["  
+ + CString(strerror(errno)) + "]");  
+  
+ return false;  
+ }  
+  
+ // and set the user (if we are root, this sets all three user IDs)  
+ u = setuid(m_user);  
+ eu = seteuid(m_user);  
+  
+ if ((u < 0) || (eu < 0)) {  
+ CUtils::PrintStatus(false, "Could not switch user id! ["  
+ + CString(strerror(errno)) + "]");  
+  
+ return false;  
+ }  
+  
+ CUtils::PrintStatus(true);  
+  
+ return true;  
+ }  
+  
+ return true;  
+ }  
+  
+protected:  
+ uid_t m_user;  
+ gid_t m_group;  
+};  
+  
+GLOBALMODULEDEFS(CDroproot, "Allows ZNC to drop root privileges and run as an un-privileged user.")  
 
file:a/sound/mpc/Makefile (deleted)
#  
# Copyright (C) 2006-2009 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=mpc  
PKG_VERSION:=0.20  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2  
PKG_SOURCE_URL:=@SF/musicpd  
PKG_MD5SUM:=24c81ad6afe6099e8d7a6826ef4b7105  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/mpc  
SECTION:=sound  
CATEGORY:=Sound  
DEPENDS:=+libmpdclient  
TITLE:=Music Player Daemon Console Client  
URL:=http://www.musicpd.org/  
endef  
 
define Package/mpc/description  
MPD is a music player supporting flac, mp3 and ogg files.  
It is typically controlled over a network using one of it's many  
clients including mpc(console), gmpc(gnome), phpmp(php) etc.  
this is MPC  
endef  
 
define Build/Configure  
$(call Build/Configure/Default, \  
--disable-iconv \  
)  
endef  
 
define Build/Compile  
$(call Build/Compile/Default,\  
CFLAGS="$(TARGET_CFLAGS) -std=gnu99" \  
prefix="/usr" \  
all \  
)  
endef  
 
define Package/mpc/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mpc $(1)/usr/bin/  
$(INSTALL_BIN) ./files/pls-handler.sh $(1)/usr/bin/  
endef  
 
$(eval $(call BuildPackage,mpc))  
 
#!/usr/bin/env sh  
echo parameter: file.pls  
mpc clear  
grep '^File[0-9]*' $1 | sed -e 's/^File[0-9]*=//' | mpc add  
mpc play  
file:a/sound/mpd/Makefile (deleted)
#  
# Copyright (C) 2007-2011 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=mpd  
PKG_VERSION:=0.16.8  
PKG_RELEASE:=2  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2  
PKG_SOURCE_URL:=http://www.musicpd.org/download/mpd/0.16/  
PKG_MD5SUM:=b412a9d0b3457bea1bb87904a8f80c04  
 
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)  
PKG_BUILD_PARALLEL:=1  
 
PKG_CONFIG_DEPENDS:= \  
CONFIG_IPV6 \  
 
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
include $(INCLUDE_DIR)/nls.mk  
 
define Package/mpd/Default  
SECTION:=sound  
CATEGORY:=Sound  
TITLE:=Music Player Daemon  
URL:=http://www.musicpd.org/  
DEPENDS:= +glib2 +libcurl +libpthread \  
+libflac +BUILD_PATENTED:libmad +libvorbisidec  
endef  
 
define Package/mpd/Default/description  
Music Player Daemon (MPD) is a flexible, powerful, server-side  
application for playing music. It is typically controlled over a  
network using one of it's many clients including mpc (console),  
gmpc (gnome), phpmp (php), etc...  
endef  
 
 
define Package/mpd-full  
$(call Package/mpd/Default)  
TITLE+= (full)  
DEPENDS+= \  
+AUDIO_SUPPORT:alsa-lib \  
+libaudiofile +BUILD_PATENTED:libfaad2 +libffmpeg +libid3tag \  
+libmms +libogg +libshout +libsndfile +libvorbis  
PROVIDES:=mpd  
VARIANT:=full  
endef  
 
define Package/mpd-full/description  
$(call Package/mpd/Default/description)  
.  
This package contains a full-blown Music Player Daemon.  
endef  
 
define Package/mpd-full/conffiles  
/etc/avahi/services/mpd.service  
/etc/mpd.conf  
endef  
 
 
define Package/mpd-mini  
$(call Package/mpd/Default)  
TITLE+= (mini)  
PROVIDES:=mpd  
VARIANT:=mini  
endef  
 
define Package/mpd-mini/description  
$(call Package/mpd/Default/description)  
.  
This package contains a minimal Music Player Daemon, with support for  
only Flac, MP3 & OGG media types & only file: & http: protocols.  
endef  
 
define Package/mpd-mini/conffiles  
/etc/mpd.conf  
endef  
 
 
CONFIGURE_ARGS += \  
$(call autoconf_bool,CONFIG_IPV6,ipv6) \  
--disable-debug \  
--disable-documentation \  
--disable-gprof \  
--disable-test \  
--disable-werror \  
\  
--disable-ao \  
--disable-bzip2 \  
--disable-cue \  
--disable-ffado \  
--disable-fluidsynth \  
--disable-gme \  
--disable-inotify \  
--disable-iso9660 \  
--disable-jack \  
--disable-lame-encoder \  
--disable-libwrap \  
--disable-lsr \  
--disable-mikmod \  
--disable-modplug \  
--disable-mpc \  
--disable-mpg123 \  
--disable-mvp \  
--disable-openal \  
--disable-pulse \  
--disable-sidplay \  
--disable-solaris-output \  
--disable-sqlite \  
--disable-twolame-encoder \  
--disable-wave-encoder \  
--disable-wavpack \  
--disable-wildmidi \  
--disable-zzip \  
--with-zeroconf=no \  
\  
--enable-curl \  
--enable-flac \  
--enable-httpd-output \  
$(call autoconf_bool,CONFIG_BUILD_PATENTED,mad) \  
$(call autoconf_bool,CONFIG_AUDIO_SUPPORT,oss) \  
--enable-tcp \  
--enable-un \  
 
CONFIGURE_VARS += \  
FLAC_CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include/FLAC" \  
FLAC_LIBS="$(TARGET_LDFLAGS) -lFLAC" \  
$(if $(CONFIG_BUILD_PATENTED),MAD_CFLAGS="$(TARGET_CFLAGS)") \  
$(if $(CONFIG_BUILD_PATENTED),MAD_LIBS="$(TARGET_LDFLAGS) -lmad") \  
 
TARGET_CFLAGS += -std=gnu99  
TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib  
 
# use gcc instead of g++ to avoid unnecessary linking against libstdc++  
TARGET_CXX:=$(TARGET_CC)  
 
ifeq ($(BUILD_VARIANT),full)  
 
CONFIGURE_ARGS += \  
$(call autoconf_bool,CONFIG_BUILD_PATENTED,aac) \  
$(call autoconf_bool,CONFIG_AUDIO_SUPPORT,alsa) \  
--enable-audiofile \  
--enable-fifo \  
--enable-ffmpeg \  
--enable-id3 \  
--enable-lastfm \  
--enable-mms \  
--enable-oggflac \  
--enable-pipe-output \  
--enable-recorder-output \  
--enable-shout \  
--enable-sndfile \  
--enable-vorbis \  
--enable-vorbis-encoder \  
--with-faad="$(STAGING_DIR)/usr" \  
--with-tremor=no \  
 
endif  
 
ifeq ($(BUILD_VARIANT),mini)  
 
# oggflac is not compatible with tremor  
CONFIGURE_ARGS += \  
--disable-aac \  
--disable-alsa \  
--disable-audiofile \  
--disable-fifo \  
--disable-ffmpeg \  
--disable-id3 \  
--disable-lastfm \  
--disable-mms \  
--disable-oggflac \  
--disable-pipe-output \  
--disable-recorder-output \  
--disable-shout \  
--disable-sndfile \  
--disable-vorbis \  
--disable-vorbis-encoder \  
--with-tremor=yes \  
 
endif  
 
define Package/mpd/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(CP) $(PKG_INSTALL_DIR)/usr/bin/mpd $(1)/usr/bin/  
$(INSTALL_DIR) $(1)/etc  
$(CP) $(PKG_BUILD_DIR)/doc/mpdconf.example $(1)/etc/mpd.conf  
$(INSTALL_DIR) $(1)/etc/init.d  
$(INSTALL_BIN) ./files/mpd.init $(1)/etc/init.d/mpd  
endef  
 
define Package/mpd-full/install  
$(call Package/mpd/install,$1)  
$(INSTALL_DIR) $(1)/etc/avahi/services  
$(INSTALL_DATA) ./files/mpd.service $(1)/etc/avahi/services/  
endef  
 
define Package/mpd-mini/install  
$(call Package/mpd/install,$1)  
endef  
 
$(eval $(call BuildPackage,mpd-full))  
$(eval $(call BuildPackage,mpd-mini))  
 
#!/bin/sh /etc/rc.common  
# Copyright (C) 2007-2011 OpenWrt.org  
 
START=93  
 
start() {  
#create mpd directories  
pld=`grep ^playlist_directory /etc/mpd.conf | cut -d "\"" -f 2 | sed "s/~/\/root/g"`  
if [ ! -d $pld ]; then  
mkdir -m 0755 -p $pld  
fi  
 
# Set the initial volume to something manageable  
[ -x /usr/bin/amixer ] && /usr/bin/amixer set PCM 40  
 
if [ -x /bin/nice ]; then  
# This has real-time constraints, so let's at least tell the OS  
# that this should have higher priority to avoid skipping  
# when doing other things in the background.  
nice -n -10  
fi  
 
service_start /usr/bin/mpd  
}  
 
stop() {  
service_stop /usr/bin/mpd  
}  
 
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->  
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">  
<service-group>  
<name replace-wildcards="yes">Music Player Daemon on %h</name>  
<service>  
<type>_mpd._tcp</type>  
<port>6600</port>  
</service>  
</service-group>  
 
--- a/configure  
+++ b/configure  
@@ -8803,6 +8803,7 @@ fi  
# Check whether --with-faad was given.  
if test "${with_faad+set}" = set; then :  
withval=$with_faad;  
+ faad_prefix=$with_faad;  
else  
faad_prefix=""  
fi  
--- a/src/input/file_input_plugin.c  
+++ b/src/input/file_input_plugin.c  
@@ -79,10 +79,6 @@ input_file_open(const char *filename, GE  
return false;  
}  
 
-#ifdef POSIX_FADV_SEQUENTIAL  
- posix_fadvise(fd, (off_t)0, st.st_size, POSIX_FADV_SEQUENTIAL);  
-#endif  
-  
fis = g_new(struct file_input_stream, 1);  
input_stream_init(&fis->base, &input_plugin_file, filename);  
 
 
#  
# Copyright (C) 2006-2012 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=alsa-utils  
PKG_VERSION:=1.0.27.2  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2  
PKG_SOURCE_URL:=ftp://ftp.alsa-project.org/pub/utils/ \  
http://alsa.cybermirror.org/utils/  
PKG_MD5SUM:=b65e9a04181bd7c9db7667a4566f8dc3  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/alsa-utils  
SECTION:=utils  
CATEGORY:=Utilities  
DEPENDS:=+alsa-lib +libncurses +libpthread  
TITLE:=ALSA (Advanced Linux Sound Architecture) utilities  
URL:=http://www.alsa-project.org/  
endef  
 
define Package/alsa-utils-seq  
SECTION:=utils  
CATEGORY:=Utilities  
DEPENDS:=+alsa-lib +libpthread  
TITLE:=ALSA sequencer utilities  
URL:=http://www.alsa-project.org/  
endef  
 
define Package/alsa-utils-tests  
$(call Package/alsa-utils/Default)  
SECTION:=utils  
CATEGORY:=Utilities  
TITLE:=ALSA utilities test data (adds ~1.3M to image)  
DEPENDS:=+alsa-lib +libpthread  
endef  
 
define Build/Configure  
$(call Build/Configure/Default, \  
--disable-rpath \  
--disable-alsatest \  
--disable-xmlto \  
, \  
ac_cv_prog_ncurses5_config=no \  
ac_cv_prog_ncursesw5_config=no \  
)  
endef  
 
define Package/alsa-utils/install  
$(INSTALL_DIR) $(1)/usr/{s,}bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/amixer $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/alsamixer $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aplay $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/arecord $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/alsactl $(1)/usr/sbin/  
 
$(INSTALL_DIR) $(1)/usr/share/alsa/init  
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/share/alsa/init/* \  
$(1)/usr/share/alsa/init/  
endef  
 
define Package/alsa-utils-seq/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aconnect $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/amidi $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aplaymidi $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/arecordmidi $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aseqdump $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aseqnet $(1)/usr/bin/  
endef  
 
define Package/alsa-utils-tests/install  
$(INSTALL_DIR) $(1)/usr/{s,}bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/speaker-test $(1)/usr/bin/  
$(INSTALL_DIR) $(1)/usr/share/sounds/alsa  
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/share/sounds/alsa/* \  
$(1)/usr/share/sounds/alsa/  
endef  
 
$(eval $(call BuildPackage,alsa-utils))  
$(eval $(call BuildPackage,alsa-utils-seq))  
$(eval $(call BuildPackage,alsa-utils-tests))  
 
--- a/alsamixer/volume_mapping.c  
+++ b/alsamixer/volume_mapping.c  
@@ -114,9 +114,9 @@ static double get_normalized_volume(snd_  
if (use_linear_dB_scale(min, max))  
return (value - min) / (double)(max - min);  
 
- normalized = exp10((value - max) / 6000.0);  
+ normalized = pow(10, (value - max) / 6000.0);  
if (min != SND_CTL_TLV_DB_GAIN_MUTE) {  
- min_norm = exp10((min - max) / 6000.0);  
+ min_norm = pow(10, (min - max) / 6000.0);  
normalized = (normalized - min_norm) / (1 - min_norm);  
}  
 
@@ -149,7 +149,7 @@ static int set_normalized_volume(snd_mix  
}  
 
if (min != SND_CTL_TLV_DB_GAIN_MUTE) {  
- min_norm = exp10((min - max) / 6000.0);  
+ min_norm = pow(10, (min - max) / 6000.0);  
volume = volume * (1 - min_norm) + min_norm;  
}  
value = lrint_dir(6000.0 * log10(volume), dir) + max;  
 
file:a/utils/bzip2/Makefile (deleted)
#  
# Copyright (C) 2007-2008 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=bzip2  
PKG_VERSION:=1.0.6  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=http://www.bzip.org/$(PKG_VERSION)  
PKG_MD5SUM:=00b516f4704d4a7cb50a1d97e6e8e15b  
 
PKG_LICENSE:=BZIP2  
PKG_LICENSE_FILES:=LICENSE  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libbz2  
SECTION:=libs  
CATEGORY:=Libraries  
DEPENDS:=  
TITLE:=bzip2 library.  
URL:=http://www.bzip.org/  
endef  
 
define Package/libbz2/description  
bzip2 is a freely available, patent free, high-quality  
data compressor. This packages provides libbz2 library.  
endef  
 
define Package/bzip2  
SECTION:=utils  
CATEGORY:=Utilities  
DEPENDS:=+libbz2  
TITLE:=bzip2 is a compression utility.  
URL:=http://www.bzip.org/  
endef  
 
define Package/bzip2/description  
bzip2 is a freely available, patent free, high-quality  
data compressor. This package provides the binary.  
endef  
 
TARGET_CFLAGS += $(FPIC)  
CONFIGURE_ARGS += --prefix=/usr  
 
MAKE_FLAGS += \  
-f Makefile-libbz2_so \  
CFLAGS="$(TARGET_CFLAGS)" \  
LDFLAGS="$(TARGET_LDLAGS)" \  
all  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_BUILD_DIR)/bzlib.h $(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_BUILD_DIR)/libbz2.so.$(PKG_VERSION) $(1)/usr/lib/  
$(LN) libbz2.so.$(PKG_VERSION) $(1)/usr/lib/libbz2.so.1.0  
$(LN) libbz2.so.$(PKG_VERSION) $(1)/usr/lib/libbz2.so  
endef  
 
define Package/libbz2/install  
$(INSTALL_DIR) $(1)/usr/lib/  
$(CP) $(PKG_BUILD_DIR)/libbz2.so.$(PKG_VERSION) $(1)/usr/lib/  
$(LN) libbz2.so.$(PKG_VERSION) $(1)/usr/lib/libbz2.so.1.0  
endef  
 
define Package/bzip2/install  
$(INSTALL_DIR) $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bzip2-shared $(1)/usr/bin/bzip2  
endef  
 
$(eval $(call BuildPackage,libbz2))  
$(eval $(call BuildPackage,bzip2))  
 
file:a/utils/cmdpad/Makefile (deleted)
#  
# Copyright (C) 2007-2011 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=cmdpad  
PKG_VERSION:=0.0.3  
PKG_RELEASE:=3  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz  
PKG_SOURCE_URL:=@SF/cmdpad  
PKG_MD5SUM:=6633b2354b7f23f9cd8e2bfb6e735965  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/cmdpad  
SECTION:=utils  
CATEGORY:=Utilities  
TITLE:=execute commands when a key is pressed, released or hold down  
URL:=http://cmdpad.sourceforge.net/index.php  
endef  
 
CONFIGURE_ARGS += \  
--enable-static \  
--enable-shared  
 
define Package/cmdpad/description  
cmdpad - execute commands when a key is pressed, released or hold down.  
Should be started from /etc/rc or /etc/rc.local. To run it as deamon you  
need to start it with '&'. All logs are printed to standard out and standard  
error (to write the log to disk use cmdpad > /var/log/cmdpad). Cmdpad  
searches for /etc/cmdpad.conf and load the key bindings. Then wait for  
key event and check each command to see if it should be run.  
endef  
 
MAKE_FLAGS += \  
$(TARGET_CONFIGURE_OPTS) \  
$(1)  
 
define Package/cmdpad/install  
$(INSTALL_DIR) $(1)/usr/sbin  
$(INSTALL_DIR) $(1)/etc  
$(INSTALL_DIR) $(1)/etc/init.d  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/cmdpad $(1)/usr/sbin/  
$(INSTALL_CONF) $(PKG_BUILD_DIR)/src/cmdpad.conf $(1)/etc/  
$(INSTALL_BIN) ./files/cmdpad.init $(1)/etc/init.d/cmdpad  
endef  
 
define Package/cmdpad/conffiles  
/etc/cmdpad.conf  
endef  
 
$(eval $(call BuildPackage,cmdpad))  
 
#!/bin/sh /etc/rc.common  
# Copyright (C) 2007-2011 OpenWrt.org  
 
START=93  
 
SSD_DAEMONIZE=1  
 
start() {  
service_start /usr/sbin/cmdpad --quiet  
}  
 
stop() {  
service_stop /usr/sbin/cmdpad  
}  
 
--- cmdpad-0.0.3/src/Makefile.orig 2008-01-05 23:29:44.000000000 +0100  
+++ cmdpad-0.0.3/src/Makefile 2008-01-05 23:30:23.000000000 +0100  
@@ -5,25 +5,25 @@  
TOP=..  
include $(TOP)/Makefile.common  
 
-INCLUDE= -I/usr/include  
-LIBS= -L/usr/lib -lc  
-CFLAGS= -g3  
-LDFLAGS= -Xlinker -Map -Xlinker $(PROG).map #,--stack,16Mb  
+#INCLUDE= -I/usr/include  
+#LIBS= -L/usr/lib -lc  
+#CFLAGS= -g3  
+#LDFLAGS= -Xlinker -Map -Xlinker $(PROG).map #,--stack,16Mb  
OBJ= main.o command.o parse.o  
SCRIPTS= *.sh  
 
build: $(PROG)  
 
$(PROG): $(OBJ)  
- gcc -o $(PROG) $(OBJ) $(LIBS) $(LDFLAGS)  
+ $(GCC) -o $(PROG) $(OBJ) $(LIBS) $(LDFLAGS)  
@echo "==============================================="  
@echo "edit $(PROG).conf file to set default preferences"  
 
%.o : %.c  
- gcc $(CFLAGS) -D__COPYLEFT__='$(COPYLEFT)' -c $<  
+ $(GCC) $(CFLAGS) -D__COPYLEFT__='$(COPYLEFT)' -c $<  
 
%.o : %.c %.h  
- gcc $(CFLAGS) -D__COPYLEFT__='$(COPYLEFT)' -c $<  
+ $(GCC) $(CFLAGS) -D__COPYLEFT__='$(COPYLEFT)' -c $<  
 
distclean clean:  
rm $(PROG) *~ *.o -vf  
 
--- cmdpad-0.0.3/src/parse.orig 2008-01-05 23:55:32.000000000 +0100  
+++ cmdpad-0.0.3/src/parse.c 2008-01-05 23:56:07.000000000 +0100  
@@ -289,6 +289,12 @@  
pchEventDevice = strdup( pchValue) ;  
return 1 ;  
}  
+ if( (pchValue != NULL) &&  
+ (strncmp( pchValue, "/dev/event", 6) == 0) )  
+ {  
+ pchEventDevice = strdup( pchValue) ;  
+ return 1 ;  
+ }  
printf( "Option 'device' expects a /dev/input/eventX argument\n");  
return -1 ;  
}  
 
--- cmdpad-0.0.3/src/command.c.orig 2003-03-29 17:54:12.000000000 +0100  
+++ cmdpad-0.0.3/src/command.c 2008-01-12 05:41:22.000000000 +0100  
@@ -68,6 +68,7 @@  
 
void exec( char * command)  
{  
+ int status;  
if( fork() == 0) {  
char ** tmp ;  
int i ;  
@@ -88,6 +89,7 @@  
perror( "ERROR: execv") ;  
exit( 1) ;  
} // end if( fork())  
+ wait(&status);  
}  
 
int getNumberofEntry()  
 
--- a/src/parse.c  
+++ b/src/parse.c  
@@ -125,7 +125,7 @@ int readCommandLine( int argc, char *arg  
 
d2printf( "command line command %s found\n", pchCommandTranslations[ iCmd+1]) ;  
 
- vsnprintf( achCommand, sizeof( achCommand),  
+ snprintf( achCommand, sizeof( achCommand),  
pchCommandTranslations[ iCmd+1],  
&argv[ i+1]) ;  
 
 
file:a/utils/dbus/Makefile (deleted)
#  
# Copyright (C) 2007-2011 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
# Make sure to also update the dbus-x package  
PKG_NAME:=dbus  
PKG_VERSION:=1.4.14  
PKG_RELEASE:=2  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=http://dbus.freedesktop.org/releases/dbus/  
PKG_MD5SUM:=ae6de2562a57516cfabaf56903375ba9  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
TARGET_LDFLAGS+= \  
-Wl,-rpath-link=$(STAGING_DIR)/usr/lib \  
-Wl,-rpath=/usr/lib/  
 
define Package/dbus/Default  
SECTION:=utils  
CATEGORY:=Utilities  
TITLE:=Simple interprocess messaging system  
URL:=http://dbus.freedesktop.org/  
endef  
 
define Package/dbus/Default/description  
D-Bus is a message bus system, a simple way for applications to talk to one  
another. In addition to interprocess communication, D-Bus helps coordinate  
process lifecycle; it makes it simple and reliable to code a "single instance"  
application or daemon, and to launch applications and daemons on demand when  
their services are needed.  
endef  
 
define Package/libdbus  
$(call Package/dbus/Default)  
CATEGORY:=Libraries  
TITLE+= (library)  
DEPENDS:= +librt  
endef  
 
define Package/libdbus/Description  
$(call Package/dbus/Default/description)  
This package contains the D-Bus shared library.  
endef  
 
define Package/dbus  
$(call Package/dbus/Default)  
TITLE+= (daemon)  
DEPENDS:= +libexpat +libdbus  
endef  
 
define Package/dbus/Description  
$(call Package/dbus/Default/description)  
This package contains the D-Bus daemon.  
endef  
 
define Package/dbus-utils  
$(call Package/dbus/Default)  
TITLE+= (utilities)  
DEPENDS:= dbus  
endef  
 
define Package/dbus-utils/Description  
$(call Package/dbus/Default/description)  
This package contains D-Bus utilities.  
endef  
 
 
define Build/Prepare  
$(Build/Prepare/Default)  
$(SED) 's/-Wl,--gc-sections/--gc-sections/' $(PKG_BUILD_DIR)/configure  
endef  
 
CONFIGURE_ARGS += \  
--enable-shared \  
--enable-static \  
--disable-abstract-sockets \  
--disable-ansi \  
--disable-asserts \  
--disable-console-owner-file \  
--disable-doxygen-docs \  
--disable-compiler_coverage \  
--disable-selinux \  
--disable-tests \  
--disable-verbose-mode \  
--disable-xml-docs \  
--with-xml="expat" \  
--with-dbus-user=root \  
--with-dbus-daemondir="/usr/sbin" \  
--with-system-socket="/var/run/dbus/system_bus_socket" \  
--with-system-pid-file="/var/run/dbus.pid" \  
--without-x \  
--libexecdir=/usr/lib/dbus-1  
 
CONFIGURE_VARS+= \  
ac_cv_have_abstract_sockets="yes" \  
ac_cv_lib_expat_XML_ParserCreate_MM="yes" \  
 
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/include/dbus-1.0 \  
$(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib/dbus-1.0/include/dbus/  
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/lib/dbus-1.0/include/dbus/*.h \  
$(1)/usr/lib/dbus-1.0/include/dbus/  
 
$(INSTALL_DIR) $(1)/usr/lib  
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/lib/libdbus-1.{so*,la,a} \  
$(1)/usr/lib/  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/dbus-1.0 \  
$(1)/usr/lib/  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig  
$(INSTALL_DATA) \  
$(PKG_INSTALL_DIR)/usr/lib/pkgconfig/dbus-1.pc \  
$(1)/usr/lib/pkgconfig/  
endef  
 
define Package/dbus/conffiles  
/etc/dbus-1/session.conf  
/etc/dbus-1/system.conf  
endef  
 
define Package/libdbus/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) \  
$(PKG_INSTALL_DIR)/usr/lib/libdbus-1.so.* \  
$(1)/usr/lib/  
endef  
 
define Package/dbus/install  
$(INSTALL_DIR) $(1)/etc  
$(CP) \  
$(PKG_INSTALL_DIR)/etc/dbus-1 \  
$(1)/etc/  
 
$(INSTALL_DIR) $(1)/usr/lib/dbus-1  
$(INSTALL_BIN) \  
$(PKG_INSTALL_DIR)/usr/lib/dbus-1/dbus-daemon-launch-helper \  
$(1)/usr/lib/dbus-1/  
 
$(INSTALL_DIR) $(1)/usr/sbin  
$(INSTALL_BIN) \  
$(PKG_INSTALL_DIR)/usr/sbin/dbus-daemon \  
$(1)/usr/sbin/  
 
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) \  
$(PKG_INSTALL_DIR)/usr/bin/dbus-uuidgen \  
$(1)/usr/bin/  
 
$(INSTALL_BIN) \  
$(PKG_INSTALL_DIR)/usr/bin/dbus-launch \  
$(1)/usr/bin/dbus-launch.real  
$(INSTALL_BIN) \  
./files/dbus-launch \  
$(1)/usr/bin/  
 
$(INSTALL_DIR) $(1)/etc/init.d  
$(INSTALL_BIN) \  
./files/dbus.init \  
$(1)/etc/init.d/dbus  
endef  
 
define Package/dbus-utils/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) \  
$(PKG_INSTALL_DIR)/usr/bin/dbus-{send,monitor,cleanup-sockets} \  
$(1)/usr/bin/  
endef  
 
$(eval $(call BuildPackage,libdbus))  
$(eval $(call BuildPackage,dbus))  
$(eval $(call BuildPackage,dbus-utils))  
 
#!/bin/sh  
#  
# Simple wrapper script which allows us to build dbus without general x support  
# If an application needs x support in dbus-launch it has to depend on the  
# dbus-launch-x package. The script is used to prefer dbus-launch with x over  
# the dbus-lauch without x.  
 
if [ -f /usr/bin/dbus-launch-x ]; then  
exec /usr/bin/dbus-launch-x $@  
else  
exec /usr/bin/dbus-launch.real $@  
fi  
 
#!/bin/sh /etc/rc.common  
# Copyright (C) 2007-2011 OpenWrt.org  
 
START=60  
 
SERVICE_PID_FILE=/var/run/dbus.pid  
 
start() {  
mkdir -m 0755 -p /var/lib/dbus  
mkdir -m 0755 -p /var/run/dbus  
[ -x /usr/bin/dbus-uuidgen ] && /usr/bin/dbus-uuidgen --ensure  
service_start /usr/sbin/dbus-daemon --system  
}  
 
stop() {  
service_stop /usr/sbin/dbus-daemon && rm $SERVICE_PID_FILE  
}  
 
file:a/utils/shadow/Makefile (deleted)
#  
# Copyright (C) 2008-2013 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=shadow  
PKG_VERSION:=4.1.5.1  
PKG_RELEASE:=4  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2  
PKG_SOURCE_URL:=http://pkg-shadow.alioth.debian.org/releases  
PKG_MD5SUM:=a00449aa439c69287b6d472191dc2247  
 
PKG_FIXUP:=autoreconf  
PKG_BUILD_PARALLEL:=1  
PKG_INSTALL:=1  
 
PKG_BUILD_DEPENDS:=libintl  
 
include $(INCLUDE_DIR)/package.mk  
 
SHADOW_APPLETS := \  
chage groupadd groupdel groupmod groups passwd su \  
useradd userdel usermod  
 
CONFIGURE_ARGS += \  
--without-audit \  
--without-libpam \  
--without-selinux \  
--without-acl \  
--without-attr \  
--without-tcb \  
--without-nscd  
 
define Package/shadow/Default  
SECTION:=utils  
CATEGORY:=Utilities  
TITLE:=The PLD Linux shadow utilities  
URL:=http://pkg-shadow.alioth.debian.org/  
endef  
 
define Package/shadow  
$(call Package/shadow/Default)  
DEPENDS:=$(foreach u,$(SHADOW_APPLETS),+shadow-$(u))  
endef  
 
define Package/shadow/description  
Full versions of standard shadow utilities. Normally, you would not  
use this package, since the functionality in BusyBox is more than  
sufficient and much smaller.  
endef  
 
define Package/shadow/install  
true  
endef  
 
 
define Package/shadow-common  
$(call Package/shadow/Default)  
TITLE:=Shared definitions for the PLD Linux shadow utilities  
endef  
 
 
define GenPlugin  
define Package/shadow-$(1)  
$(call Package/shadow/Default)  
TITLE:=Utility $(1) from the PLD Linux shadow utilities  
DEPENDS:=+shadow-common  
endef  
 
define Package/shadow-$(1)/description  
Full version of standard $(1) utility. Normally, you would not use this  
package, since the functionality in BusyBox is more than sufficient.  
endef  
endef  
 
$(foreach u,$(SHADOW_APPLETS),$(eval $(call GenPlugin,$(u))))  
 
 
define Package/shadow-common/conffiles  
/etc/login.defs  
endef  
 
define Package/shadow-common/install  
$(INSTALL_DIR) $(1)/etc  
$(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/login.defs $(1)/etc/  
endef  
 
 
define BuildPlugin  
define Package/shadow-$(1)/install  
[ -x "$(PKG_INSTALL_DIR)/usr/sbin/$(1)" ] && { \  
$(INSTALL_DIR) $$(1)/usr/sbin; \  
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/$(1) $$(1)/usr/sbin/; \  
} || { \  
$(INSTALL_DIR) $$(1)/usr/bin; \  
$(CP) $(PKG_INSTALL_DIR)/usr/bin/$(1) $$(1)/usr/bin/; \  
}  
endef  
 
$$(eval $$(call BuildPackage,shadow-$(1)))  
endef  
 
$(foreach u,$(SHADOW_APPLETS),$(eval $(call BuildPlugin,$(u))))  
 
$(eval $(call BuildPackage,shadow))  
$(eval $(call BuildPackage,shadow-common))  
 
diff --git a/etc/login.defs b/etc/login.defs  
index 5b6fab3..79eeccf 100644  
--- a/etc/login.defs  
+++ b/etc/login.defs  
@@ -111,7 +111,7 @@ NOLOGINS_FILE /etc/nologin  
# command is "-su". If not defined, then "ps" would display the  
# name of the shell actually being run, e.g. something like "-sh".  
#  
-SU_NAME su  
+#SU_NAME su  
 
#  
# *REQUIRED*  
 
--- a/configure.in  
+++ b/configure.in  
@@ -195,7 +195,6 @@ AC_DEFINE_UNQUOTED(PASSWD_PROGRAM, "$sha  
dnl XXX - quick hack, should disappear before anyone notices :).  
AC_DEFINE(USE_SYSLOG, 1, [Define to use syslog().])  
AC_DEFINE(RLOGIN, 1, [Define if login should support the -r flag for rlogind.])  
-AC_DEFINE(RUSEROK, 0, [Define to the ruserok() "success" return value (0 or 1).])  
 
AC_ARG_ENABLE(shadowgrp,  
[AC_HELP_STRING([--enable-shadowgrp], [enable shadow group support @<:@default=yes@:>@])],  
 
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=triggerhappy  
PKG_VERSION:=0.3.4  
PKG_REV:=cb3ed9ba849ff5926fa47fd1ae042fa0083edaf5  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=git://github.com/wertarbyte/triggerhappy  
PKG_SOURCE_PROTO:=git  
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)  
PKG_SOURCE_VERSION:=$(PKG_REV)  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/triggerhappy  
SECTION:=utils  
CATEGORY:=Utilities  
TITLE:=handle input events and run configured programs  
URL:=http://github.com/wertarbyte/triggerhappy  
endef  
 
define Package/triggerhappy/description  
triggerhappy - handle input events and run configured programs  
The daemon thd can handle hotplugged input devices and is configured through  
simple configuration files in /etc/triggerhappy/triggers.d/.  
endef  
 
MAKE_FLAGS += \  
$(TARGET_CONFIGURE_OPTS) \  
$(1)  
 
define Package/triggerhappy/install  
$(INSTALL_DIR) $(1)/usr/sbin  
$(INSTALL_DIR) $(1)/etc  
$(INSTALL_DIR) $(1)/etc/init.d  
$(INSTALL_DIR) $(1)/etc/triggerhappy  
$(INSTALL_DIR) $(1)/etc/triggerhappy/triggers.d/  
$(INSTALL_DIR) $(1)/etc/hotplug.d/input/  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/thd $(1)/usr/sbin  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/th-cmd $(1)/usr/sbin  
$(INSTALL_BIN) ./files/triggerhappy.init $(1)/etc/init.d/triggerhappy  
$(INSTALL_BIN) ./files/triggerhappy.hotplug $(1)/etc/hotplug.d/input/10-triggerhappy  
$(INSTALL_BIN) ./files/triggerhappy-example.conf $(1)/etc/triggerhappy/triggers.d/example.conf  
endef  
 
$(eval $(call BuildPackage,triggerhappy))  
 
# This is an example configuration for the triggerhappy daemon (thd)  
# please note that every file to be processed must end in ".conf"  
#  
# To view a list of supported event codes, use "thd --listevents" or  
# "thd --dump /dev/input/event*"  
#  
# Format:  
# <eventcode> <value> <command>  
#  
# values for key events are 1 (pressed), 0 (released) or 2 (held)  
#  
## control an mpd instance  
# KEY_NEXTSONG 1 /usr/bin/mpc next  
# KEY_PREVSONG 1 /usr/bin/mpc prev  
 
#!/bin/sh  
THD_SOCKET=/tmp/triggerhappy.socket  
[ -S "$THD_SOCKET" ] || exit  
 
case "$ACTION" in  
add)  
DEVICE="/dev/$DEVNAME"  
[ -c "$DEVICE" ] || exit  
# offer device to triggerhappy daemon  
/usr/sbin/th-cmd --socket "$THD_SOCKET" --add "$DEVICE"  
;;  
remove)  
# nothing to do  
;;  
esac  
 
#!/bin/sh /etc/rc.common  
START=93  
 
start() {  
/usr/sbin/thd --socket /tmp/triggerhappy.socket --triggers /etc/triggerhappy/triggers.d/ --daemon /dev/input/event*  
}  
 
stop() {  
/usr/sbin/th-cmd --socket /tmp/triggerhappy.socket --quit  
}  
 
--- a/Makefile  
+++ b/Makefile  
@@ -10,7 +10,7 @@ THCMD_COMPS := th-cmd cmdsocket  
 
MAKEDEPEND = $(CC) -M -MG $(CPPFLAGS) -o $*.d $<  
 
-LINUX_INPUT_H := $(shell echo '\#include <linux/input.h>' | $(CC) $(CPPFLAGS) -M -E - | awk 'NR==1 {print $$2}')  
+LINUX_INPUT_H := $(shell for i in `echo | $(CC) $(CPPFLAGS) -M -E -include 'linux/input.h' -`; do test -f "$$i" && echo "$$i" && break; done)  
 
all: thd th-cmd man  
 
 
file:a/utils/zile/Makefile (deleted)
#  
# Copyright (C) 2006-2011 OpenWrt.org  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=zile  
PKG_VERSION:=2.3.24  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=@GNU/zile  
PKG_MD5SUM:=fe77d801ba69e0fb9b4914a04b9ff506  
 
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/zile  
SECTION:=utils  
CATEGORY:=Utilities  
DEPENDS:=+libncursesw  
TITLE:=very small emacs-like editor  
URL:=http://www.gnu.org/software/zile/  
SUBMENU:=Editors  
endef  
 
define Package/zile/description  
Zile is a small Emacs clone. Zile is a customizable, self-documenting  
real-time display editor. Zile was written to be as similar as possible  
to Emacs; every Emacs user should feel at home with Zile.  
endef  
 
CONFIGURE_VARS += \  
gl_cv_func_getopt_gnu=yes  
 
define Package/zile/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/bin/  
endef  
 
$(eval $(call BuildPackage,zile))  
 
comments