Request 197 was acted upon.
_________________________________________________________________________
URL: https://rt.openpkg.org/id/197
Ticket: [OpenPKG #197]
Subject: fsl template
Requestors:
Queue: openpkg
Owner: thl
Status: open
Transaction: Correspondence added by thl
Time: Mon Jul 14 15:31:29 2003
________________________________________________________________________
How to integrate the "fake syslog library" (fsl) into an existing
OpenPKG package named FIXME.
o in the .spec file
- between "Release" and the list of sources, place the fsl
%option. We default to "yes". Align the "yes" with other
options, if there are any. The "with_fsl" should always be the
first option.
- add rc.FIXME and fsl.FIXME to the list of sources. It is very
likely that rc.FIXME already exists. The order must be rc before
fsl.
- make sure that "PreReq" requires at least OpenPKG version
20030415, as it introduced the %{l_fsl...} macros.
- immediately after "PreReq" and before other "if ... with..."
constructs or, if none exist, before "AutoReq", place the "if
... with_fsl ..." construct for conditional "(Build)PreReq".
- %build section, try if LDFLAGS and LIBS can be used to inject
%{l_fsl_ldflags} and %{l_fsl_libs} as shown in the template
%right after CFLAGS. If this doesn't work, i.e. because
%configure desperatly searches for a library with empty name
%when build with "with_fsl no", try to wrap the LDFLAGS/LIBS
%section with a "if ... with_fsl ..." construct, too.
- %install section, make sure the "shtool mkdir" exists, creates a
.../var/FIXME directory and is placed immediately after the
initial "rm".
- %install section, make sure the rc.FIXME file is installed and
the @@ variables are substituted, see "install run-command
script".
- %install section, make sure the fsl.FIXME file is installed and
the @@ variables are substituted, see "install OSSP fsl
configuration".
- %install section, make sure the fsl directory is listed as "%not
%dir" and the fsl.FIXME receives a "%config" tag.
o in the rc.FIXME file
- make sure a %config section exists which creates at least the
_enable and _log_ variables.
- make sure a %daily section exists which does log file rotation,
see "rotate logfile". The job must be run as @[EMAIL PROTECTED]
o create a fsl.FIXME file
- and make sure the proper regex is used for "ident". This
requires source code examination (sometimes patching) and often
run-time testing.
- the epilog of the log file rotation is fully package dependent.
It is valid to run a "rc FIXME restart" (using no path to rc).
An alternative is to use the "jitter=1" option in the l2 file
channel, which was introduced with fsl-1.2.0 (note the fsl
"(Build)PreReq" in the .spec)
- the use of "append=1" in the l2 file channel is deprecated, as
"replace=0" was introduced with fsl-1.2.0 and became the default
(note the fsl "(Build)PreReq" in the .spec)
##
## FIXME.spec -- OpenPKG RPM Specification
...
Release: ...
# package options
%option with_fsl yes
# list of sources
...
Source...: rc.FIXME
Source...: fsl.FIXME
...
PreReq: OpenPKG, openpkg >= 20030415 ...
%if "%{with_fsl}" == "yes"
BuildPreReq: fsl >= 1.2.0
PreReq: fsl >= 1.2.0
%endif
AutoReq: no ...
%build
...
CFLAGS=... \
LDFLAGS="%{l_fsl_ldflags}" \
LIBS="%{l_fsl_libs}" \
./configure \
...
%install
rm -rf $RPM_BUILD_ROOT
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/var/FIXME \
...
# install run-command script
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
%{l_shtool} install -c -m 755 \
-e 's;@l_prefix@;%{l_prefix};g' \
-e 's;@l_susr@;%{l_susr};g' \
-e 's;@l_rusr@;%{l_rusr};g' \
-e 's;@l_rgrp@;%{l_rgrp};g' \
%{SOURCE rc.FIXME} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# install OSSP fsl configuration
%{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
%{l_shtool} install -c -m 644 \
-e 's;@l_prefix@;%{l_prefix};g' \
%{SOURCE fsl.FIXME} \
$RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
# determine installation files
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
%{l_files_std} \
'%not %dir %{l_prefix}/etc/fsl' \
'%config %{l_prefix}/etc/fsl/fsl.FIXME' \
[EMAIL PROTECTED]@/lib/openpkg/bash @l_prefix@/etc/rc
##
## rc.FIXME -- Run-Commands
##
%config
FIXME_enable="yes"
...
FIXME_log_prolog="true"
FIXME_log_epilog="true"
FIXME_log_numfiles="10"
FIXME_log_minsize="1M"
FIXME_log_complevel="9"
...
%daily -u @l_susr@
opServiceEnabled FIXME || exit 0
# rotate logfile
shtool rotate -f \
-n${FIXME_log_numfiles} -s${FIXME_log_minsize} -d \
-z${FIXME_log_complevel} [EMAIL PROTECTED]@ [EMAIL PROTECTED]@ -m644 \
-P "${FIXME_log_prolog}" \
-E "${FIXME_log_epilog} && rc FIXME restart" \
@l_prefix@/var/FIXME/FIXME.log
##
## fsl.FIXME -- OSSP fsl configuration
##
ident (FIXME.*)/.+ q{
prefix(
prefix="%b %d %H:%M:%S %N <%L> $1[%P]: "
)
-> {
debug: file(
path="@l_prefix@/var/FIXME/FIXME.log",
perm=0644
)
}
};
--
[EMAIL PROTECTED]
Development Team, Operations Northern Europe, Cable & Wireless