RPM Community Forums

Mailing List Message of <rpm-devel>

Re: [CVS] RPM: rc/ Makefile.am rpm/ Makefile.am autogen.sh configure.ac de...

From: Jeff Johnson <n3npq@mac.com>
Date: Sat 09 May 2009 - 22:07:58 CEST
Message-id: <C346C820-3B6A-48C4-B223-234F52B6BC6A@mac.com>
Hmmm, the mechanical act of embedding is becoming kitschy with rc
(and bash pending) embeddings.

It just isn't that hard to s/main/foo_main/, throw
the gunk into a library, and tie a call to foo_main()
to %post -p <foo> and %{foo:...} syntax.

And sure I know all about process stateful signals and $CWD and
fdno leaks, it's not very much harder to preserve/restore state across
the foo_main() call transiting to the widdle embedded interpreters.

But with rc/bash embeddings, the limit of diminishing
returns (and "bad art" imho) of embedded interpreters starts
to crystalize.

Sure I can turn RPM into an "embedded firmware device",
batteries included, capable of running within "bare metal"
chroot's.

Should I do that? Dunno.

73 de Jeff	on to bash embedding ...

On May 9, 2009, at 3:55 PM, Jeff Johnson wrote:

>  RPM Package Manager, CVS Repository
>  http://rpm5.org/cvs/
>   
> ____________________________________________________________________________
>
>  Server: rpm5.org                         Name:   Jeff Johnson
>  Root:   /v/rpm/cvs                       Email:  jbj@rpm5.org
>  Module: rpm rc                           Date:   09-May-2009 21:55:47
>  Branch: HEAD                             Handle: 2009050919554601
>
>  Modified files:
>    rc                      Makefile.am
>    rpm                     Makefile.am autogen.sh configure.ac  
> devtool.conf
>    rpm/misc                Makefile.am librpmmisc.vers
>
>  Log:
>    - rc: toss the n00b embedding into the -lrpmmisc kitchen sink.
>
>  Summary:
>    Revision    Changes     Path
>    1.3         +3  -3      rc/Makefile.am
>    2.237       +1  -0      rpm/Makefile.am
>    2.103       +3  -0      rpm/autogen.sh
>    2.374       +22 -1      rpm/configure.ac
>    2.295       +4  -1      rpm/devtool.conf
>    1.49        +2  -0      rpm/misc/Makefile.am
>    1.21        +1  -0      rpm/misc/librpmmisc.vers
>   
> ____________________________________________________________________________
>
>  patch -p0 <<'@@ .'
>  Index: rc/Makefile.am
>   
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
>  $ cvs diff -u -r1.2 -r1.3 Makefile.am
>  --- rc/Makefile.am	9 May 2009 18:49:26 -0000	1.2
>  +++ rc/Makefile.am	9 May 2009 19:55:47 -0000	1.3
>  @@ -21,9 +21,9 @@
>   SYSTEM = system.c
>   endif
>
>  -# XXX FIXME: @USRLIBRPM@ needs to be used instead.
>  -pkglibdir =     /usr/lib/rpm/lib
>  -pkgbindir =     /usr/lib/rpm/bin
>  +# XXX FIXME: ideally @USRLIBRPM@ should be used instead.
>  +pkgbindir =     @prefix@/lib/rpm/bin
>  +pkglibdir =     @prefix@/lib/rpm/lib
>
>   pkgbin_PROGRAMS = rc
>   pkglib_LTLIBRARIES = librc.la
>  @@ .
>  patch -p0 <<'@@ .'
>  Index: rpm/Makefile.am
>   
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
>  $ cvs diff -u -r2.236 -r2.237 Makefile.am
>  --- rpm/Makefile.am	6 May 2009 11:44:32 -0000	2.236
>  +++ rpm/Makefile.am	9 May 2009 19:55:46 -0000	2.237
>  @@ -57,6 +57,7 @@
>   	@WITH_LUA_SUBDIR@ \
>   	@WITH_SPIDERMONKEY_SUBDIR@ \
>   	@WITH_FILE_SUBDIR@ \
>  +	@WITH_RC_SUBDIR@ \
>   	@WITH_SYCK_SUBDIR@ \
>   	@WITH_XAR_SUBDIR@ \
>   	@WITH_XZ_SUBDIR@ \
>  @@ .
>  patch -p0 <<'@@ .'
>  Index: rpm/autogen.sh
>   
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
>  $ cvs diff -u -r2.102 -r2.103 autogen.sh
>  --- rpm/autogen.sh	1 Apr 2009 00:07:36 -0000	2.102
>  +++ rpm/autogen.sh	9 May 2009 19:55:46 -0000	2.103
>  @@ -49,6 +49,9 @@
>   echo "===> file"
>   ( cd file && sh ./autogen.sh --noconfigure "$@" )
>   echo "<=== file"
>  +echo "===> rc"
>  +( cd rc && sh ./autogen.sh --noconfigure "$@" )
>  +echo "<=== rc"
>   echo "===> syck"
>   ( cd syck && sh ./autogen.sh --noconfigure "$@" )
>   echo "<=== syck"
>  @@ .
>  patch -p0 <<'@@ .'
>  Index: rpm/configure.ac
>   
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
>  $ cvs diff -u -r2.373 -r2.374 configure.ac
>  --- rpm/configure.ac	6 May 2009 17:06:35 -0000	2.373
>  +++ rpm/configure.ac	9 May 2009 19:55:46 -0000	2.374
>  @@ -712,7 +712,7 @@
>       asprintf basename fallocate getaddrinfo getcwd getnameinfo  
> getwd iconv inet_aton confstr dnl
>       mtrace posix_fallocate putenv realpath setenv clearenv stpcpy  
> stpncpy strcspn strdup dnl
>       strndup strerror strtol strtoul strspn strstr sighold sigrelse  
> sigpause dnl
>  -    sigprocmask sigemptyset sigaddset sigdelset sigsuspend madvise  
> dnl
>  +    sigprocmask sigemptyset sigaddset sigdelset sigsuspend  
> sigaction madvise dnl
>       __secure_getenv regcomp ftok mkdtemp mkstemp setlocale  
> getpassphrase dnl
>       mempcpy getmode setmode dnl
>   ])
>  @@ -1299,6 +1299,27 @@
>       ], [])
>   AC_SUBST(WITH_SPIDERMONKEY_SUBDIR)
>
>  +dnl # Rc
>  +RPM_CHECK_LIB(
>  +    [Rc], [rc],
>  +    [rc], [rc_main], [rc.h],
>  +    [no,internal:none], [rc],
>  +    [ if test ".$RPM_CHECK_LIB_LOCATION" = .internal; then
>  +          AC_DEFINE(HAVE_RC_H, 1, [Define to 1 if you have <rc.h>])
>  +	  AC_DEFINE(HAVE_LIBRC, 1, [Define to 1 if you have the 'rc'  
> library (-lrc).])
>  +      fi
>  +    ], [])
>  +
>  +dnl # Bash
>  +RPM_CHECK_LIB(
>  +    [Bash], [bash],
>  +    [bash], [bash_main], [bashtypes.h],
>  +    [no,internal:none], [bash],
>  +    [ if test ".$RPM_CHECK_LIB_LOCATION" = .internal; then
>  +	  AC_DEFINE(HAVE_LIBBASH, 1, [Define to 1 if you have the 'bash'  
> library (-lbash).])
>  +      fi
>  +    ], [])
>  +
>   dnl # Lua
>   WITH_LUA_SUBDIR_DEF=""
>   WITH_LUA_SUBDIR_LIB=""
>  @@ .
>  patch -p0 <<'@@ .'
>  Index: rpm/devtool.conf
>   
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
>  $ cvs diff -u -r2.294 -r2.295 devtool.conf
>  --- rpm/devtool.conf	7 May 2009 08:25:16 -0000	2.294
>  +++ rpm/devtool.conf	9 May 2009 19:55:46 -0000	2.295
>  @@ -3,7 +3,7 @@
>   ##
>
>   %common
>  -    MODULE_NAMES="db lua file xar xz pcre syck js/src"
>  +    MODULE_NAMES="db lua file xar xz pcre syck js/src rc"
>       MODULE_TAG_DB=""
>       MODULE_TAG_LUA=""
>       MODULE_TAG_FILE=""
>  @@ -12,6 +12,7 @@
>       MODULE_TAG_PCRE=""
>       MODULE_TAG_SYCK=""
>       MODULE_TAG_JS_SRC=""
>  +    MODULE_TAG_RC=""
>
>   %checkout
>       for name in $MODULE_NAMES "$@"; do
>  @@ -94,6 +95,8 @@
>           --with-libelf \
>           --with-selinux \
>   	--with-ficl=/usr/lib:/usr/include/ficl \
>  +        --without-bash \
>  +        --with-rc=internal \
>   	--with-js=internal \
>           --with-python \
>           --with-pythonembed=/usr/lib:/usr/include/python2.5 \
>  @@ .
>  patch -p0 <<'@@ .'
>  Index: rpm/misc/Makefile.am
>   
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
>  $ cvs diff -u -r1.48 -r1.49 Makefile.am
>  --- rpm/misc/Makefile.am	2 May 2009 20:06:28 -0000	1.48
>  +++ rpm/misc/Makefile.am	9 May 2009 19:55:47 -0000	1.49
>  @@ -37,6 +37,7 @@
>   	@WITH_JS_LDFLAGS@ \
>   	@WITH_LUA_LDFLAGS@ \
>   	@WITH_PCRE_LDFLAGS@ \
>  +	@WITH_RC_LDFLAGS@ \
>   	@WITH_SYCK_LDFLAGS@ \
>   	@WITH_XAR_LDFLAGS@ \
>   	@WITH_XZ_LDFLAGS@ \
>  @@ -49,6 +50,7 @@
>   	@WITH_JS_LIBS@ \
>   	@WITH_LUA_LIBS@ \
>   	@WITH_PCRE_LIBS@ \
>  +	@WITH_RC_LIBS@ \
>   	@WITH_SYCK_LIBS@ \
>   	@WITH_XAR_LIBS@ \
>   	@WITH_XZ_LIBS@ \
>  @@ .
>  patch -p0 <<'@@ .'
>  Index: rpm/misc/librpmmisc.vers
>   
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
>  $ cvs diff -u -r1.20 -r1.21 librpmmisc.vers
>  --- rpm/misc/librpmmisc.vers	8 May 2009 01:50:44 -0000	1.20
>  +++ rpm/misc/librpmmisc.vers	9 May 2009 19:55:47 -0000	1.21
>  @@ -110,6 +110,7 @@
>       pcre_maketables;
>       pcre_study;
>       pcre_version;
>  +    rc_main;
>       syck_add_sym;
>       syck_emit;
>       syck_emit_end;
>  @@ .
> ______________________________________________________________________
> RPM Package Manager                                    http://rpm5.org
> CVS Sources Repository                                rpm-cvs@rpm5.org
Received on Sat May 9 22:08:21 2009
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.