Compare commits
	
		
			8 Commits
		
	
	
		
			0.20.x
			...
			funtoo-ope
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 96ef50c2f9 | ||
|   | edb7e73b34 | ||
|   | a1ab17889d | ||
|   | 67b2255ebb | ||
|   | 6eace7dc5a | ||
|   | 11e1f4d30d | ||
|   | c30a8d2c3c | ||
|   | 419af8f0aa | 
| @@ -1,3 +1,3 @@ | ||||
| NAME=		openrc | ||||
| VERSION=	0.13 | ||||
| VERSION=	0.12.1 | ||||
| PKG=		${NAME}-${VERSION} | ||||
|   | ||||
| @@ -1,2 +1,2 @@ | ||||
| # Set to the hostname of this machine | ||||
| # Set to the fully-qualified hostname of this machine | ||||
| hostname="localhost" | ||||
|   | ||||
							
								
								
									
										1
									
								
								init.d/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								init.d/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -3,7 +3,6 @@ fsck | ||||
| hostname | ||||
| local | ||||
| localmount | ||||
| loopback | ||||
| moused | ||||
| netmount | ||||
| network | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| include ../mk/net.mk | ||||
|  | ||||
| DIR=	${INITDIR} | ||||
| SRCS=	bootmisc.in fsck.in hostname.in local.in localmount.in loopback.in \ | ||||
| SRCS=	bootmisc.in fsck.in hostname.in local.in localmount.in \ | ||||
| 	netmount.in root.in savecache.in swap.in swapfiles.in \ | ||||
| 	tmpfiles.setup.in swclock.in sysctl.in urandom.in ${SRCS-${OS}} | ||||
| BIN=	${OBJS} | ||||
|   | ||||
| @@ -1,18 +1,42 @@ | ||||
| #!@SBINDIR@/runscript | ||||
| #!@PREFIX@/sbin/runscript | ||||
| # Copyright (c) 2007-2009 Roy Marples <roy@marples.name> | ||||
| # Released under the 2-clause BSD license. | ||||
|  | ||||
| description="Sets the hostname of the machine." | ||||
|  | ||||
| depend() { | ||||
| 	keyword -prefix -lxc | ||||
| 	need root | ||||
| } | ||||
|  | ||||
| start() | ||||
| { | ||||
| 	# HOSTNAME variable used to be defined in caps in conf.d/hostname. | ||||
| 	# It is also a magic variable in bash. | ||||
| 	hostname=${hostname-${HOSTNAME-localhost}} # checkbashisms: false positive | ||||
| 	hostname=${hostname-${HOSTNAME-localhost}} | ||||
| 	out=$hostname | ||||
| 	short=${hostname%%.*} | ||||
| 	if [ "$short" != "$hostname" ]; then | ||||
| 		out="$out $short" | ||||
| 	fi | ||||
| 	if [ "$nisdomainname" != "" ]; then | ||||
| 		ebegin "Setting NIS domain name to $nisdomainname" | ||||
| 		nisdomainname $nisdomainname | ||||
| 		eend $? "Failed to set the NIS domain name" | ||||
| 	fi | ||||
| 	if [ "$short" != "localhost" ]; then | ||||
| 		out="$out localhost" | ||||
| 	fi | ||||
| 	if [ "$hostname" != "localhost.localdomain" ]; then | ||||
| 		out="$out localhost.localdomain" | ||||
| 	fi | ||||
| 	[ -n "$aliases" ] && out="$out $aliases" | ||||
| 	ebegin "Configuring /etc/hosts" | ||||
| 	[ -e /etc/hosts ] && sed -i -e '/[[:space:]]*127.0.0.1[[:space:]]/d' -e '/[[:space:]]*::1[[:space:]]/d' /etc/hosts | ||||
| 	cat <<END >> /etc/hosts | ||||
| 127.0.0.1	$out | ||||
| ::1		$out | ||||
| END | ||||
| 	chmod 0644 /etc/hosts | ||||
| 	eend $? | ||||
| 	[ "$RC_SYS" = "LXC" ] && return 0 | ||||
| 	ebegin "Setting hostname to $hostname" | ||||
| 	hostname "$hostname" | ||||
| 	eend $? "Failed to set the hostname" | ||||
|   | ||||
| @@ -1,35 +0,0 @@ | ||||
| #!@SBINDIR@/runscript | ||||
| # Copyright (c) 2013 William Hubbs <w.d.hubbs@gmail.com> | ||||
| # Released under the 2-clause BSD license. | ||||
|  | ||||
| description="Configures the loopback interface." | ||||
|  | ||||
| depend() | ||||
| { | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| start() | ||||
| { | ||||
| 	if [ "$RC_UNAME" = Linux ]; then | ||||
| 		ebegin "Bringing up network interface lo" | ||||
| 		if type ip > /dev/null 2>&1; then | ||||
| 			ip addr add 127.0.0.1/8 dev lo brd + scope host | ||||
| 			ip route add 127.0.0.0/8 dev lo scope host | ||||
| 			ip link set lo up | ||||
| 		else | ||||
| 			ifconfig lo 127.0.0.1 netmask 255.0.0.0 | ||||
| 			route add -net 127.0.0.0 netmask 255.0.0.0 gw 127.0.0.1 | ||||
| 		fi | ||||
| 	else | ||||
| 		ebegin "Bringing up network interface lo0" | ||||
| 		ifconfig lo0 127.0.0.1 netmask 255.0.0.0 | ||||
| 		route -q add -inet 127.0.0.0 -netmask 255.0.0.0 127.0.0.1 | ||||
| 	fi | ||||
| 	eend $? | ||||
| } | ||||
|  | ||||
| stop() | ||||
| { | ||||
| 	return 0 | ||||
| } | ||||
| @@ -1,11 +1,11 @@ | ||||
| #!@SBINDIR@/runscript | ||||
| #!@PREFIX@/sbin/runscript | ||||
| # Copyright (c) 2007-2008 Roy Marples <roy@marples.name> | ||||
| # Released under the 2-clause BSD license. | ||||
|  | ||||
| depend() | ||||
| { | ||||
| 	before bootmisc logger | ||||
| 	keyword -lxc -prefix -vserver | ||||
| 	keyword -lxc -vserver | ||||
| } | ||||
|  | ||||
| start() | ||||
| @@ -15,6 +15,14 @@ start() | ||||
| 	ebegin "Configuring kernel parameters" | ||||
| 	eindent | ||||
|  | ||||
| 	# default sysctl System V max shared memory to 1/4 of RAM: | ||||
| 	mem_bytes=`awk '/MemTotal:/ { printf "%0.f",$2 * 1024}' /proc/meminfo` | ||||
| 	mem_max=`expr $mem_bytes / 4` | ||||
| 	page_size=`getconf PAGE_SIZE` | ||||
| 	shmall=`expr $mem_bytes / $page_size` | ||||
| 	sysctl kernel.shmmax=$mem_max > /dev/null | ||||
| 	sysctl kernel.shmall=$shmall > /dev/null | ||||
|  | ||||
| 	for conf in @SYSCONFDIR@/sysctl.conf @SYSCONFDIR@/sysctl.d/*.conf; do | ||||
| 		if [ -r "$conf" ]; then | ||||
| 			vebegin "applying $conf" | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| MAN3=		\ | ||||
| MAN3=		einfo.3 \ | ||||
| 		rc_config.3 rc_deptree.3 rc_find_pids.3 rc_plugin_hook.3 \ | ||||
| 		rc_runlevel.3 rc_service.3 rc_stringlist.3 | ||||
| MAN8=		rc-service.8 rc-status.8 rc-update.8 rc.8 runscript.8 \ | ||||
|   | ||||
							
								
								
									
										210
									
								
								man/einfo.3
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										210
									
								
								man/einfo.3
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,210 @@ | ||||
| .\" Copyright (c) 2007-2008 Roy Marples | ||||
| .\" | ||||
| .\" Redistribution and use in source and binary forms, with or without | ||||
| .\" modification, are permitted provided that the following conditions | ||||
| .\" are met: | ||||
| .\" 1. Redistributions of source code must retain the above copyright | ||||
| .\"    notice, this list of conditions and the following disclaimer. | ||||
| .\" 2. Redistributions in binary form must reproduce the above copyright | ||||
| .\"    notice, this list of conditions and the following disclaimer in the | ||||
| .\"    documentation and/or other materials provided with the distribution. | ||||
| .\" | ||||
| .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||||
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||||
| .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||||
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||||
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||||
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||||
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||||
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||||
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||||
| .\" SUCH DAMAGE. | ||||
| .\" | ||||
| .Dd Mar 16, 2008 | ||||
| .Dt EINFO 3 SMM | ||||
| .Os OpenRC | ||||
| .Sh NAME | ||||
| .Nm einfo , ewarn , eerror , ebegin , | ||||
| .Nm einfon , ewarnn , eerrorn , ebeginn , | ||||
| .Nm einfov , ewarnv , ebeginv , | ||||
| .Nm einfovn , ewarnvn , ebeginvn , | ||||
| .Nm ewarnx , eerrorx , | ||||
| .Nm eend , ewend , | ||||
| .Nm eendv , ewendv , | ||||
| .Nm ebracket , | ||||
| .Nm eindent , eoutdent , | ||||
| .Nm eindentv , eoutdentv , | ||||
| .Nm eprefix | ||||
| .Nd colorful informational output | ||||
| .Sh LIBRARY | ||||
| Enhanced Information output library (libeinfo, -leinfo) | ||||
| .Sh SYNOPSIS | ||||
| .In einfo.h | ||||
| .Ft int Fn einfo "const char * restrict format" ... | ||||
| .Ft int Fn ewarn "const char * restrict format" ... | ||||
| .Ft int Fn eerror "const char * restrict format" ... | ||||
| .Ft int Fn ebegin "const char * restrict format" ... | ||||
| .Ft int Fn einfon "const char * restrict format" ... | ||||
| .Ft int Fn ewarnn "const char * restrict format" ... | ||||
| .Ft int Fn eerrorn "const char * restrict format" ... | ||||
| .Ft int Fn ebeginn "const char * restrict format" ... | ||||
| .Ft int Fn einfov "const char * restrict format" ... | ||||
| .Ft int Fn ewarnv "const char * restrict format" ... | ||||
| .Ft int Fn ebeginv "const char * restrict format" ... | ||||
| .Ft int Fn einfovn "const char * restrict format" ... | ||||
| .Ft int Fn ewarnvn "const char * restrict format" ... | ||||
| .Ft int Fn ebeginvn "const char * restrict format" ... | ||||
| .Ft int Fn ewarnx "const char * restrict format" ... | ||||
| .Ft int Fn eerrorx "const char * restrict format" ... | ||||
| .Ft int Fn eend "int retval" "const char * restrict format" ... | ||||
| .Ft int Fn ewend "int retval" "const char * restrict format" ... | ||||
| .Ft int Fn eendv "int retval" "const char * restrict format" ... | ||||
| .Ft int Fn ewendv "int retval" "const char * restrict format" ... | ||||
| .Ft void Fn ebracket "int col" "ECOLOR color" "const char * restrict msg" | ||||
| .Ft void Fn eindent void | ||||
| .Ft void Fn eoutdent void | ||||
| .Ft void Fn eindentv void | ||||
| .Ft void Fn eoutdentv void | ||||
| .Ft void Fn eprefix "const char * prefix" | ||||
| .Sh DESCRIPTION | ||||
| The | ||||
| .Fn einfo | ||||
| family of functions provide a simple informational output that is colorised. | ||||
| Basically | ||||
| .Fn einfo , | ||||
| .Fn ewarn | ||||
| and | ||||
| .Fn eerror | ||||
| behave exactly like | ||||
| .Fn printf | ||||
| but prefix the output with a colored *. The function called denotes the color | ||||
| used with | ||||
| .Fn einfo | ||||
| being green, | ||||
| .Fn ewarn | ||||
| being yellow and | ||||
| .Fn eerror | ||||
| being red. | ||||
| einfo goes to stdout and the others go to stderr. | ||||
| The number of real characters printed is returned. | ||||
| .Fn ebegin | ||||
| is identical to | ||||
| .Fn einfo | ||||
| except that 3 dots are appended to the output. | ||||
| .Pp | ||||
| .Fn einfov , | ||||
| .Fn ewarnv | ||||
| and | ||||
| .Fn ebeginv | ||||
| work the same way to | ||||
| .Fn einfo , | ||||
| .Fn ewarn , | ||||
| and | ||||
| .Fn ebegin | ||||
| respectively, but only work when | ||||
| .Va EINFO_VERBOSE | ||||
| is true. You can also make the | ||||
| .Fn einfo , | ||||
| .Fn ewarn , | ||||
| and | ||||
| .Fn ebegin | ||||
| functions silent by setting | ||||
| .Va EINFO_QUIET | ||||
| to true. | ||||
| .Pp | ||||
| These functions are designed to output a whole line, so they also | ||||
| append a newline to the string. To stop this behaviour, you can use the | ||||
| functions | ||||
| .Fn einfon , | ||||
| .Fn ewarnn , | ||||
| .Fn eerrorn , | ||||
| .Fn einfovn , | ||||
| .Fn ewarnvn , | ||||
| and | ||||
| .Fn ebeginvn . | ||||
| .Pp | ||||
| .Fn eend , | ||||
| .Fn ewend , | ||||
| .Fn eendv | ||||
| and | ||||
| .Fn ewendv | ||||
| are the counterparts to the above functions. If | ||||
| .Fa retval | ||||
| is zero then ok in green is printed in a bracket at the end of the prior | ||||
| line. Otherwise we print the formatted string using | ||||
| .Fn error | ||||
| (or | ||||
| .Fn ewarn | ||||
| if | ||||
| .Fn ewend | ||||
| is called) !! in red (or yellow if | ||||
| .Fn ewend | ||||
| is called) is printed in a bracket at the end of the line. | ||||
| The value of | ||||
| .Fa retval | ||||
| is returned. | ||||
| .Pp | ||||
| .Fn ebracket | ||||
| does the same as | ||||
| .Fn eend | ||||
| but prints | ||||
| .Fa msg | ||||
| instead of ok or !! in the color | ||||
| .Fa color | ||||
| at the column | ||||
| .Fa col . | ||||
| .Pp | ||||
| .Fn eindent | ||||
| indents subsequent calls to the above functions by 3 characters. | ||||
| .Fn eoutdent | ||||
| removes an | ||||
| .Fn eindent . | ||||
| .Fn eindentv | ||||
| and | ||||
| .Fn eoutdentv | ||||
| only work when | ||||
| .Va EINFO_VERBOSE | ||||
| is true. | ||||
| .Pp | ||||
| .Fn eprefix | ||||
| prefixes the string | ||||
| .Fa prefix | ||||
| to the above functions. | ||||
| .Sh IMPLEMENTATION NOTES | ||||
| einfo can optionally be linked against the | ||||
| .Lb libtermcap | ||||
| so that we can correctly query the connected console for our color and | ||||
| cursor escape codes. | ||||
| If not, then we have a hard coded list of terminals we know about that support | ||||
| the commonly used codes for color and cursor position. | ||||
| .Sh ENVIRONMENT | ||||
| .Va EINFO_QUIET | ||||
| when set to true makes the | ||||
| .Fn einfo | ||||
| and | ||||
| .Fn einfon | ||||
| family of functions quiet, so nothing is printed. | ||||
| .Va EERROR_QUIET | ||||
| when set to true makes the | ||||
| .Fn eerror | ||||
| and | ||||
| .Fn eerrorn | ||||
| family of functions quiet, so nothing is printed. | ||||
| .Pp | ||||
| .Va EINFO_VERBOSE | ||||
| when set to true makes the | ||||
| .Fn einfov | ||||
| and | ||||
| .Fn einfovn | ||||
| family of functions work, so they do print. | ||||
| .Sh FILES | ||||
| .Pa /etc/init.d/functions.sh | ||||
| is provided by OpenRC, which allows shell scripts to use the above functions. | ||||
| For historical reasons our verbose functions are prefixed with v instead of | ||||
| suffixed. So einfov becomes veinfo, einfovn becomes veinfon. | ||||
| Rinse and repeat for the other verbose functions. | ||||
| .Sh SEE ALSO | ||||
| .Xr printf 3 , | ||||
| .Sh AUTHORS | ||||
| .An Roy Marples <roy@marples.name> | ||||
| @@ -1,6 +1,6 @@ | ||||
| DIR=	${LIBDIR}/pkgconfig | ||||
| SRCS=	openrc.pc.in | ||||
| INC=	openrc.pc | ||||
| SRCS=	einfo.pc.in openrc.pc.in | ||||
| INC=	einfo.pc openrc.pc | ||||
|  | ||||
| .DEFAULT: | ||||
| 	${SED} -n -e 's/^VERSION=[[:space:]]*\([^[:space:]]*\).*/#define VERSION "\1${GITVER}\"/p' ../../Makefile > version.h | ||||
|   | ||||
							
								
								
									
										9
									
								
								pkgconfig/einfo.pc.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								pkgconfig/einfo.pc.in
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| prefix=@PREFIX@ | ||||
| exec_prefix=${prefix} | ||||
| libdir=${prefix}/@LIB@ | ||||
| includedir=/usr/include | ||||
|  | ||||
| Name: einfo | ||||
| Description: Pretty console informational display | ||||
| Version: @VERSION@ | ||||
| Libs: -L${libdir} -leinfo | ||||
| @@ -1,6 +1,6 @@ | ||||
| include ../mk/net.mk | ||||
|  | ||||
| BOOT=		bootmisc fsck hostname localmount loopback \ | ||||
| BOOT=		bootmisc fsck hostname localmount \ | ||||
| 		root swap swapfiles sysctl urandom ${BOOT-${OS}} | ||||
| DEFAULT=	local netmount | ||||
| SHUTDOWN=	savecache ${SHUTDOWN-${OS}} | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| # Copyright (c) 2007-2008 Roy Marples <roy@marples.name> | ||||
| # Released under the 2-clause BSD license. | ||||
|  | ||||
| SUBDIR=		test librc rc | ||||
| SUBDIR=		test libeinfo librc rc | ||||
|  | ||||
| ifeq (${MKTOOLS},yes) | ||||
| SUBDIR+= tools | ||||
|   | ||||
							
								
								
									
										1
									
								
								src/libeinfo/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/libeinfo/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| libeinfo.so.1 | ||||
							
								
								
									
										12
									
								
								src/libeinfo/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/libeinfo/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| LIB=			einfo | ||||
| SHLIB_MAJOR=		1 | ||||
| SRCS=			libeinfo.c | ||||
| INCS=			einfo.h | ||||
| VERSION_MAP=		einfo.map | ||||
|  | ||||
| CPPFLAGS+=		-I../includes | ||||
|  | ||||
| MK=			../../mk | ||||
| include ${MK}/lib.mk | ||||
| include ${MK}/cc.mk | ||||
| include ${MK}/termcap.mk | ||||
| @@ -37,6 +37,19 @@ | ||||
| #include <sys/types.h> | ||||
| #include <stdbool.h> | ||||
| 
 | ||||
| /* Although OpenRC requires C99, linking to us should not. */ | ||||
| #ifdef restrict | ||||
| # define EINFO_RESTRICT restrict | ||||
| #else | ||||
| # ifdef __restrict | ||||
| #  define EINFO_RESTRICT __restrict | ||||
| # else | ||||
| #  define EINFO_RESTRICT | ||||
| # endif | ||||
| #endif | ||||
| 
 | ||||
| __BEGIN_DECLS | ||||
| 
 | ||||
| /*! @brief Color types to use */ | ||||
| typedef enum | ||||
| { | ||||
| @@ -52,14 +65,14 @@ typedef enum | ||||
| const char *ecolor(ECOLOR); | ||||
| 
 | ||||
| /*! @brief Writes to syslog. */ | ||||
| void elog(int, const char *, ...) EINFO_PRINTF(2, 3); | ||||
| void elog(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3); | ||||
| 
 | ||||
| /*!
 | ||||
|  * @brief Display informational messages. | ||||
|  * | ||||
|  * The einfo family of functions display messages in a consistent manner | ||||
|  * Basically they prefix the message with " * ". | ||||
|  * If the terminal can handle color then we color the * based on | ||||
|  * across applications. Basically they prefix the message with | ||||
|  * " * ". If the terminal can handle color then we color the * based on | ||||
|  * the command used. Otherwise we are identical to the printf function. | ||||
|  * | ||||
|  * - einfo  - green | ||||
| @@ -70,22 +83,22 @@ void elog(int, const char *, ...) EINFO_PRINTF(2, 3); | ||||
|  * The v suffix means only print if EINFO_VERBOSE is yes. | ||||
|  */ | ||||
| /*@{*/ | ||||
| int einfon(const char *, ...) EINFO_PRINTF(1, 2); | ||||
| int ewarnn(const char *, ...) EINFO_PRINTF(1, 2); | ||||
| int eerrorn(const char *, ...) EINFO_PRINTF(1, 2); | ||||
| int einfo(const char *, ...) EINFO_PRINTF(1, 2); | ||||
| int ewarn(const char *, ...) EINFO_PRINTF(1, 2); | ||||
| void ewarnx(const char *, ...) EINFO_XPRINTF(1, 2); | ||||
| int eerror(const char *, ...) EINFO_PRINTF(1, 2); | ||||
| void eerrorx(const char *, ...) EINFO_XPRINTF(1, 2); | ||||
| int einfon(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); | ||||
| int ewarnn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); | ||||
| int eerrorn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); | ||||
| int einfo(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); | ||||
| int ewarn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); | ||||
| void ewarnx(const char * __EINFO_RESTRICT, ...) EINFO_XPRINTF(1, 2); | ||||
| int eerror(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); | ||||
| void eerrorx(const char * __EINFO_RESTRICT, ...) EINFO_XPRINTF(1, 2); | ||||
| 
 | ||||
