summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/images/nas-server-image.bb47
-rw-r--r--packages/meta/meta-nas-server.bb10
-rw-r--r--packages/tasks/task-nas-server.bb94
3 files changed, 151 insertions, 0 deletions
diff --git a/packages/images/nas-server-image.bb b/packages/images/nas-server-image.bb
new file mode 100644
index 0000000000..d4a012c082
--- /dev/null
+++ b/packages/images/nas-server-image.bb
@@ -0,0 +1,47 @@
+# This image is intended to provide a configuration
+# for a network attached storage server device.
+
+# Key features are:
+#
+# 1) Must be able to mount attached storage devices like
+# internal disks, external USB disks, etc. Should support
+# various filesystem choices, but ext2 at a minimum.
+#
+# 2) Must be able to boot from internal flash, or directly
+# from a filesystem stored on the attached storage.
+#
+# 3) Must be able to share that storage across the network
+# using various protocols like Samba, NFS, etc.
+#
+# 4) Bonus points for being able to support other central
+# network services like a central gateway machine might.
+
+# Although it is tested with the Angstrom distro, it is
+# intended to be distro-agnostic.
+
+DISTRO_SSH_DAEMON ?= "dropbear"
+DISTRO_PACKAGE_MANAGER ?= "ipkg ipkg-collateral"
+
+DEPENDS = "task-boot task-base-apex \
+ task-distro-base task-machine-base \
+ ${DISTRO_SSH_DAEMON} \
+ ${DISTRO_PACKAGE_MANAGER} \
+ task-base-usbhost task-base-ext2 \
+ task-nas-server-everything \
+ "
+
+IMAGE_INSTALL_TASKS = "\
+ task-nas-server-everything \
+ "
+
+IMAGE_INSTALL = "task-boot task-base-apex \
+ ${DISTRO_SSH_DAEMON} \
+ ${DISTRO_PACKAGE_MANAGER} \
+ task-base-usbhost task-base-ext2 \
+ ${IMAGE_INSTALL_TASKS} \
+ "
+
+export IMAGE_BASENAME = "nas-server-image"
+IMAGE_LINGUAS = ""
+
+inherit image
diff --git a/packages/meta/meta-nas-server.bb b/packages/meta/meta-nas-server.bb
new file mode 100644
index 0000000000..3deb44c2bd
--- /dev/null
+++ b/packages/meta/meta-nas-server.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "Meta-package for a network attached storage server"
+LICENSE = "MIT"
+PR = "r0"
+
+RDEPENDS = "\
+ task-nas-server-everything \
+ "
+
+inherit meta
+
diff --git a/packages/tasks/task-nas-server.bb b/packages/tasks/task-nas-server.bb
new file mode 100644
index 0000000000..bfecfc8822
--- /dev/null
+++ b/packages/tasks/task-nas-server.bb
@@ -0,0 +1,94 @@
+DESCRIPTION = "Tasks for a Network Attached Storage server"
+LICENSE = "MIT"
+PROVIDES = "task-nas-server-everything"
+PR = "r0"
+
+inherit task
+
+PACKAGES = "\
+ task-nas-server-everything \
+ ${NAS_SERVER_PACKAGES} \
+"
+
+NAS_SERVER_PACKAGES = "\
+ task-nas-server-base \
+ task-nas-server-samba \
+ task-nas-server-dnsmasq \
+ task-nas-server-iptables \
+ task-nas-server-tzdata \
+ task-nas-server-nfs \
+ task-nas-server-vfat \
+ task-nas-server-ntfs \
+ task-nas-server-ext3 \
+ task-nas-server-reiserfs \
+"
+
+RDEPENDS_task-nas-server-everything = "${NAS_SERVER_PACKAGES}"
+
+DESCRIPTION_task-nas-server-base = "NAS-Server: Base Packages"
+RDEPENDS_task-nas-server-base = "\
+"
+RRECOMMENDS_task-nas-server-base = "\
+"
+
+DESCRIPTION_task-nas-server-samba = "NAS-Server: Samba Server"
+RDEPENDS_task-nas-server-samba = "\
+ samba swat \
+"
+RRECOMMENDS_task-nas-server-samba = "\
+"
+
+DESCRIPTION_task-nas-server-dnsmasq = "NAS-Server: DNS/DHCP Server"
+RDEPENDS_task-nas-server-dnsmasq = "\
+ dnsmasq \
+"
+RRECOMMENDS_task-nas-server-dnsmasq = "\
+"
+
+DESCRIPTION_task-nas-server-iptables = "NAS-Server: Netfilter/Iptables Support"
+RDEPENDS_task-nas-server-iptables = "\
+ iptables \
+"
+RRECOMMENDS_task-nas-server-iptables = "\
+ kernel-module-iptable-nat \
+ kernel-module-iptable-mangle \
+ kernel-module-ipt-masquerade \
+"
+
+DESCRIPTION_task-nas-server-tzdata = "NAS-Server: Timezone Support"
+RDEPENDS_task-nas-server-tzdata = "\
+ tzdata \
+"
+RRECOMMENDS_task-nas-server-tzdata = "\
+"
+
+DESCRIPTION_task-nas-server-nfs = "NAS-Server: NFS Server"
+RDEPENDS_task-nas-server-nfs = "\
+ nfs-utils portmap \
+"
+RRECOMMENDS_task-nas-server-nfs = "\
+"
+
+DESCRIPTION_task-nas-server-vfat = "NAS-Server: FAT Filesystem"
+RDEPENDS_task-nas-server-vfat = "\
+"
+RRECOMMENDS_task-nas-server-vfat = "\
+"
+
+DESCRIPTION_task-nas-server-ntfs = "NAS-Server: NTFS Filesystem"
+RDEPENDS_task-nas-server-ntfs = "\
+"
+RRECOMMENDS_task-nas-server-ntfs = "\
+"
+
+DESCRIPTION_task-nas-server-ext3 = "NAS-Server: EXT3 Filesystem"
+RDEPENDS_task-nas-server-ext3 = "\
+"
+RRECOMMENDS_task-nas-server-ext3 = "\
+"
+
+DESCRIPTION_task-nas-server-reiserfs = "NAS-Server: ReiserFS Filesystem"
+RDEPENDS_task-nas-server-reiserfs = "\
+"
+RRECOMMENDS_task-nas-server-reiserfs = "\
+"