aboutsummaryrefslogtreecommitdiffstats
path: root/main/beep
diff options
context:
space:
mode:
Diffstat (limited to 'main/beep')
-rw-r--r--main/beep/APKBUILD29
-rw-r--r--main/beep/beep-1.2.2-nosuid.patch33
2 files changed, 62 insertions, 0 deletions
diff --git a/main/beep/APKBUILD b/main/beep/APKBUILD
new file mode 100644
index 0000000000..742998204e
--- /dev/null
+++ b/main/beep/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Leonardo Arena <rnalrd@gmail.com>
+# Maintainer: Leonardo Arena <rnalrd@gmail.com>
+pkgname=beep
+pkgver=1.2.2
+pkgrel=0
+pkgdesc="A terminal bell"
+url="http://johnath.com/beep"
+license="GPL-2"
+depends="uclibc"
+makedepends=""
+#install=
+subpackages="$pkgname-doc"
+source="http://johnath.com/$pkgname/$pkgname-$pkgver.tar.gz
+ beep-1.2.2-nosuid.patch"
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch beep.c < ../../beep-1.2.2-nosuid.patch
+
+ make || return 1
+
+ install -m755 -D "$srcdir/$pkgname-$pkgver/beep" "$pkgdir"/usr/bin/beep
+ install -m644 -D "$srcdir/$pkgname-$pkgver/beep.1.gz" "$pkgdir"/usr/share/man/man1/beep.1.gz
+}
+
+md5sums="d541419fd7e5642952d7b48cbb40c712 beep-1.2.2.tar.gz
+38e2fc3ea98ced50038799ca80fdd9ee beep-1.2.2-nosuid.patch"
+
diff --git a/main/beep/beep-1.2.2-nosuid.patch b/main/beep/beep-1.2.2-nosuid.patch
new file mode 100644
index 0000000000..33e6affa9f
--- /dev/null
+++ b/main/beep/beep-1.2.2-nosuid.patch
@@ -0,0 +1,33 @@
+--- beep.c.orig 2005-07-23 13:37:01.000000000 -0400
++++ beep.c 2005-07-23 14:00:55.000000000 -0400
+@@ -218,22 +218,20 @@
+ int i; /* loop counter */
+
+ /* try to snag the console */
+- if((console_fd = open("/dev/console", O_WRONLY)) == -1) {
+- fprintf(stderr, "Could not open /dev/console for writing.\n");
+- printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */
+- perror("open");
+- exit(1);
+- }
++ console_fd = open("/dev/console", O_WRONLY);
+
+ /* Beep */
+ for (i = 0; i < parms.reps; i++) { /* start beep */
+- if(ioctl(console_fd, KIOCSOUND, (int)(CLOCK_TICK_RATE/parms.freq)) < 0) {
+- printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */
+- perror("ioctl");
++ if (console_fd >= 0) {
++ ioctl(console_fd, KIOCSOUND, (int)(CLOCK_TICK_RATE/parms.freq));
++ } else {
++ printf("\a"); /* Output the fall back for usefulness we don't have to be suid to work at all */
++ fflush(stdout);
+ }
+ /* Look ma, I'm not ansi C compatible! */
+ usleep(1000*parms.length); /* wait... */
+- ioctl(console_fd, KIOCSOUND, 0); /* stop beep */
++ if (console_fd >= 0)
++ ioctl(console_fd, KIOCSOUND, 0); /* stop beep */
+ if(parms.end_delay || (i+1 < parms.reps))
+ usleep(1000*parms.delay); /* wait... */
+ } /* repeat. */