@ -0,0 +1,55 @@ | |||||
# | |||||
# Copyright (C) 2010 Gianluigi Tiesi <sherpya@netfarm.it> | |||||
# Copyright (C) 2011-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:=debootstrap | |||||
PKG_VERSION:=1.0.60~bpo70+1 | |||||
PKG_RELEASE:=1 | |||||
PKG_MAINTAINER=Daniel Golle <daniel@makrotopia.org> | |||||
PKG_SOURCE:=$(PKG_NAME)-udeb_$(PKG_VERSION)_all.udeb | |||||
PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/main/d/debootstrap | |||||
PKG_MD5SUM:=6d4e3b97981b9e0bb86f49d8edac91af | |||||
UNPACK_CMD=ar -p "$(DL_DIR)/$(PKG_SOURCE)" data.tar.xz | xzcat | tar -C $(1) -xf - | |||||
include $(INCLUDE_DIR)/package.mk | |||||
define Package/debootstrap | |||||
SECTION:=admin | |||||
CATEGORY:=Administration | |||||
TITLE:=Bootstrap a basic Debian system | |||||
URL:=http://wiki.debian.org/Debootstrap | |||||
DEPENDS:= +coreutils +coreutils-chroot +coreutils-sha1sum | |||||
endef | |||||
define Package/debootstrap/description | |||||
debootstrap is used to create a Debian base system from scratch, without | |||||
requiring the availability of dpkg or apt. It does this by downloading .deb | |||||
files from a mirror site, and carefully unpacking them into a directory which | |||||
can eventually be chrooted into. | |||||
endef | |||||
define Build/Compile | |||||
# file pkgdetails.c was imported from debian package base-installer version 1.130 | |||||
$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) ./files/pkgdetails.c -o $(PKG_BUILD_DIR)/usr/share/debootstrap/pkgdetails | |||||
endef | |||||
define Package/debootstrap/install | |||||
$(INSTALL_DIR) $(1)/usr/sbin | |||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/usr/sbin/$(PKG_NAME) $(1)/usr/sbin | |||||
$(INSTALL_DIR) $(1)/usr/share/debootstrap | |||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/usr/share/debootstrap/pkgdetails $(1)/usr/share/debootstrap | |||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/usr/share/debootstrap/functions $(1)/usr/share/debootstrap | |||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/usr/share/debootstrap/devices.tar.gz $(1)/usr/share/debootstrap | |||||
$(INSTALL_DIR) $(1)/usr/share/debootstrap/scripts | |||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/usr/share/debootstrap/scripts/* $(1)/usr/share/debootstrap/scripts | |||||
endef | |||||
$(eval $(call BuildPackage,debootstrap)) |
@ -0,0 +1,347 @@ | |||||
#include <stdio.h> | |||||
#include <stdlib.h> | |||||
#include <string.h> | |||||
#include <ctype.h> | |||||
#include <stdarg.h> | |||||
#include <errno.h> | |||||
#define MAX_LINE 1000 | |||||
#define MAX_PKGS 100 | |||||
char *checksum_field=NULL; | |||||
static void oom_die(void) | |||||
{ | |||||
fputs("Out of memory!\n", stderr); | |||||
exit(1); | |||||
} | |||||
static char *xvasprintf(const char *fmt, va_list ap) { | |||||
char *ret; | |||||
if (vasprintf (&ret, fmt, ap) < 0) { | |||||
if (errno == ENOMEM) | |||||
oom_die(); | |||||
return NULL; | |||||
} | |||||
return ret; | |||||
} | |||||
static char *xasprintf(const char *fmt, ...) { | |||||
va_list ap; | |||||
char *ret; | |||||
va_start(ap, fmt); | |||||
ret = xvasprintf(fmt, ap); | |||||
va_end(ap); | |||||
return ret; | |||||
} | |||||
static char *fieldcpy(char *dst, char *fld) { | |||||
while (*fld && *fld != ':') | |||||
fld++; | |||||
if (!*(fld++)) | |||||
return NULL; | |||||
while (isspace(*fld)) fld++; | |||||
return strcpy(dst, fld); | |||||
} | |||||
static void outputdeps(char *deps) { | |||||
char *pch = deps; | |||||
while (1) { | |||||
while (isspace(*pch)) pch++; | |||||
if (!*pch) break; | |||||
while (*pch && *pch != '(' && *pch != '|' && *pch != ',' | |||||
&& !isspace(*pch)) | |||||
{ | |||||
fputc(*pch++, stdout); | |||||
} | |||||
fputc('\n', stdout); | |||||
while (*pch && *pch++ != ',') (void)NULL; | |||||
} | |||||
} | |||||
static void dogetdeps(char *pkgsfile, char **in_pkgs, int pkgc) { | |||||
char buf[MAX_LINE]; | |||||
char cur_pkg[MAX_LINE]; | |||||
char cur_deps[MAX_LINE]; | |||||
char cur_predeps[MAX_LINE]; | |||||
char prev_pkg[MAX_LINE]; | |||||
char *pkgs[MAX_PKGS]; | |||||
int i; | |||||
int skip; | |||||
FILE *f; | |||||
int output_pkg = -1; | |||||
cur_pkg[0] = cur_deps[0] = cur_predeps[0] = prev_pkg[0] = '\0'; | |||||
for (i = 0; i < pkgc; i++) pkgs[i] = in_pkgs[i]; | |||||
f = fopen(pkgsfile, "r"); | |||||
if (f == NULL) { | |||||
perror(pkgsfile); | |||||
exit(1); | |||||
} | |||||
skip = 1; | |||||
while (fgets(buf, sizeof(buf), f)) { | |||||
if (*buf && buf[strlen(buf)-1] == '\n') buf[strlen(buf)-1] = '\0'; | |||||
if (strncasecmp(buf, "Package:", 8) == 0) { | |||||
int any = 0; | |||||
skip = 1; | |||||
fieldcpy(cur_pkg, buf); | |||||
if (strcmp(cur_pkg, prev_pkg) != 0) { | |||||
if (output_pkg != -1) | |||||
pkgs[output_pkg] = NULL; | |||||
if (cur_deps[0]) | |||||
outputdeps(cur_deps); | |||||
if (cur_predeps[0]) | |||||
outputdeps(cur_predeps); | |||||
strcpy(prev_pkg, cur_pkg); | |||||
} | |||||
cur_deps[0] = cur_predeps[0] = '\0'; | |||||
output_pkg = -1; | |||||
for (i = 0; i < pkgc; i++) { | |||||
if (!pkgs[i]) continue; | |||||
any = 1; | |||||
if (strcmp(cur_pkg, pkgs[i]) == 0) { | |||||
skip = 0; | |||||
output_pkg = i; | |||||
break; | |||||
} | |||||
} | |||||
if (!any) break; | |||||
} else if (!skip && strncasecmp(buf, "Depends:", 8) == 0) | |||||
fieldcpy(cur_deps, buf); | |||||
else if (!skip && strncasecmp(buf, "Pre-Depends:", 12) == 0) | |||||
fieldcpy(cur_predeps, buf); | |||||
} | |||||
if (cur_deps[0]) | |||||
outputdeps(cur_deps); | |||||
if (cur_predeps[0]) | |||||
outputdeps(cur_predeps); | |||||
fclose(f); | |||||
} | |||||
static void dopkgmirrorpkgs(int uniq, char *mirror, char *pkgsfile, | |||||
char *fieldname, char **in_pkgs, int pkgc) | |||||
{ | |||||
char buf[MAX_LINE]; | |||||
char cur_field[MAX_LINE]; | |||||
char cur_pkg[MAX_LINE]; | |||||
char cur_ver[MAX_LINE]; | |||||
char cur_arch[MAX_LINE]; | |||||
char cur_size[MAX_LINE]; | |||||
char cur_checksum[MAX_LINE]; | |||||
char cur_filename[MAX_LINE]; | |||||
char prev_pkg[MAX_LINE]; | |||||
char *pkgs[MAX_PKGS]; | |||||
int i; | |||||
FILE *f; | |||||
char *output = NULL; | |||||
int output_pkg = -1; | |||||
cur_field[0] = cur_pkg[0] = cur_ver[0] = cur_arch[0] = cur_filename[0] = prev_pkg[0] = '\0'; | |||||
for (i = 0; i < pkgc; i++) pkgs[i] = in_pkgs[i]; | |||||
f = fopen(pkgsfile, "r"); | |||||
if (f == NULL) { | |||||
perror(pkgsfile); | |||||
exit(1); | |||||
} | |||||
while (fgets(buf, sizeof(buf), f)) { | |||||
if (*buf && buf[strlen(buf)-1] == '\n') buf[strlen(buf)-1] = '\0'; | |||||
if (strncasecmp(buf, fieldname, strlen(fieldname)) == 0) { | |||||
fieldcpy(cur_field, buf); | |||||
} | |||||
if (strncasecmp(buf, "Package:", 8) == 0) { | |||||
fieldcpy(cur_pkg, buf); | |||||
if (strcmp(cur_pkg, prev_pkg) != 0) { | |||||
if (output) | |||||
fputs(output, stdout); | |||||
if (uniq && output_pkg != -1) | |||||
pkgs[output_pkg] = NULL; | |||||
strcpy(prev_pkg, cur_pkg); | |||||
} | |||||
free(output); | |||||
output = NULL; | |||||
output_pkg = -1; | |||||
} else if (strncasecmp(buf, "Version:", 8) == 0) { | |||||
fieldcpy(cur_ver, buf); | |||||
} else if (strncasecmp(buf, "Architecture:", 13) == 0) { | |||||
fieldcpy(cur_arch, buf); | |||||
} else if (strncasecmp(buf, "Size:", 5) == 0) { | |||||
fieldcpy(cur_size, buf); | |||||
} else if (strncasecmp(buf, checksum_field, strlen(checksum_field)) == 0 | |||||
&& buf[strlen(checksum_field)] == ':') { | |||||
fieldcpy(cur_checksum, buf); | |||||
} else if (strncasecmp(buf, "Filename:", 9) == 0) { | |||||
fieldcpy(cur_filename, buf); | |||||
} else if (!*buf) { | |||||
int any = 0; | |||||
for (i = 0; i < pkgc; i++) { | |||||
if (!pkgs[i]) continue; | |||||
any = 1; | |||||
if (strcmp(cur_field, pkgs[i]) == 0) { | |||||
free(output); | |||||
output = xasprintf("%s %s %s %s %s %s %s\n", cur_pkg, cur_ver, cur_arch, mirror, cur_filename, cur_checksum, cur_size); | |||||
output_pkg = i; | |||||
break; | |||||
} | |||||
} | |||||
if (!any) break; | |||||
cur_field[0] = '\0'; | |||||
} | |||||
} | |||||
if (output) | |||||
fputs(output, stdout); | |||||
if (uniq && output_pkg != -1) | |||||
pkgs[output_pkg] = NULL; | |||||
fclose(f); | |||||
/* any that weren't found are returned as "pkg -" */ | |||||
if (uniq) { | |||||
for (i = 0; i < pkgc; i++) { | |||||
if (pkgs[i]) { | |||||
printf("%s -\n", pkgs[i]); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
static void dopkgstanzas(char *pkgsfile, char **pkgs, int pkgc) | |||||
{ | |||||
char buf[MAX_LINE]; | |||||
char *accum; | |||||
size_t accum_size = 0, accum_alloc = MAX_LINE * 2; | |||||
char cur_pkg[MAX_LINE]; | |||||
FILE *f; | |||||
accum = malloc(accum_alloc); | |||||
if (!accum) | |||||
oom_die(); | |||||
f = fopen(pkgsfile, "r"); | |||||
if (f == NULL) { | |||||
perror(pkgsfile); | |||||
free(accum); | |||||
exit(1); | |||||
} | |||||
while (fgets(buf, sizeof(buf), f)) { | |||||
if (*buf) { | |||||
size_t len = strlen(buf); | |||||
if (accum_size + len + 1 > accum_alloc) { | |||||
accum_alloc = (accum_size + len + 1) * 2; | |||||
accum = realloc(accum, accum_alloc); | |||||
if (!accum) | |||||
oom_die(); | |||||
} | |||||
strcpy(accum + accum_size, buf); | |||||
accum_size += len; | |||||
} | |||||
if (*buf && buf[strlen(buf)-1] == '\n') buf[strlen(buf)-1] = '\0'; | |||||
if (strncasecmp(buf, "Package:", 8) == 0) { | |||||
fieldcpy(cur_pkg, buf); | |||||
} else if (!*buf) { | |||||
int i; | |||||
for (i = 0; i < pkgc; i++) { | |||||
if (!pkgs[i]) continue; | |||||
if (strcmp(cur_pkg, pkgs[i]) == 0) { | |||||
fputs(accum, stdout); | |||||
if (accum[accum_size - 1] != '\n') | |||||
fputs("\n\n", stdout); | |||||
else if (accum[accum_size - 2] != '\n') | |||||
fputc('\n', stdout); | |||||
break; | |||||
} | |||||
} | |||||
*accum = '\0'; | |||||
accum_size = 0; | |||||
} | |||||
} | |||||
fclose(f); | |||||
free(accum); | |||||
} | |||||
static int dotranslatewgetpercent(int low, int high, int end, char *str) { | |||||
int ch; | |||||
int val, lastval; | |||||
/* print out anything that looks like a % on its own line, appropriately | |||||
* scaled */ | |||||
lastval = val = 0; | |||||
while ( (ch = getchar()) != EOF ) { | |||||
if (isdigit(ch)) { | |||||
val *= 10; val += ch - '0'; | |||||
} else if (ch == '%') { | |||||
float f = (float) val / 100.0 * (high - low) + low; | |||||
if (str) { | |||||
printf("P: %d %d %s\n", (int) f, end, str); | |||||
} else { | |||||
printf("P: %d %d\n", (int) f, end); | |||||
} | |||||
lastval = val; | |||||
} else { | |||||
val = 0; | |||||
} | |||||
} | |||||
return lastval == 100; | |||||
} | |||||
int main(int argc, char *argv[]) { | |||||
checksum_field=getenv("DEBOOTSTRAP_CHECKSUM_FIELD"); | |||||
if (checksum_field == NULL) { | |||||
checksum_field="MD5sum"; | |||||
} | |||||
if ((argc == 6 || argc == 5) && strcmp(argv[1], "WGET%") == 0) { | |||||
if (dotranslatewgetpercent(atoi(argv[2]), atoi(argv[3]), | |||||
atoi(argv[4]), argc == 6 ? argv[5] : NULL)) | |||||
{ | |||||
exit(0); | |||||
} else { | |||||
exit(1); | |||||
} | |||||
} else if (argc >= 4 && strcmp(argv[1], "GETDEPS") == 0) { | |||||
int i; | |||||
for (i = 3; argc - i > MAX_PKGS; i += MAX_PKGS) { | |||||
dogetdeps(argv[2], argv+i, MAX_PKGS); | |||||
} | |||||
dogetdeps(argv[2], argv+i, argc-i); | |||||
exit(0); | |||||
} else if (argc >= 5 && strcmp(argv[1], "PKGS") == 0) { | |||||
int i; | |||||
for (i = 4; argc - i > MAX_PKGS; i += MAX_PKGS) { | |||||
dopkgmirrorpkgs(1, argv[2], argv[3], "Package:", argv+i, MAX_PKGS); | |||||
} | |||||
dopkgmirrorpkgs(1, argv[2], argv[3], "Package:", argv+i, argc-i); | |||||
exit(0); | |||||
} else if (argc >= 6 && strcmp(argv[1], "FIELD") == 0) { | |||||
int i; | |||||
for (i = 5; argc - i > MAX_PKGS; i += MAX_PKGS) { | |||||
dopkgmirrorpkgs(0, argv[3], argv[4], argv[2], argv+i, MAX_PKGS); | |||||
} | |||||
dopkgmirrorpkgs(0, argv[3], argv[4], argv[2], argv+i, argc-i); | |||||
exit(0); | |||||
} else if (argc >= 4 && strcmp(argv[1], "STANZAS") == 0) { | |||||
int i; | |||||
for (i = 3; argc - i > MAX_PKGS; i += MAX_PKGS) { | |||||
dopkgstanzas(argv[2], argv+i, MAX_PKGS); | |||||
} | |||||
dopkgstanzas(argv[2], argv+i, argc-i); | |||||
exit(0); | |||||
} else { | |||||
fprintf(stderr, "usage: %s PKGS mirror packagesfile pkgs..\n", argv[0]); | |||||
fprintf(stderr, " or: %s FIELD field mirror packagesfile pkgs..\n", | |||||
argv[0]); | |||||
fprintf(stderr, " or: %s GETDEPS packagesfile pkgs..\n", argv[0]); | |||||
fprintf(stderr, " or: %s STANZAS packagesfile pkgs..\n", argv[0]); | |||||
fprintf(stderr, " or: %s WGET%% low high end reason\n", argv[0]); | |||||
exit(1); | |||||
} | |||||
} |
@ -0,0 +1,11 @@ | |||||
--- a/usr/share/debootstrap/functions | |||||
+++ b/usr/share/debootstrap/functions | |||||
@@ -859,8 +859,6 @@ choose_extractor () { | |||||
if [ -n "$EXTRACTOR_OVERRIDE" ]; then | |||||
extractor="$EXTRACTOR_OVERRIDE" | |||||
- elif type dpkg-deb >/dev/null 2>&1; then | |||||
- extractor="dpkg-deb" | |||||
else | |||||
extractor="ar" | |||||
fi |
@ -0,0 +1,59 @@ | |||||
# | |||||
# Copyright (C) 2010-2014 OpenWrt.org | |||||
# | |||||
# This is free software, licensed under the GNU General Public License v2. | |||||
# See /LICENSE for more information. | |||||
# | |||||
include $(TOPDIR)/rules.mk | |||||
LOWFAT_VERSION=0.28 | |||||
PKG_NAME:=libowfat | |||||
PKG_VERSION:=$(LOWFAT_VERSION) | |||||
PKG_RELEASE:=2 | |||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | |||||
PKG_SOURCE_URL:=http://dl.fefe.de | |||||
PKG_MD5SUM:=6bbee9a86506419657d87123b7a6f2c1 | |||||
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org> | |||||
include $(INCLUDE_DIR)/package.mk | |||||
# set to 1 to enable debugging | |||||
DEBUG= | |||||
define Package/libowfat | |||||
SECTION:=libs | |||||
CATEGORY:=Libraries | |||||
TITLE:=reimplemented libdjb under GPL | |||||
URL:=http://www.fefe.de/libowfat/ | |||||
endef | |||||
define Build/Configure | |||||
endef | |||||
TARGET_CFLAGS += $(FPIC) | |||||
LOWFAT_MAKEOPTS = $(TARGET_CONFIGURE_OPTS) \ | |||||
CFLAGS="$(TARGET_CFLAGS) -I$(PKG_BUILD_DIR) -I$(STAGING_DIR)/usr/include" \ | |||||
DEBUG="$(DEBUG)" \ | |||||
VERSION="$(LOWFAT_VERSION)" \ | |||||
OS="Linux" | |||||
# work around a nasty gcc bug | |||||
ifneq ($(CONFIG_GCC_VERSION_4_2_4),) | |||||
LOWFAT_MAKEOPTS += WOPTS="" | |||||
endif | |||||
define Build/Compile | |||||
$(MAKE) -C $(PKG_BUILD_DIR) $(LOWFAT_MAKEOPTS) | |||||
endef | |||||
define Build/InstallDev | |||||
mkdir -p $(1)/usr/include/libowfat | |||||
$(CP) $(PKG_BUILD_DIR)/*.h $(1)/usr/include/libowfat | |||||
$(INSTALL_DIR) $(1)/usr/lib | |||||
$(CP) $(PKG_BUILD_DIR)/*.a $(1)/usr/lib | |||||
endef | |||||
$(eval $(call BuildPackage,libowfat)) |
@ -0,0 +1,14 @@ | |||||
# FreeRADIUS avanced configuration | |||||
choice | |||||
prompt "SSL library" | |||||
default FREERADIUS_OPENSSL | |||||
depends on PACKAGE_freeradius2-common | |||||
config FREERADIUS_NOSSL | |||||
bool "No SSL support" | |||||
config FREERADIUS_OPENSSL | |||||
bool "OpenSSL" | |||||
endchoice |
@ -0,0 +1,632 @@ | |||||
# | |||||
# Copyright (C) 2008-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:=freeradius2 | |||||
PKG_VERSION:=2.2.5 | |||||
PKG_RELEASE:=1 | |||||
PKG_SOURCE:=freeradius-server-$(PKG_VERSION).tar.bz2 | |||||
PKG_SOURCE_URL:=ftp://ftp.freeradius.org/pub/freeradius/ | |||||
PKG_MD5SUM:=40535bace507d7a3134c3d858f3cbc5a | |||||
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org> | |||||
PKG_BUILD_DIR:=$(BUILD_DIR)/freeradius-server-$(PKG_VERSION) | |||||
PKG_FIXUP:=autoreconf | |||||
PKG_CONFIG_DEPENDS := \ | |||||
FREERADIUS_OPENSSL \ | |||||
FREERADIUS_NOSSL | |||||
include $(INCLUDE_DIR)/package.mk | |||||
define Package/freeradius2/config | |||||
source "$(SOURCE)/Config.in" | |||||
endef | |||||
define Package/freeradius2/Default | |||||
SECTION:=net | |||||
CATEGORY:=Network | |||||
URL:=http://freeradius.org/ | |||||
SUBMENU:=FreeRADIUS (version 2) | |||||
endef | |||||
define Package/freeradius2 | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=+libltdl +libreadline +freeradius2-common | |||||
TITLE:=A flexible RADIUS server (version 2) | |||||
endef | |||||
define Package/freeradius2/conffiles | |||||
/etc/freeradius2/clients.conf | |||||
/etc/freeradius2/radiusd.conf | |||||
/etc/freeradius2/sites/default | |||||
endef | |||||
define Package/freeradius2-democerts | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=Demo certificates to test the server | |||||
endef | |||||
define Package/freeradius2-common | |||||
$(call Package/freeradius2/Default) | |||||
TITLE:=common files | |||||
DEPENDS:=+libpthread +FREERADIUS_OPENSSL:libopenssl | |||||
endef | |||||
define Package/freeradius2-mod-chap | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=CHAP module | |||||
endef | |||||
define Package/freeradius2-mod-chap/conffiles | |||||
/etc/freeradius2/modules/chap | |||||
endef | |||||
define Package/freeradius2-mod-detail | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=Detailed accounting module | |||||
endef | |||||
define Package/freeradius2-mod-detail/conffiles | |||||
/etc/freeradius2/modules/detail | |||||
endef | |||||
define Package/freeradius2-mod-eap | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=Base EAP module | |||||
endef | |||||
define Package/freeradius2-mod-eap/conffiles | |||||
/etc/freeradius2/eap.conf | |||||
endef | |||||
define Package/freeradius2-mod-eap-gtc | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2-mod-eap | |||||
TITLE:=EAP/GTC module | |||||
endef | |||||
define Package/freeradius2-mod-eap-md5 | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2-mod-eap | |||||
TITLE:=EAP/MD5 module | |||||
endef | |||||
define Package/freeradius2-mod-eap-mschapv2 | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2-mod-eap +freeradius2-mod-mschap | |||||
TITLE:=EAP/MS-CHAPv2 module | |||||
endef | |||||
define Package/freeradius2-mod-eap-peap | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2-mod-eap @FREERADIUS_OPENSSL | |||||
TITLE:=EAP/PEAP module | |||||
endef | |||||
define Package/freeradius2-mod-eap-tls | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2-mod-eap @FREERADIUS_OPENSSL | |||||
TITLE:=EAP/TLS module | |||||
endef | |||||
define Package/freeradius2-mod-eap-ttls | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2-mod-eap-tls | |||||
TITLE:=EAP/TTLS module | |||||
endef | |||||
define Package/freeradius2-mod-exec | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=EXEC module | |||||
endef | |||||
define Package/freeradius2-mod-exec/conffiles | |||||
/etc/freeradius2/modules/exec | |||||
endef | |||||
define Package/freeradius2-mod-expiration | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=Expiration module | |||||
endef | |||||
define Package/freeradius2-mod-expiration/conffiles | |||||
/etc/freeradius2/modules/expiration | |||||
endef | |||||
define Package/freeradius2-mod-always | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=Always module | |||||
endef | |||||
define Package/freeradius2-mod-always/conffiles | |||||
/etc/freeradius2/modules/always | |||||
endef | |||||
define Package/freeradius2-mod-expr | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=EXPR module | |||||
endef | |||||
define Package/freeradius2-mod-expr/conffiles | |||||
/etc/freeradius2/modules/expr | |||||
endef | |||||
define Package/freeradius2-mod-attr-filter | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=ATTR filter module | |||||
endef | |||||
define Package/freeradius2-mod-attr-filter/conffiles | |||||
/etc/freeradius2/modules/attr_filter | |||||
/etc/freeradius2/attrs | |||||
/etc/freeradius2/attrs.access_reject | |||||
/etc/freeradius2/attrs.accounting_response | |||||
/etc/freeradius2/attrs.pre-proxy | |||||
endef | |||||
define Package/freeradius2-mod-attr-rewrite | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=ATTR rewrite module | |||||
endef | |||||
define Package/freeradius2-mod-attr-rewrite/conffiles | |||||
/etc/freeradius2/modules/attr_rewrite | |||||
endef | |||||
define Package/freeradius2-mod-files | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=Module using local files for authorization | |||||
endef | |||||
define Package/freeradius2-mod-files/conffiles | |||||
/etc/freeradius2/acct_users | |||||
/etc/freeradius2/preproxy_users | |||||
/etc/freeradius2/users | |||||
/etc/freeradius2/modules/files | |||||
endef | |||||
define Package/freeradius2-mod-passwd | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=Rlm passwd module | |||||
endef | |||||
define Package/freeradius2-mod-passwd/conffiles | |||||
/etc/freeradius2/modules/passwd | |||||
endef | |||||
define Package/freeradius2-mod-ldap | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 +PACKAGE_freeradius2-mod-ldap:libopenldap | |||||
TITLE:=LDAP module | |||||
endef | |||||
define Package/freeradius2-mod-ldap/conffiles | |||||
/etc/freeradius2/ldap.attrmap | |||||
/etc/freeradius2/modules/ldap | |||||
endef | |||||
define Package/freeradius2-mod-logintime | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=Logintime module | |||||
endef | |||||
define Package/freeradius2-mod-logintime/conffiles | |||||
/etc/freeradius2/modules/logintime | |||||
endef | |||||
define Package/freeradius2-mod-mschap | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=MS-CHAP and MS-CHAPv2 module | |||||
endef | |||||
define Package/freeradius2-mod-mschap/conffiles | |||||
/etc/freeradius2/modules/mschap | |||||
endef | |||||
define Package/freeradius2-mod-pap | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=PAP module | |||||
endef | |||||
define Package/freeradius2-mod-pap/conffiles | |||||
/etc/freeradius2/modules/pap | |||||
endef | |||||
define Package/freeradius2-mod-preprocess | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=Request pre-processing module | |||||
endef | |||||
define Package/freeradius2-mod-preprocess/conffiles | |||||
/etc/freeradius2/hints | |||||
/etc/freeradius2/huntgroups | |||||
/etc/freeradius2/modules/preprocess | |||||
endef | |||||
define Package/freeradius2-mod-realm | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=Realms handling module | |||||
endef | |||||
define Package/freeradius2-mod-realm/conffiles | |||||
/etc/freeradius2/proxy.conf | |||||
/etc/freeradius2/modules/realm | |||||
endef | |||||
define Package/freeradius2-mod-sql | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=Base SQL module | |||||
endef | |||||
define Package/freeradius2-mod-sql/conffiles | |||||
/etc/freeradius2/sql.conf | |||||
endef | |||||
define Package/freeradius2-mod-sql-mysql | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2-mod-sql \ | |||||
+PACKAGE_freeradius2-mod-sql-mysql:libmysqlclient-r | |||||
TITLE:=MySQL module | |||||
endef | |||||
define Package/freeradius2-mod-sql-pgsql | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2-mod-sql \ | |||||
+PACKAGE_freeradius2-mod-sql-pgsql:libpq | |||||
TITLE:=PostgreSQL module | |||||
endef | |||||
define Package/freeradius2-mod-sql-sqlite | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2-mod-sql \ | |||||
+PACKAGE_freeradius2-mod-sql-sqlite:libsqlite3 | |||||
TITLE:=SQLite module | |||||
endef | |||||
define Package/freeradius2-mod-sqlcounter | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2-mod-sql | |||||
TITLE:=Generic SQL Counter module | |||||
endef | |||||
define Package/freeradius2-mod-radutmp | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=Radius UTMP module | |||||
endef | |||||
define Package/freeradius2-mod-radutmp/conffiles | |||||
/etc/freeradius2/modules/radutmp | |||||
/etc/freeradius2/modules/sradutmp | |||||
endef | |||||
define Package/freeradius2-utils | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=+freeradius2-common | |||||
TITLE:=Misc. client utilities | |||||
endef | |||||
define Package/freeradius2-mod-sqllog | |||||
$(call Package/freeradius2/Default) | |||||
DEPENDS:=freeradius2 | |||||
TITLE:=SQL Logging module | |||||
endef | |||||
CONFIGURE_ARGS+= \ | |||||
--libdir=/usr/lib/freeradius2 \ | |||||
--libexecdir=/usr/lib/freeradius2 \ | |||||
--enable-shared \ | |||||
--disable-static \ | |||||
--disable-developer \ | |||||
--with-threads \ | |||||
$(if $(CONFIG_FREERADIUS_OPENSSL),--with,--without)-openssl \ | |||||
$(if $(CONFIG_FREERADIUS_OPENSSL),--with-openssl-includes="$(STAGING_DIR)/usr/include",) \ | |||||
$(if $(CONFIG_FREERADIUS_OPENSSL),--with-openssl-libraries="$(STAGING_DIR)/usr/lib",) \ | |||||
--with-system-libtool \ | |||||
--with-system-libltdl \ | |||||
--enable-strict-dependencies \ | |||||
--with-raddbdir=/etc/freeradius2 \ | |||||
--with-radacctdir=/var/db/radacct \ | |||||
--with-logdir=/var/log \ | |||||
--without-edir \ | |||||
--without-snmp \ | |||||
--without-rlm_checkval \ | |||||
--without-rlm_dbm \ | |||||
--without-rlm_counter \ | |||||
--with-rlm_expr \ | |||||
--with-rlm_eap \ | |||||
--without-rlm_eap_sim \ | |||||
--without-rlm_example \ | |||||
--without-rlm_ippool \ | |||||
--without-rlm_krb5 \ | |||||
--without-rlm_otp \ | |||||
--without-rlm_smsotp \ | |||||
--without-rlm_pam \ | |||||
--without-rlm_perl \ | |||||
--without-rlm_python \ | |||||
--without-rlm_smb \ | |||||
--with-rlm_sql \ | |||||
--with-rlm_sqlcounter \ | |||||
--without-rlm_sqlhpwippool \ | |||||
--without-rlm_sqlippool \ | |||||
--without-rlm_sql_db2 \ | |||||
--without-rlm_sql_firebird \ | |||||
--without-rlm_sql_freetds \ | |||||
--without-rlm_sql_iodbc \ | |||||
--without-rlm_sql_oracle \ | |||||
--without-rlm_sql_sybase \ | |||||
--without-rlm_sql_unixodbc \ | |||||
--without-rlm_sql_log \ | |||||
--without-rlm_unix \ | |||||
--without-rlm_eap_tnc \ | |||||
--without-rlm_eap_ikev2 \ | |||||
--without-rlm_opendirectory \ | |||||
--without-rlm_wimax \ | |||||
--without-rlm_ruby \ | |||||
--without-rlm_caching \ | |||||
--without-rlm_redis \ | |||||
--without-rlm_rediswho \ | |||||
--without-rlm_soh \ | |||||
--without-rlm_sim \ | |||||
--without-rlm_replicate \ | |||||
--without-rlm_protocol_filter \ | |||||
--without-rlm_policy \ | |||||
--without-rlm_linelog \ | |||||
--without-rlm_jradius \ | |||||
--without-rlm_fastusers \ | |||||
--without-rlm_eap_leap \ | |||||
--without-rlm_dynamic_clients \ | |||||
--without-rlm_digest \ | |||||
--without-rlm_cram \ | |||||
--without-rlm_copy_packet \ | |||||
--without-rlm_acct_unique \ | |||||
--without-rlm_acctlog | |||||
PKG_DICTIONARIES:= \ | |||||
freeradius freeradius.internal \ | |||||
rfc2865 rfc2866 rfc2867 rfc2868 rfc2869 rfc3162 rfc3576 rfc3580 \ | |||||
rfc4372 rfc4675 rfc4679 \ | |||||
microsoft \ | |||||
wispr \ | |||||
ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-ldap),) | |||||
CONFIGURE_ARGS+= \ | |||||
--with-rlm_ldap-include-dir="$(STAGING_DIR)/usr/include" \ | |||||
--with-rlm_ldap-lib-dir="$(STAGING_DIR)/usr/lib" | |||||
CONFIGURE_LIBS+= -lcrypto -lssl | |||||
else | |||||
CONFIGURE_ARGS+= --without-rlm_ldap | |||||
endif | |||||
ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-sql-mysql),) | |||||
CONFIGURE_ARGS+= \ | |||||
--with-mysql-include-dir="$(STAGING_DIR)/usr/include" \ | |||||
--with-mysql-lib-dir="$(STAGING_DIR)/usr/lib/mysql" | |||||
CONFIGURE_LIBS+= -lz | |||||
CONFIGURE_VARS+= ac_cv_lib_mysqlclient_r_mysql_init=yes | |||||
else | |||||
CONFIGURE_ARGS+= --without-rlm_sql_mysql | |||||
endif | |||||
ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-sql-pgsql),) | |||||
CONFIGURE_ARGS+= \ | |||||
--with-rlm_sql_postgresql-include-dir="$(STAGING_DIR)/usr/include" \ | |||||
--with-rlm_sql_postgresql-lib-dir="$(STAGING_DIR)/usr/lib" | |||||
else | |||||
CONFIGURE_ARGS+= --without-rlm_sql_postgresql | |||||
endif | |||||
ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-sqllog),) | |||||
CONFIGURE_ARGS+= \ | |||||
--with-rlm_sql_log \ | |||||
--with-experimental-modules \ | |||||
else | |||||
CONFIGURE_ARGS+= --without-rlm_sql_log | |||||
endif | |||||
ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-sql-sqlite),) | |||||
CONFIGURE_ARGS+= \ | |||||
--with-rlm_sql_sqlite \ | |||||
--with-experimental-modules \ | |||||
--with-sqlite-include-dir="$(STAGING_DIR)/usr/include" \ | |||||
--with-sqlite-lib-dir="$(STAGING_DIR)/usr/lib" | |||||
else | |||||
CONFIGURE_ARGS+= --without-rlm_sql_sqlite | |||||
endif | |||||
ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-eap-peap),) | |||||
CONFIGURE_ARGS+= \ | |||||
--with-rlm_eap_peap \ | |||||
--with-rlm_eap_peap-include-dir="$(STAGING_DIR)/usr/include" \ | |||||
--with-rlm_eap_peap-lib-dir="$(STAGING_DIR)/usr/lib" | |||||
CONFIGURE_LIBS+= -lcrypto -lssl | |||||
else | |||||
CONFIGURE_ARGS+= --without-rlm_eap_peap | |||||
endif | |||||
ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-eap-tls),) | |||||
CONFIGURE_ARGS+= \ | |||||
--with-rlm_eap_tls \ | |||||
--with-rlm_eap_tls-include-dir="$(STAGING_DIR)/usr/include" \ | |||||
--with-rlm_eap_tls-lib-dir="$(STAGING_DIR)/usr/lib" | |||||
CONFIGURE_LIBS+= -lcrypto -lssl | |||||
else | |||||
CONFIGURE_ARGS+= --without-rlm_eap_tls | |||||
endif | |||||
ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-eap-ttls),) | |||||
CONFIGURE_ARGS+= \ | |||||
--with-rlm_eap_ttls \ | |||||
--with-rlm_eap_ttls-include-dir="$(STAGING_DIR)/usr/include" \ | |||||
--with-rlm_eap_ttls-lib-dir="$(STAGING_DIR)/usr/lib" | |||||
CONFIGURE_LIBS+= -lcrypto -lssl | |||||
else | |||||
CONFIGURE_ARGS+= --without-rlm_eap_ttls | |||||
endif | |||||
ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-attr-rewrite),) | |||||
CONFIGURE_ARGS+= --with-rlm_attr-rewrite | |||||
else | |||||
CONFIGURE_ARGS+= --without-rlm_attr-rewrite | |||||
endif | |||||
ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-radutmp),) | |||||
CONFIGURE_ARGS+= --with-rlm_radutmp | |||||
else | |||||
CONFIGURE_ARGS+= --without-rlm_radutmp | |||||
endif | |||||
ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-logintime),) | |||||
CONFIGURE_ARGS+= --with-rlm_logintime | |||||
else | |||||
CONFIGURE_ARGS+= --without-rlm_logintime | |||||
endif | |||||
ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-expiration),) | |||||
CONFIGURE_ARGS+= --with-rlm_expiration | |||||
else | |||||
CONFIGURE_ARGS+= --without-rlm_expiration | |||||
endif | |||||
ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-always),) | |||||
CONFIGURE_ARGS+= --with-rlm_always | |||||
else | |||||
CONFIGURE_ARGS+= --without-rlm_always | |||||
endif | |||||
CONFIGURE_VARS+= \ | |||||
LDFLAGS="$$$$LDFLAGS" \ | |||||
LIBS="$(CONFIGURE_LIBS)" \ | |||||
MYSQL_CONFIG="no" \ | |||||
ac_cv_lib_readline=no \ | |||||
define Build/Compile | |||||
$(MAKE) -C $(PKG_BUILD_DIR) \ | |||||
R="$(PKG_INSTALL_DIR)" \ | |||||
INSTALLSTRIP="" \ | |||||
all certs install | |||||
endef | |||||
define Package/freeradius2-common/install | |||||
$(INSTALL_DIR) $(1)/etc/freeradius2 | |||||
chmod 771 $(1)/etc/freeradius2 | |||||
$(CP) $(PKG_INSTALL_DIR)/etc/freeradius2/dictionary $(1)/etc/freeradius2/ ; \ | |||||
$(INSTALL_DIR) $(1)/usr/lib/freeradius2 | |||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/freeradius2/libfreeradius-radius{,-*}.so $(1)/usr/lib/freeradius2 | |||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/freeradius2/libfreeradius-eap{,-*}.so $(1)/usr/lib/freeradius2 | |||||
$(INSTALL_DIR) $(1)/usr/share/freeradius2 | |||||
$(CP) $(PKG_INSTALL_DIR)/usr/share/freeradius/dictionary $(1)/usr/share/freeradius2/ | |||||
$(SED) "s,^\(\$$$$INCLUDE\),#\1,g" $(1)/usr/share/freeradius2/dictionary | |||||
for f in $(PKG_DICTIONARIES); do \ | |||||
$(CP) $(PKG_INSTALL_DIR)/usr/share/freeradius/dictionary.$$$${f} $(1)/usr/share/freeradius2/ ; \ | |||||
$(SED) "s,^#\(\$$$$INCLUDE dictionary\.$$$${f}\),\1,g" $(1)/usr/share/freeradius2/dictionary ; \ | |||||
done | |||||
endef | |||||
define Package/freeradius2/install | |||||
$(INSTALL_DIR) $(1)/etc/freeradius2/modules | |||||
$(INSTALL_DIR) $(1)/etc/freeradius2/sites | |||||
for f in clients.conf radiusd.conf policy.conf; do \ | |||||
$(CP) $(PKG_INSTALL_DIR)/etc/freeradius2/$$$${f} $(1)/etc/freeradius2/ ; \ | |||||
done | |||||
$(CP) $(PKG_INSTALL_DIR)/etc/freeradius2/sites-available/default $(1)/etc/freeradius2/sites/default | |||||
$(INSTALL_DIR) $(1)/usr/sbin | |||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/radiusd $(1)/usr/sbin/ | |||||
$(INSTALL_DIR) $(1)/etc/init.d | |||||
$(INSTALL_BIN) ./files/radiusd.init $(1)/etc/init.d/radiusd | |||||
endef | |||||
define Package/freeradius2-democerts/install | |||||
$(INSTALL_DIR) $(1)/etc/freeradius2/certs | |||||
$(CP) \ | |||||
$(PKG_BUILD_DIR)/raddb/certs/ca.pem \ | |||||
$(PKG_BUILD_DIR)/raddb/certs/dh \ | |||||
$(PKG_BUILD_DIR)/raddb/certs/random \ | |||||
$(PKG_BUILD_DIR)/raddb/certs/server.pem \ | |||||
$(1)/etc/freeradius2/certs/ | |||||
endef | |||||
define Package/freeradius2-utils/install | |||||
$(INSTALL_DIR) $(1)/usr/bin | |||||
for f in radclient radeapclient radwho; do \ | |||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$$$${f} $(1)/usr/bin/ ; \ | |||||
done | |||||
endef | |||||
define BuildPlugin | |||||
define Package/$(1)/install | |||||
[ -z "$(2)" ] || $(INSTALL_DIR) $$(1)/usr/lib/freeradius2 | |||||
for m in $(2); do \ | |||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/freeradius2/$$$$$$$${m}{,-*}.so $$(1)/usr/lib/freeradius2 ; \ | |||||
done | |||||
[ -z "$(3)" ] || $(INSTALL_DIR) $$(1)/etc/freeradius2 | |||||
[ -z "$(4)" ] || $(INSTALL_DIR) $$(1)/etc/freeradius2/$(4) | |||||
for f in $(3); do \ | |||||
$(CP) $(PKG_INSTALL_DIR)/etc/freeradius2/$$$$$$$${f} $$(1)/etc/freeradius2/$$$$$$$${f} ; \ | |||||
done | |||||
endef | |||||
$$(eval $$(call BuildPackage,$(1))) | |||||
endef | |||||
$(eval $(call BuildPackage,freeradius2)) | |||||
$(eval $(call BuildPackage,freeradius2-common)) | |||||
$(eval $(call BuildPackage,freeradius2-democerts)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-chap,rlm_chap,modules/chap,modules,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-detail,rlm_detail,modules/detail,modules,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-eap,rlm_eap,eap.conf)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-eap-gtc,rlm_eap_gtc,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-eap-md5,rlm_eap_md5,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-eap-mschapv2,rlm_eap_mschapv2,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-eap-peap,rlm_eap_peap,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-eap-tls,rlm_eap_tls,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-eap-ttls,rlm_eap_ttls,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-exec,rlm_exec,modules/exec modules/echo ,modules,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-attr-rewrite,rlm_attr_rewrite,modules/attr_rewrite,modules,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-files,rlm_files,acct_users preproxy_users users modules/files,modules,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-passwd,rlm_passwd,modules/passwd,modules,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-ldap,rlm_ldap,ldap.attrmap modules/ldap,modules,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-mschap,rlm_mschap,modules/mschap,modules,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-pap,rlm_pap,modules/pap,modules,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-preprocess,rlm_preprocess,hints huntgroups modules/preprocess,modules,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-realm,rlm_realm,proxy.conf modules/realm modules/inner-eap,modules,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-sql,rlm_sql,sql.conf,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-sql-mysql,rlm_sql_mysql,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-sql-pgsql,rlm_sql_postgresql,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-sql-sqlite,rlm_sql_sqlite,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-sqlcounter,rlm_sqlcounter,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-sqllog,rlm_sql_log,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-radutmp,rlm_radutmp,modules/radutmp modules/sradutmp,modules,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-logintime,rlm_logintime,modules/logintime,modules,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-expr,rlm_expr,modules/expr,modules,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-attr-filter,rlm_attr_filter,modules/attr_filter attrs attrs.access_reject attrs.accounting_response attrs.pre-proxy,modules,,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-expiration,rlm_expiration,modules/expiration,modules,)) | |||||
$(eval $(call BuildPlugin,freeradius2-mod-always,rlm_always,modules/always,modules,)) | |||||
$(eval $(call BuildPackage,freeradius2-utils)) |
@ -0,0 +1,22 @@ | |||||
#!/bin/sh /etc/rc.common | |||||
# Copyright (C) 2006 OpenWrt.org | |||||
START=50 | |||||
DEFAULT=/etc/default/radiusd | |||||
LOG_D=/var/log | |||||
RUN_D=/var/run | |||||
PID_F=$RUN_D/radiusd.pid | |||||
RADACCT_D=/var/db/radacct | |||||
IPADDR=$(ifconfig br-lan | sed -n 's/.*dr:\(.*\)Bc.*/\1/p') | |||||
start() { | |||||
[ -f $DEFAULT ] && . $DEFAULT | |||||
mkdir -p $LOG_D | |||||
mkdir -p $RUN_D | |||||
mkdir -p $RADACCT_D | |||||
radiusd -i $IPADDR -p 1812,1813 $OPTIONS | |||||
} | |||||
stop() { | |||||
[ -f $PID_F ] && kill $(cat $PID_F) | |||||
} |
@ -0,0 +1,10 @@ | |||||
--- a/Make.inc.in | |||||
+++ b/Make.inc.in | |||||
@@ -5,6 +5,7 @@ | |||||
# | |||||
# Location of files. | |||||
+SHELL = @SHELL@ | |||||
prefix = @prefix@ | |||||
exec_prefix = @exec_prefix@ | |||||
sysconfdir = @sysconfdir@ |
@ -0,0 +1,588 @@ | |||||
--- a/raddb/dictionary.in | |||||
+++ b/raddb/dictionary.in | |||||
@@ -11,7 +11,7 @@ | |||||
# | |||||
# The filename given here should be an absolute path. | |||||
# | |||||
-$INCLUDE @prefix@/share/freeradius/dictionary | |||||
+$INCLUDE @prefix@/share/freeradius2/dictionary | |||||
# | |||||
# Place additional attributes or $INCLUDEs here. They will | |||||
--- a/raddb/eap.conf | |||||
+++ b/raddb/eap.conf | |||||
@@ -27,7 +27,7 @@ | |||||
# then that EAP type takes precedence over the | |||||
# default type configured here. | |||||
# | |||||
- default_eap_type = md5 | |||||
+ default_eap_type = peap | |||||
# A list is maintained to correlate EAP-Response | |||||
# packets with EAP-Request packets. After a | |||||
@@ -72,8 +72,8 @@ | |||||
# for wireless connections. It is insecure, and does | |||||
# not provide for dynamic WEP keys. | |||||
# | |||||
- md5 { | |||||
- } | |||||
+# md5 { | |||||
+# } | |||||
# Cisco LEAP | |||||
# | |||||
@@ -87,8 +87,8 @@ | |||||
# User-Password, or the NT-Password attributes. | |||||
# 'System' authentication is impossible with LEAP. | |||||
# | |||||
- leap { | |||||
- } | |||||
+# leap { | |||||
+# } | |||||
# Generic Token Card. | |||||
# | |||||
@@ -101,7 +101,7 @@ | |||||
# the users password will go over the wire in plain-text, | |||||
# for anyone to see. | |||||
# | |||||
- gtc { | |||||
+# gtc { | |||||
# The default challenge, which many clients | |||||
# ignore.. | |||||
#challenge = "Password: " | |||||
@@ -118,8 +118,8 @@ | |||||
# configured for the request, and do the | |||||
# authentication itself. | |||||
# | |||||
- auth_type = PAP | |||||
- } | |||||
+# auth_type = PAP | |||||
+# } | |||||
## EAP-TLS | |||||
# | |||||
@@ -215,7 +215,7 @@ | |||||
# In these cases, fragment size should be | |||||
# 1024 or less. | |||||
# | |||||
- # fragment_size = 1024 | |||||
+ fragment_size = 1024 | |||||
# include_length is a flag which is | |||||
# by default set to yes If set to | |||||
@@ -225,7 +225,7 @@ | |||||
# message is included ONLY in the | |||||
# First packet of a fragment series. | |||||
# | |||||
- # include_length = yes | |||||
+ include_length = yes | |||||
# Check the Certificate Revocation List | |||||
# | |||||
@@ -297,7 +297,7 @@ | |||||
# for the server to print out an error message, | |||||
# and refuse to start. | |||||
# | |||||
- make_cert_command = "${certdir}/bootstrap" | |||||
+ # make_cert_command = "${certdir}/bootstrap" | |||||
# | |||||
# Elliptical cryptography configuration | |||||
@@ -332,7 +332,7 @@ | |||||
# You probably also want "use_tunneled_reply = yes" | |||||
# when using fast session resumption. | |||||
# | |||||
- cache { | |||||
+ # cache { | |||||
# | |||||
# Enable it. The default is "no". | |||||
# Deleting the entire "cache" subsection | |||||
@@ -348,14 +348,14 @@ | |||||
# enable resumption for just one user | |||||
# by setting the above attribute to "yes". | |||||
# | |||||
- enable = no | |||||
+ # enable = no | |||||
# | |||||
# Lifetime of the cached entries, in hours. | |||||
# The sessions will be deleted after this | |||||
# time. | |||||
# | |||||
- lifetime = 24 # hours | |||||
+ # lifetime = 24 # hours | |||||
# | |||||
# The maximum number of entries in the | |||||
@@ -364,8 +364,8 @@ | |||||
# This could be set to the number of users | |||||
# who are logged in... which can be a LOT. | |||||
# | |||||
- max_entries = 255 | |||||
- } | |||||
+ # max_entries = 255 | |||||
+ # } | |||||
# | |||||
# As of version 2.1.10, client certificates can be | |||||
@@ -503,7 +503,7 @@ | |||||
# | |||||
# in the control items for a request. | |||||
# | |||||
- ttls { | |||||
+# ttls { | |||||
# The tunneled EAP session needs a default | |||||
# EAP type which is separate from the one for | |||||
# the non-tunneled EAP module. Inside of the | |||||
@@ -511,7 +511,7 @@ | |||||
# If the request does not contain an EAP | |||||
# conversation, then this configuration entry | |||||
# is ignored. | |||||
- default_eap_type = md5 | |||||
+# default_eap_type = mschapv2 | |||||
# The tunneled authentication request does | |||||
# not usually contain useful attributes | |||||
@@ -527,7 +527,7 @@ | |||||
# is copied to the tunneled request. | |||||
# | |||||
# allowed values: {no, yes} | |||||
- copy_request_to_tunnel = no | |||||
+# copy_request_to_tunnel = yes | |||||
# The reply attributes sent to the NAS are | |||||
# usually based on the name of the user | |||||
@@ -540,7 +540,7 @@ | |||||
# the tunneled request. | |||||
# | |||||
# allowed values: {no, yes} | |||||
- use_tunneled_reply = no | |||||
+# use_tunneled_reply = no | |||||
# | |||||
# The inner tunneled request can be sent | |||||
@@ -552,13 +552,13 @@ | |||||
# the virtual server that processed the | |||||
# outer requests. | |||||
# | |||||
- virtual_server = "inner-tunnel" | |||||
+# virtual_server = "inner-tunnel" | |||||
# This has the same meaning as the | |||||
# same field in the "tls" module, above. | |||||
# The default value here is "yes". | |||||
# include_length = yes | |||||
- } | |||||
+# } | |||||
################################################## | |||||
# | |||||
@@ -627,14 +627,14 @@ | |||||
# the PEAP module also has these configuration | |||||
# items, which are the same as for TTLS. | |||||
- copy_request_to_tunnel = no | |||||
- use_tunneled_reply = no | |||||
+ copy_request_to_tunnel = yes | |||||
+ use_tunneled_reply = yes | |||||
# When the tunneled session is proxied, the | |||||
# home server may not understand EAP-MSCHAP-V2. | |||||
# Set this entry to "no" to proxy the tunneled | |||||
# EAP-MSCHAP-V2 as normal MSCHAPv2. | |||||
- # proxy_tunneled_request_as_eap = yes | |||||
+ proxy_tunneled_request_as_eap = no | |||||
# | |||||
# The inner tunneled request can be sent | |||||
@@ -646,7 +646,8 @@ | |||||
# the virtual server that processed the | |||||
# outer requests. | |||||
# | |||||
- virtual_server = "inner-tunnel" | |||||
+ # virtual_server = "inner-tunnel" | |||||
+ EAP-TLS-Require-Client-Cert = no | |||||
# This option enables support for MS-SoH | |||||
# see doc/SoH.txt for more info. | |||||
--- a/raddb/modules/counter | |||||
+++ b/raddb/modules/counter | |||||
@@ -69,7 +69,7 @@ | |||||
# 'check-name' attribute. | |||||
# | |||||
counter daily { | |||||
- filename = ${db_dir}/db.daily | |||||
+ filename = ${radacctdir}/db.daily | |||||
key = User-Name | |||||
count-attribute = Acct-Session-Time | |||||
reset = daily | |||||
--- a/raddb/modules/pap | |||||
+++ b/raddb/modules/pap | |||||
@@ -18,5 +18,5 @@ | |||||
# | |||||
# http://www.openldap.org/faq/data/cache/347.html | |||||
pap { | |||||
- auto_header = no | |||||
+ auto_header = yes | |||||
} | |||||
--- a/raddb/modules/radutmp | |||||
+++ b/raddb/modules/radutmp | |||||
@@ -12,7 +12,7 @@ radutmp { | |||||
# Where the file is stored. It's not a log file, | |||||
# so it doesn't need rotating. | |||||
# | |||||
- filename = ${logdir}/radutmp | |||||
+ filename = ${radacctdir}/radutmp | |||||
# The field in the packet to key on for the | |||||
# 'user' name, If you have other fields which you want | |||||
--- a/raddb/modules/sradutmp | |||||
+++ b/raddb/modules/sradutmp | |||||
@@ -10,7 +10,7 @@ | |||||
# then name "sradutmp" to identify it later in the "accounting" | |||||
# section. | |||||
radutmp sradutmp { | |||||
- filename = ${logdir}/sradutmp | |||||
+ filename = ${radacctdir}/sradutmp | |||||
perm = 0644 | |||||
callerid = "no" | |||||
} | |||||
--- a/raddb/radiusd.conf.in | |||||
+++ b/raddb/radiusd.conf.in | |||||
@@ -66,7 +66,7 @@ name = radiusd | |||||
# Location of config and logfiles. | |||||
confdir = ${raddbdir} | |||||
-run_dir = ${localstatedir}/run/${name} | |||||
+run_dir = ${localstatedir}/run | |||||
# Should likely be ${localstatedir}/lib/radiusd | |||||
db_dir = ${raddbdir} | |||||
@@ -323,7 +323,7 @@ listen { | |||||
# If your system does not support this feature, you will | |||||
# get an error if you try to use it. | |||||
# | |||||
-# interface = eth0 | |||||
+ interface = br-lan | |||||
# Per-socket lists of clients. This is a very useful feature. | |||||
# | |||||
@@ -350,7 +350,7 @@ listen { | |||||
# ipv6addr = :: | |||||
port = 0 | |||||
type = acct | |||||
-# interface = eth0 | |||||
+ interface = br-lan | |||||
# clients = per_socket_clients | |||||
} | |||||
@@ -584,8 +584,8 @@ security { | |||||
# | |||||
# allowed values: {no, yes} | |||||
# | |||||
-proxy_requests = yes | |||||
-$INCLUDE proxy.conf | |||||
+proxy_requests = no | |||||
+#$INCLUDE proxy.conf | |||||
# CLIENTS CONFIGURATION | |||||
@@ -782,7 +782,7 @@ instantiate { | |||||
# The entire command line (and output) must fit into 253 bytes. | |||||
# | |||||
# e.g. Framed-Pool = `%{exec:/bin/echo foo}` | |||||
- exec | |||||
+# exec | |||||
# | |||||
# The expression module doesn't do authorization, | |||||
@@ -799,15 +799,15 @@ instantiate { | |||||
# other xlat functions such as md5, sha1 and lc. | |||||
# | |||||
# We do not recommend removing it's listing here. | |||||
- expr | |||||
+# expr | |||||
# | |||||
# We add the counter module here so that it registers | |||||
# the check-name attribute before any module which sets | |||||
# it | |||||
# daily | |||||
- expiration | |||||
- logintime | |||||
+# expiration | |||||
+# logintime | |||||
# subsections here can be thought of as "virtual" modules. | |||||
# | |||||
@@ -831,7 +831,7 @@ instantiate { | |||||
# to multiple times. | |||||
# | |||||
###################################################################### | |||||
-$INCLUDE policy.conf | |||||
+#$INCLUDE policy.conf | |||||
###################################################################### | |||||
# | |||||
@@ -841,9 +841,9 @@ $INCLUDE policy.conf | |||||
# match the regular expression: /[a-zA-Z0-9_.]+/ | |||||
# | |||||
# It allows you to define new virtual servers simply by placing | |||||
-# a file into the raddb/sites-enabled/ directory. | |||||
+# a file into the /etc/freeradius2/sites/ directory. | |||||
# | |||||
-$INCLUDE sites-enabled/ | |||||
+$INCLUDE sites/ | |||||
###################################################################### | |||||
# | |||||
@@ -851,7 +851,7 @@ $INCLUDE sites-enabled/ | |||||
# "authenticate {}", "accounting {}", have been moved to the | |||||
# the file: | |||||
# | |||||
-# raddb/sites-available/default | |||||
+# /etc/freeradius2/sites/default | |||||
# | |||||
# This is the "default" virtual server that has the same | |||||
# configuration as in version 1.0.x and 1.1.x. The default | |||||
--- a/raddb/sites-available/default | |||||
+++ b/raddb/sites-available/default | |||||
@@ -85,7 +85,7 @@ authorize { | |||||
# | |||||
# It takes care of processing the 'raddb/hints' and the | |||||
# 'raddb/huntgroups' files. | |||||
- preprocess | |||||
+# preprocess | |||||
# | |||||
# If you want to have a log of authentication requests, | |||||
@@ -96,7 +96,7 @@ authorize { | |||||
# | |||||
# The chap module will set 'Auth-Type := CHAP' if we are | |||||
# handling a CHAP request and Auth-Type has not already been set | |||||
- chap | |||||
+# chap | |||||
# | |||||
# If the users are logging in with an MS-CHAP-Challenge | |||||
@@ -104,13 +104,13 @@ authorize { | |||||
# the MS-CHAP-Challenge attribute, and add 'Auth-Type := MS-CHAP' | |||||
# to the request, which will cause the server to then use | |||||
# the mschap module for authentication. | |||||
- mschap | |||||
+# mschap | |||||
# | |||||
# If you have a Cisco SIP server authenticating against | |||||
# FreeRADIUS, uncomment the following line, and the 'digest' | |||||
# line in the 'authenticate' section. | |||||
- digest | |||||
+# digest | |||||
# | |||||
# The WiMAX specification says that the Calling-Station-Id | |||||
@@ -133,7 +133,7 @@ authorize { | |||||
# Otherwise, when the first style of realm doesn't match, | |||||
# the other styles won't be checked. | |||||
# | |||||
- suffix | |||||
+# suffix | |||||
# ntdomain | |||||
# | |||||
@@ -195,8 +195,8 @@ authorize { | |||||
# Use the checkval module | |||||
# checkval | |||||
- expiration | |||||
- logintime | |||||
+# expiration | |||||
+# logintime | |||||
# | |||||
# If no other module has claimed responsibility for | |||||
@@ -277,7 +277,7 @@ authenticate { | |||||
# If you have a Cisco SIP server authenticating against | |||||
# FreeRADIUS, uncomment the following line, and the 'digest' | |||||
# line in the 'authorize' section. | |||||
- digest | |||||
+# digest | |||||
# | |||||
# Pluggable Authentication Modules. | |||||
@@ -294,7 +294,7 @@ authenticate { | |||||
# be used for authentication ONLY for compatibility with legacy | |||||
# FreeRADIUS configurations. | |||||
# | |||||
- unix | |||||
+# unix | |||||
# Uncomment it if you want to use ldap for authentication | |||||
# | |||||
@@ -330,8 +330,8 @@ authenticate { | |||||
# | |||||
# Pre-accounting. Decide which accounting type to use. | |||||
# | |||||
-preacct { | |||||
- preprocess | |||||
+#preacct { | |||||
+# preprocess | |||||
# | |||||
# Session start times are *implied* in RADIUS. | |||||
@@ -354,7 +354,7 @@ preacct { | |||||
# | |||||
# Ensure that we have a semi-unique identifier for every | |||||
# request, and many NAS boxes are broken. | |||||
- acct_unique | |||||
+# acct_unique | |||||
# | |||||
# Look for IPASS-style 'realm/', and if not found, look for | |||||
@@ -364,13 +364,13 @@ preacct { | |||||
# Accounting requests are generally proxied to the same | |||||
# home server as authentication requests. | |||||
# IPASS | |||||
- suffix | |||||
+# suffix | |||||
# ntdomain | |||||
# | |||||
# Read the 'acct_users' file | |||||
- files | |||||
-} | |||||
+# files | |||||
+#} | |||||
# | |||||
# Accounting. Log the accounting data. | |||||
@@ -380,7 +380,7 @@ accounting { | |||||
# Create a 'detail'ed log of the packets. | |||||
# Note that accounting requests which are proxied | |||||
# are also logged in the detail file. | |||||
- detail | |||||
+# detail | |||||
# daily | |||||
# Update the wtmp file | |||||
@@ -432,7 +432,7 @@ accounting { | |||||
exec | |||||
# Filter attributes from the accounting response. | |||||
- attr_filter.accounting_response | |||||
+ #attr_filter.accounting_response | |||||
# | |||||
# See "Autz-Type Status-Server" for how this works. | |||||
@@ -458,7 +458,7 @@ session { | |||||
# Post-Authentication | |||||
# Once we KNOW that the user has been authenticated, there are | |||||
# additional steps we can take. | |||||
-post-auth { | |||||
+#post-auth { | |||||
# Get an address from the IP Pool. | |||||
# main_pool | |||||
@@ -488,7 +488,7 @@ post-auth { | |||||
# ldap | |||||
# For Exec-Program and Exec-Program-Wait | |||||
- exec | |||||
+# exec | |||||
# | |||||
# Calculate the various WiMAX keys. In order for this to work, | |||||
@@ -572,12 +572,12 @@ post-auth { | |||||
# Add the ldap module name (or instance) if you have set | |||||
# 'edir_account_policy_check = yes' in the ldap module configuration | |||||
# | |||||
- Post-Auth-Type REJECT { | |||||
- # log failed authentications in SQL, too. | |||||
+# Post-Auth-Type REJECT { | |||||
+# # log failed authentications in SQL, too. | |||||
# sql | |||||
- attr_filter.access_reject | |||||
- } | |||||
-} | |||||
+# attr_filter.access_reject | |||||
+# } | |||||
+#} | |||||
# | |||||
# When the server decides to proxy a request to a home server, | |||||
@@ -587,7 +587,7 @@ post-auth { | |||||
# | |||||
# Only a few modules currently have this method. | |||||
# | |||||
-pre-proxy { | |||||
+#pre-proxy { | |||||
# attr_rewrite | |||||
# Uncomment the following line if you want to change attributes | |||||
@@ -603,14 +603,14 @@ pre-proxy { | |||||
# server, un-comment the following line, and the | |||||
# 'detail pre_proxy_log' section, above. | |||||
# pre_proxy_log | |||||
-} | |||||
+#} | |||||
# | |||||
# When the server receives a reply to a request it proxied | |||||
# to a home server, the request may be massaged here, in the | |||||
# post-proxy stage. | |||||
# | |||||
-post-proxy { | |||||
+#post-proxy { | |||||
# If you want to have a log of replies from a home server, | |||||
# un-comment the following line, and the 'detail post_proxy_log' | |||||
@@ -634,7 +634,7 @@ post-proxy { | |||||
# hidden inside of the EAP packet, and the end server will | |||||
# reject the EAP request. | |||||
# | |||||
- eap | |||||
+# eap | |||||
# | |||||
# If the server tries to proxy a request and fails, then the | |||||
@@ -656,5 +656,5 @@ post-proxy { | |||||
# Post-Proxy-Type Fail { | |||||
# detail | |||||
# } | |||||
-} | |||||
+#} | |||||
--- a/raddb/users | |||||
+++ b/raddb/users | |||||
@@ -169,22 +169,22 @@ | |||||
# by the terminal server in which case there may not be a "P" suffix. | |||||
# The terminal server sends "Framed-Protocol = PPP" for auto PPP. | |||||
# | |||||
-DEFAULT Framed-Protocol == PPP | |||||
- Framed-Protocol = PPP, | |||||
- Framed-Compression = Van-Jacobson-TCP-IP | |||||
+#DEFAULT Framed-Protocol == PPP | |||||
+# Framed-Protocol = PPP, | |||||
+# Framed-Compression = Van-Jacobson-TCP-IP | |||||
# | |||||
# Default for CSLIP: dynamic IP address, SLIP mode, VJ-compression. | |||||
# | |||||
-DEFAULT Hint == "CSLIP" | |||||
- Framed-Protocol = SLIP, | |||||
- Framed-Compression = Van-Jacobson-TCP-IP | |||||
+#DEFAULT Hint == "CSLIP" | |||||
+# Framed-Protocol = SLIP, | |||||
+# Framed-Compression = Van-Jacobson-TCP-IP | |||||
# | |||||
# Default for SLIP: dynamic IP address, SLIP mode. | |||||
# | |||||
-DEFAULT Hint == "SLIP" | |||||
- Framed-Protocol = SLIP | |||||
+#DEFAULT Hint == "SLIP" | |||||
+# Framed-Protocol = SLIP | |||||
# | |||||
# Last default: rlogin to our main server. |
@ -0,0 +1,15 @@ | |||||
--- a/src/modules/rules.mak | |||||
+++ b/src/modules/rules.mak | |||||
@@ -63,10 +63,10 @@ $(LT_OBJS): $(SERVER_HEADERS) | |||||
# | |||||
####################################################################### | |||||
%.lo: %.c | |||||
- $(LIBTOOL) --mode=compile --tag=CC $(CC) $(CFLAGS) $(RLM_CFLAGS) -c $< | |||||
+ $(LIBTOOL) --mode=compile --tag=CC $(CC) $(CFLAGS) $(CPPFLAGS) $(RLM_CFLAGS) -c $< | |||||
%.lo: %.cpp | |||||
- $(LIBTOOL) --mode=compile --tag=CXX $(CXX) $(CFLAGS) $(RLM_CFLAGS) -c $< | |||||
+ $(LIBTOOL) --mode=compile --tag=CXX $(CXX) $(CFLAGS) $(CPPFLAGS) $(RLM_CFLAGS) -c $< | |||||
ifneq ($(TARGET),) | |||||
####################################################################### |
@ -0,0 +1,38 @@ | |||||
--- a/configure.in | |||||
+++ b/configure.in | |||||
@@ -832,35 +832,6 @@ if test "x$WITH_OPENSSL" = xyes; then | |||||
OPENSSL_INCLUDE="-DOPENSSL_NO_KRB5" | |||||
fi | |||||
- dnl # | |||||
- dnl # Now check that the header versions match the library | |||||
- dnl # | |||||
- AC_MSG_CHECKING([OpenSSL library and header version consistency]) | |||||
- AC_RUN_IFELSE( | |||||
- [AC_LANG_PROGRAM( | |||||
- [[ | |||||
- #include <stdio.h> | |||||
- #include <openssl/opensslv.h> | |||||
- #include <openssl/crypto.h> | |||||
- ]], | |||||
- [[ | |||||
- if (SSLeay() == OPENSSL_VERSION_NUMBER) { | |||||
- return 0; | |||||
- } else { | |||||
- printf("library: %lx header: %lx... ", (unsigned long) SSLeay(), (unsigned long) OPENSSL_VERSION_NUMBER); | |||||
- return 1; | |||||
- } | |||||
- ]] | |||||
- )], | |||||
- [ | |||||
- AC_MSG_RESULT(yes) | |||||
- ], | |||||
- [ | |||||
- AC_MSG_RESULT(no) | |||||
- AC_MSG_FAILURE([OpenSSL library version does not match header version]) | |||||
- ] | |||||
- ) | |||||
- | |||||
if test "x$OPENSSL_LIBS" = x; then | |||||
LIBS=$old_LIBS | |||||
LDFLAGS="$old_LDFLAGS" |
@ -0,0 +1,55 @@ | |||||
# | |||||
# 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:=opentracker | |||||
PKG_VERSION:=20130804 | |||||
PKG_RELEASE:=1 | |||||
PKG_REV:=954f5029dfa17734dc408336ef710c192268e8a4 | |||||
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org> | |||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | |||||
PKG_SOURCE_URL:=git://erdgeist.org/opentracker | |||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) | |||||
PKG_SOURCE_VERSION:=$(PKG_REV) | |||||
PKG_SOURCE_PROTO:=git | |||||
PKG_BUILD_DEPENDS:=libowfat | |||||
include $(INCLUDE_DIR)/package.mk | |||||
define Package/opentracker | |||||
SUBMENU:=BitTorrent | |||||
SECTION:=net | |||||
CATEGORY:=Network | |||||
TITLE:=opentracker | |||||
URL:=http://erdgeist.org/arts/software/opentracker/ | |||||
DEPENDS:=+zlib +libpthread | |||||
endef | |||||
define Package/opentracker/description | |||||
opentracker - An open and free bittorrent tracker | |||||
opentracker is an open and free bittorrent tracker project. | |||||
It aims for minimal resource usage and is intended to run at your wlan router. | |||||
Currently it is deployed as an open and free tracker instance. | |||||
Read our free and open tracker blog and announce your torrents there | |||||
(but do not hesitate to setup your own free trackers!). | |||||
endef | |||||
MAKE_FLAGS += PREFIX="$(STAGING_DIR)/usr" | |||||
define Package/opentracker/install | |||||
$(INSTALL_DIR) $(1)/usr/bin | |||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/opentracker $(1)/usr/bin | |||||
$(INSTALL_DIR) $(1)/etc | |||||
$(INSTALL_CONF) $(PKG_BUILD_DIR)/opentracker.conf.sample $(1)/etc/opentracker.conf | |||||
$(INSTALL_DIR) $(1)/etc/init.d | |||||
$(INSTALL_BIN) ./files/opentracker.init $(1)/etc/init.d/opentracker | |||||
endef | |||||
$(eval $(call BuildPackage,opentracker)) |
@ -0,0 +1,16 @@ | |||||
#!/bin/sh /etc/rc.common | |||||
START=10 | |||||
STOP=15 | |||||
NAME="opentracker" | |||||
PROG="/usr/bin/opentracker" | |||||
OPTIONS="-f /etc/opentracker.conf" | |||||
USE_PROCD=1 | |||||
start_service() | |||||
{ | |||||
procd_open_instance | |||||
procd_set_param command $PROG $OPTIONS | |||||
procd_close_instance | |||||
} |
@ -0,0 +1,32 @@ | |||||
Index: opentracker-20130804/Makefile | |||||
=================================================================== | |||||
--- opentracker-20130804.orig/Makefile | |||||
+++ opentracker-20130804/Makefile | |||||
@@ -9,13 +9,13 @@ CC?=gcc | |||||
# BSD flavour | |||||
# PREFIX?=/usr/local | |||||
-# LIBOWFAT_HEADERS=$(PREFIX)/include/libowfat | |||||
-# LIBOWFAT_LIBRARY=$(PREFIX)/lib | |||||
+LIBOWFAT_HEADERS=$(PREFIX)/include/libowfat | |||||
+LIBOWFAT_LIBRARY=$(PREFIX)/lib | |||||
# Debug flavour | |||||
-PREFIX?=.. | |||||
-LIBOWFAT_HEADERS=$(PREFIX)/libowfat | |||||
-LIBOWFAT_LIBRARY=$(PREFIX)/libowfat | |||||
+# PREFIX?=.. | |||||
+# LIBOWFAT_HEADERS=$(PREFIX)/libowfat | |||||
+# LIBOWFAT_LIBRARY=$(PREFIX)/libowfat | |||||
BINDIR?=$(PREFIX)/bin | |||||
@@ -66,7 +66,7 @@ CFLAGS_debug = $(CFLAGS) $(OPTS_debug) $ | |||||
$(BINARY): $(OBJECTS) $(HEADERS) | |||||
$(CC) -o $@ $(OBJECTS) $(LDFLAGS) | |||||
- strip $@ | |||||
+ $(STRIP) $@ | |||||
$(BINARY).debug: $(OBJECTS_debug) $(HEADERS) | |||||
$(CC) -o $@ $(OBJECTS_debug) $(LDFLAGS) | |||||
proxy: $(OBJECTS_proxy) $(HEADERS) |
@ -0,0 +1,71 @@ | |||||
# | |||||
# 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:=xl2tpd | |||||
PKG_VERSION:=1.3.6 | |||||
PKG_RELEASE:=1 | |||||
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org> | |||||
PKG_RELEASE=$(PKG_SOURCE_VERSION) | |||||
PKG_SOURCE_PROTO:=git | |||||
PKG_SOURCE_URL:=https://github.com/xelerance/xl2tpd.git | |||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) | |||||
PKG_SOURCE_VERSION:=5619e1771048e74b729804e8602f409af0f3faea | |||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz | |||||
PKG_INSTALL:=1 | |||||
include $(INCLUDE_DIR)/package.mk | |||||
define Package/xl2tpd | |||||
SECTION:=net | |||||
CATEGORY:=Network | |||||
TITLE:=An L2TP (Layer 2 Tunneling Protocol) daemon | |||||
URL:=http://www.xelerance.com/software/xl2tpd/ | |||||
SUBMENU:=VPN | |||||
DEPENDS:=+ppp-mod-pppol2tp +ip +resolveip | |||||
endef | |||||
define Package/xl2tpd/description | |||||
l2tpd is the open source implementation of the L2TP tunneling protocol (RFC2661). | |||||
It does implement both LAC and LNS role in a L2TP networking architecture. The | |||||
main goal of this protocol is to tunnel PPP frame trough an IP network. | |||||
endef | |||||
# XXX: CFLAGS are already set by Build/Compile/Default | |||||
MAKE_FLAGS+= \ | |||||
OFLAGS="" | |||||
define Package/xl2tpd/conffiles | |||||
/etc/xl2tpd/xl2tpd.conf | |||||
/etc/xl2tpd/xl2tp-secrets | |||||
/etc/ppp/options.xl2tpd | |||||
endef | |||||
define Package/xl2tpd/install | |||||
$(INSTALL_DIR) $(1)/usr/sbin | |||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/local/sbin/xl2tpd $(1)/usr/sbin/ | |||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/local/sbin/xl2tpd-control $(1)/usr/sbin/ | |||||
$(INSTALL_DIR) $(1)/etc/init.d | |||||
$(INSTALL_BIN) ./files/xl2tpd.init $(1)/etc/init.d/xl2tpd | |||||
$(INSTALL_DIR) $(1)/etc/xl2tpd | |||||
$(INSTALL_DATA) ./files/xl2tpd.conf $(1)/etc/xl2tpd/ | |||||
$(INSTALL_CONF) ./files/xl2tp-secrets $(1)/etc/xl2tpd/ | |||||
$(INSTALL_DIR) $(1)/etc/ppp | |||||
$(INSTALL_DATA) ./files/options.xl2tpd $(1)/etc/ppp/ | |||||
$(INSTALL_DIR) $(1)/lib/netifd/proto | |||||
$(INSTALL_BIN) ./files/l2tp.sh $(1)/lib/netifd/proto | |||||
endef | |||||
$(eval $(call BuildPackage,xl2tpd)) |
@ -0,0 +1,23 @@ | |||||
OpenWRT Package for xl2tpd | |||||
xl2tpd is a development from the original l2tpd package originally written by | |||||
Mark Spencer, subsequently forked by Scott Balmos and David Stipp, inherited | |||||
by Jeff McAdams, modified substantially by Jacco de Leeuw and then forked | |||||
again by Xelerance (after it was abandoned by l2tpd.org). | |||||
Rationale for inclusion in OpenWRT: | |||||
l2tpd has some serious alignment problems on RISC platforms. It also runs | |||||
purely in userspace. | |||||
Some of the features added in this fork include: | |||||
1. IPSec SA reference tracking inconjunction with openswan's IPSec transport | |||||
mode, which adds support for multiple clients behind the same NAT router | |||||
and multiple clients on the same internal IP behind different NAT routers. | |||||
2. Support for the pppol2tp kernel mode L2TP. | |||||
3. Alignment and endian problems resolved. | |||||
hcg |
@ -0,0 +1,107 @@ | |||||
#!/bin/sh | |||||
[ -x /usr/sbin/xl2tpd ] || exit 0 | |||||
[ -n "$INCLUDE_ONLY" ] || { | |||||
. /lib/functions.sh | |||||
. ../netifd-proto.sh | |||||
init_proto "$@" | |||||
} | |||||
proto_l2tp_init_config() { | |||||
proto_config_add_string "username" | |||||
proto_config_add_string "password" | |||||
proto_config_add_string "keepalive" | |||||
proto_config_add_string "pppd_options" | |||||
proto_config_add_boolean "ipv6" | |||||
proto_config_add_int "mtu" | |||||
proto_config_add_string "server" | |||||
available=1 | |||||
no_device=1 | |||||
} | |||||
proto_l2tp_setup() { | |||||
local config="$1" | |||||
local iface="$2" | |||||
local optfile="/tmp/l2tp/options.${config}" | |||||
local ip serv_addr server | |||||
json_get_var server server && { | |||||
for ip in $(resolveip -t 5 "$server"); do | |||||
( proto_add_host_dependency "$config" "$ip" ) | |||||
serv_addr=1 | |||||
done | |||||
} | |||||
[ -n "$serv_addr" ] || { | |||||
echo "Could not resolve server address" | |||||
sleep 5 | |||||
proto_setup_failed "$config" | |||||
exit 1 | |||||
} | |||||
if [ ! -p /var/run/xl2tpd/l2tp-control ]; then | |||||
/etc/init.d/xl2tpd start | |||||
fi | |||||
json_get_vars ipv6 demand keepalive username password pppd_options | |||||
[ "$ipv6" = 1 ] || ipv6="" | |||||
if [ "${demand:-0}" -gt 0 ]; then | |||||
demand="precompiled-active-filter /etc/ppp/filter demand idle $demand" | |||||
else | |||||
demand="persist" | |||||
fi | |||||
[ -n "$mtu" ] || json_get_var mtu mtu | |||||
local interval="${keepalive##*[, ]}" | |||||
[ "$interval" != "$keepalive" ] || interval=5 | |||||
mkdir -p /tmp/l2tp | |||||
echo "${keepalive:+lcp-echo-interval $interval lcp-echo-failure ${keepalive%%[, ]*}}" > "${optfile}" | |||||
echo "usepeerdns" >> "${optfile}" | |||||
echo "nodefaultroute" >> "${optfile}" | |||||
echo "${username:+user \"$username\" password \"$password\"}" >> "${optfile}" | |||||
echo "ipparam \"$config\"" >> "${optfile}" | |||||
echo "ifname \"l2tp-$config\"" >> "${optfile}" | |||||
echo "ip-up-script /lib/netifd/ppp-up" >> "${optfile}" | |||||
echo "ipv6-up-script /lib/netifd/ppp-up" >> "${optfile}" | |||||
echo "ip-down-script /lib/netifd/ppp-down" >> "${optfile}" | |||||
echo "ipv6-down-script /lib/netifd/ppp-down" >> "${optfile}" | |||||
# Don't wait for LCP term responses; exit immediately when killed. | |||||
echo "lcp-max-terminate 0" >> "${optfile}" | |||||
echo "${ipv6:++ipv6} ${pppd_options}" >> "${optfile}" | |||||
echo "${mtu:+mtu $mtu mru $mtu}" >> "${optfile}" | |||||
xl2tpd-control add l2tp-${config} pppoptfile=${optfile} lns=${server} redial=yes redial timeout=20 | |||||
xl2tpd-control connect l2tp-${config} | |||||
} | |||||
proto_l2tp_teardown() { | |||||
local interface="$1" | |||||
local optfile="/tmp/l2tp/options.${interface}" | |||||
case "$ERROR" in | |||||
11|19) | |||||
proto_notify_error "$interface" AUTH_FAILED | |||||
proto_block_restart "$interface" | |||||
;; | |||||
2) | |||||
proto_notify_error "$interface" INVALID_OPTIONS | |||||
proto_block_restart "$interface" | |||||
;; | |||||
esac | |||||
xl2tpd-control disconnect l2tp-${interface} | |||||
# Wait for interface to go down | |||||
while [ -d /sys/class/net/l2tp-${interface} ]; do | |||||
sleep 1 | |||||
done | |||||
xl2tpd-control remove l2tp-${interface} | |||||
rm -f ${optfile} | |||||
} | |||||
[ -n "$INCLUDE_ONLY" ] || { | |||||
add_protocol l2tp | |||||
} |
@ -0,0 +1,13 @@ | |||||
# | |||||
lock | |||||
noauth | |||||
debug | |||||
dump | |||||
logfd 2 | |||||
logfile /var/log/xl2tpd.log | |||||
noccp | |||||
novj | |||||
novjccomp | |||||
nopcomp | |||||
noaccomp |
@ -0,0 +1,5 @@ | |||||
# Secrets for authenticating l2tp tunnels | |||||
# us them secret | |||||
# * marko blah2 | |||||
# zeus marko blah | |||||
# * * interop |
@ -0,0 +1,23 @@ | |||||
[global] | |||||
port = 1701 | |||||
auth file = /etc/xl2tpd/xl2tp-secrets | |||||
access control = no | |||||
;[lns default] | |||||
;exclusive = yes | |||||
;ip range = 192.168.254.202-192.168.254.210 | |||||
;lac = 10.0.1.2 | |||||
;hidden bit = no | |||||
;local ip = 192.168.254.200 | |||||
;length bit = yes | |||||
;refuse authentication = yes | |||||
;name = VersaLink | |||||
;ppp debug = yes | |||||
;pppoptfile = /etc/ppp/options.xl2tpd | |||||
;[lac left] | |||||
;lns = 10.0.1.2 | |||||
;refuse authentication = yes | |||||
;name = VersaLink | |||||
;ppp debug = yes | |||||
;pppoptfile = /etc/ppp/options.xl2tpd |
@ -0,0 +1,73 @@ | |||||
; | |||||
; Sample l2tpd configuration file | |||||
; | |||||
; This example file should give you some idea of how the options for l2tpd | |||||
; should work. The best place to look for a list of all options is in | |||||
; the source code itself, until I have the time to write better documetation :) | |||||
; Specifically, the file "file.c" contains a list of commands at the end. | |||||
; | |||||
; You most definitely don't have to spell out everything as it is done here | |||||
; | |||||
; [global] ; Global parameters: | |||||
; port = 1701 ; * Bind to port 1701 | |||||
; auth file = /etc/xl2tpd/xl2tp-secrets ; * Where our challenge secrets are | |||||
; access control = yes ; * Refuse connections without IP match | |||||
; rand source = dev ; Source for entropy for random | |||||
; ; numbers, options are: | |||||
; ; dev - reads of /dev/urandom | |||||
; ; sys - uses rand() | |||||
; ; egd - reads from egd socket | |||||
; ; egd is not yet implemented | |||||
; | |||||
; [lns default] ; Our fallthrough LNS definition | |||||
; exclusive = no ; * Only permit one tunnel per host | |||||
; ip range = 192.168.0.1-192.168.0.20 ; * Allocate from this IP range | |||||
; no ip range = 192.168.0.3-192.168.0.9 ; * Except these hosts | |||||
; ip range = 192.168.0.5 ; * But this one is okay | |||||
; ip range = lac1-lac2 ; * And anything from lac1 to lac2's IP | |||||
; lac = 192.168.1.4 - 192.168.1.8 ; * These can connect as LAC's | |||||
; no lac = untrusted.marko.net ; * This guy can't connect | |||||
; hidden bit = no ; * Use hidden AVP's? | |||||
; local ip = 192.168.1.2 ; * Our local IP to use | |||||
; length bit = yes ; * Use length bit in payload? | |||||
; require chap = yes ; * Require CHAP auth. by peer | |||||
; refuse pap = yes ; * Refuse PAP authentication | |||||
; refuse chap = no ; * Refuse CHAP authentication | |||||
; refuse authentication = no ; * Refuse authentication altogether | |||||
; require authentication = yes ; * Require peer to authenticate | |||||
; unix authentication = no ; * Use /etc/passwd for auth. | |||||
; name = myhostname ; * Report this as our hostname | |||||
; ppp debug = no ; * Turn on PPP debugging | |||||
; pppoptfile = /etc/ppp/options.xl2tpd.lns ; * ppp options file | |||||
; call rws = 10 ; * RWS for call (-1 is valid) | |||||
; tunnel rws = 4 ; * RWS for tunnel (must be > 0) | |||||
; flow bit = yes ; * Include sequence numbers | |||||
; challenge = yes ; * Challenge authenticate peer ; | |||||
; | |||||
; [lac marko] ; Example VPN LAC definition | |||||
; lns = lns.marko.net ; * Who is our LNS? | |||||
; lns = lns2.marko.net ; * A backup LNS (not yet used) | |||||
; redial = yes ; * Redial if disconnected? | |||||
; redial timeout = 15 ; * Wait n seconds between redials | |||||
; max redials = 5 ; * Give up after n consecutive failures | |||||
; hidden bit = yes ; * User hidden AVP's? | |||||
; local ip = 192.168.1.1 ; * Force peer to use this IP for us | |||||
; remote ip = 192.168.1.2 ; * Force peer to use this as their IP | |||||
; length bit = no ; * Use length bit in payload? | |||||
; require pap = no ; * Require PAP auth. by peer | |||||
; require chap = yes ; * Require CHAP auth. by peer | |||||
; refuse pap = yes ; * Refuse PAP authentication | |||||
; refuse chap = no ; * Refuse CHAP authentication | |||||
; refuse authentication = no ; * Refuse authentication altogether | |||||
; require authentication = yes ; * Require peer to authenticate | |||||
; name = marko ; * Report this as our hostname | |||||
; ppp debug = no ; * Turn on PPP debugging | |||||
; pppoptfile = /etc/ppp/options.xl2tpd.marko ; * ppp options file for this lac | |||||
; call rws = 10 ; * RWS for call (-1 is valid) | |||||
; tunnel rws = 4 ; * RWS for tunnel (must be > 0) | |||||
; flow bit = yes ; * Include sequence numbers | |||||
; challenge = yes ; * Challenge authenticate peer | |||||
; | |||||
; [lac cisco] ; Another quick LAC | |||||
; lns = cisco.marko.net ; * Required, but can take from default | |||||
; require authentication = yes |
@ -0,0 +1,18 @@ | |||||
#!/bin/sh /etc/rc.common | |||||
# Copyright (C) 2006-2010 OpenWrt.org | |||||
START=60 | |||||
BIN=xl2tpd | |||||
DEFAULT=/etc/default/$BIN | |||||
RUN_D=/var/run | |||||
PID_F=$RUN_D/$BIN.pid | |||||
start() { | |||||
mkdir -p $RUN_D/$BIN | |||||
[ -f $DEFAULT ] && . $DEFAULT | |||||
$BIN $OPTIONS | |||||
} | |||||
stop() { | |||||
[ -f $PID_F ] && kill $(cat $PID_F) | |||||
} |
@ -0,0 +1,12 @@ | |||||
--- a/Makefile | |||||
+++ b/Makefile | |||||
@@ -91,7 +91,8 @@ OSFLAGS+= -DUSE_KERNEL | |||||
IPFLAGS?= -DIP_ALLOCATION | |||||
-CFLAGS+= $(DFLAGS) -O2 -fno-builtin -Wall -DSANITY $(OSFLAGS) $(IPFLAGS) | |||||
+OFLAGS=-O2 | |||||
+CFLAGS+= $(DFLAGS) $(OFLAGS) -fno-builtin -Wall -DSANITY $(OSFLAGS) $(IPFLAGS) | |||||
HDRS=l2tp.h avp.h misc.h control.h call.h scheduler.h file.h aaa.h md5.h | |||||
OBJS=xl2tpd.o pty.o misc.o control.o avp.o call.o network.o avpsend.o scheduler.o file.o aaa.o md5.o | |||||
SRCS=${OBJS:.o=.c} ${HDRS} |
@ -0,0 +1,43 @@ | |||||
--- a/Makefile | |||||
+++ b/Makefile | |||||
@@ -107,10 +107,10 @@ BINDIR?=$(DESTDIR)${PREFIX}/bin | |||||
MANDIR?=$(DESTDIR)${PREFIX}/share/man | |||||
-all: $(EXEC) pfc $(CONTROL_EXEC) | |||||
+all: $(EXEC) $(CONTROL_EXEC) | |||||
clean: | |||||
- rm -f $(OBJS) $(EXEC) pfc.o pfc $(CONTROL_EXEC) | |||||
+ rm -f $(OBJS) $(EXEC) $(CONTROL_EXEC) | |||||
$(EXEC): $(OBJS) $(HDRS) | |||||
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS) | |||||
@@ -118,14 +118,10 @@ $(EXEC): $(OBJS) $(HDRS) | |||||
$(CONTROL_EXEC): $(CONTROL_SRCS) | |||||
$(CC) $(CFLAGS) $(LDFLAGS) $(CONTROL_SRCS) -o $@ | |||||
-pfc: | |||||
- $(CC) $(CFLAGS) -c contrib/pfc.c | |||||
- $(CC) $(LDFLAGS) -o pfc pfc.o -lpcap $(LDLIBS) | |||||
- | |||||
romfs: | |||||
$(ROMFSINST) /bin/$(EXEC) | |||||
-install: ${EXEC} pfc ${CONTROL_EXEC} | |||||
+install: ${EXEC} ${CONTROL_EXEC} | |||||
install -d -m 0755 ${SBINDIR} | |||||
install -m 0755 $(EXEC) ${SBINDIR}/$(EXEC) | |||||
install -d -m 0755 ${MANDIR}/man5 | |||||
@@ -133,11 +129,6 @@ install: ${EXEC} pfc ${CONTROL_EXEC} | |||||
install -m 0644 doc/xl2tpd.8 ${MANDIR}/man8/ | |||||
install -m 0644 doc/xl2tpd.conf.5 doc/l2tp-secrets.5 \ | |||||
${MANDIR}/man5/ | |||||
- # pfc | |||||
- install -d -m 0755 ${BINDIR} | |||||
- install -m 0755 pfc ${BINDIR}/pfc | |||||
- install -d -m 0755 ${MANDIR}/man1 | |||||
- install -m 0644 contrib/pfc.1 ${MANDIR}/man1/ | |||||
# control exec | |||||
install -d -m 0755 ${SBINDIR} | |||||
install -m 0755 $(CONTROL_EXEC) ${SBINDIR}/$(CONTROL_EXEC) |
@ -0,0 +1,39 @@ | |||||
# | |||||
# 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:=mktorrent | |||||
PKG_VERSION:=1.0 | |||||
PKG_RELEASE:=1 | |||||
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org> | |||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz | |||||
PKG_SOURCE_URL:=http://downloads.sourceforge.net/$(PKG_NAME)/ | |||||
PKG_MD5SUM:=0da00209da96a0dc39efbb6eb5b4d8ff | |||||
include $(INCLUDE_DIR)/package.mk | |||||
define Package/mktorrent | |||||
SUBMENU:=BitTorrent | |||||
SECTION:=net | |||||
CATEGORY:=Network | |||||
TITLE:=mktorrent | |||||
URL:=http://mktorrent.sourceforge.net/ | |||||
endef | |||||
define Package/mktorrent/Description | |||||
mktorrent is a simple command line utility to create BitTorrent metainfo files. | |||||
endef | |||||
define Package/mktorrent/install | |||||
$(INSTALL_DIR) $(1)/usr/bin | |||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/mktorrent $(1)/usr/bin | |||||
endef | |||||
$(eval $(call BuildPackage,mktorrent)) |