[prev in list] [next in list] [prev in thread] [next in thread]
List: freewrt-developers
Subject: Re: [FreeWRT-developers] building custom packages
From: Waldemar Brodkorb <wbx () freewrt ! org>
Date: 2006-12-09 17:33:23
Message-ID: 20061209173323.GB24118 () freewrt ! org
[Download RAW message or body]
Hi,
On Sat, 09 Dec 2006 at 14:04 +0000, Sven Geggus wrote:
> Hi there,
>
> I like to build some custom packages. With limited sucess so far.
>
> What would I need to do to build the package?
>
> I added
>
> source "package/mypackage/Config.in"
>
> to package/Config.in, but that does not seem to be enough.
>
> Package shows up fine in "make menuconfig" is not beeing build using
> "make" however.
Custom packages needs to be customized :}
The package can be used to overwrite files in the default firmware
image. For example I added some parts of my mypackage, which is used
to generate pre-configured VPN nodes.
Example for package/mypackage/Makefile:
PKG_NAME:= vpn
PKG_RELEASE:= 1
WRKSRC= ${WRKDIR}/$(PKG_NAME)
DISTFILES:=
include $(TOPDIR)/mk/package.mk
# vpn locations
ifeq ($(FWRT_VPN-DE-1),y)
FWRT_VPN_CN=VPN-DE-1
FWRT_HOSTNAME=vpn-de-1
FWRT_WIFI_CHANNEL=11
FWRT_WIFI_ESSID=VPN-DE-1
FWRT_LAN_IP_ADDRESS=172.16.0.1
FWRT_LAN_IP_NETWORK=172.16.0
FWRT_SAMBA_WORKGROUP=VPN-DE-1
FWRT_SAMBA_PATH=/mnt/disk0_1/samba
FWRT_WIFI_WEP_KEY=123456789
endif
IDIR_MYPACKAGE:=$(WRKBUILD)/$(PKG_NAME)
IPKG_MYPACKAGE:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_RELEASE)_$(ARCH).ipk
$(WRKBUILD)/.prepared:
mkdir -p $(WRKBUILD)
touch $@
$(WRKBUILD)/.configured:
touch $@
$(WRKBUILD)/.built:
touch $@
$(IPKG_MYPACKAGE):
rm -rf $(IDIR_MYPACKAGE)
mkdir -p $(IDIR_MYPACKAGE)
$(SCRIPT_DIR)/make-ipkg-dir.sh $(IDIR_MYPACKAGE) ipkg/$(PKG_NAME).control $(PKG_RELEASE) $(ARCH)
mkdir -p $(IDIR_MYPACKAGE)/etc/init.d
mkdir -p $(IDIR_MYPACKAGE)/etc/crontabs
mkdir -p $(IDIR_MYPACKAGE)/usr/sbin
mkdir $(IDIR_MYPACKAGE)/etc/openvpn
mkdir $(IDIR_MYPACKAGE)/etc/samba
mkdir $(IDIR_MYPACKAGE)/etc/network
$(CP) ./files/dnsmasq.conf $(IDIR_MYPACKAGE)/etc
$(CP) ./files/openvpn.conf $(IDIR_MYPACKAGE)/etc/openvpn
$(CP) ./files/smb.conf $(IDIR_MYPACKAGE)/etc/samba
$(CP) ./files/interfaces $(IDIR_MYPACKAGE)/etc/network
$(CP) ./files/firewall.conf $(IDIR_MYPACKAGE)/etc
$(CP) ./files/hosts $(IDIR_MYPACKAGE)/etc/hosts
$(SED) "s/@FWRT_WAN@/$(FWRT_WAN)/g" \
$(IDIR_MYPACKAGE)/etc/firewall.conf
$(CP) ./files/rc.conf $(IDIR_MYPACKAGE)/etc/rc.conf
$(CP) ./files/vpnreset $(IDIR_MYPACKAGE)/usr/sbin
$(CP) ./files/$(FWRT_VPN_CN).p12 \
$(IDIR_MYPACKAGE)/etc/openvpn
$(CP) ./files/dh1024.pem \
$(IDIR_MYPACKAGE)/etc/openvpn
$(SED) "s/@FWRT_VPN_CN@/$(FWRT_VPN_CN)/" \
$(IDIR_MYPACKAGE)/etc/openvpn/openvpn.conf
$(SED) "s/@FWRT_LOCAL_NET@/$(FWRT_LAN_IP_NETWORK)/g" \
$(IDIR_MYPACKAGE)/etc/dnsmasq.conf
$(SED) "s/@FWRT_SAMBA_WORKGROUP@/$(FWRT_SAMBA_WORKGROUP)/" \
$(IDIR_MYPACKAGE)/etc/samba/smb.conf
$(SED) "s#@FWRT_SAMBA_PATH@#$(FWRT_SAMBA_PATH)#" \
$(IDIR_MYPACKAGE)/etc/samba/smb.conf
$(SED) "s/@FWRT_LAN@/$(FWRT_LAN)/g" \
$(IDIR_MYPACKAGE)/etc/network/interfaces
$(SED) "s/@FWRT_WAN@/$(FWRT_WAN)/g" \
$(IDIR_MYPACKAGE)/etc/network/interfaces
$(SED) "s/@FWRT_WLAN@/$(FWRT_WLAN)/g" \
$(IDIR_MYPACKAGE)/etc/network/interfaces
$(SED) "s/@FWRT_NET_LAN_IP_ADDRESS@/$(FWRT_LAN_IP_ADDRESS)/g" \
$(IDIR_MYPACKAGE)/etc/network/interfaces
$(SED) "s/@FWRT_WIFI_CHANNEL@/$(FWRT_WIFI_CHANNEL)/g" \
$(IDIR_MYPACKAGE)/etc/network/interfaces
-find $(IDIR_MYPACKAGE) -type d -name CVS | xargs rm -rf
-find $(IDIR_MYPACKAGE) -type d -name .svn | xargs rm -rf
-find $(IDIR_MYPACKAGE) -name '.#*' | xargs rm -f
$(IPKG_BUILD) $(IDIR_MYPACKAGE) $(PACKAGE_DIR)
compile-targets: $(IPKG_MYPACKAGE)
install-targets: compile
$(IPKG) install $(IPKG_MYPACKAGE)
=============================================
And in package/mypackage/Config.in
choice
prompt "Location of VPN endpoint"
config FWRT_VPN-DE-1
bool "VPN-DE-1"
select FWRT_PACKAGE_MYPACKAGE
help
Germany 1
endchoice
config FWRT_PACKAGE_MYPACKAGE
bool "VPN Router with OpenVPN"
select FWRT_PACKAGE_BRIDGE_UTILS
select FWRT_PACKAGE_IPTABLES
select FWRT_PACKAGE_FDISK
select FWRT_PACKAGE_DNSMASQ
select FWRT_PACKAGE_E2FSPROGS
select FWRT_PACKAGE_PPP
select FWRT_PACKAGE_PPP_MOD_PPPOE
select FWRT_PACKAGE_OPENNTPD
select FWRT_PACKAGE_OPENVPN
...
help
Firmware for DSL router with OpenVPN. It selects dns server,
dhcp server, iptables, ntpclient, ppp and openvpn.
Check if your .config contains FWRT_PACKAGE_MYPACKAGE. Use following
command to just build one package:
make package=mypackage compile V=99
have fun
Waldemar
_______________________________________________
freewrt-developers mailing list
freewrt-developers@freewrt.org
https://www.freewrt.org/lists/listinfo/freewrt-developers
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic