From 49215dddb6eb715823be0e4b21bba37a8fd55ad3 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Fri, 21 Aug 2009 14:10:17 +0000
Subject: busybox: backport the beep applet from git

---
 ...001-add-simple-beep-applet-second-version.patch | 186 -------------------
 main/busybox/0001-add-simple-beep-applet.patch     | 205 +++++++++++++++++++++
 ...d-config-knob-for-default-freq-and-length.patch |  79 ++++++++
 main/busybox/APKBUILD                              |  10 +-
 main/busybox/busyboxconfig                         |   4 +-
 5 files changed, 293 insertions(+), 191 deletions(-)
 delete mode 100644 main/busybox/0001-add-simple-beep-applet-second-version.patch
 create mode 100644 main/busybox/0001-add-simple-beep-applet.patch
 create mode 100644 main/busybox/0002-add-config-knob-for-default-freq-and-length.patch

(limited to 'main/busybox')

diff --git a/main/busybox/0001-add-simple-beep-applet-second-version.patch b/main/busybox/0001-add-simple-beep-applet-second-version.patch
deleted file mode 100644
index 834026fa35..0000000000
--- a/main/busybox/0001-add-simple-beep-applet-second-version.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-From b36908b21def4916b10c62ae3e28cacb9073556e Mon Sep 17 00:00:00 2001
-From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-Date: Tue, 18 Aug 2009 22:28:09 +0200
-Subject: [PATCH] add simple beep applet, second version
-
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
- include/applets.h   |    1 +
- include/usage.h     |    9 +++++
- miscutils/Config.in |    6 +++
- miscutils/Kbuild    |    1 +
- miscutils/beep.c    |  101 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 5 files changed, 118 insertions(+), 0 deletions(-)
- create mode 100644 miscutils/beep.c
-
-diff --git a/include/applets.h b/include/applets.h
-index 32c596d..5ddbfe4 100644
---- a/include/applets.h
-+++ b/include/applets.h
-@@ -80,6 +80,7 @@ USE_ASH(APPLET(ash, _BB_DIR_BIN, _BB_SUID_NEVER))
- USE_AWK(APPLET_NOEXEC(awk, awk, _BB_DIR_USR_BIN, _BB_SUID_NEVER, awk))
- USE_BASENAME(APPLET_NOFORK(basename, basename, _BB_DIR_USR_BIN, _BB_SUID_NEVER, basename))
- USE_BBCONFIG(APPLET(bbconfig, _BB_DIR_BIN, _BB_SUID_NEVER))
-+USE_BEEP(APPLET(beep, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
- //USE_BBSH(APPLET(bbsh, _BB_DIR_BIN, _BB_SUID_NEVER))
- USE_BLKID(APPLET(blkid, _BB_DIR_SBIN, _BB_SUID_NEVER))
- USE_BRCTL(APPLET(brctl, _BB_DIR_USR_SBIN, _BB_SUID_NEVER))
-diff --git a/include/usage.h b/include/usage.h
-index bfacc56..ac8669c 100644
---- a/include/usage.h
-+++ b/include/usage.h
-@@ -142,6 +142,15 @@
-        "$ basename /foo/bar.txt .txt\n" \
-        "bar"
- 
-+#define beep_trivial_usage \
-+       "-f freq -l length -d delay -r repetitions"
-+#define beep_full_usage "\n\n" \
-+	"Options:\n" \
-+     "\n	-f	Frequency in Hz" \
-+     "\n	-l	Length in ms" \
-+     "\n	-d	Delay in ms" \
-+     "\n	-r	Repetitions" \
-+
- #define fbsplash_trivial_usage \
-        "-s IMGFILE [-c] [-d DEV] [-i INIFILE] [-f CMD]"
- #define fbsplash_full_usage "\n\n" \
-diff --git a/miscutils/Config.in b/miscutils/Config.in
-index 7feaf4a..e56a3fc 100644
---- a/miscutils/Config.in
-+++ b/miscutils/Config.in
-@@ -19,6 +19,12 @@ config BBCONFIG
- 	  The bbconfig applet will print the config file with which
- 	  busybox was built.
- 
-+config BEEP
-+	bool "beep"
-+	default n
-+	help
-+	  The beep applets beeps in a given freq/Hz.
-+
- config CHAT
- 	bool "chat"
- 	default n
-diff --git a/miscutils/Kbuild b/miscutils/Kbuild
-index 23d7d8d..8cf3406 100644
---- a/miscutils/Kbuild
-+++ b/miscutils/Kbuild
-@@ -7,6 +7,7 @@
- lib-y:=
- lib-$(CONFIG_ADJTIMEX)    += adjtimex.o
- lib-$(CONFIG_BBCONFIG)    += bbconfig.o
-+lib-$(CONFIG_BEEP)        += beep.o
- lib-$(CONFIG_CHAT)        += chat.o
- lib-$(CONFIG_CHRT)        += chrt.o
- lib-$(CONFIG_CROND)       += crond.o
-diff --git a/miscutils/beep.c b/miscutils/beep.c
-new file mode 100644
-index 0000000..81755d8
---- /dev/null
-+++ b/miscutils/beep.c
-@@ -0,0 +1,101 @@
-+/* vi: set sw=4 ts=4: */
-+/*
-+ * beep implementation for busybox
-+ *
-+ * Copyright (C) 2009 Bernhard Reutner-Fischer
-+ *
-+ * Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
-+ *
-+ */
-+
-+#include "libbb.h"
-+
-+#include <linux/kd.h>
-+#ifndef CLOCK_TICK_RATE
-+#define CLOCK_TICK_RATE 1193180
-+#endif
-+
-+#define OPT_f (1<<0)
-+#define OPT_l (1<<1)
-+#define OPT_d (1<<2)
-+#define OPT_r (1<<3)
-+/* defaults */
-+#define FREQ (4440)
-+#define LENGTH (50)
-+#define DELAY (0)
-+#define REPETITIONS (1)
-+#if 0
-+typedef struct beep {
-+	struct beep *next;
-+	unsigned freq, length, delay, rep;
-+} beep_t;
-+static beep_t* new_beep(void) {
-+	beep_t *beep = (beep_t*)xzalloc(sizeof(beep_t));
-+	beep->freq = FREQ;
-+	beep->length = LENGTH;
-+	beep->delay = DELAY;
-+	beep->rep = REPETITIONS;
-+	return beep;
-+}
-+#endif
-+#define GET_ARG do { if (!*++opt) opt = *++argv; } while (0)
-+#define NEW_BEEP() { \
-+	freq = FREQ; \
-+	length = LENGTH; \
-+	delay = DELAY; \
-+	rep = REPETITIONS; \
-+	}
-+
-+int beep_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-+int beep_main(int argc UNUSED_PARAM, char **argv)
-+{
-+	int speaker = get_console_fd_or_die();
-+	unsigned freq, length, delay, rep;
-+	unsigned long ioctl_arg;
-+
-+	NEW_BEEP()
-+	while (*++argv) {
-+		char *opt = *argv;
-+
-+		while (*opt == '-')
-+			++opt;
-+
-+		switch (*opt) {
-+		case 'f':
-+			GET_ARG;
-+			freq = xatoul(opt);
-+			continue;
-+		case 'l':
-+			GET_ARG;
-+			length = xatoul(opt);
-+			continue;
-+		case 'd':
-+			GET_ARG;
-+			delay = xatoul(opt);
-+			continue;
-+		case 'r':
-+			GET_ARG;
-+			freq = xatoul(opt);
-+			continue;
-+		case 'n':
-+			break;
-+		default:
-+			bb_show_usage();
-+			break;
-+		}
-+		while (rep) {
-+//bb_info_msg("rep[%d] freq=%d, length=%d, delay=%d", rep, freq, length, delay);
-+			ioctl_arg = (int)(CLOCK_TICK_RATE/freq);
-+			xioctl(speaker, KIOCSOUND, (void*)ioctl_arg);
-+			usleep(1000 * length);
-+			ioctl(speaker, KIOCSOUND, 0);
-+			if (rep--)
-+				usleep(delay);
-+		}
-+		if (opt && *opt == 'n')
-+			NEW_BEEP()
-+	}
-+	if (ENABLE_FEATURE_CLEAN_UP)
-+		close(speaker);
-+	return EXIT_SUCCESS;
-+}
--- 
-1.6.4
-
diff --git a/main/busybox/0001-add-simple-beep-applet.patch b/main/busybox/0001-add-simple-beep-applet.patch
new file mode 100644
index 0000000000..050f229bbd
--- /dev/null
+++ b/main/busybox/0001-add-simple-beep-applet.patch
@@ -0,0 +1,205 @@
+From f1ca52c6dacbec39246fca696a597f5dbeca321f Mon Sep 17 00:00:00 2001
+From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
+Date: Fri, 21 Aug 2009 13:18:31 +0200
+Subject: [PATCH 1/2] add simple beep applet
+
+Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
+---
+ include/applets.h   |    1 +
+ include/usage.h     |   10 ++++
+ miscutils/Config.in |    6 +++
+ miscutils/Kbuild    |    1 +
+ miscutils/beep.c    |  119 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 137 insertions(+), 0 deletions(-)
+ create mode 100644 miscutils/beep.c
+
+diff --git a/include/applets.h b/include/applets.h
+index 32c596d..5ddbfe4 100644
+--- a/include/applets.h
++++ b/include/applets.h
+@@ -80,6 +80,7 @@ USE_ASH(APPLET(ash, _BB_DIR_BIN, _BB_SUID_NEVER))
+ USE_AWK(APPLET_NOEXEC(awk, awk, _BB_DIR_USR_BIN, _BB_SUID_NEVER, awk))
+ USE_BASENAME(APPLET_NOFORK(basename, basename, _BB_DIR_USR_BIN, _BB_SUID_NEVER, basename))
+ USE_BBCONFIG(APPLET(bbconfig, _BB_DIR_BIN, _BB_SUID_NEVER))
++USE_BEEP(APPLET(beep, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
+ //USE_BBSH(APPLET(bbsh, _BB_DIR_BIN, _BB_SUID_NEVER))
+ USE_BLKID(APPLET(blkid, _BB_DIR_SBIN, _BB_SUID_NEVER))
+ USE_BRCTL(APPLET(brctl, _BB_DIR_USR_SBIN, _BB_SUID_NEVER))
+diff --git a/include/usage.h b/include/usage.h
+index bfacc56..f51b848 100644
+--- a/include/usage.h
++++ b/include/usage.h
+@@ -142,6 +142,16 @@
+        "$ basename /foo/bar.txt .txt\n" \
+        "bar"
+ 
++#define beep_trivial_usage \
++       "-f freq -l length -d delay -r repetitions -n"
++#define beep_full_usage "\n\n" \
++	"Options:\n" \
++     "\n	-f	Frequency in Hz" \
++     "\n	-l	Length in ms" \
++     "\n	-d	Delay in ms" \
++     "\n	-r	Repetitions" \
++     "\n	-n	Start new tone" \
++
+ #define fbsplash_trivial_usage \
+        "-s IMGFILE [-c] [-d DEV] [-i INIFILE] [-f CMD]"
+ #define fbsplash_full_usage "\n\n" \
+diff --git a/miscutils/Config.in b/miscutils/Config.in
+index 7feaf4a..e56a3fc 100644
+--- a/miscutils/Config.in
++++ b/miscutils/Config.in
+@@ -19,6 +19,12 @@ config BBCONFIG
+ 	  The bbconfig applet will print the config file with which
+ 	  busybox was built.
+ 
++config BEEP
++	bool "beep"
++	default n
++	help
++	  The beep applets beeps in a given freq/Hz.
++
+ config CHAT
+ 	bool "chat"
+ 	default n
+diff --git a/miscutils/Kbuild b/miscutils/Kbuild
+index 23d7d8d..8cf3406 100644
+--- a/miscutils/Kbuild
++++ b/miscutils/Kbuild
+@@ -7,6 +7,7 @@
+ lib-y:=
+ lib-$(CONFIG_ADJTIMEX)    += adjtimex.o
+ lib-$(CONFIG_BBCONFIG)    += bbconfig.o
++lib-$(CONFIG_BEEP)        += beep.o
+ lib-$(CONFIG_CHAT)        += chat.o
+ lib-$(CONFIG_CHRT)        += chrt.o
+ lib-$(CONFIG_CROND)       += crond.o
+diff --git a/miscutils/beep.c b/miscutils/beep.c
+new file mode 100644
+index 0000000..d5c3531
+--- /dev/null
++++ b/miscutils/beep.c
+@@ -0,0 +1,119 @@
++/* vi: set sw=4 ts=4: */
++/*
++ * beep implementation for busybox
++ *
++ * Copyright (C) 2009 Bernhard Reutner-Fischer
++ *
++ * Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
++ *
++ */
++#include "libbb.h"
++
++#include <linux/kd.h>
++#ifndef CLOCK_TICK_RATE
++#define CLOCK_TICK_RATE 1193180
++#endif
++
++#define OPT_f (1<<0)
++#define OPT_l (1<<1)
++#define OPT_d (1<<2)
++#define OPT_r (1<<3)
++/* defaults */
++#define FREQ (4440)
++#define LENGTH (50)
++#define DELAY (0)
++#define REPETITIONS (1)
++
++#define GET_ARG do { if (!*++opt) opt = *++argv; if (opt == NULL) bb_show_usage();} while (0)
++#define NEW_BEEP() { \
++	freq = FREQ; \
++	length = LENGTH; \
++	delay = DELAY; \
++	rep = REPETITIONS; \
++	}
++
++int beep_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
++int beep_main(int argc UNUSED_PARAM, char **argv)
++{
++	int speaker = get_console_fd_or_die();
++	unsigned freq, length, delay, rep;
++	unsigned long ioctl_arg;
++	char *opt = NULL;
++	bool do_parse = true;
++
++	NEW_BEEP()
++	while (*argv && *++argv) {
++		opt = *argv;
++
++		while (*opt == '-')
++			++opt;
++		if (do_parse)
++			switch (*opt) {
++			case 'f':
++				GET_ARG;
++				freq = xatoul(opt);
++				continue;
++			case 'l':
++				GET_ARG;
++				length = xatoul(opt);
++				continue;
++			case 'd':
++				GET_ARG;
++				delay = xatoul(opt);
++				continue;
++			case 'r':
++				GET_ARG;
++				rep = xatoul(opt);
++				continue;
++			case 'n':
++				break;
++			default:
++				bb_show_usage();
++				break;
++			}
++ again:
++		while (rep) {
++//bb_info_msg("rep[%d] freq=%d, length=%d, delay=%d", rep, freq, length, delay);
++			ioctl_arg = (int)(CLOCK_TICK_RATE/freq);
++			xioctl(speaker, KIOCSOUND, (void*)ioctl_arg);
++			usleep(1000 * length);
++			ioctl(speaker, KIOCSOUND, 0);
++			if (rep--)
++				usleep(delay);
++		}
++		if (opt && *opt == 'n')
++				NEW_BEEP()
++		if (!do_parse && *argv == NULL)
++			goto out;
++	}
++	do_parse = false;
++	goto again;
++ out:
++	if (ENABLE_FEATURE_CLEAN_UP)
++		close(speaker);
++	return EXIT_SUCCESS;
++}
++/*
++ * so, e.g. Beethoven's 9th symphony "Ode an die Freude" would be
++ * something like:
++a=$((220*3))
++b=$((247*3))
++c=$((262*3))
++d=$((294*3))
++e=$((329*3))
++f=$((349*3))
++g=$((392*3))
++#./beep -f$d -l200 -r2 -n -f$e -l100 -d 10 -n -f$c -l400 -f$g -l200
++./beep -f$e -l200 -r2 \
++        -n -d 100 -f$f -l200 \
++        -n -f$g -l200 -r2 \
++        -n -f$f -l200 \
++        -n -f$e -l200 \
++        -n -f$d -l200  \
++        -n -f$c -l200 -r2  \
++        -n -f$d -l200  \
++        -n -f$e -l200  \
++        -n -f$e -l400  \
++        -n -f$d -l100 \
++        -n -f$d -l200 \
++*/
+-- 
+1.6.4
+
diff --git a/main/busybox/0002-add-config-knob-for-default-freq-and-length.patch b/main/busybox/0002-add-config-knob-for-default-freq-and-length.patch
new file mode 100644
index 0000000000..5055ae874a
--- /dev/null
+++ b/main/busybox/0002-add-config-knob-for-default-freq-and-length.patch
@@ -0,0 +1,79 @@
+From b2e8817293648eac825ef64be4604af505b65d65 Mon Sep 17 00:00:00 2001
+From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
+Date: Fri, 21 Aug 2009 14:40:29 +0200
+Subject: [PATCH 2/2] add config knob for default freq and length
+
+Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
+---
+ miscutils/Config.in |   16 ++++++++++++++++
+ miscutils/beep.c    |   12 ++++++++++--
+ scripts/defconfig   |    3 +++
+ 3 files changed, 29 insertions(+), 2 deletions(-)
+
+diff --git a/miscutils/Config.in b/miscutils/Config.in
+index e56a3fc..f2104bb 100644
+--- a/miscutils/Config.in
++++ b/miscutils/Config.in
+@@ -25,6 +25,22 @@ config BEEP
+ 	help
+ 	  The beep applets beeps in a given freq/Hz.
+ 
++config FEATURE_BEEP_FREQ
++	int "default frequency"
++	range 0 2147483647
++	default 4000
++	depends on BEEP
++	help
++	  Frequency for default beep.
++
++config FEATURE_BEEP_LENGTH
++	int "default length"
++	range 0 2147483647
++	default 30
++	depends on BEEP
++	help
++	  Length in ms for default beep.
++
+ config CHAT
+ 	bool "chat"
+ 	default n
+diff --git a/miscutils/beep.c b/miscutils/beep.c
+index d5c3531..79e7547 100644
+--- a/miscutils/beep.c
++++ b/miscutils/beep.c
+@@ -19,8 +19,16 @@
+ #define OPT_d (1<<2)
+ #define OPT_r (1<<3)
+ /* defaults */
+-#define FREQ (4440)
+-#define LENGTH (50)
++#ifndef CONFIG_FEATURE_BEEP_FREQ
++# define FREQ (4000)
++#else
++# define FREQ (CONFIG_FEATURE_BEEP_FREQ)
++#endif
++#ifndef CONFIG_FEATURE_BEEP_LENGTH
++# define LENGTH (30)
++#else
++# define LENGTH (CONFIG_FEATURE_BEEP_LENGTH)
++#endif
+ #define DELAY (0)
+ #define REPETITIONS (1)
+ 
+diff --git a/scripts/defconfig b/scripts/defconfig
+index f991363..d7cef7c 100644
+--- a/scripts/defconfig
++++ b/scripts/defconfig
+@@ -554,6 +554,9 @@ CONFIG_FEATURE_MOUNT_LOOP=y
+ #
+ CONFIG_ADJTIMEX=y
+ # CONFIG_BBCONFIG is not set
++CONFIG_BEEP=y
++CONFIG_FEATURE_BEEP_FREQ=4000
++CONFIG_FEATURE_BEEP_LENGTH=30
+ CONFIG_CHAT=y
+ CONFIG_FEATURE_CHAT_NOFAIL=y
+ # CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+-- 
+1.6.4
+
diff --git a/main/busybox/APKBUILD b/main/busybox/APKBUILD
index 0bf896cc13..9d89ef43d9 100644
--- a/main/busybox/APKBUILD
+++ b/main/busybox/APKBUILD
@@ -1,7 +1,7 @@
 # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
 pkgname=busybox
 pkgver=1.14.3
-pkgrel=6
+pkgrel=7
 pkgdesc="Size optimized toolbox of many common UNIX utilities"
 url=http://busybox.net
 license="GPL-2"
@@ -11,7 +11,8 @@ triggers="busybox.trigger:/bin /usr/bin /sbin /usr/sbin /lib/modules/*"
 source="http://busybox.net/downloads/$pkgname-$pkgver.tar.bz2
 	$pkgname-1.11.1-bb.patch
 	0001-install-compat-fix-for-mode-of-created-files.patch
-	0001-add-simple-beep-applet-second-version.patch
+	0001-add-simple-beep-applet.patch
+	0002-add-config-knob-for-default-freq-and-length.patch
 	bb-tar-numeric-owner.patch
 	busybox-sed-3.patch
 	busyboxconfig"
@@ -49,7 +50,8 @@ build() {
 md5sums="d170bf5f97a41aec3a505eab690d5699  busybox-1.14.3.tar.bz2
 4c0f3b486eaa0674961b7ddcd0c60a9b  busybox-1.11.1-bb.patch
 73d39c57483084298c7e46bdbbbea8d1  0001-install-compat-fix-for-mode-of-created-files.patch
-3ba0529f64aadae6ce95c683e6182988  0001-add-simple-beep-applet-second-version.patch
+aa6869db437e11af86b5bf6c7d44b0a5  0001-add-simple-beep-applet.patch
+e55b64d4510aebb83661dac3271e12d3  0002-add-config-knob-for-default-freq-and-length.patch
 0b5b2d7db201f90cd08f4a3164ee29a1  bb-tar-numeric-owner.patch
 b75c3f419f8392dfdadd92aa24fdba8c  busybox-sed-3.patch
-3ece68eb92d97f3362dab7d838074d10  busyboxconfig"
+59d9b2e920505abce869de7a3abac050  busyboxconfig"
diff --git a/main/busybox/busyboxconfig b/main/busybox/busyboxconfig
index fd46cfe779..4c250ac7d4 100644
--- a/main/busybox/busyboxconfig
+++ b/main/busybox/busyboxconfig
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Busybox version: 1.14.3
-# Wed Aug 19 08:31:14 2009
+# Fri Aug 21 13:55:23 2009
 #
 CONFIG_HAVE_DOT_CONFIG=y
 
@@ -551,6 +551,8 @@ CONFIG_FEATURE_MOUNT_LOOP=y
 CONFIG_ADJTIMEX=y
 CONFIG_BBCONFIG=y
 CONFIG_BEEP=y
+CONFIG_FEATURE_BEEP_FREQ=440
+CONFIG_FEATURE_BEEP_LENGTH=200
 # CONFIG_CHAT is not set
 # CONFIG_FEATURE_CHAT_NOFAIL is not set
 # CONFIG_FEATURE_CHAT_TTY_HIFI is not set
-- 
cgit v1.2.3