| int einfovn(const char *, ...) EINFO_PRINTF(1, 2); | ||||
| int ewarnvn(const char * , ...) EINFO_PRINTF(1, 2); | ||||
| int ebeginvn(const char *, ...) EINFO_PRINTF(1, 2); | ||||
| int eendvn(int, const char *, ...) EINFO_PRINTF(2, 3); | ||||
| int ewendvn(int, const char *, ...) EINFO_PRINTF(2, 3); | ||||
| int einfov(const char *, ...) EINFO_PRINTF(1, 2); | ||||
| int ewarnv(const char *, ...) EINFO_PRINTF(1, 2); | ||||
| int einfovn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); | ||||
| int ewarnvn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); | ||||
| int ebeginvn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); | ||||
| int eendvn(int, const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3); | ||||
| int ewendvn(int, const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3); | ||||
| int einfov(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); | ||||
| int ewarnv(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); | ||||
| /*@}*/ | ||||
| 
 | ||||
| /*! @ingroup ebegin
 | ||||
| @@ -93,8 +106,8 @@ int ewarnv(const char *, ...) EINFO_PRINTF(1, 2); | ||||
|  * | ||||
|  * Similar to einfo, but we add ... to the end of the message */ | ||||
| /*@{*/ | ||||
| int ebeginv(const char *, ...) EINFO_PRINTF(1, 2); | ||||
| int ebegin(const char *, ...) EINFO_PRINTF(1, 2); | ||||
| int ebeginv(const char * EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); | ||||
| int ebegin(const char * EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); | ||||
| /*@}*/ | ||||
| 
 | ||||
