- add BB_APPLET_RUNLEVEL used by emdebian via /etc/init.d/rc. Note that we leave the buggy CONFIG_* namespace now, so please fix any applet you thouch.
This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)
No binary (build failed)
—
(log yok)
| @@ -565,6 +565,9 @@ | |
| #ifdef CONFIG_RUN_PARTS | |
| APPLET_ODDNAME("run-parts", run_parts_main, _BB_DIR_BIN, _BB_SUID_NEVER, run_parts) | |
| #endif | |
| + | #if BB_APPLET_RUNLEVEL |
| + | APPLET(runlevel, runlevel_main, _BB_DIR_SBIN, _BB_SUID_NEVER) |
| + | #endif |
| #ifdef CONFIG_RX | |
| APPLET(rx, rx_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER) | |
| #endif | |
| @@ -2450,6 +2450,18 @@ | |
| "\t-a ARG\tPass ARG as an argument for every program invoked\n" \ | |
| "\t-u MASK\tSet the umask to MASK before executing every program" | |
| + | #if BB_APPLET_RUNLEVEL |
| + | #define runlevel_trivial_usage \ |
| + | "[utmp]" |
| + | #define runlevel_full_usage \ |
| + | "Find the current and previous system runlevel.\n\n" \ |
| + | "If no utmp file exists or if no runlevel record can be found,\n" \ |
| + | "runlevel prints \"unknown\"" |
| + | #define runlevel_example_usage \ |
| + | "$ runlevel /var/run/utmp\n" \ |
| + | "N 2" |
| + | #endif |
| + | |
| #define rx_trivial_usage \ | |
| "FILE" | |
| #define rx_full_usage \ | |
| @@ -255,6 +255,15 @@ config CONFIG_MT | |
| to advance or rewind a tape past a specified number of archive | |
| files on the tape. | |
| + | config BB_APPLET_RUNLEVEL |
| + | bool "runlevel" |
| + | default n |
| + | help |
| + | find the current and previous system runlevel. |
| + | |
| + | This applet uses utmp but does not rely on busybox supporing |
| + | utmp on purpose. It is used by e.g. emdebian via /etc/init.d/rc. |
| + | |
| config CONFIG_RX | |
| bool "rx" | |
| default n | |
| @@ -24,6 +24,7 @@ MISCUTILS-${CONFIG_LESS} += less.o | |
| MISCUTILS-$(CONFIG_MAKEDEVS) += makedevs.o | |
| MISCUTILS-$(CONFIG_MOUNTPOINT) += mountpoint.o | |
| MISCUTILS-$(CONFIG_MT) += mt.o | |
| + | MISCUTILS-$(BB_APPLET_RUNLEVEL) += runlevel.o |
| MISCUTILS-$(CONFIG_RX) += rx.o | |
| MISCUTILS-$(CONFIG_SETSID) += setsid.o | |
| MISCUTILS-$(CONFIG_STRINGS) += strings.o | |
| @@ -0,0 +1,43 @@ | |
| + | /* |
| + | * runlevel Prints out the previous and the current runlevel. |
| + | * |
| + | * Version: @(#)runlevel 1.20 16-Apr-1997 MvS |
| + | * |
| + | * This file is part of the sysvinit suite, |
| + | * Copyright 1991-1997 Miquel van Smoorenburg. |
| + | * |
| + | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. |
| + | * |
| + | * initially busyboxified by Bernhard Fischer |
| + | */ |
| + | |
| + | #include <stdio.h> |
| + | #include <utmp.h> |
| + | #include <time.h> |
| + | #include <stdlib.h> |
| + | |
| + | #include "busybox.h" |
| + | |
| + | int runlevel_main(int argc, char *argv[]) |
| + | { |
| + | struct utmp *ut; |
| + | char prev; |
| + | |
| + | if (argc > 1) utmpname(argv[1]); |
| + | |
| + | setutent(); |
| + | while ((ut = getutent()) != NULL) { |
| + | if (ut->ut_type == RUN_LVL) { |
| + | prev = ut->ut_pid / 256; |
| + | if (prev == 0) prev = 'N'; |
| + | printf("%c %c\n", prev, ut->ut_pid % 256); |
| + | endutent(); |
| + | return (0); |
| + | } |
| + | } |
| + | |
| + | printf("unknown\n"); |
| + | endutent(); |
| + | return (1); |
| + | } |
| + | |