This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree".
The branch, next has been updated via 417263c76c0d428398ee6188c22cee4bce035c87 (commit) via 4ba14aa2ba9f7ca15dd15b6e32c749c556f1b9ed (commit) via db9cecd8db5677f91c931f1cbd2069e4c0cdba0f (commit) via 63fb1beb8148f6142236e4418bf0c38ddc809060 (commit) via fa7641cd88b16ee7a6a71ce4c5d64b6ec7824e09 (commit) via efb6130fd000d5603f84734899e94cf80c303a02 (commit) via 88513c0ef56c0bba4e074d15c49b19af74016c86 (commit) via 80eac2b523c6c4aa682d565899c9de77c22b8e61 (commit) via b49e4eec450674d752fd66442ee037b34bef94e9 (commit) via bd4fd21fd2c4891a2c228a57d6f3dee4559b3b5f (commit) via 569c9ac668e26a496853756a1cd4fb2a6e42a1a7 (commit) via 19a3b883ded2a4960ae841212fb59c4600fca92d (commit) via 65dc35dcf4108eca6f8ed296ad2edf5592fe7777 (commit) via 480c5253d04f4eccdd43b77892e3a1daf8347256 (commit) via 72dfa1b0975bada9bde68fc11aed433c4899235e (commit) via 7907c1e068d62a5bcb3275e35aecf678be50b0be (commit) via fd815c36ea085dd40e4fd8b91dec1a81401369df (commit) via 0aa77c2fd50daccb6dd4d71f05a9fd3a187b993e (commit) via d0a6f9bdb2edc50d5d52fe0273f6fc494c2e75a9 (commit) via 94aeac8a050d1df7f6a59ae7528cdc32c364ac84 (commit) via 56ce3e19e6d894ad3c61db7f4a5adeecf50c3e07 (commit) via a2c88aadef95bda060ca5c04bdbb40abfcb57b50 (commit) via 6ed00db36f45009edafe64780ef38fc7772313bc (commit) via c649a19441aa7e800d5dca2f4af229d72f443503 (commit) via 422fce9cb0cfcc0d784cf5bb84ce39cb641ff6d4 (commit) via 91443f923429d41c79a850295796ccaf1cd8ec4b (commit) from 833b9bc1d18e73b1cfb132d9487f7a1497022c3a (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 417263c76c0d428398ee6188c22cee4bce035c87 Author: Adolf Belka adolf.belka@ipfire.org Date: Mon Jul 31 22:36:54 2023 +0200
mpd: Update to version 0.23.13
- Update from version 0.23.12 to 0.23.13 - Update of rootfile not required - mpd needs version 0.23.13 to build with fmt-10.0.0 - Changelog 0.23.13 (2023/05/22) * input - curl: fix busy loop after connection failed - curl: hide "404" log messages for non-existent ".mpdignore" files * archive - zzip: fix crash bug * database - simple: reveal hidden songs after deleting containing CUE * decoder - ffmpeg: reorder to a lower priority than "gme" - gme: require GME 0.6 or later * output - pipewire: fix corruption bug due to missing lock * Linux - shut down if parent process dies in --no-daemon mode - determine systemd unit directories via pkg-config * support libfmt 10
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 4ba14aa2ba9f7ca15dd15b6e32c749c556f1b9ed Author: Adolf Belka adolf.belka@ipfire.org Date: Mon Jul 31 22:36:53 2023 +0200
fmt: Update to version 10.0.0
- Update from version 9.1.0 to 10.0.0 - Update of rootfile - sobump so ran ./make find dependencies. This highlighted mpd but that needs to be updated anyway as the existing version does not build with fmt-10.0.0 - Changelog is too large to include here. See the file ChangeLog.rst in the source tarball
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit db9cecd8db5677f91c931f1cbd2069e4c0cdba0f Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 2 09:18:16 2023 +0000
core178: Ship gettext
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 63fb1beb8148f6142236e4418bf0c38ddc809060 Author: Adolf Belka adolf.belka@ipfire.org Date: Mon Jul 31 18:15:43 2023 +0200
procps: Add patch to fix errors that prevent build with gettext-0.22
- Gettext earlier than 0.21 would still build when it found errors in language files etc. With gettext-0.22 if it finds any errors it now stops. - There were two lines in the french po file in procps that had erros in them. procps have raised a commit to fix those. The patch included here carries out that commit. - Update of rootfile not required. - This patch will not be needed when the next update of procps occurs.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit fa7641cd88b16ee7a6a71ce4c5d64b6ec7824e09 Author: Adolf Belka adolf.belka@ipfire.org Date: Mon Jul 31 18:15:42 2023 +0200
gettext: Update to version 0.22
- Update from version 0.21 to 0.22 - Update of rootfile - Changelog 0.22 - June 2023 * PO file format: - When a #: line contains references to file names that contain spaces, these file names are surrounded by Unicode characters U+2068 and U+2069. This makes it possible to parse such references correctly. * Improvements for maintainers: - The AM_GNU_GETTEXT macro now defines two variables localedir_c and localedir_c_make, that can be used in C code or in Makefiles, respectively, for representing the value of the --localedir configure option. * Programming languages support: - C, C++: o xgettext now supports gettext-like functions that take wide strings (of type 'const wchar_t *', 'const char16_t *', or 'const char32_t *') as arguments. o xgettext now recognizes numbers with digit separators, as defined by ISO C 23, as tokens. o xgettext and msgfmt now recognize the format string directive %b (for binary integer output, as defined by ISO C 23) in format strings. o xgettext and msgfmt now recognize the argument size specifiers w8, w16, w32, w64, wf8, wf16, wf32, wf64 (as defined by ISO C 23) in format strings. o xgettext and msgfmt now recognize C++ format strings, as defined by ISO C++ 20. They are marked as 'c++-format' in POT and PO files. A new example has been added, 'hello-c++20', that illustrates how to use these format strings with gettext. - Java: o The build system and tools now also support Java versions newer than Java 11. This is known to work up to Java 20, at least. On the other hand, support for old versions of Java (Java 1.5 and GCJ) has been dropped. - Tcl: xgettext now supports the \x, \u, and \U escapes as defined in Tcl 8.6. * Portability: - On systems with musl libc, the *gettext() functions in libc now work with MO files generated from PO files with an encoding other than UTF-8. To this effect, the msgfmt program now converts the messages to UTF-8 encoding before storing them in a MO file. You can prevent this by using the msgfmt --no-convert option. - On systems with musl libc, the *gettext() functions in libc now work with MO files generated from PO files with ISO C 99 <inttypes.h> format string directive macros. To this effect, the msgfmt program pre-expands strings with such macros. You can prevent this by using the msgfmt --no-redundancy option. * xgettext: - The xgettext option '--sorted-output' is now deprecated. - xgettext input files of type PO that are not all ASCII and not UTF-8 encoded are now handled correctly. * The base Unicode standard is now updated to 15.0.0. * Emacs PO mode: Fix an incompatibility with Emacs version 29 or newer. 0.21.1 - October 2022 * Runtime behaviour: - On AIX, locale names with a script or with an uppercase language are now supported. For example, sr_Cyrl_RS.UTF-8 is treated like sr_RS.UTF-8@cyrillic, and EN_US.UTF-8 is treated like en_US.UTF-8. * The base Unicode standard is now updated to 14.0.0. * Portability: - Building on macOS 11/arm64 is now supported. - Building on Linux/powerpc64le with glibc ≥ 2.35 is now supported.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit efb6130fd000d5603f84734899e94cf80c303a02 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 2 09:15:31 2023 +0000
core178: Ship extrahd.pl
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 88513c0ef56c0bba4e074d15c49b19af74016c86 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 2 09:14:15 2023 +0000
extrahd: Do not try to umount if nothing is mounted
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 80eac2b523c6c4aa682d565899c9de77c22b8e61 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 2 09:14:14 2023 +0000
extrahd: Skip relative mountpoints
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit b49e4eec450674d752fd66442ee037b34bef94e9 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 2 09:14:13 2023 +0000
extrahd: Rewrite the mount script in shell
This is probably a lot easier than calling all sorts of shell commands from Perl.
The script has also changed that it will try to mount/umount all configured mountpoints unless a specific mountpoint is being given.
An initscript will be needed to mount everything when the system is booting up and umount everything on shutdown.
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit bd4fd21fd2c4891a2c228a57d6f3dee4559b3b5f Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 2 09:12:48 2023 +0000
core178: Ship extrahd.cgi
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 569c9ac668e26a496853756a1cd4fb2a6e42a1a7 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Aug 1 17:48:39 2023 +0200
extrahd.cgi: Adjust copyright header
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 19a3b883ded2a4960ae841212fb59c4600fca92d Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Aug 1 17:48:38 2023 +0200
extrahd.cgi: Do not allow "/mnt" or "/media" as mount points
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 65dc35dcf4108eca6f8ed296ad2edf5592fe7777 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Aug 1 17:48:37 2023 +0200
extrahd.cgi: Requires "auto" as hidden FS type to mount a new device
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 480c5253d04f4eccdd43b77892e3a1daf8347256 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Aug 1 17:48:36 2023 +0200
extrahd.cgi: Drop select for FS selection.
This feature does not have any benefit because the linux kernel knows best which filesystem a device/partition has.
So there is no need for a user to specify this by-hand. This also prevents from choosing a wrong fs type and as a direct result in a not mountable device.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 72dfa1b0975bada9bde68fc11aed433c4899235e Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Aug 1 17:48:35 2023 +0200
extrahd.cgi: Add missing translation strings
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 7907c1e068d62a5bcb3275e35aecf678be50b0be Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Aug 1 17:48:34 2023 +0200
extrahd.cgi: Re-order sanity check logic
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit fd815c36ea085dd40e4fd8b91dec1a81401369df Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Aug 1 17:48:33 2023 +0200
extrahd.cgi: Display mount status next to the corresponding drive
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 0aa77c2fd50daccb6dd4d71f05a9fd3a187b993e Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Aug 1 17:48:32 2023 +0200
extrahd.cgi: Add is_configured function.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit d0a6f9bdb2edc50d5d52fe0273f6fc494c2e75a9 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Aug 1 17:48:31 2023 +0200
extrahd.cgi: Store configured drives in a hash
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 94aeac8a050d1df7f6a59ae7528cdc32c364ac84 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Aug 1 17:48:30 2023 +0200
extrahd.cgi: Abort if a device could not be umounted.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 56ce3e19e6d894ad3c61db7f4a5adeecf50c3e07 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Aug 1 17:48:29 2023 +0200
extrahd.cgi: Refactor code to use new introduced perl functions.
This also gets rid of allmost all unsafe system calls.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit a2c88aadef95bda060ca5c04bdbb40abfcb57b50 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Aug 1 17:48:28 2023 +0200
extrahd.cgi: Add various perl functions deal with block devices
This functions are going to replace the former used scan/write to file/read from file approach by directly collecting the required informations from the kernel sysfs and devfs.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 6ed00db36f45009edafe64780ef38fc7772313bc Merge: 833b9bc1d c649a1944 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Aug 2 09:11:40 2023 +0000
Merge branch 'master' into next
-----------------------------------------------------------------------
Summary of changes: config/extrahd/extrahd.pl | 184 +++-- config/rootfiles/common/gettext | 116 +++- config/rootfiles/common/udev | 1 - config/rootfiles/core/178/filelists/files | 2 + .../{oldcore/103 => core/178}/filelists/gettext | 0 config/rootfiles/oldcore/177/filelists/files | 1 + config/rootfiles/oldcore/177/update.sh | 1 + config/rootfiles/packages/fmt | 4 +- config/suricata/ruleset-sources | 2 +- config/udev/90-hwrng.rules | 16 - html/cgi-bin/extrahd.cgi | 748 +++++++++++++++++---- langs/de/cgi-bin/de.pl | 5 + langs/en/cgi-bin/en.pl | 5 + lfs/fmt | 8 +- lfs/gettext | 6 +- lfs/mpd | 35 +- lfs/procps | 1 + lfs/rng-tools | 2 +- lfs/udev | 4 - src/initscripts/packages/rngd | 16 +- ..._address_build_failures_with_gettext_0.22.patch | 20 + 21 files changed, 878 insertions(+), 299 deletions(-) copy config/rootfiles/{oldcore/103 => core/178}/filelists/gettext (100%) delete mode 100644 config/udev/90-hwrng.rules create mode 100644 src/patches/procps-v4.0.3_address_build_failures_with_gettext_0.22.patch
Difference in files: diff --git a/config/extrahd/extrahd.pl b/config/extrahd/extrahd.pl index 3b57e9230..145a2a43a 100644 --- a/config/extrahd/extrahd.pl +++ b/config/extrahd/extrahd.pl @@ -1,8 +1,8 @@ -#!/usr/bin/perl +#!/bin/bash ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team info@ipfire.org # +# Copyright (C) 2023 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 # @@ -19,75 +19,115 @@ # # ###############################################################################
-use strict; -# enable only the following on debugging purpose -# use warnings; - -require '/var/ipfire/general-functions.pl'; -require "${General::swroot}/lang.pl"; -require "${General::swroot}/header.pl"; - -my %extrahdsettings = (); -my $ok = "true"; -my @devices = (); -my @deviceline = (); -my $deviceentry = ""; -my $devicefile = "/var/ipfire/extrahd/devices"; -my $fstab = "/var/ipfire/extrahd/fstab"; - -### Values that have to be initialized -$extrahdsettings{'PATH'} = ''; -$extrahdsettings{'FS'} = ''; -$extrahdsettings{'DEVICE'} = ''; -$extrahdsettings{'ACTION'} = ''; - -open( FILE, "< $devicefile" ) or die "Unable to read $devicefile"; -@devices = <FILE>; -close FILE; - -############################################################################################################################ -############################################################################################################################ - -if ( "$ARGV[0]" eq "mount" ) { - system("/bin/cp -f /etc/fstab $fstab"); - - foreach $deviceentry (sort @devices) - { - @deviceline = split( /;/, $deviceentry ); - if ( "$ARGV[1]" eq "$deviceline[2]" ) { - print "Insert $deviceline[0] ($deviceline[1]) --> $deviceline[2] into /etc/fstab!\n"; - unless ( -d $deviceline[2] ) { system("/bin/mkdir -p $deviceline[2] && chmod 0777 $deviceline[2]"); } - open(FILE, ">>$fstab"); - print FILE "$deviceline[0]\t$deviceline[2]\t$deviceline[1]\tdefaults\t0\t0\n"; - close(FILE); - } - } - - system("/bin/cp -f $fstab /etc/fstab"); - if ( `/bin/mount -a` ) { - exit(0); - } else { - exit(1); - } - -} elsif ( "$ARGV[0]" eq "umount" ) { - system("/bin/umount $ARGV[1]"); - if ( ! `/bin/mount | /bin/fgrep $ARGV[1]` ) { - system("/bin/cp -f /etc/fstab $fstab"); - system("/bin/fgrep -v $ARGV[1] <$fstab >/etc/fstab"); - print "Successfully umounted $ARGV[1].\n"; - exit(0); - } else { - print "Can't umount $ARGV[1].\n"; - exit(1); - } - -} elsif ( "$ARGV[0]" eq "scanhd") { - system("/usr/local/bin/scanhd $ARGV[1]"); - -} else { - print "Usage: $0 (mount|umount|scanhd) mountpoint\n"; +log() { + local message="${@}" + + logger -t "extrahd" "${message}" +} + +extrahd_mount() { + local _mountpoint="${1}" + + local device + local filesystem + local mountpoint + local rest + local failed=0 + + while IFS=';' read -r device filesystem mountpoint rest; do + # Filter by mountpoint if set + if [ -n "${_mountpoint}" ] && [ "${mountpoint}" != "${_mountpoint}" ]; then + continue + fi + + # Check that the mountpoint starts with a slash + if [ "${mountpoint:0:1}" != "/" ]; then + log "Skipping invalid mountpoint: ${mountpoint}" + continue + fi + + # Skip mounting if something is already mounted at the mountpoint + if mountpoint "${mountpoint}" &>/dev/null; then + continue + fi + + # Ensure the mountpoint exists + mkdir --parents --mode=777 "${mountpoint}" &>/dev/null + + if mount --types "${filesystem}" "${device}" "${mountpoint}"; then + log "Successfully mounted ${device} to ${mountpoint}" + else + log "Could not mount ${device} to ${mountpoint}: $?" + failed=1 + fi + done < /var/ipfire/extrahd/devices + + return ${failed} +} + +extrahd_umount() { + local _mountpoint="${1}" + + local device + local filesystem + local mountpoint + local rest + local failed=0 + + while IFS=';' read -r device filesystem mountpoint rest; do + # Filter by mountpoint if set + if [ -n "${_mountpoint}" ] && [ "${mountpoint}" != "${_mountpoint}" ]; then + continue + fi + + # Do not try to umount if nothing is mounted + if ! mountpoint "${mountpoint}" &>/dev/null; then + continue + fi + + # Umount and try lazy umount if failed + if umount --quiet --recursive "${mountpoint}" || \ + umount --quiet --recursive --lazy "${mountpoint}"; then + log "Successfully umounted ${device} from ${mountpoint}" + else + log "Could not umount ${device} from ${mountpoint}: $?" + failed=1 + fi + done < /var/ipfire/extrahd/devices +} + +main() { + local command="${1}" + shift + + local rc=0 + + case "${command}" in + mount) + extrahd_mount "${@}" || rc="${?}" + ;; + umount) + extrahd_umount "${@}" || rc="${rc}" + ;; + scanhd) + exec /usr/local/bin/scanhd "${@}" + ;; + + # No command + "") + echo "${0}: No command given" >&2 + rc=2 + ;; + + # Unknown command + *) + echo "${0}: Unsupported command: ${command}" >&2 + rc=2 + ;; + esac + + return ${rc} }
-############################################################################################################################ -############################################################################################################################ +# Call main() +main "${@}" || exit ${?} diff --git a/config/rootfiles/common/gettext b/config/rootfiles/common/gettext index 04728caa9..3560e9601 100644 --- a/config/rootfiles/common/gettext +++ b/config/rootfiles/common/gettext @@ -38,23 +38,24 @@ usr/bin/gettext.sh #usr/lib/libasprintf.so usr/lib/libasprintf.so.0 usr/lib/libasprintf.so.0.0.0 -usr/lib/libgettextlib-0.21.so +usr/lib/libgettextlib-0.22.so #usr/lib/libgettextlib.la #usr/lib/libgettextlib.so #usr/lib/libgettextpo.a #usr/lib/libgettextpo.la #usr/lib/libgettextpo.so usr/lib/libgettextpo.so.0 -usr/lib/libgettextpo.so.0.5.7 -usr/lib/libgettextsrc-0.21.so +usr/lib/libgettextpo.so.0.5.9 +usr/lib/libgettextsrc-0.22.so #usr/lib/libgettextsrc.la usr/lib/libgettextsrc.so #usr/lib/libtextstyle.a #usr/lib/libtextstyle.la #usr/lib/libtextstyle.so usr/lib/libtextstyle.so.0 -usr/lib/libtextstyle.so.0.1.1 +usr/lib/libtextstyle.so.0.2.0 usr/lib/preloadable_libintl.so +#usr/share/aclocal/build-to-host.m4 #usr/share/aclocal/gettext.m4 #usr/share/aclocal/host-cpu-c-abi.m4 #usr/share/aclocal/iconv.m4 @@ -129,6 +130,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c++-gnome/po/id.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/it.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/ja.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/ka.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/ky.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/lv.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/ms.po @@ -213,6 +215,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c++-kde/po/id.po #usr/share/doc/gettext/examples/hello-c++-kde/po/it.po #usr/share/doc/gettext/examples/hello-c++-kde/po/ja.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/ka.po #usr/share/doc/gettext/examples/hello-c++-kde/po/ky.po #usr/share/doc/gettext/examples/hello-c++-kde/po/lv.po #usr/share/doc/gettext/examples/hello-c++-kde/po/ms.po @@ -270,6 +273,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c++-qt/po/id.po #usr/share/doc/gettext/examples/hello-c++-qt/po/it.po #usr/share/doc/gettext/examples/hello-c++-qt/po/ja.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/ka.po #usr/share/doc/gettext/examples/hello-c++-qt/po/ky.po #usr/share/doc/gettext/examples/hello-c++-qt/po/lv.po #usr/share/doc/gettext/examples/hello-c++-qt/po/ms.po @@ -326,6 +330,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/id.po #usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/it.po #usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ja.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ka.po #usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ky.po #usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/lv.po #usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ms.po @@ -381,6 +386,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c++/po/id.po #usr/share/doc/gettext/examples/hello-c++/po/it.po #usr/share/doc/gettext/examples/hello-c++/po/ja.po +#usr/share/doc/gettext/examples/hello-c++/po/ka.po #usr/share/doc/gettext/examples/hello-c++/po/ky.po #usr/share/doc/gettext/examples/hello-c++/po/lv.po #usr/share/doc/gettext/examples/hello-c++/po/ms.po @@ -405,6 +411,63 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c++/po/zh_CN.po #usr/share/doc/gettext/examples/hello-c++/po/zh_HK.po #usr/share/doc/gettext/examples/hello-c++/po/zh_TW.po +#usr/share/doc/gettext/examples/hello-c++20 +#usr/share/doc/gettext/examples/hello-c++20/INSTALL +#usr/share/doc/gettext/examples/hello-c++20/Makefile.am +#usr/share/doc/gettext/examples/hello-c++20/autoclean.sh +#usr/share/doc/gettext/examples/hello-c++20/autogen.sh +#usr/share/doc/gettext/examples/hello-c++20/configure.ac +#usr/share/doc/gettext/examples/hello-c++20/hello.cc +#usr/share/doc/gettext/examples/hello-c++20/m4 +#usr/share/doc/gettext/examples/hello-c++20/m4/Makefile.am +#usr/share/doc/gettext/examples/hello-c++20/po +#usr/share/doc/gettext/examples/hello-c++20/po/LINGUAS +#usr/share/doc/gettext/examples/hello-c++20/po/Makevars +#usr/share/doc/gettext/examples/hello-c++20/po/POTFILES.in +#usr/share/doc/gettext/examples/hello-c++20/po/af.po +#usr/share/doc/gettext/examples/hello-c++20/po/ast.po +#usr/share/doc/gettext/examples/hello-c++20/po/bg.po +#usr/share/doc/gettext/examples/hello-c++20/po/ca.po +#usr/share/doc/gettext/examples/hello-c++20/po/cs.po +#usr/share/doc/gettext/examples/hello-c++20/po/da.po +#usr/share/doc/gettext/examples/hello-c++20/po/de.po +#usr/share/doc/gettext/examples/hello-c++20/po/el.po +#usr/share/doc/gettext/examples/hello-c++20/po/eo.po +#usr/share/doc/gettext/examples/hello-c++20/po/es.po +#usr/share/doc/gettext/examples/hello-c++20/po/fi.po +#usr/share/doc/gettext/examples/hello-c++20/po/fr.po +#usr/share/doc/gettext/examples/hello-c++20/po/ga.po +#usr/share/doc/gettext/examples/hello-c++20/po/gl.po +#usr/share/doc/gettext/examples/hello-c++20/po/hr.po +#usr/share/doc/gettext/examples/hello-c++20/po/hu.po +#usr/share/doc/gettext/examples/hello-c++20/po/id.po +#usr/share/doc/gettext/examples/hello-c++20/po/it.po +#usr/share/doc/gettext/examples/hello-c++20/po/ja.po +#usr/share/doc/gettext/examples/hello-c++20/po/ka.po +#usr/share/doc/gettext/examples/hello-c++20/po/ky.po +#usr/share/doc/gettext/examples/hello-c++20/po/lv.po +#usr/share/doc/gettext/examples/hello-c++20/po/ms.po +#usr/share/doc/gettext/examples/hello-c++20/po/mt.po +#usr/share/doc/gettext/examples/hello-c++20/po/nb.po +#usr/share/doc/gettext/examples/hello-c++20/po/nl.po +#usr/share/doc/gettext/examples/hello-c++20/po/nn.po +#usr/share/doc/gettext/examples/hello-c++20/po/pl.po +#usr/share/doc/gettext/examples/hello-c++20/po/pt.po +#usr/share/doc/gettext/examples/hello-c++20/po/pt_BR.po +#usr/share/doc/gettext/examples/hello-c++20/po/ro.po +#usr/share/doc/gettext/examples/hello-c++20/po/ru.po +#usr/share/doc/gettext/examples/hello-c++20/po/sk.po +#usr/share/doc/gettext/examples/hello-c++20/po/sl.po +#usr/share/doc/gettext/examples/hello-c++20/po/sq.po +#usr/share/doc/gettext/examples/hello-c++20/po/sr.po +#usr/share/doc/gettext/examples/hello-c++20/po/sv.po +#usr/share/doc/gettext/examples/hello-c++20/po/ta.po +#usr/share/doc/gettext/examples/hello-c++20/po/tr.po +#usr/share/doc/gettext/examples/hello-c++20/po/uk.po +#usr/share/doc/gettext/examples/hello-c++20/po/vi.po +#usr/share/doc/gettext/examples/hello-c++20/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-c++20/po/zh_HK.po +#usr/share/doc/gettext/examples/hello-c++20/po/zh_TW.po #usr/share/doc/gettext/examples/hello-c-gnome #usr/share/doc/gettext/examples/hello-c-gnome/INSTALL #usr/share/doc/gettext/examples/hello-c-gnome/Makefile.am @@ -440,6 +503,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c-gnome/po/id.po #usr/share/doc/gettext/examples/hello-c-gnome/po/it.po #usr/share/doc/gettext/examples/hello-c-gnome/po/ja.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/ka.po #usr/share/doc/gettext/examples/hello-c-gnome/po/ky.po #usr/share/doc/gettext/examples/hello-c-gnome/po/lv.po #usr/share/doc/gettext/examples/hello-c-gnome/po/ms.po @@ -500,6 +564,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c-gnome3/po/id.po #usr/share/doc/gettext/examples/hello-c-gnome3/po/it.po #usr/share/doc/gettext/examples/hello-c-gnome3/po/ja.po +#usr/share/doc/gettext/examples/hello-c-gnome3/po/ka.po #usr/share/doc/gettext/examples/hello-c-gnome3/po/ky.po #usr/share/doc/gettext/examples/hello-c-gnome3/po/lv.po #usr/share/doc/gettext/examples/hello-c-gnome3/po/ms.po @@ -555,6 +620,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c/po/id.po #usr/share/doc/gettext/examples/hello-c/po/it.po #usr/share/doc/gettext/examples/hello-c/po/ja.po +#usr/share/doc/gettext/examples/hello-c/po/ka.po #usr/share/doc/gettext/examples/hello-c/po/ky.po #usr/share/doc/gettext/examples/hello-c/po/lv.po #usr/share/doc/gettext/examples/hello-c/po/ms.po @@ -610,6 +676,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-clisp/po/id.po #usr/share/doc/gettext/examples/hello-clisp/po/it.po #usr/share/doc/gettext/examples/hello-clisp/po/ja.po +#usr/share/doc/gettext/examples/hello-clisp/po/ka.po #usr/share/doc/gettext/examples/hello-clisp/po/ky.po #usr/share/doc/gettext/examples/hello-clisp/po/lv.po #usr/share/doc/gettext/examples/hello-clisp/po/ms.po @@ -667,6 +734,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-csharp-forms/po/id.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/it.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/ja.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/ka.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/ky.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/lv.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/ms.po @@ -721,6 +789,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-csharp/po/id.po #usr/share/doc/gettext/examples/hello-csharp/po/it.po #usr/share/doc/gettext/examples/hello-csharp/po/ja.po +#usr/share/doc/gettext/examples/hello-csharp/po/ka.po #usr/share/doc/gettext/examples/hello-csharp/po/ky.po #usr/share/doc/gettext/examples/hello-csharp/po/lv.po #usr/share/doc/gettext/examples/hello-csharp/po/ms.po @@ -776,6 +845,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-gawk/po/id.po #usr/share/doc/gettext/examples/hello-gawk/po/it.po #usr/share/doc/gettext/examples/hello-gawk/po/ja.po +#usr/share/doc/gettext/examples/hello-gawk/po/ka.po #usr/share/doc/gettext/examples/hello-gawk/po/ky.po #usr/share/doc/gettext/examples/hello-gawk/po/lv.po #usr/share/doc/gettext/examples/hello-gawk/po/ms.po @@ -831,6 +901,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-guile/po/id.po #usr/share/doc/gettext/examples/hello-guile/po/it.po #usr/share/doc/gettext/examples/hello-guile/po/ja.po +#usr/share/doc/gettext/examples/hello-guile/po/ka.po #usr/share/doc/gettext/examples/hello-guile/po/ky.po #usr/share/doc/gettext/examples/hello-guile/po/lv.po #usr/share/doc/gettext/examples/hello-guile/po/ms.po @@ -890,6 +961,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-java-awt/po/id.po #usr/share/doc/gettext/examples/hello-java-awt/po/it.po #usr/share/doc/gettext/examples/hello-java-awt/po/ja.po +#usr/share/doc/gettext/examples/hello-java-awt/po/ka.po #usr/share/doc/gettext/examples/hello-java-awt/po/ky.po #usr/share/doc/gettext/examples/hello-java-awt/po/lv.po #usr/share/doc/gettext/examples/hello-java-awt/po/ms.po @@ -948,6 +1020,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-java-qtjambi/po/id.po #usr/share/doc/gettext/examples/hello-java-qtjambi/po/it.po #usr/share/doc/gettext/examples/hello-java-qtjambi/po/ja.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ka.po #usr/share/doc/gettext/examples/hello-java-qtjambi/po/ky.po #usr/share/doc/gettext/examples/hello-java-qtjambi/po/lv.po #usr/share/doc/gettext/examples/hello-java-qtjambi/po/ms.po @@ -1006,6 +1079,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-java-swing/po/id.po #usr/share/doc/gettext/examples/hello-java-swing/po/it.po #usr/share/doc/gettext/examples/hello-java-swing/po/ja.po +#usr/share/doc/gettext/examples/hello-java-swing/po/ka.po #usr/share/doc/gettext/examples/hello-java-swing/po/ky.po #usr/share/doc/gettext/examples/hello-java-swing/po/lv.po #usr/share/doc/gettext/examples/hello-java-swing/po/ms.po @@ -1060,6 +1134,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-java/po/id.po #usr/share/doc/gettext/examples/hello-java/po/it.po #usr/share/doc/gettext/examples/hello-java/po/ja.po +#usr/share/doc/gettext/examples/hello-java/po/ka.po #usr/share/doc/gettext/examples/hello-java/po/ky.po #usr/share/doc/gettext/examples/hello-java/po/lv.po #usr/share/doc/gettext/examples/hello-java/po/ms.po @@ -1115,6 +1190,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-librep/po/id.po #usr/share/doc/gettext/examples/hello-librep/po/it.po #usr/share/doc/gettext/examples/hello-librep/po/ja.po +#usr/share/doc/gettext/examples/hello-librep/po/ka.po #usr/share/doc/gettext/examples/hello-librep/po/ky.po #usr/share/doc/gettext/examples/hello-librep/po/lv.po #usr/share/doc/gettext/examples/hello-librep/po/ms.po @@ -1175,6 +1251,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-objc-gnome/po/id.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/it.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/ja.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/ka.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/ky.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/lv.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/ms.po @@ -1233,6 +1310,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-objc-gnustep/po/id.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/it.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ja.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/ka.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ky.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/lv.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ms.po @@ -1288,6 +1366,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-objc/po/id.po #usr/share/doc/gettext/examples/hello-objc/po/it.po #usr/share/doc/gettext/examples/hello-objc/po/ja.po +#usr/share/doc/gettext/examples/hello-objc/po/ka.po #usr/share/doc/gettext/examples/hello-objc/po/ky.po #usr/share/doc/gettext/examples/hello-objc/po/lv.po #usr/share/doc/gettext/examples/hello-objc/po/ms.po @@ -1343,6 +1422,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-pascal/po/id.po #usr/share/doc/gettext/examples/hello-pascal/po/it.po #usr/share/doc/gettext/examples/hello-pascal/po/ja.po +#usr/share/doc/gettext/examples/hello-pascal/po/ka.po #usr/share/doc/gettext/examples/hello-pascal/po/ky.po #usr/share/doc/gettext/examples/hello-pascal/po/lv.po #usr/share/doc/gettext/examples/hello-pascal/po/ms.po @@ -1399,6 +1479,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-perl/po/id.po #usr/share/doc/gettext/examples/hello-perl/po/it.po #usr/share/doc/gettext/examples/hello-perl/po/ja.po +#usr/share/doc/gettext/examples/hello-perl/po/ka.po #usr/share/doc/gettext/examples/hello-perl/po/ky.po #usr/share/doc/gettext/examples/hello-perl/po/lv.po #usr/share/doc/gettext/examples/hello-perl/po/ms.po @@ -1455,6 +1536,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-php/po/id.po #usr/share/doc/gettext/examples/hello-php/po/it.po #usr/share/doc/gettext/examples/hello-php/po/ja.po +#usr/share/doc/gettext/examples/hello-php/po/ka.po #usr/share/doc/gettext/examples/hello-php/po/ky.po #usr/share/doc/gettext/examples/hello-php/po/lv.po #usr/share/doc/gettext/examples/hello-php/po/ms.po @@ -1510,6 +1592,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-python/po/id.po #usr/share/doc/gettext/examples/hello-python/po/it.po #usr/share/doc/gettext/examples/hello-python/po/ja.po +#usr/share/doc/gettext/examples/hello-python/po/ka.po #usr/share/doc/gettext/examples/hello-python/po/ky.po #usr/share/doc/gettext/examples/hello-python/po/lv.po #usr/share/doc/gettext/examples/hello-python/po/ms.po @@ -1565,6 +1648,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-sh/po/id.po #usr/share/doc/gettext/examples/hello-sh/po/it.po #usr/share/doc/gettext/examples/hello-sh/po/ja.po +#usr/share/doc/gettext/examples/hello-sh/po/ka.po #usr/share/doc/gettext/examples/hello-sh/po/ky.po #usr/share/doc/gettext/examples/hello-sh/po/lv.po #usr/share/doc/gettext/examples/hello-sh/po/ms.po @@ -1620,6 +1704,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-smalltalk/po/id.po #usr/share/doc/gettext/examples/hello-smalltalk/po/it.po #usr/share/doc/gettext/examples/hello-smalltalk/po/ja.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/ka.po #usr/share/doc/gettext/examples/hello-smalltalk/po/ky.po #usr/share/doc/gettext/examples/hello-smalltalk/po/lv.po #usr/share/doc/gettext/examples/hello-smalltalk/po/ms.po @@ -1676,6 +1761,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-tcl-tk/po/id.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/it.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/ja.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/ka.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/ky.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/lv.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/ms.po @@ -1730,6 +1816,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-tcl/po/id.po #usr/share/doc/gettext/examples/hello-tcl/po/it.po #usr/share/doc/gettext/examples/hello-tcl/po/ja.po +#usr/share/doc/gettext/examples/hello-tcl/po/ka.po #usr/share/doc/gettext/examples/hello-tcl/po/ky.po #usr/share/doc/gettext/examples/hello-tcl/po/lv.po #usr/share/doc/gettext/examples/hello-tcl/po/ms.po @@ -1785,6 +1872,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-ycp/po/id.po #usr/share/doc/gettext/examples/hello-ycp/po/it.po #usr/share/doc/gettext/examples/hello-ycp/po/ja.po +#usr/share/doc/gettext/examples/hello-ycp/po/ka.po #usr/share/doc/gettext/examples/hello-ycp/po/ky.po #usr/share/doc/gettext/examples/hello-ycp/po/lv.po #usr/share/doc/gettext/examples/hello-ycp/po/ms.po @@ -1896,16 +1984,16 @@ usr/lib/preloadable_libintl.so #usr/share/doc/libtextstyle/libtextstyle_abt.html #usr/share/doc/libtextstyle/libtextstyle_toc.html #usr/share/gettext -#usr/share/gettext-0.21 -#usr/share/gettext-0.21/its -#usr/share/gettext-0.21/its/glade.loc -#usr/share/gettext-0.21/its/glade1.its -#usr/share/gettext-0.21/its/glade2.its -#usr/share/gettext-0.21/its/gsettings.its -#usr/share/gettext-0.21/its/gsettings.loc -#usr/share/gettext-0.21/its/gtkbuilder.its -#usr/share/gettext-0.21/its/metainfo.its -#usr/share/gettext-0.21/its/metainfo.loc +#usr/share/gettext-0.22 +#usr/share/gettext-0.22/its +#usr/share/gettext-0.22/its/glade.loc +#usr/share/gettext-0.22/its/glade1.its +#usr/share/gettext-0.22/its/glade2.its +#usr/share/gettext-0.22/its/gsettings.its +#usr/share/gettext-0.22/its/gsettings.loc +#usr/share/gettext-0.22/its/gtkbuilder.its +#usr/share/gettext-0.22/its/metainfo.its +#usr/share/gettext-0.22/its/metainfo.loc #usr/share/gettext/ABOUT-NLS #usr/share/gettext/archive.dir.tar.xz #usr/share/gettext/config.rpath diff --git a/config/rootfiles/common/udev b/config/rootfiles/common/udev index 64d33ee6c..e5c9bd01f 100644 --- a/config/rootfiles/common/udev +++ b/config/rootfiles/common/udev @@ -81,7 +81,6 @@ lib/udev/rules.d/75-probe_mtd.rules lib/udev/rules.d/78-sound-card.rules lib/udev/rules.d/80-drivers.rules lib/udev/rules.d/81-net-dhcp.rules -lib/udev/rules.d/90-hwrng.rules lib/udev/rules.d/99-aqm.rules lib/udev/rules.d/99-offloading.rules lib/udev/scsi_id diff --git a/config/rootfiles/core/178/filelists/files b/config/rootfiles/core/178/filelists/files index f7a8b3297..3744bd7a0 100644 --- a/config/rootfiles/core/178/filelists/files +++ b/config/rootfiles/core/178/filelists/files @@ -1 +1,3 @@ +srv/web/ipfire/cgi-bin/extrahd.cgi srv/web/ipfire/cgi-bin/ovpnmain.cgi +var/ipfire/extrahd/bin/extrahd.pl diff --git a/config/rootfiles/core/178/filelists/gettext b/config/rootfiles/core/178/filelists/gettext new file mode 120000 index 000000000..b6c6c6f4f --- /dev/null +++ b/config/rootfiles/core/178/filelists/gettext @@ -0,0 +1 @@ +../../../common/gettext \ No newline at end of file diff --git a/config/rootfiles/oldcore/177/filelists/files b/config/rootfiles/oldcore/177/filelists/files index 5f0034d81..1b9ce3261 100644 --- a/config/rootfiles/oldcore/177/filelists/files +++ b/config/rootfiles/oldcore/177/filelists/files @@ -238,3 +238,4 @@ lib/firmware/rtw89/rtw8851b_fw.bin lib/firmware/rtw89/rtw8852b_fw-1.bin lib/firmware/rtw89/rtw8852c_fw.bin usr/sbin/unbound-dhcp-leases-bridge +var/ipfire/suricata/ruleset-sources diff --git a/config/rootfiles/oldcore/177/update.sh b/config/rootfiles/oldcore/177/update.sh index b2af611c1..2ab1568b9 100644 --- a/config/rootfiles/oldcore/177/update.sh +++ b/config/rootfiles/oldcore/177/update.sh @@ -105,6 +105,7 @@ if [ ! -e "/opt/pakfire/db/installed/meta-rng-tools" ]; then /etc/rc.d/init.d/rngd \ /etc/rc.d/rc*.d/*rngd fi +rm -vf /lib/udev/rules.d/90-hwrng.rules
# Extract files extract_files diff --git a/config/rootfiles/packages/fmt b/config/rootfiles/packages/fmt index 49601ca2b..a1dffc8d6 100644 --- a/config/rootfiles/packages/fmt +++ b/config/rootfiles/packages/fmt @@ -18,6 +18,6 @@ #usr/lib/cmake/fmt/fmt-targets-release.cmake #usr/lib/cmake/fmt/fmt-targets.cmake #usr/lib/libfmt.so -usr/lib/libfmt.so.9 -usr/lib/libfmt.so.9.1.0 +usr/lib/libfmt.so.10 +usr/lib/libfmt.so.10.0.0 #usr/lib/pkgconfig/fmt.pc diff --git a/config/suricata/ruleset-sources b/config/suricata/ruleset-sources index 592cbedf0..14d1b865f 100644 --- a/config/suricata/ruleset-sources +++ b/config/suricata/ruleset-sources @@ -43,7 +43,7 @@ our %Providers = ( website => "https://www.snort.org", tr_string => "community rules", requires_subscription => "False", - dl_url => "https://www.snort.org/rules/community", + dl_url => "https://www.snort.org/downloads/community/community-rules.tar.gz", dl_type => "archive", },
diff --git a/config/udev/90-hwrng.rules b/config/udev/90-hwrng.rules deleted file mode 100644 index cbc555c11..000000000 --- a/config/udev/90-hwrng.rules +++ /dev/null @@ -1,16 +0,0 @@ -# do not edit this file, it will be overwritten on update - -SUBSYSTEM!="tty", GOTO="ipfire_hwrng_end" -KERNEL!="ttyACM[0-9]*", GOTO="ipfire_hwrng_end" - -SUBSYSTEMS=="usb-serial", ENV{.ID_PORT}="$attr{port_number}" - -IMPORT{builtin}="usb_id" -ENV{ID_SERIAL}=="", GOTO="ipfire_hwrng_end" -SUBSYSTEMS=="usb", ENV{ID_USB_INTERFACE_NUM}="$attr{bInterfaceNumber}" -ENV{ID_USB_INTERFACE_NUM}=="", GOTO="ipfire_hwrng_end" - -ATTRS{manufacturer}=="IPFire.org", ATTRS{product}=="Random Number Generator*", ENV{.ID_PORT}=="", SYMLINK+="hwrngtty" RUN+="/bin/stty raw -echo -ixoff -F /dev/hwrngtty 115200" RUN+="/etc/rc.d/init.d/rngd udev-event" - -LABEL="ipfire_hwrng_end" -ACTION=="add|remove", KERNEL=="hw_random", RUN+="/etc/rc.d/init.d/rngd udev-event" diff --git a/html/cgi-bin/extrahd.cgi b/html/cgi-bin/extrahd.cgi index 9dd3a0eee..9cdfc69f8 100644 --- a/html/cgi-bin/extrahd.cgi +++ b/html/cgi-bin/extrahd.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2011 IPFire Team info@ipfire.org # +# Copyright (C) 2023 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 # @@ -29,33 +29,44 @@ require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl";
my %extrahdsettings = (); -my $message = ""; my $errormessage = ""; -my $size = ""; -my $ok = "true"; -my @tmp = (); -my @tmpline = (); -my $tmpentry = ""; -my @devices = (); -my @deviceline = (); -my $deviceentry = ""; -my @scans = (); -my @scanline = (); -my $scanentry = ""; -my @partitions = (); -my @partitionline = (); -my $partitionentry = ""; + +# Hash to store the configured drives. +my %configured_drives; + +# SYSFS directory which contains all block device data. +my $sysfs_block_dir = "/sys/class/block"; + +# Array which contains the valid mount directories. +# Only mounting to subdirectories inside them is allowed. +my @valid_mount_dirs = ( + "/data", + "/media", + "/mnt", +); + +# Grab all available block devices. +my @devices = &get_block_devices(); + +# Grab all known UUID's. +my %uuids = &get_uuids(); + +# Grab all mountpoints. +my %mountpoints = &get_mountpoints(); + +# Omit the file system types of the mounted devices. +my %filesystems = &get_mountedfs(); + +# Gather all used swap devices. +my @swaps = &get_swaps(); + +# The config file which contains the configured devices. my $devicefile = "/var/ipfire/extrahd/devices"; -my $scanfile = "/var/ipfire/extrahd/scan"; -my $partitionsfile = "/var/ipfire/extrahd/partitions";
#workaround to suppress a warning when a variable is used only once my @dummy = ( ${Header::colourgreen}, ${Header::colourred} ); undef (@dummy);
-&General::system("/usr/local/bin/extrahdctrl", "scanhd", "ide"); -&General::system("/usr/local/bin/extrahdctrl", "scanhd", "partitions"); - &Header::showhttpheaders();
### Values that have to be initialized @@ -65,7 +76,6 @@ $extrahdsettings{'DEVICE'} = ''; $extrahdsettings{'ACTION'} = ''; $extrahdsettings{'UUID'} = '';
-&General::readhash("${General::swroot}/extrahd/settings", %extrahdsettings); &Header::getcgihash(%extrahdsettings);
&Header::openpage('ExtraHD', 1, ''); @@ -74,49 +84,93 @@ $extrahdsettings{'UUID'} = ''; ############################################################################################################################ ############################################################################################################################
-if ($extrahdsettings{'ACTION'} eq $Lang::tr{'add'}) -{ - open( FILE, "< $devicefile" ) or die "Unable to read $devicefile"; - @devices = <FILE>; - close FILE; - foreach $deviceentry (sort @devices) - { - @deviceline = split( /;/, $deviceentry ); - if ( "$extrahdsettings{'PATH'}" eq "$deviceline[2]" ) { - $ok = "false"; - $errormessage = "$Lang::tr{'extrahd you cant mount'} $extrahdsettings{'DEVICE'} $Lang::tr{'extrahd to'} $extrahdsettings{'PATH'}$Lang::tr{'extrahd because there is already a device mounted'}."; - } - if ( "$extrahdsettings{'PATH'}" eq "/" ) { - $ok = "false"; - $errormessage = "$Lang::tr{'extrahd you cant mount'} $extrahdsettings{'DEVICE'} $Lang::tr{'extrahd to root'}."; +# +## Add a new device. +# +if ($extrahdsettings{'ACTION'} eq $Lang::tr{'add'}) { + # Check if a mount path has been given. + if (not $extrahdsettings{'PATH'}) { + $errormessage = "$Lang::tr{'extrahd no mount point given'}."; + + # Check if a valid mount path has been choosen. + } elsif(not &is_valid_dir("$extrahdsettings{'PATH'}")) { + $errormessage = "$Lang::tr{'extrahd you cant mount'} $extrahdsettings{'DEVICE'} $Lang::tr{'extrahd to'} $extrahdsettings{'PATH'} $Lang::tr{'extrahd because it is outside the allowed mount path'}."; + + # Check if the given path allready is mounted somewhere. + } elsif(&is_mounted("$extrahdsettings{'PATH'}")) { + $errormessage = "$Lang::tr{'extrahd you cant mount'} $extrahdsettings{'DEVICE'} $Lang::tr{'extrahd to'} $extrahdsettings{'PATH'} $Lang::tr{'extrahd because there is already a device mounted'}."; + } + + # Check against may previously configured drives. + unless ($errormessage) { + # Open device file for reading. + open( FILE, "< $devicefile" ) or die "Unable to read $devicefile"; + my @devices = <FILE>; + close FILE; + + # Loop through the entries line-by-line. + foreach my $entry (sort @devices) { + # Split the line into pieces and assign nice variables. + my ($uuid, $fs, $path) = split( /;/, $entry ); + + # Check if the path is allready used. + if ( "$extrahdsettings{'PATH'}" eq "$path" ) { + $errormessage = "$Lang::tr{'extrahd you cant mount'} $extrahdsettings{'DEVICE'} $Lang::tr{'extrahd to'} $extrahdsettings{'PATH'} $Lang::tr{'extrahd because there is already a device mounted'}."; + } + + # Check if the uuid is allready used. + if ("$extrahdsettings{'DEVICE'} eq $uuid") { + $errormessage = "$extrahdsettings{'DEVICE'} is allready mounted."; + } } }
- if ( "$ok" eq "true" ) { + # Go further if there was no error message. + unless($errormessage) { + # Re-open the device file for writing. open(FILE, ">> $devicefile" ) or die "Unable to write $devicefile"; - print FILE <<END -UUID=$extrahdsettings{'UUID'};$extrahdsettings{'FS'};$extrahdsettings{'PATH'}; -END -; - &General::system("/usr/local/bin/extrahdctrl", "mount", "$extrahdsettings{'PATH'}"); + + # Write the config line. + print FILE "UUID=$extrahdsettings{'UUID'};$extrahdsettings{'FS'};$extrahdsettings{'PATH'};\n"; + + # Close file handle. + close(FILE); + + # Call helper binary to mount the device. + &General::system("/usr/local/bin/extrahdctrl", "mount", "$extrahdsettings{'PATH'}"); } -} -elsif ($extrahdsettings{'ACTION'} eq $Lang::tr{'delete'}) -{ - if ( ! &General::system("/usr/local/bin/extrahdctrl", "umount", "$extrahdsettings{'PATH'}")) { - open( FILE, "< $devicefile" ) or die "Unable to read $devicefile"; - @tmp = <FILE>; - close FILE; - open( FILE, "> $devicefile" ) or die "Unable to write $devicefile"; - foreach $deviceentry (sort @tmp) - { - @tmpline = split( /;/, $deviceentry ); - if ( $tmpline[2] ne $extrahdsettings{'PATH'} ) - { - print FILE $deviceentry; + +# +# Remove an existing one. +# +} elsif ($extrahdsettings{'ACTION'} eq $Lang::tr{'delete'}) { + # Call helper binary to unmount the device. + unless(&General::system("/usr/local/bin/extrahdctrl", "umount", "$extrahdsettings{'PATH'}")) { + # Open the device file for reading. + open(FILE, "< $devicefile" ) or die "Unable to read $devicefile"; + + # Read the file content into a temporary array. + my @tmp = <FILE>; + + # Close file handle. + close(FILE); + + # Re-open device file for writing. + open(FILE, "> $devicefile" ) or die "Unable to write $devicefile"; + + # Loop through the previous read file content. + foreach my $line (sort @tmp) { + # Split line content and assign nice variables. + my ($uuid, $fs, $path) = split( /;/, $line ); + + # Write the line in case it does not contain our element to delete. + if ($path ne $extrahdsettings{'PATH'}) { + print FILE "$line"; } } - close FILE; + + # Close file handle. + close(FILE); } else { $errormessage = "$Lang::tr{'extrahd cant umount'} $extrahdsettings{'PATH'}$Lang::tr{'extrahd maybe the device is in use'}?"; } @@ -132,116 +186,136 @@ if ($errormessage) { ############################################################################################################################ ############################################################################################################################
+&Header::openbox('100%', 'center', $Lang::tr{'extrahd detected drives'}); + + # Re-read mountpoints. + %mountpoints = &get_mountpoints(); + + # Read-in the device config file. open( FILE, "< $devicefile" ) or die "Unable to read $devicefile"; - @devices = <FILE>; - close FILE; + + # Loop through the file content. + while (<FILE>) { + # Cut the line into pieces. + my ($uuid, $fs, $path) = split( /;/, $_ ); + + # Add the found entry to the hash of configured drives. + $configured_drives{$uuid} = $path; + } + + # Close the file handle. + close(FILE); + print <<END <table border='0' width='600' cellspacing="0"> END ; - foreach $deviceentry (sort @devices) - { - @deviceline = split( /;/, $deviceentry ); - my $color="$Header::colourred"; + foreach my $device (sort @devices) { + # Grab the device details. + my $vendor = &get_device_vendor($device); + my $model = &get_device_model($device); + my $bsize = &get_device_size($device);
- # Use safe system_output to get mountpoint details. - my @mountpoint = &General::system_output("/bin/mountpoint", "$deviceline[2]"); + # Convert size into human-readable format. + my $size = &General::formatBytes($bsize);
- if ( ! grep(/not/, @mountpoint)) { - $color=$Header::colourgreen; - } print <<END - <tr><td colspan="4"> </td></tr> - <tr><td align='left'><font color=$color><b>$deviceline[0]</b></font></td> - <td align='left'>$deviceline[1]</td> - <td align='left'>$deviceline[2]</td> - <td align='center'> - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='hidden' name='DEVICE' value='$deviceline[0]' /> - <input type='hidden' name='FS' value='$deviceline[1]' /> - <input type='hidden' name='PATH' value='$deviceline[2]' /> - <input type='hidden' name='ACTION' value='$Lang::tr{'delete'}' /> - <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' /> - </form></td></tr> -END -; - } - print <<END - </table> -END -; -&Header::openbox('100%', 'center', $Lang::tr{'extrahd detected drives'}); - print <<END - <table border='0' width='600' cellspacing="0"> + <tr><td colspan="5"> </td></tr> + <tr><td align='left' colspan="2"><b>/dev/$device</b></td> + <td align='center' colspan="2">$vendor $model</td> + + <td align='center'>$Lang::tr{'size'} $size</td> + <td> </td></tr> + <tr><td colspan="5"> </td></tr> END ; - open( FILE, "< $scanfile" ) or die "Unable to read $scanfile"; - @scans = <FILE>; - close FILE; - open( FILE, "< $partitionsfile" ) or die "Unable to read $partitionsfile"; - @partitions = <FILE>; - close FILE; - foreach $scanentry (sort @scans) - { - @scanline = split( /;/, $scanentry ); - # remove wrong entries like usb controller name - if ($scanline[1] ne "\n") - { + + # Grab the known partitions of the current block device. + my @partitions = &get_device_partitions($device); + + foreach my $partition (@partitions) { + my $disabled; + + # Omit the partition size. + my $bsize = &get_device_size($partition); + + # Convert into human-readable format. + my $size = &General::formatBytes($bsize); + + # Try to omit the used filesystem. + my $fs = $filesystems{$partition}; + + # Get the mountpoint. + my $mountpoint = $mountpoints{$partition}; + + # If no mountpoint could be determined try to grab from + # configured drives. + unless($mountpoint) { + my $uuid = $uuids{$partition}; + + # Build uuid string. + $uuid = "UUID=" . $uuid; + + # Try to obtain a possible moutpoint from configured drives. + $mountpoint = $configured_drives{$uuid} if ($configured_drives{$uuid}); + } + + # Check if the mountpoint is used as root or boot device. + if ($mountpoint eq "/" or $mountpoint =~ "^/boot") { + $disabled = "disabled"; + + # Check if it is mounted. + } elsif(&is_mounted($mountpoint)) { + $disabled = "disabled"; + + # Check if the device is used as swap. + } elsif (&is_swap($partition)) { + $disabled = "disabled"; + $mountpoint = "swap"; + $fs = "swap"; + } + print <<END - <tr><td colspan="5"> </td></tr> - <tr><td align='left' colspan="2"><b>/dev/$scanline[0]</b></td> - <td align='center' colspan="2">$scanline[1]</td> -END -;
- } - foreach $partitionentry (sort @partitions) - { - @partitionline = split( /;/, $partitionentry ); - if ( "$partitionline[0]" eq "$scanline[0]" ) { - $size = int($partitionline[1] / 1024); - print <<END - <td align='center'>$Lang::tr{'size'} $size MB</td> - <td> </td></tr> - <tr><td colspan="5"> </td></tr> + <form method='post' action='$ENV{'SCRIPT_NAME'}'> + <tr><td align="left" colspan=5><strong>UUID=$uuids{$partition}</strong></td></tr> + <tr> + <td align="list">/dev/$partition</td> + <td align="center">$Lang::tr{'size'} $size</td> + <td align="center">$fs</td> + <td align="center"><input type='text' name='PATH' value='$mountpoint' $disabled></td> + <td align="center"> + <input type='hidden' name='DEVICE' value='/dev/$partition' /> + <input type='hidden' name='UUID' value='$uuids{$partition}' /> END ; - } - } + # Check if the mountpoint refers to a known configured drive. + if(&is_configured($mountpoint)) { + print "<input type='hidden' name='ACTION' value='$Lang::tr{'delete'}'>\n"; + print "<input type='hidden' name='PATH' value='$mountpoint'>\n"; + + # Check if the device is mounted properly. + if(&is_mounted($mountpoint)) { + print "<img src='/images/updbooster/updxl-led-green.gif' alt='$Lang::tr{'extrahd mounted'}' title='$Lang::tr{'extrahd mounted'}'> \n"; + } else { + print "<img src='/images/updbooster/updxl-led-red.gif' alt='$Lang::tr{'extrahd not mounted'}' title='$Lang::tr{'extrahd not mounted'}'> \n"; + } + + print "<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif'>\n"; + } else { + unless($disabled) { + print "<input type='hidden' name='ACTION' value='$Lang::tr{'add'}'>\n"; + print "<input type='hidden' name='FS' value='auto'>\n"; + print "<img src='/images/updbooster/updxl-led-gray.gif' alt='$Lang::tr{'extrahd not configured'}' title='$Lang::tr{'extrahd not configured'}'> \n"; + print "<input type='image' alt='$Lang::tr{'add'}' title='$Lang::tr{'add'}' src='/images/add.gif'>\n"; + } + }
- foreach $partitionentry (sort @partitions) - { - @partitionline = split( /;/, $partitionentry ); - if (( "$partitionline[0]" =~ /^$scanline[0]/ ) && !( "$partitionline[2]" eq "" )) { - $size = int($partitionline[1] / 1024); print <<END - <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <tr><td align="left" colspan=5><strong>UUID=$partitionline[2]</strong></td></tr> - <tr> - <td align="list">/dev/$partitionline[0]</td> - <td align="center">$Lang::tr{'size'} $size MB</td> - <td align="center"><select name="FS"> - <option value="auto">auto</option> - <option value="ext3">ext3</option> - <option value="ext4">ext4</option> - <option value="reiserfs">reiserfs</option> - <option value="vfat">fat</option> - <option value="ntfs-3g">ntfs (experimental)</option> - </select></td> - <td align="center"><input type='text' name='PATH' value=/mnt/harddisk /></td> - <td align="center"> - <input type='hidden' name='DEVICE' value='$partitionline[0]' /> - <input type='hidden' name='UUID' value='$partitionline[2]' /> - <input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /> - <input type='image' alt='$Lang::tr{'add'}' title='$Lang::tr{'add'}' src='/images/add.gif' /> </form></td></tr> END -; +; }
-END -; - } - } }
print <<END @@ -255,3 +329,379 @@ END
&Header::closebigbox(); &Header::closepage(); + +# +## Function which return an array with all available block devices. +# +sub get_block_devices () { + my @devices; + + # Open directory from kernel sysfs. + opendir(DEVICES, "/sys/block"); + + # Loop through the directory. + while(readdir(DEVICES)) { + # Skip . and .. + next if($_ =~ /^.$/); + next if($_ =~ /^..$/); + + # Skip any loopback and ram devices. + next if($_ =~ "^loop"); + next if($_ =~ "^ram"); + + # Add the device to the array of found devices. + push(@devices, $_); + } + + # Close directory handle. + closedir(DEVICES); + + # Return the devices array. + return @devices; +} + +# +## Function which return all partitions of a given block device. +# +sub get_device_partitions ($) { + my ($device) = @_; + + # Array to store the known partitions for the given + # device. + my @partitions; + + # Assign device directory. + my $device_dir = "$sysfs_block_dir/$device"; + + # Abort and return nothing if the device dir does not exist. + return unless(-d "$device_dir"); + + opendir(DEVICE, "$sysfs_block_dir/$device"); + while(readdir(DEVICE)) { + next unless($_ =~ "^$device"); + + push(@partitions, $_); + } + + closedir(DEVICE); + + @partitions = sort(@partitions); + + return @partitions; +} + +# +## Returns the vendor of a given block device. +# +sub get_device_vendor ($) { + my ($device) = @_; + + # Assign device directory. + my $device_dir = "$sysfs_block_dir/$device"; + + # Abort and return nothing if the device dir does not exist + # or no vendor file exists. + return unless(-d "$device_dir"); + return unless(-f "$device_dir/device/vendor"); + + # Open and read-in the device vendor. + open(VENDOR, "$device_dir/device/vendor"); + my $vendor = <VENDOR>; + close(VENDOR); + + # Abort and return nothing if no vendor could be read. + return unless($vendor); + + # Remove any newlines from the vendor string. + chomp($vendor); + + # Return the omited vendor. + return $vendor; +} + +# +## Returns the model name (string) of a given block device. +# +sub get_device_model ($) { + my ($device) = @_; + + # Assign device directory. + my $device_dir = "$sysfs_block_dir/$device"; + + # Abort and return nothing if the device dir does not exist + # or no model file exists. + return unless(-d "$device_dir"); + return unless(-f "$device_dir/device/model"); + + # Open and read-in the device model. + open(MODEL, "$device_dir/device/model"); + my $model = <MODEL>; + close(MODEL); + + # Abort and return nothing if no model could be read. + return unless($model); + + # Remove any newlines from the model string. + chomp($model); + + # Return the model string. + return $model; +} + +# +## Returns the size of a given device in bytes. +# +sub get_device_size ($) { + my ($device) = @_; + + # Assign device directory. + my $device_dir = "$sysfs_block_dir/$device"; + + # Abort and return nothing if the device dir does not exist + # or no size file exists. + return unless(-d "$device_dir"); + return unless(-f "$device_dir/size"); + + # Open and read-in the device size. + open(SIZE, "$device_dir/size"); + my $size = <SIZE>; + close(SIZE); + + # Abort and return nothing if the size could not be read. + return unless($size); + + # Remove any newlines for the size string. + chomp($size); + + # The omited size only contains the amount of blocks from the + # given device. To convert this into bytes we have to multiply this + # value with 512 bytes for each block. This is a static value used by + # the linux kernel. + $size = $size * 512; + + # Return the size in bytes. + return $size; +} + +# +## Function which returns all currently mounted devices as a hash. +## example: "sda1" -> "/boot" +# +sub get_mountpoints () { + my %mounts; + + # Open and read-in the current mounts from the + # kernel file system. + open(MOUNT, "/proc/mounts"); + + # Loop through the known mounts. + while(<MOUNT>) { + # Skip mounts which does not belong to a device. + next unless ($_ =~ "^/dev"); + + # Cut the line into pieces and assign nice variables. + my ($dev, $mpoint, $fs, $options, $a, $b) = split(/ /, $_); + + # Split the device name. + my @tmp = split("/", $dev); + + # Assign the plain device name to a new variable. + # It is the last element of the array. + my $device = $tmp[-1]; + + # Add the mountpoint to the hash of mountpoints. + $mounts{"$device"} = $mpoint; + } + + # Close file handle. + close(MOUNT); + + # Return the hash of known mountpoints. + return %mounts; +} + +sub get_swaps () { + my @swaps; + + # Open and read the swaps file. + open(SWAP, "/proc/swaps"); + + # Loop though the file content. + while(<SWAP>) { + # Skip lines which does not belong to a device. + next unless ($_ =~ "^/dev"); + + # Split the line and assign nice variables. + my ($dev, $type, $size, $used, $prio) = split(/ /, $_); + + # Cut the device line into pieces. + my @tmp = split("/", $dev); + + my $device = @tmp[-1]; + + # Add the found swap to the array of swaps. + push(@swaps, $device); + } + + # Close file handle. + close(SWAP); + + # Sort the array. + @swaps = sort(@swaps); + + # Return the array. + return @swaps; +} + +# +## Function with returns the mounted devices and the used filesystems as a hash. +## Example: "sda1" -> "ext4" +# +sub get_mountedfs () { + my %mountedfs; + + # Open and read the current mounts from the kernel + # file system. + open(MOUNT, "/proc/mounts"); + + # Loop through the known mounts. + while(<MOUNT>) { + # Skip mounts which does not belong to a device. + next unless ($_ =~ "^/dev"); + + # Split line and assign nice variables. + my ($dev, $mpoint, $fs, $options, $a, $b) = split(/ /, $_); + + # Cut the device line into pieces. + my @tmp = split("/", $dev); + + # Assign the plain device name to a variable + # It is the last element of the temporary array. + my $device = $tmp[-1]; + + # Convert the filesystem into lower case format. + $fs = lc($fs); + + # Add the mounted file system. + $mountedfs{$device} = $fs; + } + + # Close file handle. + close(MOUNT); + + # Return the hash with the mounted filesystems. + return %mountedfs; +} + +# +## Function which returns all known UUID's as a hash. +## Example: "sda1" -> "1234-5678-abcd" +# +sub get_uuids () { + my %uuids; + + # Directory where the uuid mappings can be found. + my $uuid_dir = "/dev/disk/by-uuid"; + + # Open uuid directory and read-in the current known uuids. + opendir(UUIDS, "$uuid_dir"); + + # Loop through the uuids. + foreach my $uuid (readdir(UUIDS)) { + # Skip . and .. + next if($uuid eq "." or $uuid eq ".."); + + # Skip everything which is not a symbolic link. + next unless(-l "$uuid_dir/$uuid"); + + # Resolve the target of the symbolic link. + my $target = readlink("$uuid_dir/$uuid"); + + # Split the link target into pieces. + my @tmp = split("/", $target); + + # Assign the last element of the array to the dev variable. + my $dev = "$tmp[-1]"; + + # Add the device and uuid to the hash of uuids. + $uuids{$dev} = $uuid; + } + + # Close directory handle. + closedir(UUIDS); + + # Return the hash of uuids. + return %uuids; +} + +# +## Returns the device name of a given uuid. +# +sub device_by_uuid ($) { + my ($uuid) = @_; + + # Reverse the main uuids hash. + my %uuids = reverse %uuids; + + # Lookup and return the device name. + return $uuids{$uuid}; +} + +# +## Returns "True" in case a given path is a known mountpoint. +# +sub is_mounted ($) { + my ($mpoint) = @_; + + my %mountpoints = reverse %mountpoints; + + # Return "True" if the requested mountpoint is known and + # therefore mounted. + return 1 if($mountpoints{$mpoint}); +} + +# +## Returns "True" if a given mountpoint is a subdirectory of one +## of the directories specified by the valid_mount_dirs array abouve. +# +sub is_valid_dir ($) { + my ($mpoint) = @_; + + # Do not allow "/mnt" or "/media" as mount points. + return if($mpoint eq "/mnt"); + return if($mpoint eq "/media"); + + # Split the given mountpoint into pieces and store them + # in a temporay array. + my @tmp = split("/", $mpoint); + + # Exit and return nothing if the temporary array is empty. + return unless(@tmp); + + # Build the root path based on the given mount point. + my $root_path = "/" . @tmp[1]; + + # Check if the root path is valid. + return 1 if(grep /$root_path/, @valid_mount_dirs); +} + +# +# Returns "True" if a device is used as swap. +# +sub is_swap ($) { + my ($device) = @_; + + return 1 if(grep /$device/, @swaps); +} + +# +## Returns "True" if a drive is a configured one. +# +sub is_configured ($) { + my ($path) = @_; + + # Loop through the hash of configured drives. + foreach my $uuid (keys %configured_drives) { + return 1 if($configured_drives{$uuid} eq "$path"); + } +} diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index 33730f0c3..37b17b431 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -1025,11 +1025,16 @@ 'external access rule removed' => ' Regel für externen Zugang entfernt; starte Zugangskontroller neu', 'external aliases configuration' => 'Externe Alias-Konfiguration', 'extrahd' => 'ExtraHD', +'extrahd because it is outside the allowed mount path' => 'mounten, da sich das Ziel außerhalb der erlaubten Pfade befindet', 'extrahd because there is already a device mounted' => ' mounten, weil bereits ein Gerät gemountet ist', 'extrahd cant umount' => 'Konnte', 'extrahd detected drives' => 'Gefundene Laufwerke', 'extrahd install or load driver' => 'Wenn Ihre Festplatte nicht angezeigt wird, müssen Sie zuerst den Treiber laden oder ggf. auch nachinstallieren. Wenn diese jedoch angezeigt wird, aber keine Partitionen zu sehen sind, müssen diese erst angelegt werden.', 'extrahd maybe the device is in use' => 'nicht mounten. Vielleicht wird das Gerät bereits verwendet', +'extrahd no mount point given' => 'Kein Pfad zum mounten angegeben', +'extrahd mounted' => 'Gemounted', +'extrahd not mounted' => 'Nicht gemounted', +'extrahd not configured' => 'Nicht konfiguriert', 'extrahd to' => 'nicht nach', 'extrahd to root' => 'nicht nach root mounten', 'extrahd unable to read' => 'Lesefehler von', diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 729516538..b00ecc5eb 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -1072,11 +1072,16 @@ 'external access rule removed' => ' External access rule removed; restarting access controller', 'external aliases configuration' => 'External aliases configuration', 'extrahd' => 'ExtraHD', +'extrahd because it it outside the allowed mount path' => ', because it is outside the allowed mount path', 'extrahd because there is already a device mounted' => ', because there is already a device mounted', 'extrahd cant umount' => 'Can't umount', 'extrahd detected drives' => 'detected drives', 'extrahd install or load driver' => 'If your device isn't listed here, you need to install or load the driver.<br />If you can see your device but no partitions you have to create them first.', +'extrahd no mount point given', => 'No mount point given', 'extrahd maybe the device is in use' => '. Maybe the device is in use', +'extrahd mounted' => 'Mounted', +'extrahd not mounted' => 'Not mounted', +'extrahd not configured' => 'Not configured', 'extrahd to' => 'to', 'extrahd to root' => 'to root', 'extrahd unable to read' => 'Unable to read', diff --git a/lfs/fmt b/lfs/fmt index 73da2cab5..21b481863 100644 --- a/lfs/fmt +++ b/lfs/fmt @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2022 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 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 # @@ -26,7 +26,7 @@ include Config
SUMMARY = Open-source formatting library for C++
-VER = 9.1.0 +VER = 10.0.0
THISAPP = fmt-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -34,7 +34,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = fmt -PAK_VER = 2 +PAK_VER = 3 SUP_ARCH = aarch64 x86_64
DEPS = @@ -47,7 +47,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = ff1daa43140615b63aeb1ecd0aa1c32d24decfd5006805080293ef3db04d544c0445a30e8da0d985a6f5a25ad48ce4f6ae61e52da5ea4a4d3b031c212da38b18 +$(DL_FILE)_BLAKE2 = 4e778fd352ed084b9790b59b4875fc6ed04b7a58a40b3673854dd00763f492cc838970e8faef77b5f9db5e912a2fc77943aedb4ca4afb64a3736129cc4611809
install : $(TARGET)
diff --git a/lfs/gettext b/lfs/gettext index adbec52e1..57fead8ad 100644 --- a/lfs/gettext +++ b/lfs/gettext @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2018 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 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 = 0.21 +VER = 0.22
THISAPP = gettext-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -49,7 +49,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = e36418323c79f582d13777083b455ae76ccb29e41a8259a2f4d6d9f5d8e2ac7c8ecc4df1b1fa2e9838c819cb27345fe254772398bdb88b3315410866048f755a +$(DL_FILE)_BLAKE2 = e91c82eb793897bd7ed727503e9d6e72a47027adf51ca76cf5c936437c434e910508814b1d03b12694c5e87156018683cb2c8cc51637b121313ed41155bcd3e5
install : $(TARGET)
diff --git a/lfs/mpd b/lfs/mpd index 9010e70f8..abd560798 100644 --- a/lfs/mpd +++ b/lfs/mpd @@ -26,7 +26,7 @@ include Config
SUMMARY = Music Player Daemon
-VER = 0.23.12 +VER = 0.23.13
THISAPP = mpd-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -34,7 +34,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/${THISAPP} TARGET = $(DIR_INFO)/$(THISAPP) PROG = mpd -PAK_VER = 31 +PAK_VER = 32 SUP_ARCH = aarch64 x86_64
DEPS = alsa avahi faad2 ffmpeg flac lame libmad libshout libogg libid3tag libvorbis opus soxr fmt @@ -49,7 +49,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = b218d9f477e92842638e3fba44c84957a3f656adaaf1ece998847db8d64883b8c997703206f74b37043888757f5f628799a3a35b25ea991f9ad00df1c4ad5e71 +$(DL_FILE)_BLAKE2 = 02907f08cc504d0fbf703179b333b301c7ad8fc8535d85305faa7962dd7faa164f4492286902cb48eaf3db2a1445b541b1261c18a89ca8a73e80016af9581e26
install : $(TARGET)
@@ -83,20 +83,21 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) $(UPDATE_AUTOMAKE) - cd $(DIR_APP) && meson --prefix=/usr \ - --sysconfdir=/etc \ - --libdir=/usr/lib \ - -D ipv6=disabled \ - -D sqlite=disabled \ - -D smbclient=disabled \ - -D id3tag=enabled \ - -D vorbis=enabled \ - -D expat=enabled \ - -D ffmpeg=enabled \ - -D flac=enabled \ - -D lame=enabled \ - -D upnp=disabled \ - -D icu=disabled \ + cd $(DIR_APP) && meson setup \ + --prefix=/usr \ + --sysconfdir=/etc \ + --libdir=/usr/lib \ + -D ipv6=disabled \ + -D sqlite=disabled \ + -D smbclient=disabled \ + -D id3tag=enabled \ + -D vorbis=enabled \ + -D expat=enabled \ + -D ffmpeg=enabled \ + -D flac=enabled \ + -D lame=enabled \ + -D upnp=disabled \ + -D icu=disabled \ builddir/ cd $(DIR_APP) && ninja -C builddir/ $(MAKETUNING) cd $(DIR_APP) && ninja -C builddir/ install diff --git a/lfs/procps b/lfs/procps index a8f1c2c82..7aa41909a 100644 --- a/lfs/procps +++ b/lfs/procps @@ -70,6 +70,7 @@ $(subst %,%_BLAKE2,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/procps-v4.0.3_address_build_failures_with_gettext_0.22.patch cd $(DIR_APP) && ./autogen.sh cd $(DIR_APP) && ./configure \ --prefix=/usr \ diff --git a/lfs/rng-tools b/lfs/rng-tools index c3f1e205c..fb0d729e3 100644 --- a/lfs/rng-tools +++ b/lfs/rng-tools @@ -33,7 +33,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = rng-tools -PAK_VER = 3 +PAK_VER = 4
DEPS =
diff --git a/lfs/udev b/lfs/udev index 0046347b3..eb01ae848 100644 --- a/lfs/udev +++ b/lfs/udev @@ -122,10 +122,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) install -v -m 644 $(DIR_SRC)/config/udev/60-net.rules \ /lib/udev/rules.d
- # Install hwrng rules. - install -v -m 644 $(DIR_SRC)/config/udev/90-hwrng.rules \ - /lib/udev/rules.d - # Install AQM rules install -v -m 644 $(DIR_SRC)/config/udev/99-aqm.rules \ /lib/udev/rules.d diff --git a/src/initscripts/packages/rngd b/src/initscripts/packages/rngd index ba3e72d3a..61e2821aa 100644 --- a/src/initscripts/packages/rngd +++ b/src/initscripts/packages/rngd @@ -24,18 +24,8 @@
case "${1}" in start) - if pidofproc -s /usr/sbin/rngd; then - boot_mesg "Random Number Generator Daemon is already running..." - echo_ok; - exit 0 - fi - if [ -e /dev/hwrngtty ]; then - HWRNG=/dev/hwrngtty - else - HWRNG=/dev/hwrng - fi boot_mesg "Starting Random Number Generator Daemon..." - loadproc /usr/sbin/rngd -r $HWRNG --quiet + loadproc /usr/sbin/rngd --quiet ;;
stop) @@ -53,10 +43,6 @@ case "${1}" in statusproc /usr/sbin/rngd ;;
- udev-event) - $0 restart &>/dev/null - ;; - *) echo "Usage: ${0} {start|stop|restart|status}" exit 1 diff --git a/src/patches/procps-v4.0.3_address_build_failures_with_gettext_0.22.patch b/src/patches/procps-v4.0.3_address_build_failures_with_gettext_0.22.patch new file mode 100644 index 000000000..6552151f2 --- /dev/null +++ b/src/patches/procps-v4.0.3_address_build_failures_with_gettext_0.22.patch @@ -0,0 +1,20 @@ +--- procps-v4.0.3/po/fr.po.orig 2023-02-15 21:26:15.000000000 +0100 ++++ procps-v4.0.3/po/fr.po 2023-07-28 19:45:59.065599580 +0200 +@@ -3800,7 +3800,7 @@ + "Type 'q' or <Esc> to continue " + msgstr "" + "Aide pour les commandes interactives~2 - %s\n" +-"Fenêtre ~1%s~6: ~1Mode cumulatif ~3%s~2. ~1Système~6: ~1Délai ~3%.1lf " ++"Fenêtre ~1%s~6: ~1Mode cumulatif ~3%s~2. ~1Système~6: ~1Délai ~3%.1f " + "secs~2; ~1Mode sûr ~3%s~2.\n" + "\n" + " Z~5,~1B~5,E,e Global: «~1Z~2» couleurs; «~1B~2» gras; «~1E~2»/«~1e~2» " +@@ -4723,7 +4723,7 @@ + #: src/watch.c:486 + #, c-format + msgid "Every %.1fs: " +-msgstr "Toutes les %.1lfs: " ++msgstr "Toutes les %.1fs: " + + #: src/watch.c:487 + #, c-format
hooks/post-receive -- IPFire 2.x development tree