| /*! @ingroup eend
 | ||||
| @@ -106,12 +119,12 @@ int ebegin(const char *, ...) EINFO_PRINTF(1, 2); | ||||
|  * | ||||
|  * ebracket allows you to specifiy the position, color and message */ | ||||
| /*@{*/ | ||||
| int eend(int, const char *, ...) EINFO_PRINTF(2, 3); | ||||
| int ewend(int, const char *, ...) EINFO_PRINTF(2, 3); | ||||
| void ebracket(int, ECOLOR, const char *); | ||||
| int eend(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3); | ||||
| int ewend(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3); | ||||
| void ebracket(int, ECOLOR, const char * EINFO_RESTRICT); | ||||
| 
 | ||||
| int eendv(int, const char *, ...) EINFO_PRINTF(2, 3); | ||||
| int ewendv(int, const char *, ...) EINFO_PRINTF(2, 3); | ||||
| int eendv(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3); | ||||
| int ewendv(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3); | ||||
| /*@}*/ | ||||
| 
 | ||||
| /*! @ingroup eindent
 | ||||
| @@ -125,6 +138,7 @@ void eindentv(void); | ||||
| void eoutdentv(void); | ||||
| 
 | ||||
| /*! @brief Prefix each einfo line with something */ | ||||
| void eprefix(const char *); | ||||
| void eprefix(const char * EINFO_RESTRICT); | ||||
| 
 | ||||
