beep: Update to version 1.4.12

Message ID 20241113174147.2632974-1-adolf.belka@ipfire.org
State New
Headers
Series beep: Update to version 1.4.12 |

Commit Message

Adolf Belka Nov. 13, 2024, 5:41 p.m. UTC
  - Update from version 1.3 (2010) to version 1.4.12
- The originator of beep released version 1.3 in 2010 but the last commit after that was
   in 2013. Since then nothing has happened.
- Most of the patches used in IPFire with beep-1.3 were created by Hans Ulrich Niedermann
   and in 2019 he forked the original beep repository and has been doing updates since
   then. The last release was in 2022 and the last commit in April 2024.
- This patch removes all the previous patches as they are built in to the current
   tarball.
- Changelog
    1.4.12
	    Document how to override and disable packaged udev rules.
	    Changed the build system to be closer to the GNU makefile conventions, i.e.
	        only one compiler/toolchain per build
	        default installation is to prefix=/usr/local instead of prefix=/usr
	        use GNU style docdir= instead of RPM spec file style pkgdocdir=
	        etc.
	        Still not using a configure script, though, as that is complex. The
		 user writing a local.mk with some definitions covers everyone wanting
		 to use the same settings across make invocations, though.
    1.4.11
	    Install the contrib/morse/* scripts just like the failure-beeps.
	     missed to be done in release 1.4.10
    1.4.10
	    Rename CREDITS to CREDITS.md and CHANGELOG to NEWS.md and
	     reformatted them to markdown.
	    Fix some __VA_ARGS__ problems with some C language compiler
	     options.
	    contrib/morse/: Add both perl and tr+sed script options to
	     have beep produce morse code by converting the output of the
	     morse utility from the BSD Games package to a beep command
	     line.
	    If built without any drivers, running beep will now complain and
	     abort instead of silently (pun intended) just not beeping.
	    Stop using Travis CI. Use GitHub Actions workflows for CI instead.
	    Skip test cases using PC speaker hardware if absent (e.g. on a VM)
	    Improved documentation (e.g. alsamixer requirement, loading pcspkr)
    1.4.9
	    Mention default values in the beep(1) man page and the beep --help output.
    1.4.8
	    At build time, avoid error messages related to maybe building without git
	     installed, or from a tarball instead of a git source tree.
	    Improve issue-6-benchmark report to help people with solving issue #6.
    1.4.7
	    Install contrib scripts for both successfully and failing sounding beeps
	     as package documentation.
	    Install man page uncompressed, so packagers can use their favoured
	     compression format.
    1.4.6
	    Use va_copy() macro in function with va_list parameter to avoid possible bug
	    Use BEEP_LOG_LEVEL environment variable for default log level
    1.4.4
	    Remove udev/rules.d/ and modprobe.d/ example files to force packagers to
	     re-read PACKAGING.md and PERMISSIONS.md
	    Rewritten PERMISSIONS.md and INSTALL.md, adapting README.md and PACKAGING.md
	     and beep(1) (i.e. beep.1.in) for consistency
	    Allow beep to run as non-root, even if SUDO_* env variables are present
	    Fix newline escaping when generating beep-usage.c
	    By default, use plain -g instead of -gstabs
	    Ensure the gcc used actually supports the default flags in CFLAGS_gcc
    1.4.3
	    Stop compiling with -fcf-protection in CFLAGS_gcc if the platform does not
	     support it (such as the Raspberry Pi ARMs).
    1.4.2
	    Improved beep(1) man page and --help output
	    Cleaned signal handlers of all function calls
	    Use beep driver infrastructure (console and evdev drivers)
	    Abort on unhandled command line parameters
	    Use nanosleep(2) instead of usleep(3)
    1.4.1
	    Safer signal handlers (safe_error_exit() without global variables).
	    Reduce accepted range of input numbers. 5 minute beeps should still be
	     enough.
    1.4.0
	    The beep-1.4.0 release tries to revive the beep software. There have been
	     no commits to the former upstream since 2013, and with the two CVEs in
	     2018 that needed to change.
	    Packagers beware: Please read PACKAGING.md for the very different (and
	     much better) new way of device access.
	    First and foremost, beep-1.4.0 fixes CVE-2018-0492 and CVE-2018-1000532.
	     The beep command now by default tries
	     /dev/input/by-path/platform-pcspkr-event-spkr which allows arbitrary
	     users beep access by allowing those arbitrary users file write access.
	     The procedures to do that are now well documented in INSTALL.md and
	     PERMISSIONS.md. There is no need for setuid-root or sudo any more, and
	     due to the experiences with the two 2018 CVEs, beep will even refuse to
	     run when it detects being run setuid or via sudo.
	    A few smaller things have also been changed. Quoting the CHANGELOG:
	        Fix CVE-2018-1000532 External Control of File Name or Path
		 vulnerability in --device option
	        Fix CVE-2018-0492 race condition that allows local privilege escalation
	        Make /dev/input/by-path/platform-pcspkr-event-spkr the default device
		 to use as the system administrator can allow access to that without
		 needing any priviledge escalation risks via setuid or sudo.
	        Adapt --help output, beep.1 man page, README.md, INSTALL.md to reflect
		 the new device use.
	        Add basic suite of tests.
	        Constrained a few integers to avoid integer overflows.
	        Only issue fallback '\a' type beeps if that '\a' actually goes to a
		 tty device which can actually beep
	        Stop promoting floating point frequencies which no Kernel API can even
		 use

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 config/rootfiles/common/beep                  |  12 ++
 lfs/beep                                      |  19 +--
 src/patches/beep/0001-Fixed-Makefile.patch    |  44 -------
 .../beep/0002-Add-more-error-detection.patch  |  44 -------
 ...-catch-SIGTERM-for-stopping-the-beep.patch |  32 -----
 ...all-more-user-and-packaging-friendly.patch |  85 -------------
 ...ve-file-modification-time-on-install.patch |  32 -----
 .../0007-Fix-identation-if-brace-error.patch  |  41 ------
 ...ly-CVE-2018-0492-from-Debian-package.patch | 117 ------------------
 9 files changed, 17 insertions(+), 409 deletions(-)
 delete mode 100644 src/patches/beep/0001-Fixed-Makefile.patch
 delete mode 100644 src/patches/beep/0002-Add-more-error-detection.patch
 delete mode 100644 src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
 delete mode 100644 src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
 delete mode 100644 src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
 delete mode 100644 src/patches/beep/0007-Fix-identation-if-brace-error.patch
 delete mode 100644 src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
  

Comments

Adolf Belka Nov. 14, 2024, 2:33 p.m. UTC | #1
Tested-by: Adolf Belka <adolf.belka@ipfire.org>

My vm's and the Prime system I have don't have any beep making sources 
in them.

So I copied the new beep binary, created by building the below update, 
into my production system. Pulling out the red ethernet connection 
caused a beep to occur and after replacing the ethernet plug a short 
while later another beep was heard.

The above is the same as with the old beep version. So confirmed that 
the beep from the forked original github repo is working correctly.

It is also the same beep source as used by Arch Linux.

Regards,

Adolf.


On 13/11/2024 18:41, Adolf Belka wrote:
> - Update from version 1.3 (2010) to version 1.4.12
> - The originator of beep released version 1.3 in 2010 but the last commit after that was
>     in 2013. Since then nothing has happened.
> - Most of the patches used in IPFire with beep-1.3 were created by Hans Ulrich Niedermann
>     and in 2019 he forked the original beep repository and has been doing updates since
>     then. The last release was in 2022 and the last commit in April 2024.
> - This patch removes all the previous patches as they are built in to the current
>     tarball.
> - Changelog
>      1.4.12
> 	    Document how to override and disable packaged udev rules.
> 	    Changed the build system to be closer to the GNU makefile conventions, i.e.
> 	        only one compiler/toolchain per build
> 	        default installation is to prefix=/usr/local instead of prefix=/usr
> 	        use GNU style docdir= instead of RPM spec file style pkgdocdir=
> 	        etc.
> 	        Still not using a configure script, though, as that is complex. The
> 		 user writing a local.mk with some definitions covers everyone wanting
> 		 to use the same settings across make invocations, though.
>      1.4.11
> 	    Install the contrib/morse/* scripts just like the failure-beeps.
> 	     missed to be done in release 1.4.10
>      1.4.10
> 	    Rename CREDITS to CREDITS.md and CHANGELOG to NEWS.md and
> 	     reformatted them to markdown.
> 	    Fix some __VA_ARGS__ problems with some C language compiler
> 	     options.
> 	    contrib/morse/: Add both perl and tr+sed script options to
> 	     have beep produce morse code by converting the output of the
> 	     morse utility from the BSD Games package to a beep command
> 	     line.
> 	    If built without any drivers, running beep will now complain and
> 	     abort instead of silently (pun intended) just not beeping.
> 	    Stop using Travis CI. Use GitHub Actions workflows for CI instead.
> 	    Skip test cases using PC speaker hardware if absent (e.g. on a VM)
> 	    Improved documentation (e.g. alsamixer requirement, loading pcspkr)
>      1.4.9
> 	    Mention default values in the beep(1) man page and the beep --help output.
>      1.4.8
> 	    At build time, avoid error messages related to maybe building without git
> 	     installed, or from a tarball instead of a git source tree.
> 	    Improve issue-6-benchmark report to help people with solving issue #6.
>      1.4.7
> 	    Install contrib scripts for both successfully and failing sounding beeps
> 	     as package documentation.
> 	    Install man page uncompressed, so packagers can use their favoured
> 	     compression format.
>      1.4.6
> 	    Use va_copy() macro in function with va_list parameter to avoid possible bug
> 	    Use BEEP_LOG_LEVEL environment variable for default log level
>      1.4.4
> 	    Remove udev/rules.d/ and modprobe.d/ example files to force packagers to
> 	     re-read PACKAGING.md and PERMISSIONS.md
> 	    Rewritten PERMISSIONS.md and INSTALL.md, adapting README.md and PACKAGING.md
> 	     and beep(1) (i.e. beep.1.in) for consistency
> 	    Allow beep to run as non-root, even if SUDO_* env variables are present
> 	    Fix newline escaping when generating beep-usage.c
> 	    By default, use plain -g instead of -gstabs
> 	    Ensure the gcc used actually supports the default flags in CFLAGS_gcc
>      1.4.3
> 	    Stop compiling with -fcf-protection in CFLAGS_gcc if the platform does not
> 	     support it (such as the Raspberry Pi ARMs).
>      1.4.2
> 	    Improved beep(1) man page and --help output
> 	    Cleaned signal handlers of all function calls
> 	    Use beep driver infrastructure (console and evdev drivers)
> 	    Abort on unhandled command line parameters
> 	    Use nanosleep(2) instead of usleep(3)
>      1.4.1
> 	    Safer signal handlers (safe_error_exit() without global variables).
> 	    Reduce accepted range of input numbers. 5 minute beeps should still be
> 	     enough.
>      1.4.0
> 	    The beep-1.4.0 release tries to revive the beep software. There have been
> 	     no commits to the former upstream since 2013, and with the two CVEs in
> 	     2018 that needed to change.
> 	    Packagers beware: Please read PACKAGING.md for the very different (and
> 	     much better) new way of device access.
> 	    First and foremost, beep-1.4.0 fixes CVE-2018-0492 and CVE-2018-1000532.
> 	     The beep command now by default tries
> 	     /dev/input/by-path/platform-pcspkr-event-spkr which allows arbitrary
> 	     users beep access by allowing those arbitrary users file write access.
> 	     The procedures to do that are now well documented in INSTALL.md and
> 	     PERMISSIONS.md. There is no need for setuid-root or sudo any more, and
> 	     due to the experiences with the two 2018 CVEs, beep will even refuse to
> 	     run when it detects being run setuid or via sudo.
> 	    A few smaller things have also been changed. Quoting the CHANGELOG:
> 	        Fix CVE-2018-1000532 External Control of File Name or Path
> 		 vulnerability in --device option
> 	        Fix CVE-2018-0492 race condition that allows local privilege escalation
> 	        Make /dev/input/by-path/platform-pcspkr-event-spkr the default device
> 		 to use as the system administrator can allow access to that without
> 		 needing any priviledge escalation risks via setuid or sudo.
> 	        Adapt --help output, beep.1 man page, README.md, INSTALL.md to reflect
> 		 the new device use.
> 	        Add basic suite of tests.
> 	        Constrained a few integers to avoid integer overflows.
> 	        Only issue fallback '\a' type beeps if that '\a' actually goes to a
> 		 tty device which can actually beep
> 	        Stop promoting floating point frequencies which no Kernel API can even
> 		 use
> 
> Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
> ---
>   config/rootfiles/common/beep                  |  12 ++
>   lfs/beep                                      |  19 +--
>   src/patches/beep/0001-Fixed-Makefile.patch    |  44 -------
>   .../beep/0002-Add-more-error-detection.patch  |  44 -------
>   ...-catch-SIGTERM-for-stopping-the-beep.patch |  32 -----
>   ...all-more-user-and-packaging-friendly.patch |  85 -------------
>   ...ve-file-modification-time-on-install.patch |  32 -----
>   .../0007-Fix-identation-if-brace-error.patch  |  41 ------
>   ...ly-CVE-2018-0492-from-Debian-package.patch | 117 ------------------
>   9 files changed, 17 insertions(+), 409 deletions(-)
>   delete mode 100644 src/patches/beep/0001-Fixed-Makefile.patch
>   delete mode 100644 src/patches/beep/0002-Add-more-error-detection.patch
>   delete mode 100644 src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
>   delete mode 100644 src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
>   delete mode 100644 src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
>   delete mode 100644 src/patches/beep/0007-Fix-identation-if-brace-error.patch
>   delete mode 100644 src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
> 
> diff --git a/config/rootfiles/common/beep b/config/rootfiles/common/beep
> index a47db2767..d20101cd2 100644
> --- a/config/rootfiles/common/beep
> +++ b/config/rootfiles/common/beep
> @@ -1 +1,13 @@
>   usr/bin/beep
> +#usr/share/doc/beep
> +#usr/share/doc/beep/COPYING
> +#usr/share/doc/beep/CREDITS.md
> +#usr/share/doc/beep/NEWS.md
> +#usr/share/doc/beep/PERMISSIONS.md
> +#usr/share/doc/beep/README.md
> +#usr/share/doc/beep/contrib
> +#usr/share/doc/beep/contrib/failure-beeps
> +#usr/share/doc/beep/contrib/morse2beep.pl
> +#usr/share/doc/beep/contrib/morse2beep.sed
> +#usr/share/doc/beep/contrib/success-beeps
> +#usr/share/man/man1/beep.1
> diff --git a/lfs/beep b/lfs/beep
> index 8ab9774ab..6c3d50109 100644
> --- a/lfs/beep
> +++ b/lfs/beep
> @@ -1,7 +1,7 @@
>   ###############################################################################
>   #                                                                             #
>   # IPFire.org - A linux based firewall                                         #
> -# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
> +# Copyright (C) 2007-2024  IPFire Team  <info@ipfire.org>                     #
>   #                                                                             #
>   # This program is free software: you can redistribute it and/or modify        #
>   # it under the terms of the GNU General Public License as published by        #
> @@ -24,7 +24,7 @@
>   
>   include Config
>   
> -VER        = 1.3
> +VER        = 1.4.12
>   
>   THISAPP    = beep-$(VER)
>   DL_FILE    = $(THISAPP).tar.gz
> @@ -40,7 +40,7 @@ objects = $(DL_FILE)
>   
>   $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
>   
> -$(DL_FILE)_BLAKE2 = 4f9cf12f6983eeb53502fd85e5e1d428e1c1af481f8f424f6ae18cbe104462e8fdcc96670a72daa8a8a0d1430d00824d8795b4db53437e7bb7320cddfd84cfd3
> +$(DL_FILE)_BLAKE2 = 06f21cf3c40389acca50e6e420af4e738b7484e096bb689345fedb37684b15733dbb38e8a5d0d360f23e020cebe9ba321984ee43f41b0ad980648414ddbb9375
>   
>   install : $(TARGET)
>   
> @@ -70,16 +70,7 @@ $(subst %,%_BLAKE2,$(objects)) :
>   $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
>   	@$(PREBUILD)
>   	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
> -
> -	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0001-Fixed-Makefile.patch
> -	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0002-Add-more-error-detection.patch
> -	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
> -	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
> -	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
> -	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0007-Fix-identation-if-brace-error.patch
> -	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
> -
> -	cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
> -	cd $(DIR_APP) && install -m 0755 beep /usr/bin
> +	cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) prefix=/usr
> +	cd $(DIR_APP) && make prefix=/usr install
>   	@rm -rf $(DIR_APP)
>   	@$(POSTBUILD)
> diff --git a/src/patches/beep/0001-Fixed-Makefile.patch b/src/patches/beep/0001-Fixed-Makefile.patch
> deleted file mode 100644
> index 6b35ab0a9..000000000
> --- a/src/patches/beep/0001-Fixed-Makefile.patch
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -From 8b32b8b088be1f29e8bfea57a97b9bfaa76ec8ee Mon Sep 17 00:00:00 2001
> -From: Chris Wong <chrisyco@gmail.com>
> -Date: Wed, 23 Nov 2011 10:39:53 +1300
> -Subject: [PATCH] Fixed Makefile
> -
> -* Use /usr/share/man (see http://www.pathname.com/fhs/2.2/fhs-4.11.html#4.11.5)
> -
> -* Removed trailing spaces
> -
> -* Added optimization flag (must beep FAST!!!)
> ----
> - Makefile | 8 ++++----
> - 1 file changed, 4 insertions(+), 4 deletions(-)
> -
> -diff --git a/Makefile b/Makefile
> -index cc359c4..0f4f810 100644
> ---- a/Makefile
> -+++ b/Makefile
> -@@ -1,19 +1,19 @@
> - CC=gcc
> --FLAGS=-Wall
> -+FLAGS=-Wall -O2
> - EXEC_NAME=beep
> - INSTALL_DIR=/usr/bin
> - MAN_FILE=beep.1.gz
> --MAN_DIR=/usr/man/man1
> -+MAN_DIR=/usr/share/man/man1
> -
> - default : beep
> -
> --clean :
> -+clean :
> - 	rm ${EXEC_NAME}
> -
> - beep : beep.c
> - 	${CC} ${FLAGS} -o ${EXEC_NAME} beep.c
> -
> --install :
> -+install :
> - 	cp ${EXEC_NAME} ${INSTALL_DIR}
> - 	# rm -f /usr/man/man1/beep.1.bz2
> - 	cp ${MAN_FILE} ${MAN_DIR}
> ---
> -2.7.5
> diff --git a/src/patches/beep/0002-Add-more-error-detection.patch b/src/patches/beep/0002-Add-more-error-detection.patch
> deleted file mode 100644
> index 733af9b15..000000000
> --- a/src/patches/beep/0002-Add-more-error-detection.patch
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -From d3aee6c489852108c91dc22abcacff364e9429f2 Mon Sep 17 00:00:00 2001
> -From: Chris Wong <chrisyco@gmail.com>
> -Date: Wed, 23 Nov 2011 11:34:55 +1300
> -Subject: [PATCH] Add more error detection
> -
> ----
> - beep.c | 15 +++++++++------
> - 1 file changed, 9 insertions(+), 6 deletions(-)
> -
> -diff --git a/beep.c b/beep.c
> -index 452fc08..14fac3e 100644
> ---- a/beep.c
> -+++ b/beep.c
> -@@ -98,11 +98,11 @@ char *console_device = NULL;
> -
> -
> - void do_beep(int freq) {
> --  if (console_type == BEEP_TYPE_CONSOLE) {
> --    if(ioctl(console_fd, KIOCSOUND, freq != 0
> --      ? (int)(CLOCK_TICK_RATE/freq)
> --      : freq) < 0) {
> --      printf("\a");  /* Output the only beep we can, in an effort to fall back on usefulness */
> -+  int period = (freq != 0 ? (int)(CLOCK_TICK_RATE/freq) : freq);
> -+
> -+  if(console_type == BEEP_TYPE_CONSOLE) {
> -+    if(ioctl(console_fd, KIOCSOUND, period) < 0) {
> -+      putchar('\a');  /* Output the only beep we can, in an effort to fall back on usefulness */
> -       perror("ioctl");
> -     }
> -   } else {
> -@@ -113,7 +113,10 @@ void do_beep(int freq) {
> -      e.code = SND_TONE;
> -      e.value = freq;
> -
> --     write(console_fd, &e, sizeof(struct input_event));
> -+     if(write(console_fd, &e, sizeof(struct input_event)) < 0) {
> -+       putchar('\a'); /* See above */
> -+       perror("write");
> -+     }
> -   }
> - }
> -
> ---
> -2.7.5
> diff --git a/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch b/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
> deleted file mode 100644
> index c11061e6a..000000000
> --- a/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -From e1320c1da52ca92aa68b4224f9532982184fbe00 Mon Sep 17 00:00:00 2001
> -From: =?UTF-8?q?J=C3=A9r=C3=B4me?= <jerome@jolimont.fr>
> -Date: Thu, 7 Feb 2013 12:54:53 +0100
> -Subject: [PATCH] also catch SIGTERM for stopping the beep
> -
> -Signed-off-by: Gerfried Fuchs <rhonda@deb.at>
> ----
> - beep.c | 2 ++
> - 1 file changed, 2 insertions(+)
> -
> -diff --git a/beep.c b/beep.c
> -index 452fc08..9cb63bf 100644
> ---- a/beep.c
> -+++ b/beep.c
> -@@ -130,6 +130,7 @@ void handle_signal(int signum) {
> -
> -   switch(signum) {
> -   case SIGINT:
> -+  case SIGTERM:
> -     if(console_fd >= 0) {
> -       /* Kill the sound, quit gracefully */
> -       do_beep(0);
> -@@ -324,6 +325,7 @@ int main(int argc, char **argv) {
> -   parms->next       = NULL;
> -
> -   signal(SIGINT, handle_signal);
> -+  signal(SIGTERM, handle_signal);
> -   parse_command_line(argc, argv, parms);
> -
> -   /* this outermost while loop handles the possibility that -n/--new has been
> ---
> -2.7.5
> diff --git a/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch b/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
> deleted file mode 100644
> index 9e2b481b3..000000000
> --- a/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
> +++ /dev/null
> @@ -1,85 +0,0 @@
> -From 947a7e332908dcba1c7e523fbdc927d39ee6adb1 Mon Sep 17 00:00:00 2001
> -From: Hans Ulrich Niedermann <hun@n-dimensional.de>
> -Date: Tue, 19 Nov 2013 23:40:50 +0100
> -Subject: [PATCH] Make build/install more user and packaging friendly
> -
> -Make the build and install more user and packaging friendly
> -by introducing the following features in the Makefile:
> -
> -  * Honor the $(CFLAGS) set when calling make.
> -
> -  * Prefix all install locations with $(DESTDIR) for
> -    easy package building.
> -
> -  * Use GNU Makefile conventions for defining installation
> -    directories. This means $(bindir) and $(man1dir)
> -    instead of the former $(INSTALL_DIR) and $(MAN_DIR).
> -
> -  * Use install(1) for installing files and directories
> -    so that permissions can be set properly.
> -
> -  * Stop "make clean" failing when it has nothing to do.
> -
> -  * Add 'uninstall' make target.
> -
> -  * Make 'install' target build executable if necessary.
> ----
> - Makefile | 40 +++++++++++++++++++++++++++++-----------
> - 1 file changed, 29 insertions(+), 11 deletions(-)
> -
> -diff --git a/Makefile b/Makefile
> -index 0f4f810..942a7a5 100644
> ---- a/Makefile
> -+++ b/Makefile
> -@@ -1,19 +1,37 @@
> - CC=gcc
> - FLAGS=-Wall -O2
> -+
> -+INSTALL=install
> -+
> - EXEC_NAME=beep
> --INSTALL_DIR=/usr/bin
> - MAN_FILE=beep.1.gz
> --MAN_DIR=/usr/share/man/man1
> -
> --default : beep
> -+# Use GNU makefile conventions for directory names with one notable
> -+# exception: prefix is not /usr/local in order to keep the default
> -+# installation location for beep.
> -+prefix=/usr
> -+exec_prefix=$(prefix)
> -+bindir=$(exec_prefix)/bin
> -+datarootdir=$(prefix)/share
> -+mandir=$(datarootdir)/man
> -+man1dir=$(mandir)/man1
> -+
> -+.PHONY: all
> -+all: $(EXEC_NAME)
> -+
> -+.PHONY: clean
> -+clean:
> -+	rm -f $(EXEC_NAME)
> -
> --clean :
> --	rm ${EXEC_NAME}
> -+$(EXEC_NAME): beep.c
> -+	$(CC) $(FLAGS) $(CFLAGS) -o $(EXEC_NAME) beep.c
> -
> --beep : beep.c
> --	${CC} ${FLAGS} -o ${EXEC_NAME} beep.c
> -+install: all
> -+	$(INSTALL) -m 0755 -d           $(DESTDIR)$(bindir)
> -+	$(INSTALL) -m 0755 $(EXEC_NAME) $(DESTDIR)$(bindir)/
> -+	$(INSTALL) -m 0755 -d           $(DESTDIR)$(man1dir)
> -+	$(INSTALL) -m 0644 $(MAN_FILE)  $(DESTDIR)$(man1dir)/
> -
> --install :
> --	cp ${EXEC_NAME} ${INSTALL_DIR}
> --	# rm -f /usr/man/man1/beep.1.bz2
> --	cp ${MAN_FILE} ${MAN_DIR}
> -+uninstall:
> -+	rm -f $(DESTDIR)$(bindir)/$(EXEC_NAME)
> -+	rm -f $(DESTDIR)$(man1dir)/$(MAN_FILE)
> ---
> -2.7.5
> -
> diff --git a/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch b/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
> deleted file mode 100644
> index fe844e6f1..000000000
> --- a/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -From 4622dd15dc12dab47a0381a8a7188f0f0421e01d Mon Sep 17 00:00:00 2001
> -From: Hans Ulrich Niedermann <hun@n-dimensional.de>
> -Date: Wed, 20 Nov 2013 00:00:54 +0100
> -Subject: [PATCH] Preserve file modification time on install
> -
> -Add -p option to install(1) invocation in order to preserve
> -the timestamps of the files being installed.
> ----
> - Makefile | 8 ++++----
> - 1 file changed, 4 insertions(+), 4 deletions(-)
> -
> -diff --git a/Makefile b/Makefile
> -index 942a7a5..290b8a4 100644
> ---- a/Makefile
> -+++ b/Makefile
> -@@ -27,10 +27,10 @@ $(EXEC_NAME): beep.c
> - 	$(CC) $(FLAGS) $(CFLAGS) -o $(EXEC_NAME) beep.c
> -
> - install: all
> --	$(INSTALL) -m 0755 -d           $(DESTDIR)$(bindir)
> --	$(INSTALL) -m 0755 $(EXEC_NAME) $(DESTDIR)$(bindir)/
> --	$(INSTALL) -m 0755 -d           $(DESTDIR)$(man1dir)
> --	$(INSTALL) -m 0644 $(MAN_FILE)  $(DESTDIR)$(man1dir)/
> -+	$(INSTALL) -m 0755 -d              $(DESTDIR)$(bindir)
> -+	$(INSTALL) -m 0755 -p $(EXEC_NAME) $(DESTDIR)$(bindir)/
> -+	$(INSTALL) -m 0755 -d              $(DESTDIR)$(man1dir)
> -+	$(INSTALL) -m 0644 -p $(MAN_FILE)  $(DESTDIR)$(man1dir)/
> -
> - uninstall:
> - 	rm -f $(DESTDIR)$(bindir)/$(EXEC_NAME)
> ---
> -2.7.5
> diff --git a/src/patches/beep/0007-Fix-identation-if-brace-error.patch b/src/patches/beep/0007-Fix-identation-if-brace-error.patch
> deleted file mode 100644
> index 30ec41406..000000000
> --- a/src/patches/beep/0007-Fix-identation-if-brace-error.patch
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -From 35ba84dccb8fc8dc43cb3f575904a33ffa27e7b7 Mon Sep 17 00:00:00 2001
> -From: Hans Ulrich Niedermann <hun@n-dimensional.de>
> -Date: Tue, 3 Apr 2018 19:11:07 +0200
> -Subject: [PATCH] Fix indentation/if brace error
> -
> -As beep.c is not Python, the code blocks must be defined by
> -using braces instead of just indenting them differently.
> -
> -Once we do that, the outcome of multiple -f parameters will
> -actually match what the warning message documents beep does:
> -Only the last -f value will be used.
> -
> -Many projects proscribe using braces everywhere, but this
> -change keeps the beep.c coding style of using braces only
> -when absolutely necessary.
> -
> -This issue was discovered by compiling with gcc 6.
> ----
> - beep.c | 3 ++-
> - 1 file changed, 2 insertions(+), 1 deletion(-)
> -
> -diff --git a/beep.c b/beep.c
> -index 7da2e70..d46adc8 100644
> ---- a/beep.c
> -+++ b/beep.c
> -@@ -194,11 +194,12 @@ void parse_command_line(int argc, char **argv, beep_parms_t *result) {
> -       if(!sscanf(optarg, "%f", &argfreq) || (argfreq >= 20000 /* ack! */) ||
> - 	 (argfreq <= 0))
> - 	usage_bail(argv[0]);
> --      else
> -+      else {
> - 	if (result->freq != 0)
> - 	  fprintf(stderr, "WARNING: multiple -f values given, only last "
> - 	    "one is used.\n");
> - 	result->freq = argfreq;
> -+      }
> -       break;
> -     case 'l' : /* length */
> -       if(!sscanf(optarg, "%d", &argval) || (argval < 0))
> ---
> -2.7.5
> diff --git a/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch b/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
> deleted file mode 100644
> index ac1f0b514..000000000
> --- a/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
> +++ /dev/null
> @@ -1,117 +0,0 @@
> -From 3b67473e16aaf2f83cb8ac18c13c9183a8e3c7b2 Mon Sep 17 00:00:00 2001
> -From: Hans Ulrich Niedermann <hun@n-dimensional.de>
> -Date: Tue, 3 Apr 2018 18:37:33 +0200
> -Subject: [PATCH] Apply CVE-2018-0492.patch from Debian package
> -
> ----
> - beep.c | 53 ++++++++++++++++++++++++-----------------------------
> - 1 file changed, 24 insertions(+), 29 deletions(-)
> -
> -diff --git a/beep.c b/beep.c
> -index d46adc8..f6781e8 100644
> ---- a/beep.c
> -+++ b/beep.c
> -@@ -109,6 +109,7 @@ void do_beep(int freq) {
> -      /* BEEP_TYPE_EVDEV */
> -      struct input_event e;
> -
> -+     memset(&e, 0, sizeof(e));
> -      e.type = EV_SND;
> -      e.code = SND_TONE;
> -      e.value = freq;
> -@@ -124,10 +125,6 @@ void do_beep(int freq) {
> - /* If we get interrupted, it would be nice to not leave the speaker beeping in
> -    perpetuity. */
> - void handle_signal(int signum) {
> --
> --  if(console_device)
> --    free(console_device);
> --
> -   switch(signum) {
> -   case SIGINT:
> -   case SIGTERM:
> -@@ -258,7 +255,7 @@ void parse_command_line(int argc, char **argv, beep_parms_t *result) {
> -       result->verbose = 1;
> -       break;
> -     case 'e' : /* also --device */
> --      console_device = strdup(optarg);
> -+      console_device = optarg;
> -       break;
> -     case 'h' : /* notice that this is also --help */
> -     default :
> -@@ -277,26 +274,6 @@ void play_beep(beep_parms_t parms) {
> - 	"%d delay after) @ %.2f Hz\n",
> - 	parms.reps, parms.length, parms.delay, parms.end_delay, parms.freq);
> -
> --  /* try to snag the console */
> --  if(console_device)
> --    console_fd = open(console_device, O_WRONLY);
> --  else
> --    if((console_fd = open("/dev/tty0", O_WRONLY)) == -1)
> --      console_fd = open("/dev/vc/0", O_WRONLY);
> --
> --  if(console_fd == -1) {
> --    fprintf(stderr, "Could not open %s for writing\n",
> --      console_device != NULL ? console_device : "/dev/tty0 or /dev/vc/0");
> --    printf("\a");  /* Output the only beep we can, in an effort to fall back on usefulness */
> --    perror("open");
> --    exit(1);
> --  }
> --
> --  if (ioctl(console_fd, EVIOCGSND(0)) != -1)
> --    console_type = BEEP_TYPE_EVDEV;
> --  else
> --    console_type = BEEP_TYPE_CONSOLE;
> --
> -   /* Beep */
> -   for (i = 0; i < parms.reps; i++) {                    /* start beep */
> -     do_beep(parms.freq);
> -@@ -306,8 +283,6 @@ void play_beep(beep_parms_t parms) {
> -     if(parms.end_delay || (i+1 < parms.reps))
> -        usleep(1000*parms.delay);                        /* wait...    */
> -   }                                                     /* repeat.    */
> --
> --  close(console_fd);
> - }
> -
> -
> -@@ -329,6 +304,26 @@ int main(int argc, char **argv) {
> -   signal(SIGTERM, handle_signal);
> -   parse_command_line(argc, argv, parms);
> -
> -+  /* try to snag the console */
> -+  if(console_device)
> -+    console_fd = open(console_device, O_WRONLY);
> -+  else
> -+    if((console_fd = open("/dev/tty0", O_WRONLY)) == -1)
> -+      console_fd = open("/dev/vc/0", O_WRONLY);
> -+
> -+  if(console_fd == -1) {
> -+    fprintf(stderr, "Could not open %s for writing\n",
> -+      console_device != NULL ? console_device : "/dev/tty0 or /dev/vc/0");
> -+    printf("\a");  /* Output the only beep we can, in an effort to fall back on usefulness */
> -+    perror("open");
> -+    exit(1);
> -+  }
> -+
> -+  if (ioctl(console_fd, EVIOCGSND(0)) != -1)
> -+    console_type = BEEP_TYPE_EVDEV;
> -+  else
> -+    console_type = BEEP_TYPE_CONSOLE;
> -+
> -   /* this outermost while loop handles the possibility that -n/--new has been
> -      used, i.e. that we have multiple beeps specified. Each iteration will
> -      play, then free() one parms instance. */
> -@@ -366,8 +361,8 @@ int main(int argc, char **argv) {
> -     parms = next;
> -   }
> -
> --  if(console_device)
> --    free(console_device);
> -+  close(console_fd);
> -+  console_fd = -1;
> -
> -   return EXIT_SUCCESS;
> - }
> ---
> -2.7.5
  
Michael Tremer Nov. 18, 2024, 8 p.m. UTC | #2
Hello Adolf,

This is amazing to see that there is actually still development for beep. Seeing this patch has made me laugh.

Reviewed-by: Michael Tremer <michael.tremer@ipfire.org>

-Michael

> On 13 Nov 2024, at 17:41, Adolf Belka <adolf.belka@ipfire.org> wrote:
> 
> - Update from version 1.3 (2010) to version 1.4.12
> - The originator of beep released version 1.3 in 2010 but the last commit after that was
>   in 2013. Since then nothing has happened.
> - Most of the patches used in IPFire with beep-1.3 were created by Hans Ulrich Niedermann
>   and in 2019 he forked the original beep repository and has been doing updates since
>   then. The last release was in 2022 and the last commit in April 2024.
> - This patch removes all the previous patches as they are built in to the current
>   tarball.
> - Changelog
>    1.4.12
>    Document how to override and disable packaged udev rules.
>    Changed the build system to be closer to the GNU makefile conventions, i.e.
>        only one compiler/toolchain per build
>        default installation is to prefix=/usr/local instead of prefix=/usr
>        use GNU style docdir= instead of RPM spec file style pkgdocdir=
>        etc.
>        Still not using a configure script, though, as that is complex. The
> user writing a local.mk with some definitions covers everyone wanting
> to use the same settings across make invocations, though.
>    1.4.11
>    Install the contrib/morse/* scripts just like the failure-beeps.
>     missed to be done in release 1.4.10
>    1.4.10
>    Rename CREDITS to CREDITS.md and CHANGELOG to NEWS.md and
>     reformatted them to markdown.
>    Fix some __VA_ARGS__ problems with some C language compiler
>     options.
>    contrib/morse/: Add both perl and tr+sed script options to
>     have beep produce morse code by converting the output of the
>     morse utility from the BSD Games package to a beep command
>     line.
>    If built without any drivers, running beep will now complain and
>     abort instead of silently (pun intended) just not beeping.
>    Stop using Travis CI. Use GitHub Actions workflows for CI instead.
>    Skip test cases using PC speaker hardware if absent (e.g. on a VM)
>    Improved documentation (e.g. alsamixer requirement, loading pcspkr)
>    1.4.9
>    Mention default values in the beep(1) man page and the beep --help output.
>    1.4.8
>    At build time, avoid error messages related to maybe building without git
>     installed, or from a tarball instead of a git source tree.
>    Improve issue-6-benchmark report to help people with solving issue #6.
>    1.4.7
>    Install contrib scripts for both successfully and failing sounding beeps
>     as package documentation.
>    Install man page uncompressed, so packagers can use their favoured
>     compression format.
>    1.4.6
>    Use va_copy() macro in function with va_list parameter to avoid possible bug
>    Use BEEP_LOG_LEVEL environment variable for default log level
>    1.4.4
>    Remove udev/rules.d/ and modprobe.d/ example files to force packagers to
>     re-read PACKAGING.md and PERMISSIONS.md
>    Rewritten PERMISSIONS.md and INSTALL.md, adapting README.md and PACKAGING.md
>     and beep(1) (i.e. beep.1.in) for consistency
>    Allow beep to run as non-root, even if SUDO_* env variables are present
>    Fix newline escaping when generating beep-usage.c
>    By default, use plain -g instead of -gstabs
>    Ensure the gcc used actually supports the default flags in CFLAGS_gcc
>    1.4.3
>    Stop compiling with -fcf-protection in CFLAGS_gcc if the platform does not
>     support it (such as the Raspberry Pi ARMs).
>    1.4.2
>    Improved beep(1) man page and --help output
>    Cleaned signal handlers of all function calls
>    Use beep driver infrastructure (console and evdev drivers)
>    Abort on unhandled command line parameters
>    Use nanosleep(2) instead of usleep(3)
>    1.4.1
>    Safer signal handlers (safe_error_exit() without global variables).
>    Reduce accepted range of input numbers. 5 minute beeps should still be
>     enough.
>    1.4.0
>    The beep-1.4.0 release tries to revive the beep software. There have been
>     no commits to the former upstream since 2013, and with the two CVEs in
>     2018 that needed to change.
>    Packagers beware: Please read PACKAGING.md for the very different (and
>     much better) new way of device access.
>    First and foremost, beep-1.4.0 fixes CVE-2018-0492 and CVE-2018-1000532.
>     The beep command now by default tries
>     /dev/input/by-path/platform-pcspkr-event-spkr which allows arbitrary
>     users beep access by allowing those arbitrary users file write access.
>     The procedures to do that are now well documented in INSTALL.md and
>     PERMISSIONS.md. There is no need for setuid-root or sudo any more, and
>     due to the experiences with the two 2018 CVEs, beep will even refuse to
>     run when it detects being run setuid or via sudo.
>    A few smaller things have also been changed. Quoting the CHANGELOG:
>        Fix CVE-2018-1000532 External Control of File Name or Path
> vulnerability in --device option
>        Fix CVE-2018-0492 race condition that allows local privilege escalation
>        Make /dev/input/by-path/platform-pcspkr-event-spkr the default device
> to use as the system administrator can allow access to that without
> needing any priviledge escalation risks via setuid or sudo.
>        Adapt --help output, beep.1 man page, README.md, INSTALL.md to reflect
> the new device use.
>        Add basic suite of tests.
>        Constrained a few integers to avoid integer overflows.
>        Only issue fallback '\a' type beeps if that '\a' actually goes to a
> tty device which can actually beep
>        Stop promoting floating point frequencies which no Kernel API can even
> use
> 
> Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
> ---
> config/rootfiles/common/beep                  |  12 ++
> lfs/beep                                      |  19 +--
> src/patches/beep/0001-Fixed-Makefile.patch    |  44 -------
> .../beep/0002-Add-more-error-detection.patch  |  44 -------
> ...-catch-SIGTERM-for-stopping-the-beep.patch |  32 -----
> ...all-more-user-and-packaging-friendly.patch |  85 -------------
> ...ve-file-modification-time-on-install.patch |  32 -----
> .../0007-Fix-identation-if-brace-error.patch  |  41 ------
> ...ly-CVE-2018-0492-from-Debian-package.patch | 117 ------------------
> 9 files changed, 17 insertions(+), 409 deletions(-)
> delete mode 100644 src/patches/beep/0001-Fixed-Makefile.patch
> delete mode 100644 src/patches/beep/0002-Add-more-error-detection.patch
> delete mode 100644 src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
> delete mode 100644 src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
> delete mode 100644 src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
> delete mode 100644 src/patches/beep/0007-Fix-identation-if-brace-error.patch
> delete mode 100644 src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
> 
> diff --git a/config/rootfiles/common/beep b/config/rootfiles/common/beep
> index a47db2767..d20101cd2 100644
> --- a/config/rootfiles/common/beep
> +++ b/config/rootfiles/common/beep
> @@ -1 +1,13 @@
> usr/bin/beep
> +#usr/share/doc/beep
> +#usr/share/doc/beep/COPYING
> +#usr/share/doc/beep/CREDITS.md
> +#usr/share/doc/beep/NEWS.md
> +#usr/share/doc/beep/PERMISSIONS.md
> +#usr/share/doc/beep/README.md
> +#usr/share/doc/beep/contrib
> +#usr/share/doc/beep/contrib/failure-beeps
> +#usr/share/doc/beep/contrib/morse2beep.pl
> +#usr/share/doc/beep/contrib/morse2beep.sed
> +#usr/share/doc/beep/contrib/success-beeps
> +#usr/share/man/man1/beep.1
> diff --git a/lfs/beep b/lfs/beep
> index 8ab9774ab..6c3d50109 100644
> --- a/lfs/beep
> +++ b/lfs/beep
> @@ -1,7 +1,7 @@
> ###############################################################################
> #                                                                             #
> # IPFire.org - A linux based firewall                                         #
> -# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
> +# Copyright (C) 2007-2024  IPFire Team  <info@ipfire.org>                     #
> #                                                                             #
> # This program is free software: you can redistribute it and/or modify        #
> # it under the terms of the GNU General Public License as published by        #
> @@ -24,7 +24,7 @@
> 
> include Config
> 
> -VER        = 1.3
> +VER        = 1.4.12
> 
> THISAPP    = beep-$(VER)
> DL_FILE    = $(THISAPP).tar.gz
> @@ -40,7 +40,7 @@ objects = $(DL_FILE)
> 
> $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
> 
> -$(DL_FILE)_BLAKE2 = 4f9cf12f6983eeb53502fd85e5e1d428e1c1af481f8f424f6ae18cbe104462e8fdcc96670a72daa8a8a0d1430d00824d8795b4db53437e7bb7320cddfd84cfd3
> +$(DL_FILE)_BLAKE2 = 06f21cf3c40389acca50e6e420af4e738b7484e096bb689345fedb37684b15733dbb38e8a5d0d360f23e020cebe9ba321984ee43f41b0ad980648414ddbb9375
> 
> install : $(TARGET)
> 
> @@ -70,16 +70,7 @@ $(subst %,%_BLAKE2,$(objects)) :
> $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
> @$(PREBUILD)
> @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
> -
> - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0001-Fixed-Makefile.patch
> - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0002-Add-more-error-detection.patch
> - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
> - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
> - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
> - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0007-Fix-identation-if-brace-error.patch
> - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
> -
> - cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
> - cd $(DIR_APP) && install -m 0755 beep /usr/bin
> + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) prefix=/usr
> + cd $(DIR_APP) && make prefix=/usr install
> @rm -rf $(DIR_APP)
> @$(POSTBUILD)
> diff --git a/src/patches/beep/0001-Fixed-Makefile.patch b/src/patches/beep/0001-Fixed-Makefile.patch
> deleted file mode 100644
> index 6b35ab0a9..000000000
> --- a/src/patches/beep/0001-Fixed-Makefile.patch
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -From 8b32b8b088be1f29e8bfea57a97b9bfaa76ec8ee Mon Sep 17 00:00:00 2001
> -From: Chris Wong <chrisyco@gmail.com>
> -Date: Wed, 23 Nov 2011 10:39:53 +1300
> -Subject: [PATCH] Fixed Makefile
> -
> -* Use /usr/share/man (see http://www.pathname.com/fhs/2.2/fhs-4.11.html#4.11.5)
> -
> -* Removed trailing spaces
> -
> -* Added optimization flag (must beep FAST!!!)
> ----
> - Makefile | 8 ++++----
> - 1 file changed, 4 insertions(+), 4 deletions(-)
> -
> -diff --git a/Makefile b/Makefile
> -index cc359c4..0f4f810 100644
> ---- a/Makefile
> -+++ b/Makefile
> -@@ -1,19 +1,19 @@
> - CC=gcc
> --FLAGS=-Wall
> -+FLAGS=-Wall -O2
> - EXEC_NAME=beep
> - INSTALL_DIR=/usr/bin
> - MAN_FILE=beep.1.gz
> --MAN_DIR=/usr/man/man1
> -+MAN_DIR=/usr/share/man/man1
> - 
> - default : beep
> - 
> --clean : 
> -+clean :
> - rm ${EXEC_NAME}
> - 
> - beep : beep.c
> - ${CC} ${FLAGS} -o ${EXEC_NAME} beep.c
> - 
> --install : 
> -+install :
> - cp ${EXEC_NAME} ${INSTALL_DIR}
> - # rm -f /usr/man/man1/beep.1.bz2
> - cp ${MAN_FILE} ${MAN_DIR}
> --- 
> -2.7.5
> diff --git a/src/patches/beep/0002-Add-more-error-detection.patch b/src/patches/beep/0002-Add-more-error-detection.patch
> deleted file mode 100644
> index 733af9b15..000000000
> --- a/src/patches/beep/0002-Add-more-error-detection.patch
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -From d3aee6c489852108c91dc22abcacff364e9429f2 Mon Sep 17 00:00:00 2001
> -From: Chris Wong <chrisyco@gmail.com>
> -Date: Wed, 23 Nov 2011 11:34:55 +1300
> -Subject: [PATCH] Add more error detection
> -
> ----
> - beep.c | 15 +++++++++------
> - 1 file changed, 9 insertions(+), 6 deletions(-)
> -
> -diff --git a/beep.c b/beep.c
> -index 452fc08..14fac3e 100644
> ---- a/beep.c
> -+++ b/beep.c
> -@@ -98,11 +98,11 @@ char *console_device = NULL;
> - 
> - 
> - void do_beep(int freq) {
> --  if (console_type == BEEP_TYPE_CONSOLE) {
> --    if(ioctl(console_fd, KIOCSOUND, freq != 0
> --      ? (int)(CLOCK_TICK_RATE/freq)
> --      : freq) < 0) {
> --      printf("\a");  /* Output the only beep we can, in an effort to fall back on usefulness */
> -+  int period = (freq != 0 ? (int)(CLOCK_TICK_RATE/freq) : freq);
> -+
> -+  if(console_type == BEEP_TYPE_CONSOLE) {
> -+    if(ioctl(console_fd, KIOCSOUND, period) < 0) {
> -+      putchar('\a');  /* Output the only beep we can, in an effort to fall back on usefulness */
> -       perror("ioctl");
> -     }
> -   } else {
> -@@ -113,7 +113,10 @@ void do_beep(int freq) {
> -      e.code = SND_TONE;
> -      e.value = freq;
> - 
> --     write(console_fd, &e, sizeof(struct input_event));
> -+     if(write(console_fd, &e, sizeof(struct input_event)) < 0) {
> -+       putchar('\a'); /* See above */
> -+       perror("write");
> -+     }
> -   }
> - }
> - 
> --- 
> -2.7.5
> diff --git a/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch b/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
> deleted file mode 100644
> index c11061e6a..000000000
> --- a/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -From e1320c1da52ca92aa68b4224f9532982184fbe00 Mon Sep 17 00:00:00 2001
> -From: =?UTF-8?q?J=C3=A9r=C3=B4me?= <jerome@jolimont.fr>
> -Date: Thu, 7 Feb 2013 12:54:53 +0100
> -Subject: [PATCH] also catch SIGTERM for stopping the beep
> -
> -Signed-off-by: Gerfried Fuchs <rhonda@deb.at>
> ----
> - beep.c | 2 ++
> - 1 file changed, 2 insertions(+)
> -
> -diff --git a/beep.c b/beep.c
> -index 452fc08..9cb63bf 100644
> ---- a/beep.c
> -+++ b/beep.c
> -@@ -130,6 +130,7 @@ void handle_signal(int signum) {
> - 
> -   switch(signum) {
> -   case SIGINT:
> -+  case SIGTERM:
> -     if(console_fd >= 0) {
> -       /* Kill the sound, quit gracefully */
> -       do_beep(0);
> -@@ -324,6 +325,7 @@ int main(int argc, char **argv) {
> -   parms->next       = NULL;
> - 
> -   signal(SIGINT, handle_signal);
> -+  signal(SIGTERM, handle_signal);
> -   parse_command_line(argc, argv, parms);
> - 
> -   /* this outermost while loop handles the possibility that -n/--new has been
> --- 
> -2.7.5
> diff --git a/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch b/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
> deleted file mode 100644
> index 9e2b481b3..000000000
> --- a/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
> +++ /dev/null
> @@ -1,85 +0,0 @@
> -From 947a7e332908dcba1c7e523fbdc927d39ee6adb1 Mon Sep 17 00:00:00 2001
> -From: Hans Ulrich Niedermann <hun@n-dimensional.de>
> -Date: Tue, 19 Nov 2013 23:40:50 +0100
> -Subject: [PATCH] Make build/install more user and packaging friendly
> -
> -Make the build and install more user and packaging friendly
> -by introducing the following features in the Makefile:
> -
> -  * Honor the $(CFLAGS) set when calling make.
> -
> -  * Prefix all install locations with $(DESTDIR) for
> -    easy package building.
> -
> -  * Use GNU Makefile conventions for defining installation
> -    directories. This means $(bindir) and $(man1dir)
> -    instead of the former $(INSTALL_DIR) and $(MAN_DIR).
> -
> -  * Use install(1) for installing files and directories
> -    so that permissions can be set properly.
> -
> -  * Stop "make clean" failing when it has nothing to do.
> -
> -  * Add 'uninstall' make target.
> -
> -  * Make 'install' target build executable if necessary.
> ----
> - Makefile | 40 +++++++++++++++++++++++++++++-----------
> - 1 file changed, 29 insertions(+), 11 deletions(-)
> -
> -diff --git a/Makefile b/Makefile
> -index 0f4f810..942a7a5 100644
> ---- a/Makefile
> -+++ b/Makefile
> -@@ -1,19 +1,37 @@
> - CC=gcc
> - FLAGS=-Wall -O2
> -+
> -+INSTALL=install
> -+
> - EXEC_NAME=beep
> --INSTALL_DIR=/usr/bin
> - MAN_FILE=beep.1.gz
> --MAN_DIR=/usr/share/man/man1
> - 
> --default : beep
> -+# Use GNU makefile conventions for directory names with one notable
> -+# exception: prefix is not /usr/local in order to keep the default
> -+# installation location for beep.
> -+prefix=/usr
> -+exec_prefix=$(prefix)
> -+bindir=$(exec_prefix)/bin
> -+datarootdir=$(prefix)/share
> -+mandir=$(datarootdir)/man
> -+man1dir=$(mandir)/man1
> -+
> -+.PHONY: all
> -+all: $(EXEC_NAME)
> -+
> -+.PHONY: clean
> -+clean:
> -+ rm -f $(EXEC_NAME)
> - 
> --clean :
> -- rm ${EXEC_NAME}
> -+$(EXEC_NAME): beep.c
> -+ $(CC) $(FLAGS) $(CFLAGS) -o $(EXEC_NAME) beep.c
> - 
> --beep : beep.c
> -- ${CC} ${FLAGS} -o ${EXEC_NAME} beep.c
> -+install: all
> -+ $(INSTALL) -m 0755 -d           $(DESTDIR)$(bindir)
> -+ $(INSTALL) -m 0755 $(EXEC_NAME) $(DESTDIR)$(bindir)/
> -+ $(INSTALL) -m 0755 -d           $(DESTDIR)$(man1dir)
> -+ $(INSTALL) -m 0644 $(MAN_FILE)  $(DESTDIR)$(man1dir)/
> - 
> --install :
> -- cp ${EXEC_NAME} ${INSTALL_DIR}
> -- # rm -f /usr/man/man1/beep.1.bz2
> -- cp ${MAN_FILE} ${MAN_DIR}
> -+uninstall:
> -+ rm -f $(DESTDIR)$(bindir)/$(EXEC_NAME)
> -+ rm -f $(DESTDIR)$(man1dir)/$(MAN_FILE)
> --- 
> -2.7.5
> -
> diff --git a/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch b/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
> deleted file mode 100644
> index fe844e6f1..000000000
> --- a/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -From 4622dd15dc12dab47a0381a8a7188f0f0421e01d Mon Sep 17 00:00:00 2001
> -From: Hans Ulrich Niedermann <hun@n-dimensional.de>
> -Date: Wed, 20 Nov 2013 00:00:54 +0100
> -Subject: [PATCH] Preserve file modification time on install
> -
> -Add -p option to install(1) invocation in order to preserve
> -the timestamps of the files being installed.
> ----
> - Makefile | 8 ++++----
> - 1 file changed, 4 insertions(+), 4 deletions(-)
> -
> -diff --git a/Makefile b/Makefile
> -index 942a7a5..290b8a4 100644
> ---- a/Makefile
> -+++ b/Makefile
> -@@ -27,10 +27,10 @@ $(EXEC_NAME): beep.c
> - $(CC) $(FLAGS) $(CFLAGS) -o $(EXEC_NAME) beep.c
> - 
> - install: all
> -- $(INSTALL) -m 0755 -d           $(DESTDIR)$(bindir)
> -- $(INSTALL) -m 0755 $(EXEC_NAME) $(DESTDIR)$(bindir)/
> -- $(INSTALL) -m 0755 -d           $(DESTDIR)$(man1dir)
> -- $(INSTALL) -m 0644 $(MAN_FILE)  $(DESTDIR)$(man1dir)/
> -+ $(INSTALL) -m 0755 -d              $(DESTDIR)$(bindir)
> -+ $(INSTALL) -m 0755 -p $(EXEC_NAME) $(DESTDIR)$(bindir)/
> -+ $(INSTALL) -m 0755 -d              $(DESTDIR)$(man1dir)
> -+ $(INSTALL) -m 0644 -p $(MAN_FILE)  $(DESTDIR)$(man1dir)/
> - 
> - uninstall:
> - rm -f $(DESTDIR)$(bindir)/$(EXEC_NAME)
> --- 
> -2.7.5
> diff --git a/src/patches/beep/0007-Fix-identation-if-brace-error.patch b/src/patches/beep/0007-Fix-identation-if-brace-error.patch
> deleted file mode 100644
> index 30ec41406..000000000
> --- a/src/patches/beep/0007-Fix-identation-if-brace-error.patch
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -From 35ba84dccb8fc8dc43cb3f575904a33ffa27e7b7 Mon Sep 17 00:00:00 2001
> -From: Hans Ulrich Niedermann <hun@n-dimensional.de>
> -Date: Tue, 3 Apr 2018 19:11:07 +0200
> -Subject: [PATCH] Fix indentation/if brace error
> -
> -As beep.c is not Python, the code blocks must be defined by
> -using braces instead of just indenting them differently.
> -
> -Once we do that, the outcome of multiple -f parameters will
> -actually match what the warning message documents beep does:
> -Only the last -f value will be used.
> -
> -Many projects proscribe using braces everywhere, but this
> -change keeps the beep.c coding style of using braces only
> -when absolutely necessary.
> -
> -This issue was discovered by compiling with gcc 6.
> ----
> - beep.c | 3 ++-
> - 1 file changed, 2 insertions(+), 1 deletion(-)
> -
> -diff --git a/beep.c b/beep.c
> -index 7da2e70..d46adc8 100644
> ---- a/beep.c
> -+++ b/beep.c
> -@@ -194,11 +194,12 @@ void parse_command_line(int argc, char **argv, beep_parms_t *result) {
> -       if(!sscanf(optarg, "%f", &argfreq) || (argfreq >= 20000 /* ack! */) || 
> - (argfreq <= 0))
> - usage_bail(argv[0]);
> --      else
> -+      else {
> - if (result->freq != 0)
> -  fprintf(stderr, "WARNING: multiple -f values given, only last "
> -    "one is used.\n");
> - result->freq = argfreq;    
> -+      }
> -       break;
> -     case 'l' : /* length */
> -       if(!sscanf(optarg, "%d", &argval) || (argval < 0))
> --- 
> -2.7.5
> diff --git a/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch b/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
> deleted file mode 100644
> index ac1f0b514..000000000
> --- a/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
> +++ /dev/null
> @@ -1,117 +0,0 @@
> -From 3b67473e16aaf2f83cb8ac18c13c9183a8e3c7b2 Mon Sep 17 00:00:00 2001
> -From: Hans Ulrich Niedermann <hun@n-dimensional.de>
> -Date: Tue, 3 Apr 2018 18:37:33 +0200
> -Subject: [PATCH] Apply CVE-2018-0492.patch from Debian package
> -
> ----
> - beep.c | 53 ++++++++++++++++++++++++-----------------------------
> - 1 file changed, 24 insertions(+), 29 deletions(-)
> -
> -diff --git a/beep.c b/beep.c
> -index d46adc8..f6781e8 100644
> ---- a/beep.c
> -+++ b/beep.c
> -@@ -109,6 +109,7 @@ void do_beep(int freq) {
> -      /* BEEP_TYPE_EVDEV */
> -      struct input_event e;
> - 
> -+     memset(&e, 0, sizeof(e));
> -      e.type = EV_SND;
> -      e.code = SND_TONE;
> -      e.value = freq;
> -@@ -124,10 +125,6 @@ void do_beep(int freq) {
> - /* If we get interrupted, it would be nice to not leave the speaker beeping in
> -    perpetuity. */
> - void handle_signal(int signum) {
> --
> --  if(console_device)
> --    free(console_device);
> --
> -   switch(signum) {
> -   case SIGINT:
> -   case SIGTERM:
> -@@ -258,7 +255,7 @@ void parse_command_line(int argc, char **argv, beep_parms_t *result) {
> -       result->verbose = 1;
> -       break;
> -     case 'e' : /* also --device */
> --      console_device = strdup(optarg);
> -+      console_device = optarg;
> -       break;
> -     case 'h' : /* notice that this is also --help */
> -     default :
> -@@ -277,26 +274,6 @@ void play_beep(beep_parms_t parms) {
> - "%d delay after) @ %.2f Hz\n",
> - parms.reps, parms.length, parms.delay, parms.end_delay, parms.freq);
> - 
> --  /* try to snag the console */
> --  if(console_device)
> --    console_fd = open(console_device, O_WRONLY);
> --  else
> --    if((console_fd = open("/dev/tty0", O_WRONLY)) == -1)
> --      console_fd = open("/dev/vc/0", O_WRONLY);
> --
> --  if(console_fd == -1) {
> --    fprintf(stderr, "Could not open %s for writing\n",
> --      console_device != NULL ? console_device : "/dev/tty0 or /dev/vc/0");
> --    printf("\a");  /* Output the only beep we can, in an effort to fall back on usefulness */
> --    perror("open");
> --    exit(1);
> --  }
> --
> --  if (ioctl(console_fd, EVIOCGSND(0)) != -1)
> --    console_type = BEEP_TYPE_EVDEV;
> --  else
> --    console_type = BEEP_TYPE_CONSOLE;
> --  
> -   /* Beep */
> -   for (i = 0; i < parms.reps; i++) {                    /* start beep */
> -     do_beep(parms.freq);
> -@@ -306,8 +283,6 @@ void play_beep(beep_parms_t parms) {
> -     if(parms.end_delay || (i+1 < parms.reps))
> -        usleep(1000*parms.delay);                        /* wait...    */
> -   }                                                     /* repeat.    */
> --
> --  close(console_fd);
> - }
> - 
> - 
> -@@ -329,6 +304,26 @@ int main(int argc, char **argv) {
> -   signal(SIGTERM, handle_signal);
> -   parse_command_line(argc, argv, parms);
> - 
> -+  /* try to snag the console */
> -+  if(console_device)
> -+    console_fd = open(console_device, O_WRONLY);
> -+  else
> -+    if((console_fd = open("/dev/tty0", O_WRONLY)) == -1)
> -+      console_fd = open("/dev/vc/0", O_WRONLY);
> -+
> -+  if(console_fd == -1) {
> -+    fprintf(stderr, "Could not open %s for writing\n",
> -+      console_device != NULL ? console_device : "/dev/tty0 or /dev/vc/0");
> -+    printf("\a");  /* Output the only beep we can, in an effort to fall back on usefulness */
> -+    perror("open");
> -+    exit(1);
> -+  }
> -+
> -+  if (ioctl(console_fd, EVIOCGSND(0)) != -1)
> -+    console_type = BEEP_TYPE_EVDEV;
> -+  else
> -+    console_type = BEEP_TYPE_CONSOLE;
> -+
> -   /* this outermost while loop handles the possibility that -n/--new has been
> -      used, i.e. that we have multiple beeps specified. Each iteration will
> -      play, then free() one parms instance. */
> -@@ -366,8 +361,8 @@ int main(int argc, char **argv) {
> -     parms = next;
> -   }
> - 
> --  if(console_device)
> --    free(console_device);
> -+  close(console_fd);
> -+  console_fd = -1;
> - 
> -   return EXIT_SUCCESS;
> - }
> --- 
> -2.7.5
> -- 
> 2.47.0
>
  

Patch

diff --git a/config/rootfiles/common/beep b/config/rootfiles/common/beep
index a47db2767..d20101cd2 100644
--- a/config/rootfiles/common/beep
+++ b/config/rootfiles/common/beep
@@ -1 +1,13 @@ 
 usr/bin/beep
+#usr/share/doc/beep
+#usr/share/doc/beep/COPYING
+#usr/share/doc/beep/CREDITS.md
+#usr/share/doc/beep/NEWS.md
+#usr/share/doc/beep/PERMISSIONS.md
+#usr/share/doc/beep/README.md
+#usr/share/doc/beep/contrib
+#usr/share/doc/beep/contrib/failure-beeps
+#usr/share/doc/beep/contrib/morse2beep.pl
+#usr/share/doc/beep/contrib/morse2beep.sed
+#usr/share/doc/beep/contrib/success-beeps
+#usr/share/man/man1/beep.1
diff --git a/lfs/beep b/lfs/beep
index 8ab9774ab..6c3d50109 100644
--- a/lfs/beep
+++ b/lfs/beep
@@ -1,7 +1,7 @@ 
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2024  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@ 
 
 include Config
 
-VER        = 1.3
+VER        = 1.4.12
 
 THISAPP    = beep-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@  objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 4f9cf12f6983eeb53502fd85e5e1d428e1c1af481f8f424f6ae18cbe104462e8fdcc96670a72daa8a8a0d1430d00824d8795b4db53437e7bb7320cddfd84cfd3
+$(DL_FILE)_BLAKE2 = 06f21cf3c40389acca50e6e420af4e738b7484e096bb689345fedb37684b15733dbb38e8a5d0d360f23e020cebe9ba321984ee43f41b0ad980648414ddbb9375
 
 install : $(TARGET)
 
@@ -70,16 +70,7 @@  $(subst %,%_BLAKE2,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@$(PREBUILD)
 	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-
-	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0001-Fixed-Makefile.patch
-	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0002-Add-more-error-detection.patch
-	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
-	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
-	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
-	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0007-Fix-identation-if-brace-error.patch
-	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
-
-	cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
-	cd $(DIR_APP) && install -m 0755 beep /usr/bin
+	cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) prefix=/usr
+	cd $(DIR_APP) && make prefix=/usr install
 	@rm -rf $(DIR_APP)
 	@$(POSTBUILD)
diff --git a/src/patches/beep/0001-Fixed-Makefile.patch b/src/patches/beep/0001-Fixed-Makefile.patch
deleted file mode 100644
index 6b35ab0a9..000000000
--- a/src/patches/beep/0001-Fixed-Makefile.patch
+++ /dev/null
@@ -1,44 +0,0 @@ 
-From 8b32b8b088be1f29e8bfea57a97b9bfaa76ec8ee Mon Sep 17 00:00:00 2001
-From: Chris Wong <chrisyco@gmail.com>
-Date: Wed, 23 Nov 2011 10:39:53 +1300
-Subject: [PATCH] Fixed Makefile
-
-* Use /usr/share/man (see http://www.pathname.com/fhs/2.2/fhs-4.11.html#4.11.5)
-
-* Removed trailing spaces
-
-* Added optimization flag (must beep FAST!!!)
----
- Makefile | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index cc359c4..0f4f810 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,19 +1,19 @@
- CC=gcc
--FLAGS=-Wall
-+FLAGS=-Wall -O2
- EXEC_NAME=beep
- INSTALL_DIR=/usr/bin
- MAN_FILE=beep.1.gz
--MAN_DIR=/usr/man/man1
-+MAN_DIR=/usr/share/man/man1
- 
- default : beep
- 
--clean : 
-+clean :
- 	rm ${EXEC_NAME}
- 
- beep : beep.c
- 	${CC} ${FLAGS} -o ${EXEC_NAME} beep.c
- 
--install : 
-+install :
- 	cp ${EXEC_NAME} ${INSTALL_DIR}
- 	# rm -f /usr/man/man1/beep.1.bz2
- 	cp ${MAN_FILE} ${MAN_DIR}
--- 
-2.7.5
diff --git a/src/patches/beep/0002-Add-more-error-detection.patch b/src/patches/beep/0002-Add-more-error-detection.patch
deleted file mode 100644
index 733af9b15..000000000
--- a/src/patches/beep/0002-Add-more-error-detection.patch
+++ /dev/null
@@ -1,44 +0,0 @@ 
-From d3aee6c489852108c91dc22abcacff364e9429f2 Mon Sep 17 00:00:00 2001
-From: Chris Wong <chrisyco@gmail.com>
-Date: Wed, 23 Nov 2011 11:34:55 +1300
-Subject: [PATCH] Add more error detection
-
----
- beep.c | 15 +++++++++------
- 1 file changed, 9 insertions(+), 6 deletions(-)
-
-diff --git a/beep.c b/beep.c
-index 452fc08..14fac3e 100644
---- a/beep.c
-+++ b/beep.c
-@@ -98,11 +98,11 @@ char *console_device = NULL;
- 
- 
- void do_beep(int freq) {
--  if (console_type == BEEP_TYPE_CONSOLE) {
--    if(ioctl(console_fd, KIOCSOUND, freq != 0
--      ? (int)(CLOCK_TICK_RATE/freq)
--      : freq) < 0) {
--      printf("\a");  /* Output the only beep we can, in an effort to fall back on usefulness */
-+  int period = (freq != 0 ? (int)(CLOCK_TICK_RATE/freq) : freq);
-+
-+  if(console_type == BEEP_TYPE_CONSOLE) {
-+    if(ioctl(console_fd, KIOCSOUND, period) < 0) {
-+      putchar('\a');  /* Output the only beep we can, in an effort to fall back on usefulness */
-       perror("ioctl");
-     }
-   } else {
-@@ -113,7 +113,10 @@ void do_beep(int freq) {
-      e.code = SND_TONE;
-      e.value = freq;
- 
--     write(console_fd, &e, sizeof(struct input_event));
-+     if(write(console_fd, &e, sizeof(struct input_event)) < 0) {
-+       putchar('\a'); /* See above */
-+       perror("write");
-+     }
-   }
- }
- 
--- 
-2.7.5
diff --git a/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch b/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
deleted file mode 100644
index c11061e6a..000000000
--- a/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
+++ /dev/null
@@ -1,32 +0,0 @@ 
-From e1320c1da52ca92aa68b4224f9532982184fbe00 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=A9r=C3=B4me?= <jerome@jolimont.fr>
-Date: Thu, 7 Feb 2013 12:54:53 +0100
-Subject: [PATCH] also catch SIGTERM for stopping the beep
-
-Signed-off-by: Gerfried Fuchs <rhonda@deb.at>
----
- beep.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/beep.c b/beep.c
-index 452fc08..9cb63bf 100644
---- a/beep.c
-+++ b/beep.c
-@@ -130,6 +130,7 @@ void handle_signal(int signum) {
- 
-   switch(signum) {
-   case SIGINT:
-+  case SIGTERM:
-     if(console_fd >= 0) {
-       /* Kill the sound, quit gracefully */
-       do_beep(0);
-@@ -324,6 +325,7 @@ int main(int argc, char **argv) {
-   parms->next       = NULL;
- 
-   signal(SIGINT, handle_signal);
-+  signal(SIGTERM, handle_signal);
-   parse_command_line(argc, argv, parms);
- 
-   /* this outermost while loop handles the possibility that -n/--new has been
--- 
-2.7.5
diff --git a/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch b/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
deleted file mode 100644
index 9e2b481b3..000000000
--- a/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
+++ /dev/null
@@ -1,85 +0,0 @@ 
-From 947a7e332908dcba1c7e523fbdc927d39ee6adb1 Mon Sep 17 00:00:00 2001
-From: Hans Ulrich Niedermann <hun@n-dimensional.de>
-Date: Tue, 19 Nov 2013 23:40:50 +0100
-Subject: [PATCH] Make build/install more user and packaging friendly
-
-Make the build and install more user and packaging friendly
-by introducing the following features in the Makefile:
-
-  * Honor the $(CFLAGS) set when calling make.
-
-  * Prefix all install locations with $(DESTDIR) for
-    easy package building.
-
-  * Use GNU Makefile conventions for defining installation
-    directories. This means $(bindir) and $(man1dir)
-    instead of the former $(INSTALL_DIR) and $(MAN_DIR).
-
-  * Use install(1) for installing files and directories
-    so that permissions can be set properly.
-
-  * Stop "make clean" failing when it has nothing to do.
-
-  * Add 'uninstall' make target.
-
-  * Make 'install' target build executable if necessary.
----
- Makefile | 40 +++++++++++++++++++++++++++++-----------
- 1 file changed, 29 insertions(+), 11 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 0f4f810..942a7a5 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,19 +1,37 @@
- CC=gcc
- FLAGS=-Wall -O2
-+
-+INSTALL=install
-+
- EXEC_NAME=beep
--INSTALL_DIR=/usr/bin
- MAN_FILE=beep.1.gz
--MAN_DIR=/usr/share/man/man1
- 
--default : beep
-+# Use GNU makefile conventions for directory names with one notable
-+# exception: prefix is not /usr/local in order to keep the default
-+# installation location for beep.
-+prefix=/usr
-+exec_prefix=$(prefix)
-+bindir=$(exec_prefix)/bin
-+datarootdir=$(prefix)/share
-+mandir=$(datarootdir)/man
-+man1dir=$(mandir)/man1
-+
-+.PHONY: all
-+all: $(EXEC_NAME)
-+
-+.PHONY: clean
-+clean:
-+	rm -f $(EXEC_NAME)
- 
--clean :
--	rm ${EXEC_NAME}
-+$(EXEC_NAME): beep.c
-+	$(CC) $(FLAGS) $(CFLAGS) -o $(EXEC_NAME) beep.c
- 
--beep : beep.c
--	${CC} ${FLAGS} -o ${EXEC_NAME} beep.c
-+install: all
-+	$(INSTALL) -m 0755 -d           $(DESTDIR)$(bindir)
-+	$(INSTALL) -m 0755 $(EXEC_NAME) $(DESTDIR)$(bindir)/
-+	$(INSTALL) -m 0755 -d           $(DESTDIR)$(man1dir)
-+	$(INSTALL) -m 0644 $(MAN_FILE)  $(DESTDIR)$(man1dir)/
- 
--install :
--	cp ${EXEC_NAME} ${INSTALL_DIR}
--	# rm -f /usr/man/man1/beep.1.bz2
--	cp ${MAN_FILE} ${MAN_DIR}
-+uninstall:
-+	rm -f $(DESTDIR)$(bindir)/$(EXEC_NAME)
-+	rm -f $(DESTDIR)$(man1dir)/$(MAN_FILE)
--- 
-2.7.5
-
diff --git a/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch b/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
deleted file mode 100644
index fe844e6f1..000000000
--- a/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
+++ /dev/null
@@ -1,32 +0,0 @@ 
-From 4622dd15dc12dab47a0381a8a7188f0f0421e01d Mon Sep 17 00:00:00 2001
-From: Hans Ulrich Niedermann <hun@n-dimensional.de>
-Date: Wed, 20 Nov 2013 00:00:54 +0100
-Subject: [PATCH] Preserve file modification time on install
-
-Add -p option to install(1) invocation in order to preserve
-the timestamps of the files being installed.
----
- Makefile | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 942a7a5..290b8a4 100644
---- a/Makefile
-+++ b/Makefile
-@@ -27,10 +27,10 @@ $(EXEC_NAME): beep.c
- 	$(CC) $(FLAGS) $(CFLAGS) -o $(EXEC_NAME) beep.c
- 
- install: all
--	$(INSTALL) -m 0755 -d           $(DESTDIR)$(bindir)
--	$(INSTALL) -m 0755 $(EXEC_NAME) $(DESTDIR)$(bindir)/
--	$(INSTALL) -m 0755 -d           $(DESTDIR)$(man1dir)
--	$(INSTALL) -m 0644 $(MAN_FILE)  $(DESTDIR)$(man1dir)/
-+	$(INSTALL) -m 0755 -d              $(DESTDIR)$(bindir)
-+	$(INSTALL) -m 0755 -p $(EXEC_NAME) $(DESTDIR)$(bindir)/
-+	$(INSTALL) -m 0755 -d              $(DESTDIR)$(man1dir)
-+	$(INSTALL) -m 0644 -p $(MAN_FILE)  $(DESTDIR)$(man1dir)/
- 
- uninstall:
- 	rm -f $(DESTDIR)$(bindir)/$(EXEC_NAME)
--- 
-2.7.5
diff --git a/src/patches/beep/0007-Fix-identation-if-brace-error.patch b/src/patches/beep/0007-Fix-identation-if-brace-error.patch
deleted file mode 100644
index 30ec41406..000000000
--- a/src/patches/beep/0007-Fix-identation-if-brace-error.patch
+++ /dev/null
@@ -1,41 +0,0 @@ 
-From 35ba84dccb8fc8dc43cb3f575904a33ffa27e7b7 Mon Sep 17 00:00:00 2001
-From: Hans Ulrich Niedermann <hun@n-dimensional.de>
-Date: Tue, 3 Apr 2018 19:11:07 +0200
-Subject: [PATCH] Fix indentation/if brace error
-
-As beep.c is not Python, the code blocks must be defined by
-using braces instead of just indenting them differently.
-
-Once we do that, the outcome of multiple -f parameters will
-actually match what the warning message documents beep does:
-Only the last -f value will be used.
-
-Many projects proscribe using braces everywhere, but this
-change keeps the beep.c coding style of using braces only
-when absolutely necessary.
-
-This issue was discovered by compiling with gcc 6.
----
- beep.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/beep.c b/beep.c
-index 7da2e70..d46adc8 100644
---- a/beep.c
-+++ b/beep.c
-@@ -194,11 +194,12 @@ void parse_command_line(int argc, char **argv, beep_parms_t *result) {
-       if(!sscanf(optarg, "%f", &argfreq) || (argfreq >= 20000 /* ack! */) || 
- 	 (argfreq <= 0))
- 	usage_bail(argv[0]);
--      else
-+      else {
- 	if (result->freq != 0)
- 	  fprintf(stderr, "WARNING: multiple -f values given, only last "
- 	    "one is used.\n");
- 	result->freq = argfreq;    
-+      }
-       break;
-     case 'l' : /* length */
-       if(!sscanf(optarg, "%d", &argval) || (argval < 0))
--- 
-2.7.5
diff --git a/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch b/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
deleted file mode 100644
index ac1f0b514..000000000
--- a/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
+++ /dev/null
@@ -1,117 +0,0 @@ 
-From 3b67473e16aaf2f83cb8ac18c13c9183a8e3c7b2 Mon Sep 17 00:00:00 2001
-From: Hans Ulrich Niedermann <hun@n-dimensional.de>
-Date: Tue, 3 Apr 2018 18:37:33 +0200
-Subject: [PATCH] Apply CVE-2018-0492.patch from Debian package
-
----
- beep.c | 53 ++++++++++++++++++++++++-----------------------------
- 1 file changed, 24 insertions(+), 29 deletions(-)
-
-diff --git a/beep.c b/beep.c
-index d46adc8..f6781e8 100644
---- a/beep.c
-+++ b/beep.c
-@@ -109,6 +109,7 @@ void do_beep(int freq) {
-      /* BEEP_TYPE_EVDEV */
-      struct input_event e;
- 
-+     memset(&e, 0, sizeof(e));
-      e.type = EV_SND;
-      e.code = SND_TONE;
-      e.value = freq;
-@@ -124,10 +125,6 @@ void do_beep(int freq) {
- /* If we get interrupted, it would be nice to not leave the speaker beeping in
-    perpetuity. */
- void handle_signal(int signum) {
--
--  if(console_device)
--    free(console_device);
--
-   switch(signum) {
-   case SIGINT:
-   case SIGTERM:
-@@ -258,7 +255,7 @@ void parse_command_line(int argc, char **argv, beep_parms_t *result) {
-       result->verbose = 1;
-       break;
-     case 'e' : /* also --device */
--      console_device = strdup(optarg);
-+      console_device = optarg;
-       break;
-     case 'h' : /* notice that this is also --help */
-     default :
-@@ -277,26 +274,6 @@ void play_beep(beep_parms_t parms) {
- 	"%d delay after) @ %.2f Hz\n",
- 	parms.reps, parms.length, parms.delay, parms.end_delay, parms.freq);
- 
--  /* try to snag the console */
--  if(console_device)
--    console_fd = open(console_device, O_WRONLY);
--  else
--    if((console_fd = open("/dev/tty0", O_WRONLY)) == -1)
--      console_fd = open("/dev/vc/0", O_WRONLY);
--
--  if(console_fd == -1) {
--    fprintf(stderr, "Could not open %s for writing\n",
--      console_device != NULL ? console_device : "/dev/tty0 or /dev/vc/0");
--    printf("\a");  /* Output the only beep we can, in an effort to fall back on usefulness */
--    perror("open");
--    exit(1);
--  }
--
--  if (ioctl(console_fd, EVIOCGSND(0)) != -1)
--    console_type = BEEP_TYPE_EVDEV;
--  else
--    console_type = BEEP_TYPE_CONSOLE;
--  
-   /* Beep */
-   for (i = 0; i < parms.reps; i++) {                    /* start beep */
-     do_beep(parms.freq);
-@@ -306,8 +283,6 @@ void play_beep(beep_parms_t parms) {
-     if(parms.end_delay || (i+1 < parms.reps))
-        usleep(1000*parms.delay);                        /* wait...    */
-   }                                                     /* repeat.    */
--
--  close(console_fd);
- }
- 
- 
-@@ -329,6 +304,26 @@ int main(int argc, char **argv) {
-   signal(SIGTERM, handle_signal);
-   parse_command_line(argc, argv, parms);
- 
-+  /* try to snag the console */
-+  if(console_device)
-+    console_fd = open(console_device, O_WRONLY);
-+  else
-+    if((console_fd = open("/dev/tty0", O_WRONLY)) == -1)
-+      console_fd = open("/dev/vc/0", O_WRONLY);
-+
-+  if(console_fd == -1) {
-+    fprintf(stderr, "Could not open %s for writing\n",
-+      console_device != NULL ? console_device : "/dev/tty0 or /dev/vc/0");
-+    printf("\a");  /* Output the only beep we can, in an effort to fall back on usefulness */
-+    perror("open");
-+    exit(1);
-+  }
-+
-+  if (ioctl(console_fd, EVIOCGSND(0)) != -1)
-+    console_type = BEEP_TYPE_EVDEV;
-+  else
-+    console_type = BEEP_TYPE_CONSOLE;
-+
-   /* this outermost while loop handles the possibility that -n/--new has been
-      used, i.e. that we have multiple beeps specified. Each iteration will
-      play, then free() one parms instance. */
-@@ -366,8 +361,8 @@ int main(int argc, char **argv) {
-     parms = next;
-   }
- 
--  if(console_device)
--    free(console_device);
-+  close(console_fd);
-+  console_fd = -1;
- 
-   return EXIT_SUCCESS;
- }
--- 
-2.7.5