head 1.54; access; symbols OSSP_RC_0_7_3:1.53 OSSP_RC_0_7_2:1.53 OSSP_RC_0_7_1:1.53 OSSP_RC_ALPHA_06:1.45 OSSP_RC_EXBROKEN:1.44 OSSP_RC_SPEC:1.15; locks; strict; comment @# @; 1.54 date 2003.07.11.14.13.16; author ms; state Exp; branches; next 1.53; 1.53 date 2003.07.07.15.27.59; author ms; state Exp; branches; next 1.52; 1.52 date 2003.07.02.15.34.29; author ms; state Exp; branches; next 1.51; 1.51 date 2003.07.02.13.38.51; author ms; state Exp; branches; next 1.50; 1.50 date 2003.06.30.15.58.49; author ms; state Exp; branches; next 1.49; 1.49 date 2003.06.26.18.45.14; author ms; state Exp; branches; next 1.48; 1.48 date 2003.06.23.11.29.44; author ms; state Exp; branches; next 1.47; 1.47 date 2003.06.12.13.27.44; author ms; state Exp; branches; next 1.46; 1.46 date 2003.06.04.10.48.15; author ms; state Exp; branches; next 1.45; 1.45 date 2003.05.27.11.53.12; author ms; state Exp; branches; next 1.44; 1.44 date 2003.05.23.14.14.34; author ms; state Exp; branches; next 1.43; 1.43 date 2003.05.22.14.46.33; author ms; state Exp; branches; next 1.42; 1.42 date 2003.05.21.15.16.41; author ms; state Exp; branches; next 1.41; 1.41 date 2003.05.21.12.49.20; author ms; state Exp; branches; next 1.40; 1.40 date 2003.05.19.19.04.45; author ms; state Exp; branches; next 1.39; 1.39 date 2003.05.14.19.38.23; author ms; state Exp; branches; next 1.38; 1.38 date 2003.05.14.10.05.41; author ms; state Exp; branches; next 1.37; 1.37 date 2002.08.02.20.08.45; author ms; state Exp; branches; next 1.36; 1.36 date 2002.08.01.14.31.38; author ms; state Exp; branches; next 1.35; 1.35 date 2002.08.01.13.25.32; author ms; state Exp; branches; next 1.34; 1.34 date 2002.08.01.11.59.55; author ms; state Exp; branches; next 1.33; 1.33 date 2002.08.01.09.45.19; author ms; state Exp; branches; next 1.32; 1.32 date 2002.07.30.16.36.41; author ms; state Exp; branches; next 1.31; 1.31 date 2002.07.29.16.33.48; author ms; state Exp; branches; next 1.30; 1.30 date 2002.07.10.19.03.21; author ms; state Exp; branches; next 1.29; 1.29 date 2002.07.04.16.56.21; author ms; state Exp; branches; next 1.28; 1.28 date 2002.06.28.18.23.10; author ms; state Exp; branches; next 1.27; 1.27 date 2002.06.28.17.43.23; author ms; state Exp; branches; next 1.26; 1.26 date 2002.06.26.14.11.16; author ms; state Exp; branches; next 1.25; 1.25 date 2002.05.23.18.03.20; author ms; state Exp; branches; next 1.24; 1.24 date 2002.05.13.16.57.00; author ms; state Exp; branches; next 1.23; 1.23 date 2002.04.24.16.47.07; author ms; state Exp; branches; next 1.22; 1.22 date 2002.04.11.16.52.45; author ms; state Exp; branches; next 1.21; 1.21 date 2002.02.28.18.24.04; author ms; state Exp; branches; next 1.20; 1.20 date 2002.02.08.18.35.03; author ms; state Exp; branches; next 1.19; 1.19 date 2002.02.07.15.36.26; author ms; state Exp; branches; next 1.18; 1.18 date 2002.02.05.20.37.34; author ms; state Exp; branches; next 1.17; 1.17 date 2002.02.04.21.57.09; author ms; state Exp; branches; next 1.16; 1.16 date 2002.02.04.15.11.31; author ms; state Exp; branches; next 1.15; 1.15 date 2002.01.31.21.14.10; author ms; state Exp; branches; next 1.14; 1.14 date 2002.01.31.10.11.43; author ms; state Exp; branches; next 1.13; 1.13 date 2002.01.30.22.55.26; author ms; state Exp; branches; next 1.12; 1.12 date 2002.01.30.17.29.15; author ms; state Exp; branches; next 1.11; 1.11 date 2002.01.30.07.53.24; author ms; state Exp; branches; next 1.10; 1.10 date 2002.01.29.15.35.05; author ms; state Exp; branches; next 1.9; 1.9 date 2002.01.25.16.04.41; author ms; state Exp; branches; next 1.8; 1.8 date 2002.01.24.17.47.47; author ms; state Exp; branches; next 1.7; 1.7 date 2002.01.24.12.50.55; author ms; state Exp; branches; next 1.6; 1.6 date 2002.01.23.13.09.20; author ms; state Exp; branches; next 1.5; 1.5 date 2002.01.18.16.47.17; author ms; state Exp; branches; next 1.4; 1.4 date 2002.01.17.15.47.10; author ms; state Exp; branches; next 1.3; 1.3 date 2002.01.08.15.49.02; author ms; state Exp; branches; next 1.2; 1.2 date 2002.01.07.10.52.51; author ms; state Exp; branches; next 1.1; 1.1 date 2002.01.04.17.14.45; author openpkg-cvs; state Exp; branches; next ; desc @@ 1.54 log @Flush of configuration changes before upcoming configuration structure is completed. @ text @00TODO: Tasks left to accomplish before rc is complete Unfinished business Manpage options incorrectly specifies multiple rc.funcs. Manpage reorganization lacks important option combination info. What when multiple command interpreters and one --print or --eval given? File rc.func totally undocumented, but logic should be clear. Check combo options for correctness, like config contains exc, evl, prn. Consider forking at rc_proc.c:procRun/exec so rc keeps in control afterwards. Remove termination of pRc->m_pAnal->m_szRcs[nIter] chain, obselete by m_nRcs. Work with Ralf to explore his idea of arbitrary section regex substring spec. Probably get rid of all warning exceptions, since ctrl flow doesn't continue. Control flow Explain logical ordering of multiple section spanning multiple rcfiles. Give example semantics of a common scenario. No error semantics in pseudocode. Remove all character strings from code to rc_const.h rc_script.c:254 isspace nimmt nicht char sondern unsigned char her Known bugs Not multithreaded (too many potentials for race conditions or overwrite) Not efficient (reads whole files when only parts are needed...) What's going on with ^ in patterns? Something is broken. Resolve memory leaks with Dmalloc, ask for help. Original rc logic is probably wrong, because with globbing multiple sections of a rcfile are not kept together (logic copied anyways.) Rc file prefix rc. is hardcoded, and when wildcard is given, the prefix is used in selecting files. Location is not properly used. See rc_anal.c. when a section is not found, the config is also not executed Eval mode is temporarily broken Eval and print mode, when -u given '#u' printed, but not always This is a problem if the following section is printed without '#u' Document Refs, pri, user, group, ci, go only in normal (not special) sections. Section definition regular expressions need to follow a format ()\2. Questions Should location regex specify a directory and prefix separately, or files*? Should we just parse %config of labels which have matching %<...> sections? Under which user/priority does the %config and %common sections run? Are there bugs due to unused 'volatile' identifiers? Variation to OpenPKG rc OpenPKG puts sections with no -p at end, but we give them implicitly -p 200 Temp files no longer have pids in their file names during eval mode Consider Nice to have feature for ex, a pEx->pObj->strErr(pEx->Value); Removing the OSSP_RC_DEACT deactivation feature (thl.) Offer include directive in config file. Dynamic handling of command interpreter option. Use anchored regexs (PCRE_ANCHORED) so that bar/.* doesn't match foobar/quux. If a requested section doesn't exist, should the rcfile's %config be added? Interpreter option irgendwo dass hat global scope. Als variable in %config Section? Option --search (for .saved postfix), and section %found (for --search) Must do Translate rc bourne shell script to ISO C. Finish man page. Start latex or Docbook guide. If a variable is defined for which no default exists, warn user (Scholli.) Make own config, get rid of val because it doesn't hold strings. Write interlocking increment for thread-safe increments. Config object probably doesn't need a m_nLocks mutex, though. Convert some normal assert() to real runtime checks. Use str_hash von ossp str or static RC_XXX_VAL array from rc_option.h. Restore lost multiple location merging logic. Use OSSP cfg library for dotconf parsing, ask Ralf to help. Make rc_section_t correspond to rc_section.c with own operators. Make consistent, sectionGetdata and scriptTostring should have same names Add printVerbal() to section class, removing 'if (configGetval(RC_VRB_VAL))' Allow multiple identical section names (having different -u values) Implementation Correct assertion, sanity check, and if () checks according to one standard. Make variable naming standard m_pksz?, and correct throughout. Correct according to a method naming standard like Method. Remove redundant method prototypes in main header file. Relocate rc_anal_t and other to approproate header files rc_anal.h. I think rc_anal is violating the singleton configuration. Totally remove warnings from the exception logic Additional Request 14 was acted upon. This is a comment. It is not sent to the Requestor(s). _________________________________________________________________________ URL: https://rt.openpkg.org/id/14 Ticket: [OpenPKG #14] Subject: apache: invalid rc script arguments are ignored Requestors: markus.sander@@de.cw.com Queue: openpkg Owner: Nobody Status: new Transaction: Comments added by rse Time: Tue Jun 03 16:45:08 2003 _________________________________________________________________________ This should be fixed with the new OSSP rc, but unfortunately the situation is complex: on "rc foo bad", "rc" could complain if rc.foo does not contain a "%bad". But what should it do on "rc all bad"? I think, in this situation is should not complain for all rc.* which do not contain "%bad", of course. Except: IF ALL rc.* DO NOT CONTAIN %bad! mlelstv: What we need is some kind of sanity checking. For example, the rc file could prevent a service from beeing started when there is a .rpmsave configuration present. Change data type locations to private for additional abstraction Index: ossp-pkg/cfg/cfg_buf.c ============================================================ +struct cfg_buf_st { + char *buf_ptr; + size_t buf_size; + size_t buf_len; +}; + Index: ossp-pkg/cfg/cfg_buf.h ============================================================ struct cfg_buf_st; typedef struct cfg_buf_st cfg_buf_t; -struct cfg_buf_st { - char *buf_ptr; - size_t buf_size; - size_t buf_len; -}; - Release plan ------------ Version 0.8 DropIn Milestone 1, Drop in replacement for OpenPKG. Version 0.9 FeatureComplete Milestone 2, Additional features in build. Version 1.0 StableRelease Milestone 3, Cleanup and bugfix. Version 1.2 Milestone 4, Krasse L2 Logging und eigene Sprache Dreams Log to an L2 channel Channel specification could go in rc.conf Processing language !if !else (conditional processing can cross-reference local config vars) !print (print something to stdout) !logit (log something, mstone1-3 to syslog, mstone4 to L2) !lineno [LAST] (the current line number or last successful command) !rcfile [EXISTS|ABSOLUTE] (info about an rcfile) # Is there a way to merge rcfile and rc processor contexts? !envarpush (push an environment variable on the rc stack) !envarpop (pop an environment variable from the rc stack) !throw [var] (returns var to rc processor and ask rc to return -1) !exit [var] (returns var to the rc processor and asks rc to abort execution) !return (signals end of section and returns var to rc processor) ... /-------------------OSSP rc Inhalt------------------\ | Manpage | | rc.1 Section 1 oder 8-Konflict? | | rc-sample.5 Vielleicht umnennen rc.samples.5 | | rc.conf.5 Beschreibung aber kein Beispiel | | | | Geliefert | | rc.env Leer | | rc.conf Ausgekommentet Beispiel | | | | Beispiele | | rc.example Soll rc.foo umgenannt werden | \---------------------------------------------------/ Pseudocode *********************************** * psoudocode implementation of rc * *********************************** parse command line merge all 'rc.conf' files read environment variables build option table parse 'Locate' Locate /cw/etc/rc.d/rc.%{RCFILE:s/^all$/*/} Locate /cw/local/etc/rc.d/rc.%{RCFILE:s/^all$/*/} Locate %{RCFILE}/.duerc Locate ${HOME}/.duerc:m/^(.*)<\/dir>/i Locate ${HOME}/.duerc.%{RCFILE:s/^\///:s/[\/]/-/g} Locate path/file/regex:regex_inside_file for each 'Locate' { for each (all rcfiles after variable expansion and shell globbing) { apply path conversion to rcfilename continue if (absolute path seen previously) // avoid duplicates if (filename matches given rcfile) if (securitycheck(RequireUmask, RequireOwner, RequireGroup)) read and strip file ('Locate' regex, after colon) } } for each rcfile_fraction { parse into blocks according to --ParseSectionDef take out %config section according to --NameConfig take out %common section according to --NameCommon take out %error section according to --NameError take out %default section according to --NameDefault app.mapSections; // create the section map } mapSections () // Map nonexisting %sections to %default { // from now on, 'section' implies 'section->lookupMapval' while (tempSection := ParsedCLI->nextSection) // CLI = command line iface if (rcfile_fraction->has(tempSection)) rcfile_fraction->sectionNames += tempSection; else if (rcfile_fraction->has(%default)) rcfile_fraction->sectionNames += %default; else handle error } for each section on command line { if (multiple rcfiles, i.e. all) sort rcfiles by section priority (%defaults are last) for each rcfile { script = ""; script += %config from rcfile script += rc.env (overriding any duplicate values) create_rcfile_script(script, section, recurse=no) expand internal variables execute, print, or printeval script with user & group priveleges and command interpreter according to options or section header } } EXIT create_rcfile_script(script, section, recurse) { script += "${body}" // start with a pseudo value if (!recurse) { // only one rc.func is possible if no ${body} in rc.func->%common prepend ${body} to rc.func->%common replace script->${body} with rc.func->%common } if no ${body} in rcfile->%common prepend ${body} to rcfile->%common replace script->${body} with rcfile->%common if (!recurse) { // only one rc.func is possible if no ${body} in rc.func->%section prepend ${body} to rc.func->%section replace script->${body} with rc.func->%section } replace script->${body} with rcfile->%section while (ref := ParseSectionRef(script)) ref->create_rcfile_script(recurse=yes); } Test cases ********************* * Test cases for rc * ********************* Pre: tar zxvf ossprc-0.9.tar.gz cd ossprc-0.9 ./configure make su make install export OSSP_RC_ROOT=/etc/ossprc/ Assume: Installed program 'mycom' in /usr/local/bin/mycom Valid OSSP run command file rc.mycom in /etc/ossprc/rc.d File rc.mycom contains the sections start, sync, and restart Begin: $ rc mycom start sync restart Output: Post: Procedure: @ 1.53 log @Finish up before a preliminary release. @ text @d18 1 @ 1.52 log @Remember to sort out the remaining strings in code. @ text @d64 1 @ 1.51 log @Remember idea by Michael van Elst of avoiding suprising functionality based on file regex searches in location directory. @ text @d17 1 @ 1.50 log @Repaired print run mode before adding %common logic. @ text @d55 1 @ 1.49 log @Break off before fully implementing common section run ops, but after reorganization of class data, and additional member functions for section and script manipulation. @ text @d29 2 @ 1.48 log @Remember possible feature, 'activate warnings on rcfile pattern'. @ text @d67 1 @ 1.47 log @Complete verbose mode implementation. @ text @d101 5 @ 1.46 log @Keep track of error case when sections are not found. @ text @d66 1 @ 1.45 log @Back out volatile identifier additions after better understanding their role. @ text @d76 24 @ 1.44 log @Remember to fix eval mode. @ text @d38 1 @ 1.43 log @Half finish the per-user process logic, leading up to coding the fork(2) and waitpid(2). @ text @d28 1 @ 1.42 log @Bug fix recent eval mode addition, and add login name parsing to eval mode. @ text @d27 1 @ 1.41 log @Implement eval mode. @ text @a30 1 Changed from OpenPKG: temp files no longer have pids in their file names d39 1 @ 1.40 log @Remember consistency issues. @ text @d31 1 @ 1.39 log @Update and correct test suite, remember privilege issue. @ text @d37 3 d61 1 @ 1.38 log @Dave Dykstra noticed an inconsistency, details in ticket 152. @ text @d35 1 @ 1.37 log @Remember some good ideas, and a few questions. @ text @d34 1 @ 1.36 log @Some minor test changes and documentation. @ text @d10 3 d23 2 d40 2 d55 1 @ 1.35 log @Added generic parsing of section arguments, adjusted defaults and tests. @ text @d80 3 a82 3 Detailed ;-) project plan ------------------------- Release v0.8 d84 1 a84 1 Release v0.9 d86 1 a86 1 Release v1.0 d88 1 a88 1 Release v1.2 @ 1.34 log @Moved call to configVerify to squash yet another early error bug. @ text @d25 1 @ 1.33 log @Fix rcfile globbing. @ text @d26 3 @ 1.32 log @Implemented command execution mode, and now OSSP rc is dangerous to use because it will actually execute code. Test suite is adjusted accordingly. @ text @d20 2 @ 1.31 log @Remember data type abstraction and other important things. @ text @d9 1 @ 1.30 log @New things to remember that are failing or not in the build yet. @ text @d8 1 a40 1 Add config section of each rc file to start of script. d50 22 @ 1.29 log @Remember pattern matching problem. @ text @d17 1 d39 2 @ 1.28 log @Cleaned main program block and consolidated error handling into rcError(). Also made output of missing section warnings optional according to --debug flag. @ text @d16 1 @ 1.27 log @Improved section parsing and added back most error condition logic. All combinations of wildcard globbing, multiple section parsing, and error handling now work (except for a problem relating to or using ex). @ text @d36 1 @ 1.26 log @Intermediate committal, lots of additions, compiles and works very limited. @ text @d44 1 @ 1.25 log @More flush work on analyzer. @ text @d41 3 @ 1.24 log @Flush minor work. Building successfuly again. @ text @d37 5 @ 1.23 log @Command line option configuration and some processor operations. @ text @d15 1 @ 1.22 log @Flush the toilet. @ text @d13 3 @ 1.21 log @Configuration improvements. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d30 2 @ 1.20 log @Use OSSP val library. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d28 2 @ 1.19 log @Move test cases out of test script and into 00TODO, write real test scripts. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d17 1 @ 1.18 log @Fixed copyright and updated the todo list. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d5 1 a19 1 Environment of manpage has redundant text. d155 26 @ 1.17 log @Try to figure out why autoconf is not using external libraries, but do it tomorrow ;-) PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @a2 9 !PROBLEMA! $ ./configure checking whether to build against external Dmalloc library... no checking whether to build against external OSSP popt library... no checking whether to build against external OSSP ex library... no checking whether to build against external OSSP Str library... no checking whether to build against external OSSP Var library... no configure: creating ./config.status d12 3 a16 1 Make return code and error definitions unique to OSSP rc. d24 1 a24 2 Strip local getopt and popt code, and use OSSP popt library. Translate rc bourne shell script to ANSI C. a26 3 Document Refs, pri, user, group, ci, go only in normal (not special) sections. @ 1.16 log @Remember to fix manpage later, wrong option info for rc.func given. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d3 9 @ 1.15 log @Corrections, additions, and moving items from 00TODO to rc.pod. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d4 1 d26 3 @ 1.14 log @Add text on section arguments and OSSP_RC_DEACT, improve examples, line up text, remove unneeded =over and =back tags. Prepare for description of control flow and command interpreter logic. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d3 3 a5 5 Spec fehlt Command interpreter (probably goes in rc.usecase.pod) Beispiel Default Error d7 3 a9 7 Errors during execution Multiple sections given Wildcard 'all' given Both wildcard and multiple sections Avoid a silent failure when giving non-existent run commands (Marcus.) Use case - give 'restart' command in place of 'start' to stopped prog User assumes stop implicitly dropped if program not running d17 2 d21 1 a21 1 Strip local popt code, and move in OSSP popt library. d26 31 d60 1 a60 1 | rc-sample.5 Vielleicht umnennen rc.usecases.5 | d68 1 a68 1 | rc.example Soll rc.fooboar umgenannt werden | d76 22 a97 2 parse options read and merge all "rc.conf" files d99 7 a105 15 parse "Locate" Locate /cw/etc/rc.d/rc.%{RCFILE:s/^all$/*/} Locate /cw/local/etc/rc.d/rc.%{RCFILE:s/^all$/*/} Locate %{RCFILE}/.duerc Locate ${HOME}/.duerc:m/^(.*)<\/dir>/i Locate ${HOME}/.duerc.%{RCFILE:s/^\///:s/[\/]/-/g} Locate path/file/regex:regex_inside_file foreach locate { for each (locate all possible rcfiles after variable expansion and shell globbing) { continue if (absolute path seen previously) //avoid duplicates if (filename matches given rcfile && securitycheck(RequireUmask, RequireOwner, RequireGroup)) load file and grab only a part of the file according to info after colon given in "locate" } d108 8 a115 5 foreach located_rcfile_fraction { parse rcfile into blocks according to --ParseSectionDef take out %config section according to --NameConfig take out %common section according to --NameCommon take out any sections given on command line d118 1 a118 1 foreach section { d120 2 a121 2 sort rcfiles by section priority. foreach rcfile { d124 4 a127 4 script += rc.env and override it create_script_for_rcfile(script, section, parent=no) expand our internal variables execute, print or printeval script with user & group priveleges d133 1 a133 2 create_script_for_rcfile(script, section, parent) d135 1 a135 1 script += "${body}" //start with a pseudo value d137 3 a139 3 if (!parent) { //only one rc.func!? replace ${body} with %common from rc.func if no ${body} assume prepend d141 6 a146 5 replace ${body} with %common from rcfile if no ${body} assume prepend if (!parent) { //only one rc.func!? replace ${body} with %section from rc.func if no ${body} assume prepend d148 1 a148 1 replace ${body} with %section from rcfile d150 2 a151 1 expand references using --ParseSectionRef and calling create_script_for_rcfile(section, parent=yes); @ 1.13 log @Add ASN.1 example, revise and correct manpages, update todo list. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @a3 2 Security Off switch a7 1 Section arguments (rc sshd restart 2) d18 1 d21 1 @ 1.12 log @Refresh current project state, add OSSP ex library, corrections. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d6 1 a6 1 Command interpreter d10 9 a18 7 Inconsistent rc.conf rc.config rc.env package command program section rcfile rc.file runcommand run command (run-command?) Environment Genaue wie comline- und rc.conf Optionen Ausname drei schon stehen d23 1 a29 7 Avoid a silent failure when giving non-existent run commands (Marcus.) Automated environment Stock rc.func includes AddPath, DelPath, PermMask. Error handling Classic error, give 'restart' command in place of 'start' to stopped prog @ 1.11 log @options come from command line and config files, note file globbing, rc.env has no %env section @ text @d3 15 a20 3 Standardize rc.conf. Rename rc.conf to rc.config. New rc.conf specifies options like syslog.conf or resolv.conf does. d23 1 a28 6 Possible problems Abstract syntax of rc.file identifiers Need to recognize language syntax, i.e. set, block von XML? Is a regex enough to describe a syntax or do we need more? Cases XML, M4, asn.1, ... a30 1 Reccommended .bashrc includes rcEnter() and rcExit(). d34 14 @ 1.10 log @Pseudocoded anad small adjustments. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d34 1 a34 1 parse command line options d46 2 a47 2 foreach given locate { for each (locate all possible rcfiles working out the regex) { d67 1 a67 1 script += %env from rc.env and override it @ 1.9 log @Added detail to examples, and studied of abstract syntax in rc.files and rc.conf. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d28 67 @ 1.8 log @Buildconf and example files. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d16 6 d23 2 a24 1 Solve problem discussed at OpenPKG eval meeting. @ 1.7 log @Update buildconf status and record config file and postcode file design. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d5 4 a8 3 Standardize rc.conf Rename rc.conf to rc.post or/and rc.pre New rc.conf has a rc config like syslog.conf, resolv.conf, or inetd.conf d18 3 @ 1.6 log @Completed draft. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d5 3 a7 1 Enclose rc.c in its own project and write autoconf logic. a9 1 Automake raus. a11 2 Remove autogen.sh after devtool is finished. Customize devtool.conf and devtool.func for rc and automake. @ 1.5 log @Give rc a devtool. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d8 1 @ 1.4 log @Documentation and small configuration changes. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d9 3 a11 1 Convert from autogen to devtool for conformance with team standards. @ 1.3 log @Final move from OpenPKG project hierarchy to OSSP project hierarchy. PR: Submitted by: Reviewed by: Approved by: Obtained from: @ text @d9 1 @ 1.2 log @changed filename @ text @d1 1 a1 1 00TODO: Tasks left to accomplish before the rc utility is complete d4 2 a5 2 Develop return code and error definitions unique to OpenPKG Enclose rc.c in its own project and write autoconf logic d8 6 a13 1 Translate rc bourne shell script to ANSI C @ 1.1 log @First cut at bourne script to ANSI C (+improvements) of rc run-command processor @ text @d1 1 a1 1 rcTODO: Tasks left to accomplish before the rc utility is complete @