| __END_DECLS | ||||
| #endif | ||||
							
								
								
									
										35
									
								
								src/libeinfo/einfo.map
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								src/libeinfo/einfo.map
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| EINFO_1.0 { | ||||
| global: | ||||
| 	ecolor; | ||||
| 	elog; | ||||
| 	einfon; | ||||
| 	ewarnn; | ||||
| 	eerrorn; | ||||
| 	einfo; | ||||
| 	ewarn; | ||||
| 	ewarnx; | ||||
| 	eerror; | ||||
| 	eerrorx; | ||||
| 	einfovn; | ||||
| 	ewarnvn; | ||||
| 	ebeginvn; | ||||
| 	eendvn; | ||||
| 	ewendvn; | ||||
| 	einfov; | ||||
| 	ewarnv; | ||||
| 	ebeginv; | ||||
| 	ebegin; | ||||
| 	eend; | ||||
| 	ewend; | ||||
| 	ebracket; | ||||
| 	eendv; | ||||
| 	ewendv; | ||||
| 	eindent; | ||||
| 	eoutdent; | ||||
| 	eindentv; | ||||
| 	eoutdentv; | ||||
| 	eprefix; | ||||
|  | ||||
| local: | ||||
| 	*; | ||||
| }; | ||||
| @@ -52,6 +52,34 @@ const char libeinfo_copyright[] = "Copyright (c) 2007-2008 Roy Marples"; | ||||
| 
 | ||||
