Rumen Yotov wrote:
> Michael Tindal wrote:
>
>
>>Hello,
>>
>>So a long time ago solar wrote a bashrc for portage, and posted it on
>>this mailing list for everyone to see. I took it, and started extending
>>it with various things of my own design, and some contributions from
>>others. I've since updated it with the things solar's been adding to
>>his bashrc, plus adding the functionality from ChrisWhites bashrc.
>>Well, adding all of that stuff made the bashrc quite large. In addition
>>I was using CVS for a while, and wrote a lot of hooks to work with CVS,
>>when I went back to 2.0.51, I didnt want to lose all of those, so I
>>backported in a way the hooks from CVS (I mean in a way because the post
>>hooks arent really post hooks, they just run before the pre hook of the
>>next phase), but that meant the bashrc was huge.
>>
>>So, sometime last night or this morning I set out to create a modular
>>portage bashrc [1], and I have done so. I'll admit, the code is ugly,
>>and it probably could've been done better. But it does lay a good
>>framework for future extensions.
>>
>>The bashrc file is just a skeleton that loads the modules, and handles
>>the pseudo-hook implementation. The real magic happens in the
>>bashrc-modules subdirectory. core-functions.bmod contains the basic
>>functions and handles loading other modules. hooks.bmod defines the
>>hooks used and defines functions used to add new function calls to the
>>hooks. The other bmod files define some sort of library for other
>>modules (like an eclass) or functions that get loaded into the hooks. I
>>don't have any documentation written up for that, so read through the
>>source and you should get an idea of how it all works.
>>
>>The BASHRC_DYN_MODULES variable can be defined in make.conf to limit the
>>modules that are loaded by the bashrc. This is useful if you only want
>>to use a subset of the functionality available in the modules, and dont
>>want to load them all. The default behavior is to load all of the
>>modules under ${ROOT}/etc/portage/bashrc-modules/. To extend the
>>bashrc, for example, to add another feature, you simply create a new
>>bmod following the examples given, then either let it load automatically
>>or add it to BASHRC_DYN_MODULES.
>>
>>I've done some thorough testing and beu did some testing as well, so
>>there shouldnt be any major bugs, but if you find some, please e-mail me
>>with them. I'm especially interested in command not found errors. This
>>is some really ugly bash code, so if you run into obscure errors, dont
>>freak out, theyre a result of how I deal with the infrastructure.
>>Overall though, it appears to be stable, and I'm currently using it on
>>my system.
>>
>>Finally, I'd like to thank the people who directly or indirectly helped
>>with this bashrc and the bashrc system: solar, ChrisWhite, beu,
>>bluefoxicy, and anyone else who I forgot to name. Enjoy everyone!
>>
>>Mike Tindal
>>
>>PS: Heed the warning given in the setup phase, you *cannot* modify
>>variables that affect depends because the environment the bashrc
>>modifies isnt picked up by depends. Be very careful with what you do
>>with category.use, since that can very easily break builds.
>>
>>[1]
>>http://dev.gentoo.org/~urilith/portage-tools/bashrc-2.0.51-modular-20050612.tar.bz2
>>
>>I've got some sample files in that dir for the random files the bashrc
>>supports.
>>
>>
>
> Hi,
> Till now used the old/org bashrc-script plus package.* files.
> Now when replaced them with the new one get some errors, seems just
> syntax ones.
> Here's the log when using it:
> ...
>
>>>>Loading module hooks.bmod...
>>>>Loading module string-utils.bmod...
>>>>Loading module audit.bmod...
>>>>Loading module autooverlay.bmod...
>>>>Loading module autopatch.bmod...
>>>>Loading module conf.bmod...
>>>>Loading module distdir-clean.bmod...
>>>>Loading module enotice.bmod...
>>>>Loading module etc-portage.bmod...
>
> //etc/portage/bashrc-modules/core-functions.bmod: eval: line 103:
> unexpected EOF while looking for matching `''
> //etc/portage/bashrc-modules/core-functions.bmod: eval: line 104: syntax
> error: unexpected end of file
> //etc/portage/bashrc-modules/core-functions.bmod: eval: line 108:
> unexpected EOF while looking for matching `''
> //etc/portage/bashrc-modules/core-functions.bmod: eval: line 109: syntax
> error: unexpected end of file
> //etc/portage/bashrc-modules/core-functions.bmod: eval: line 103:
> unexpected EOF while looking for matching `''
> //etc/portage/bashrc-modules/core-functions.bmod: eval: line 104: syntax
> error: unexpected end of file
> //etc/portage/bashrc-modules/core-functions.bmod: eval: line 108:
> unexpected EOF while looking for matching `''
> //etc/portage/bashrc-modules/core-functions.bmod: eval: line 109: syntax
> error: unexpected end of file
> //etc/portage/bashrc-modules/core-functions.bmod: eval: line 103:
> unexpected EOF while looking for matching `''
> //etc/portage/bashrc-modules/core-functions.bmod: eval: line 104: syntax
> error: unexpected end of file
> //etc/portage/bashrc-modules/core-functions.bmod: eval: line 108:
> unexpected EOF while looking for matching `''
> //etc/portage/bashrc-modules/core-functions.bmod: eval: line 109: syntax
> error: unexpected end of file
>
>>>>Loading module eutils.bmod...
>>>>Loading module optipng.bmod...
>>>>Loading module pathchk.bmod...
>>>>Loading module prelink.bmod...
>>>>Loading module setup.bmod...
>>>>Loading module whatis.bmod...
>>>>root -sandbox(setup) [Enter]
>
> !!!!!! !!!!!! Do
> !!NOT!! use these files to modify variables
> that would !!!!!! alter the dependencies of the package. If you
> do, things !!!!!! WILL break. This
> bashrc has no control before the !!!!!! depend phase, so
> the files cannot be used to modify
> !!!!!! dependency-related variables. These files are mostly
> !!!!!! used to enable features and/or
> variables on a per-package !!!!!! basis without having to
> cluttler /etc/make.conf !!!!!! -------- WARNING
> ON PER-PACKAGE FEATURES IN THIS BASHRC --------
> !!!//etc/portage/bashrc-modules/core-functions.bmod: eval: line 103:
> unexpected EOF while looking for matching `''
> //etc/portage/bashrc-modules/core-functions.bmod: eval: line 104: syntax
> error: unexpected end of file
> //etc/portage/bashrc-modules/core-functions.bmod: eval: line 108:
> unexpected EOF while looking for matching `''
> //etc/portage/bashrc-modules/core-functions.bmod: eval: line 109: syntax
> error: unexpected end of file
>
>>>>Using package.cflags entry for target sys-devel for sys-devel/gettext
>>>>root +sandbox(setup) [Leave]
>>>>root +sandbox(unpack) [Enter]
>
> /var/tmp/portage/gettext-0.14.4/temp/environment: eval: line 2942:
> unexpected EOF while looking for matching `''
> /var/tmp/portage/gettext-0.14.4/temp/environment: eval: line 2943:
> syntax error: unexpected end of file
> /var/tmp/portage/gettext-0.14.4/temp/environment: eval: line 2946:
> unexpected EOF while looking for matching `''
> /var/tmp/portage/gettext-0.14.4/temp/environment: eval: line 2947:
> syntax error: unexpected end of file
>
>>>>Using package.cflags entry for target sys-devel for sys-devel/gettext
>>>>Unpacking source...
>
> ...
> PS: will also look into it but not now, later. Will report anything new.
> Thanks for your work. RumenThere have been some new releases lately. Look in the portage-tools directory and try again. Also, mail these to me, not the list, since the bugs are my reponsibility :). Mike
signature.asc
Description: OpenPGP digital signature