| #include "einfo.h" | ||||
| #include "helpers.h" | ||||
| #include "hidden-visibility.h" | ||||
| 
 | ||||
| hidden_proto(ecolor) | ||||
| hidden_proto(ebegin) | ||||
| hidden_proto(ebeginv) | ||||
| hidden_proto(ebracket) | ||||
| hidden_proto(eend) | ||||
| hidden_proto(eendv) | ||||
| hidden_proto(eerror) | ||||
| hidden_proto(eerrorn) | ||||
| hidden_proto(eerrorx) | ||||
| hidden_proto(eindent) | ||||
| hidden_proto(eindentv) | ||||
| hidden_proto(einfo) | ||||
| hidden_proto(einfon) | ||||
| hidden_proto(einfov) | ||||
| hidden_proto(einfovn) | ||||
| hidden_proto(elog) | ||||
| hidden_proto(eoutdent) | ||||
| hidden_proto(eoutdentv) | ||||
| hidden_proto(eprefix) | ||||
| hidden_proto(ewarn) | ||||
| hidden_proto(ewarnn) | ||||
| hidden_proto(ewarnv) | ||||
| hidden_proto(ewarnvn) | ||||
| hidden_proto(ewarnx) | ||||
| hidden_proto(ewend) | ||||
| hidden_proto(ewendv) | ||||
| 
 | ||||
| /* Incase we cannot work out how many columns from ioctl, supply a default */ | ||||
| #define DEFAULT_COLS		 80 | ||||
| @@ -324,7 +352,7 @@ tgoto(const char *cap, int col, int line) | ||||
| #endif | ||||
| 
 | ||||
| static bool | ||||
| colour_terminal(FILE *f) | ||||
| colour_terminal(FILE * EINFO_RESTRICT f) | ||||
| { | ||||
| 	static int in_colour = -1; | ||||
| 	char *e, *ee, *end, *d, *p; | ||||
| @@ -471,7 +499,7 @@ colour_terminal(FILE *f) | ||||
| } | ||||
| 
 | ||||
| static int | ||||
| get_term_columns(FILE *stream) | ||||
| get_term_columns(FILE * EINFO_RESTRICT stream) | ||||
| { | ||||
| 	struct winsize ws; | ||||
| 	char *env = getenv("COLUMNS"); | ||||
| @@ -491,13 +519,14 @@ get_term_columns(FILE *stream) | ||||
| } | ||||
| 
 | ||||
| void | ||||
| eprefix(const char *prefix) | ||||
| eprefix(const char *EINFO_RESTRICT prefix) | ||||
| { | ||||
| 	_eprefix = prefix; | ||||
| } | ||||
| hidden_def(eprefix) | ||||
| 
 | ||||
| static void EINFO_PRINTF(2, 0) | ||||
| elogv(int level, const char *fmt, va_list ap) | ||||
| elogv(int level, const char *EINFO_RESTRICT fmt, va_list ap) | ||||
| { | ||||
| 	char *e = getenv("EINFO_LOG"); | ||||
| 	va_list apc; | ||||
| @@ -513,7 +542,7 @@ elogv(int level, const char *fmt, va_list ap) | ||||
| } | ||||
| 
 | ||||
| void | ||||
| elog(int level, const char *fmt, ...) | ||||
| elog(int level, const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	va_list ap; | ||||
| 
 | ||||
| @@ -521,9 +550,10 @@ elog(int level, const char *fmt, ...) | ||||
| 	elogv(level, fmt, ap); | ||||
| 	va_end(ap); | ||||
| } | ||||
| hidden_def(elog) | ||||
| 
 | ||||
| static int | ||||
| _eindent(FILE *stream) | ||||
| _eindent(FILE * EINFO_RESTRICT stream) | ||||
| { | ||||
| 	char *env = getenv("EINFO_INDENT"); | ||||
| 	int amount = 0; | ||||
| @@ -547,7 +577,7 @@ _eindent(FILE *stream) | ||||
| } | ||||
| 
 | ||||
| static const char * | ||||
| _ecolor(FILE *f, ECOLOR color) | ||||
| _ecolor(FILE * EINFO_RESTRICT f, ECOLOR color) | ||||
| { | ||||
| 	unsigned int i; | ||||
| 
 | ||||
| @@ -559,6 +589,7 @@ _ecolor(FILE *f, ECOLOR color) | ||||
| 			return ecolors_str[i]; | ||||
| 	return ""; | ||||
| } | ||||
| hidden_def(ecolor) | ||||
| 
 | ||||
| const char * | ||||
| ecolor(ECOLOR color) | ||||
| @@ -584,7 +615,7 @@ ecolor(ECOLOR color) | ||||
| 	} | ||||
| 
 | ||||
| static int EINFO_PRINTF(3, 0) | ||||
| 	_einfo(FILE *f, ECOLOR color, const char *fmt, va_list va) | ||||
| 	_einfo(FILE *f, ECOLOR color, const char *EINFO_RESTRICT fmt, va_list va) | ||||
| { | ||||
| 	int retval = 0; | ||||
| 	char *last = getenv("EINFO_LASTCMD"); | ||||
| @@ -612,7 +643,7 @@ static int EINFO_PRINTF(3, 0) | ||||
| #define _eerrorvn(fmt, ap) _einfo(stderr, ECOLOR_BAD, fmt, ap) | ||||
| 
 | ||||
| int | ||||
| einfon(const char *fmt, ...) | ||||
| einfon(const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	int retval; | ||||
| 	va_list ap; | ||||
| @@ -625,9 +656,10 @@ einfon(const char *fmt, ...) | ||||
| 	LASTCMD("einfon"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(einfon) | ||||
| 
 | ||||
| int | ||||
| ewarnn(const char *fmt, ...) | ||||
| ewarnn(const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	int retval; | ||||
| 	va_list ap; | ||||
| @@ -640,9 +672,10 @@ ewarnn(const char *fmt, ...) | ||||
| 	LASTCMD("ewarnn"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(ewarnn) | ||||
| 
 | ||||
| int | ||||
| eerrorn(const char *fmt, ...) | ||||
| eerrorn(const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	int retval; | ||||
| 	va_list ap; | ||||
| @@ -655,9 +688,10 @@ eerrorn(const char *fmt, ...) | ||||
| 	LASTCMD("errorn"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(eerrorn) | ||||
| 
 | ||||
| int | ||||
| einfo(const char *fmt, ...) | ||||
| einfo(const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	int retval; | ||||
| 	va_list ap; | ||||
| @@ -671,9 +705,10 @@ einfo(const char *fmt, ...) | ||||
| 	LASTCMD("einfo"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(einfo) | ||||
| 
 | ||||
| int | ||||
| ewarn(const char *fmt, ...) | ||||
| ewarn(const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	int retval; | ||||
| 	va_list ap; | ||||
| @@ -688,9 +723,10 @@ ewarn(const char *fmt, ...) | ||||
| 	LASTCMD("ewarn"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(ewarn) | ||||
| 
 | ||||
| void | ||||
| ewarnx(const char *fmt, ...) | ||||
| ewarnx(const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	int retval; | ||||
| 	va_list ap; | ||||
| @@ -704,9 +740,10 @@ ewarnx(const char *fmt, ...) | ||||
| 	} | ||||
| 	exit(EXIT_FAILURE); | ||||
| } | ||||
| hidden_def(ewarnx) | ||||
| 
 | ||||
| int | ||||
| eerror(const char *fmt, ...) | ||||
| eerror(const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	int retval; | ||||
| 	va_list ap; | ||||
| @@ -721,9 +758,10 @@ eerror(const char *fmt, ...) | ||||
| 	LASTCMD("eerror"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(eerror) | ||||
| 
 | ||||
| void | ||||
| eerrorx(const char *fmt, ...) | ||||
| eerrorx(const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	va_list ap; | ||||
| 
 | ||||
| @@ -736,9 +774,10 @@ eerrorx(const char *fmt, ...) | ||||
| 	} | ||||
| 	exit(EXIT_FAILURE); | ||||
| } | ||||
| hidden_def(eerrorx) | ||||
| 
 | ||||
| int | ||||
| ebegin(const char *fmt, ...) | ||||
| ebegin(const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	int retval; | ||||
| 	va_list ap; | ||||
| @@ -754,9 +793,10 @@ ebegin(const char *fmt, ...) | ||||
| 	LASTCMD("ebegin"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(ebegin) | ||||
| 
 | ||||
| static void | ||||
| _eend(FILE *fp, int col, ECOLOR color, const char *msg) | ||||
| _eend(FILE * EINFO_RESTRICT fp, int col, ECOLOR color, const char *msg) | ||||
| { | ||||
| 	int i; | ||||
| 	int cols; | ||||
| @@ -792,7 +832,7 @@ _eend(FILE *fp, int col, ECOLOR color, const char *msg) | ||||
| 
 | ||||
| static int EINFO_PRINTF(3, 0) | ||||
| _do_eend(const char *cmd, int retval, | ||||
|     const char *fmt, va_list ap) | ||||
|     const char *EINFO_RESTRICT fmt, va_list ap) | ||||
| { | ||||
| 	int col = 0; | ||||
| 	FILE *fp = stdout; | ||||
| @@ -815,7 +855,7 @@ _do_eend(const char *cmd, int retval, | ||||
| } | ||||
| 
 | ||||
| int | ||||
| eend(int retval, const char *fmt, ...) | ||||
| eend(int retval, const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	va_list ap; | ||||
| 
 | ||||
| @@ -827,9 +867,10 @@ eend(int retval, const char *fmt, ...) | ||||
| 	LASTCMD("eend"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(eend) | ||||
| 
 | ||||
| int | ||||
| ewend(int retval, const char *fmt, ...) | ||||
| ewend(int retval, const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	va_list ap; | ||||
| 
 | ||||
| @@ -841,12 +882,14 @@ ewend(int retval, const char *fmt, ...) | ||||
| 	LASTCMD("ewend"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(ewend) | ||||
| 
 | ||||
| void | ||||
| ebracket(int col, ECOLOR color, const char *msg) | ||||
| { | ||||
| 	_eend(stdout, col, color, msg); | ||||
| } | ||||
| hidden_def(ebracket) | ||||
| 
 | ||||
| void | ||||
| eindent(void) | ||||
| @@ -867,6 +910,7 @@ eindent(void) | ||||
| 	snprintf(num, 10, "%08d", amount); | ||||
| 	setenv("EINFO_INDENT", num, 1); | ||||
| } | ||||
| hidden_def(eindent) | ||||
| 
 | ||||
| void eoutdent(void) | ||||
| { | ||||
| @@ -891,9 +935,10 @@ void eoutdent(void) | ||||
| 	} | ||||
| 	errno = serrno; | ||||
| } | ||||
| hidden_def(eoutdent) | ||||
| 
 | ||||
| int | ||||
| einfovn(const char *fmt, ...) | ||||
| einfovn(const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	int retval; | ||||
| 	va_list ap; | ||||
| @@ -906,9 +951,10 @@ einfovn(const char *fmt, ...) | ||||
| 	LASTCMD("einfovn"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(einfovn) | ||||
| 
 | ||||
| int | ||||
| ewarnvn(const char *fmt, ...) | ||||
| ewarnvn(const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	int retval; | ||||
| 	va_list ap; | ||||
| @@ -921,9 +967,10 @@ ewarnvn(const char *fmt, ...) | ||||
| 	LASTCMD("ewarnvn"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(ewarnvn) | ||||
| 
 | ||||
| int | ||||
| einfov(const char *fmt, ...) | ||||
| einfov(const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	int retval; | ||||
| 	va_list ap; | ||||
| @@ -937,9 +984,10 @@ einfov(const char *fmt, ...) | ||||
| 	LASTCMD("einfov"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(einfov) | ||||
| 
 | ||||
| int | ||||
| ewarnv(const char *fmt, ...) | ||||
| ewarnv(const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	int retval; | ||||
| 	va_list ap; | ||||
| @@ -953,9 +1001,10 @@ ewarnv(const char *fmt, ...) | ||||
| 	LASTCMD("ewarnv"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(ewarnv) | ||||
| 
 | ||||
| int | ||||
| ebeginv(const char *fmt, ...) | ||||
| ebeginv(const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	int retval; | ||||
| 	va_list ap; | ||||
| @@ -972,9 +1021,10 @@ ebeginv(const char *fmt, ...) | ||||
| 	LASTCMD("ebeginv"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(ebeginv) | ||||
| 
 | ||||
| int | ||||
| eendv(int retval, const char *fmt, ...) | ||||
| eendv(int retval, const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	va_list ap; | ||||
| 
 | ||||
| @@ -986,9 +1036,10 @@ eendv(int retval, const char *fmt, ...) | ||||
| 	LASTCMD("eendv"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(eendv) | ||||
| 
 | ||||
| int | ||||
| ewendv(int retval, const char *fmt, ...) | ||||
| ewendv(int retval, const char *EINFO_RESTRICT fmt, ...) | ||||
| { | ||||
| 	va_list ap; | ||||
| 
 | ||||
| @@ -1000,6 +1051,7 @@ ewendv(int retval, const char *fmt, ...) | ||||
| 	LASTCMD("ewendv"); | ||||
| 	return retval; | ||||
| } | ||||
| hidden_def(ewendv) | ||||
| 
 | ||||
| void | ||||
| eindentv(void) | ||||
| @@ -1007,6 +1059,7 @@ eindentv(void) | ||||
| 	if (is_verbose()) | ||||
| 		eindent(); | ||||
| } | ||||
| hidden_def(eindentv) | ||||
| 
 | ||||
| void | ||||
| eoutdentv(void) | ||||
| @@ -1014,3 +1067,4 @@ eoutdentv(void) | ||||
| 	if (is_verbose()) | ||||
| 		eoutdent(); | ||||
| } | ||||
| hidden_def(eoutdentv) | ||||
| @@ -1,21 +1,8 @@ | ||||
| PROG=		rc | ||||
| SRCS=	\ | ||||
| 	checkpath.c \ | ||||
| 	einfo.c \ | ||||
| 	fstabinfo.c \ | ||||
| 	mountinfo.c \ | ||||
| 	rc-applets.c \ | ||||
| 	rc-depend.c \ | ||||
| 	rc-logger.c \ | ||||
| 	rc-misc.c \ | ||||
| 	rc-plugin.c \ | ||||
| 	rc-service.c \ | ||||
| 	rc-status.c \ | ||||
| 	rc-update.c \ | ||||
| 	rc.c \ | ||||
| 	runscript.c \ | ||||
| 	start-stop-daemon.c \ | ||||
| 	swclock.c | ||||
| SRCS=		checkpath.c fstabinfo.c mountinfo.c start-stop-daemon.c \ | ||||
| 		rc-applets.c rc-depend.c rc-logger.c \ | ||||
| 		rc-misc.c rc-plugin.c rc-service.c rc-status.c rc-update.c \ | ||||
| 		runscript.c rc.c swclock.c | ||||
|  | ||||
| CLEANFILES=	version.h | ||||
|  | ||||
| @@ -43,9 +30,9 @@ RC_SBINLINKS=	mark_service_starting mark_service_started \ | ||||
| ALL_LINKS=	${BINLINKS} ${SBINLINKS} ${RC_BINLINKS} ${RC_SBINLINKS} | ||||
| CLEANFILES+=	${ALL_LINKS} | ||||
|  | ||||
| CPPFLAGS+=	-I../includes -I../librc | ||||
| LDFLAGS+=	-L../librc | ||||
| LDADD+=		-lutil -lrc | ||||
| CPPFLAGS+=	-I../includes -I../librc -I../libeinfo | ||||
| LDFLAGS+=	-L../librc -L../libeinfo | ||||
| LDADD+=		-lutil -lrc -leinfo | ||||
|  | ||||
| include ../../Makefile.inc | ||||
| MK=		../../mk | ||||
|   | ||||
							
								
								
									
										1
									
								
								src/test/einfo.data.list
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/test/einfo.data.list
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| EINFO_1.0 | ||||
							
								
								
									
										52
									
								
								src/test/einfo.funcs.list
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								src/test/einfo.funcs.list
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| ebegin | ||||
| ebegin@@EINFO_1.0 | ||||
| ebeginv | ||||
| ebeginv@@EINFO_1.0 | ||||
| ebracket | ||||
| ebracket@@EINFO_1.0 | ||||
| ecolor | ||||
| ecolor@@EINFO_1.0 | ||||
| eend | ||||
| eend@@EINFO_1.0 | ||||
| eendv | ||||
| eendv@@EINFO_1.0 | ||||
| eerror | ||||
| eerror@@EINFO_1.0 | ||||
| eerrorn | ||||
| eerrorn@@EINFO_1.0 | ||||
| eerrorx | ||||
| eerrorx@@EINFO_1.0 | ||||
| eindent | ||||
| eindent@@EINFO_1.0 | ||||
| eindentv | ||||
| eindentv@@EINFO_1.0 | ||||
| einfo | ||||
| einfo@@EINFO_1.0 | ||||
| einfon | ||||
| einfon@@EINFO_1.0 | ||||
| einfov | ||||
| einfov@@EINFO_1.0 | ||||
| einfovn | ||||
| einfovn@@EINFO_1.0 | ||||
| elog | ||||
| elog@@EINFO_1.0 | ||||
| eoutdent | ||||
| eoutdent@@EINFO_1.0 | ||||
| eoutdentv | ||||
| eoutdentv@@EINFO_1.0 | ||||
| eprefix | ||||
| eprefix@@EINFO_1.0 | ||||
| ewarn | ||||
| ewarn@@EINFO_1.0 | ||||
| ewarnn | ||||
| ewarnn@@EINFO_1.0 | ||||
| ewarnv | ||||
| ewarnv@@EINFO_1.0 | ||||
| ewarnvn | ||||
| ewarnvn@@EINFO_1.0 | ||||
| ewarnx | ||||
| ewarnx@@EINFO_1.0 | ||||
| ewend | ||||
| ewend@@EINFO_1.0 | ||||
| ewendv | ||||
| ewendv@@EINFO_1.0 | ||||
| @@ -3,6 +3,8 @@ | ||||
| top_srcdir=${top_srcdir:-../..} | ||||
| . ${top_srcdir}/test/setup_env.sh | ||||
|  | ||||
| libeinfo_srcdir="${srcdir}/../libeinfo" | ||||
| libeinfo_builddir="${builddir}/../libeinfo" | ||||
| librc_srcdir="${srcdir}/../librc" | ||||
| librc_builddir="${builddir}/../librc" | ||||
| rc_srcdir="${srcdir}/../rc" | ||||
| @@ -18,6 +20,22 @@ checkit() { | ||||
|  | ||||
| ret=0 | ||||
|  | ||||
| ebegin "Checking exported symbols in libeinfo.so (data)" | ||||
| checkit einfo.data $( | ||||
| readelf -Ws ${libeinfo_builddir}/libeinfo.so \ | ||||
| 	| awk '$4 == "OBJECT" && $5 == "GLOBAL" && $7 != "UND" {print $NF}' \ | ||||
| 	| LC_ALL=C sort -u | ||||
| ) | ||||
|  | ||||
| ebegin "Checking exported symbols in libeinfo.so (functions)" | ||||
| checkit einfo.funcs $( | ||||
| readelf -Ws ${libeinfo_builddir}/libeinfo.so \ | ||||
| 	| awk '$4 == "FUNC" && $5 == "GLOBAL" && $7 != "UND" {print $NF}' \ | ||||
| 	| LC_ALL=C sort -u \ | ||||
| 	| egrep -v \ | ||||
| 		-e '^_(init|fini)$' | ||||
| ) | ||||
|  | ||||
| ebegin "Checking exported symbols in librc.so (data)" | ||||
| checkit rc.data $( | ||||
| readelf -Ws ${librc_builddir}/librc.so \ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user