Commit Graph

385 Commits

Author SHA1 Message Date
Alexey Tourbin
8dd5a961e8 find-package (FindByPath): consider (not-so-) broken symbolic links inside RPM_BUILD_ROOT 2007-09-19 14:16:01 +04:00
Alexey Tourbin
d74f8d9a69 find-package (findByName): replaced /usr/bin/which with custom shell code
This is to address a few problems:

1) When checking RPM_BUILD_ROOT, st_mode test performed by /usr/bin/which
is not quite reliable.  Files can be packaged with different %attr mode.

2) When checking RPM_BUILD_ROOT, there could be symbolic links there
which are (not-so-) broken.

3) When checking host system, files like /sbin/init (which is 0700)
are effectively bypassed by /usr/bin/which.

4) There's an ongoing practice of placing shell function libraries
under /usr/bin, e.g. /usr/bin/git-sh-setup.  These files are sourced
from within shell scripts and need not be executable at all.

This leads me to the point that permission check, which is performed by
/usr/bin/which, is not needed at all.  Note that things are getting more like
contents_index_bin search.  And for RPM_BUILD_ROOT, we do not even require
strong stat-wise file existence.

I like this new term: "strong stat-wise file existence".
It's awesome.
2007-09-19 12:57:08 +04:00
Alexey Tourbin
3925c4c392 find-package (FindByName): manage "not found" verbosity 2007-09-19 11:08:53 +04:00
Alexey Tourbin
a1e07a6d21 find-package (FindByName): added sbin-ish paths under /etc 2007-09-19 10:33:12 +04:00
Alexey Tourbin
d03deaf0fa find-package: implemented different PATHs for user and root code (the */sbin scripts)
also appended /usr/games to both user and root PATHs
2007-09-19 00:17:53 +04:00
Alexey Tourbin
b0190e3888 lib.prov: fixed DEF_RPM_FINDPROV_LIB_PATH 2007-09-16 17:31:49 +04:00
Alexey Tourbin
7ece64adc3 find-package (FindPackage): unquoted $valid case paterns 2007-09-12 20:07:43 +04:00
Alexey Tourbin
e5f015d831 find-package (FindPackage): fixed shell syntax (D'oh!) 2007-09-12 19:34:01 +04:00
Alexey Tourbin
4eb4ccf490 find-package: fixed Verbose message for contents_index_bin 2007-09-12 19:28:46 +04:00
Alexey Tourbin
2b1c36538f find-package: implemented protection against shell metacharacters and evil paths
There are two possibilities for protection:
1) we should protect at least from very evil shell metacharacters,
like [$*], and also from [:cntrl:] (e.g. newline).
2) we can provide an exhaustive list of characters that are valid
for non-evil pathnames and commands, and issue mandatory warning
if the command or path appears to be evil.

I chose the latter approach.
Valid character range is 'A-Za-z0-9/@=.,:_+-'.

Note that (almost) all files from our base build system
are valid paths:

$ valid='A-Za-z0-9/@=.,:_+-'
$ hsh-run -- rpm -qal |grep "[^$valid]"
/usr/bin/[
/usr/share/man/man1/[.1.bz2
(contains no files)
(contains no files)
$

Later we'll see if the range of valid characters needs to be extended.
2007-09-10 13:32:26 +04:00
Alexey Tourbin
9196764224 pkgconfiglib.req: better error message 2007-08-29 02:19:10 +04:00
Alexey Tourbin
cc20bfa4b1 pkgconfiglib.req: use CanonPath for libdir before rpmquery 2007-08-29 01:59:16 +04:00
Alexey Tourbin
0e085c0a83 pkgconfiglib.req: new pkgconfig.req mode (makes dependencies on Libs)
This will grab libraries from ^Libs: clause and map each library
to rpm dependency, which is typically lib*-devel package.

$ grep ^Libs: /usr/lib/pkgconfig/directfb.pc
Libs: -ldirectfb -lpthread -ldl -lz
$

It works like this:

$ ln -s pkgconfig.req.in scripts/pkgconfiglib.req.in
$ scripts/pkgconfiglib.req.in -v /usr/lib/pkgconfig/directfb.pc
pkgconfiglib.req.in: /usr/lib/pkgconfig/directfb.pc: libdirectfb.so -> libdirectfb-devel
libdirectfb-devel
pkgconfiglib.req.in: /usr/lib/pkgconfig/directfb.pc: libz.so -> zlib-devel
zlib-devel
pkgconfiglib.req.in: /usr/lib/pkgconfig/directfb.pc: libfusion.so -> libdirectfb-devel
libdirectfb-devel
pkgconfiglib.req.in: /usr/lib/pkgconfig/directfb.pc: libdirect.so -> libdirectfb-devel
libdirectfb-devel
pkgconfiglib.req.in: /usr/lib/pkgconfig/directfb.pc: libpthread.so -> glibc-devel (skip)
pkgconfiglib.req.in: /usr/lib/pkgconfig/directfb.pc: libdl.so -> glibc-devel (skip)
$

Some minor problems:

$ scripts/pkgconfiglib.req.in /usr/lib/pkgconfig/*.pc >/dev/null
pkgconfiglib.req.in: /usr/lib/pkgconfig/avahi-qt3.pc: cannot find libavahi-qt3.so library path (skip)
pkgconfiglib.req.in: /usr/lib/pkgconfig/libgdiplus.pc: cannot find libexif.so library path (skip)
pkgconfiglib.req.in: /usr/lib/pkgconfig/valgrind.pc: cannot find libcoregrind.so library path (skip)
pkgconfiglib.req.in: /usr/lib/pkgconfig/valgrind.pc: cannot find libvex.so library path (skip)
pkgconfiglib.req.in: /usr/lib/pkgconfig/valgrind.pc: cannot find libgcc.so library path (skip)
$
2007-08-28 20:40:22 +04:00
Alexey Tourbin
63ac11f82e pkgconfig.req: better diagnostics
(old)
$ /usr/lib/rpm/pkgconfig.req /usr/lib/pkgconfig/gtkextra-2.0.pc
Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
Package 'gtk+-2.0', required by 'GtkExtra', not found
$

(new)
$ scripts/pkgconfig.req.in /usr/lib/pkgconfig/gtkextra-2.0.pc
Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
Package 'gtk+-2.0', required by 'GtkExtra', not found
pkgconfig.req.in: failed to process /usr/lib/pkgconfig/gtkextra-2.0.pc
$
2007-08-28 18:52:13 +04:00
Alexey Tourbin
015636ebda pkgconfig.req.files: check for *" text"* type
$ ls /usr/lib/pkgconfig/*.pc >.1
$ ls /usr/lib/pkgconfig/*.pc |file -NF$'\t' -f - |./scripts/pkgconfig.req.files >.2
pkgconfig.req.files: /usr/lib/pkgconfig/libpng.pc:  symbolic link to `libpng12.pc'
$ diff -U1 .1 .2
--- .1  2007-08-28 18:26:10 +0400
+++ .2  2007-08-28 18:26:13 +0400
@@ -115,3 +115,2 @@
 /usr/lib/pkgconfig/libpcre.pc
-/usr/lib/pkgconfig/libpng.pc
 /usr/lib/pkgconfig/libpng12.pc
$

Remember that symlinks are relevant only for find-requires.
There is no such thing as symbolic links in find-provides.
2007-08-28 18:29:27 +04:00
Alexey Tourbin
c5dd9e98c3 merged pkgconfig.{req,prov} scripts into pkgconfig.req, added install-data-local target 2007-08-28 18:11:26 +04:00
Alexey Tourbin
7b199c08da shell.req: use "file -bL" 2007-08-28 02:12:58 +04:00
Alexey Tourbin
806a7e6491 shell.req: reworked
Now "sh --rpm-requires" failures are always verbose:

$ ln -s /usr/lib/rpm @RPMCONFIGDIR@
$ scripts/shell.req.in /usr/lib/rpm/tcl.req
/usr/lib/rpm/tcl.req: line 32: syntax error near unexpected token `}'
/usr/lib/rpm/tcl.req: line 32: `}'
shell.req.in: /usr/lib/rpm/tcl.req is ${RPM_TCLSH:-/usr/bin/tclsh} script!
shell.req.in: /usr/lib/rpm/tcl.req: invalid pathname ${RPM_TCLSH:-/usr/bin/tclsh}
$ echo $?
0
$

$ scripts/shell.req.in /usr/bin/perldoc
/usr/bin/perldoc: line 6: syntax error near unexpected token `Pod::Perldoc-'
/usr/bin/perldoc: line 6: `exit( Pod::Perldoc->run() );'
shell.req.in: /usr/bin/perldoc: /bin/sh --rpm-requires failed
$ echo $?
1
$
2007-08-28 01:22:46 +04:00
Alexey Tourbin
650b0fc0c1 find-package (FindByPath): use CanonPath before contens_index search
I see that this can add SOME problems if e.g. /usr is relocated
to /storage/usr in the build environment.  This is because CanonPath
follows symlinks for dirname.

But I argue that it is safe for hasher, and it fixes some problems
with contents_index search which is used only in the hasher (by default).

I also argue that, even if /usr is relocated, this is not going to be a BIG
problem, because it is not going to produce unmet dependencies (well, most
of the time).  This is because 'rpm -qf' will work as expected in that screwed
build environment.
2007-08-27 21:27:05 +04:00
Alexey Tourbin
5a5bd82133 scripts/functions: CanonPath: new function (canonicalize each path component except for the last)
This is actually a DWIM-style hack.  It does what we want but I cannot
think of a better name.  The idea is that sometimes we want to clean
up path name, possibly following symbolic links, except for the last
component, which we want to keep as is.

$ sh -c '. scripts/functions; CanonPath /etc/init.d/functions'
/etc/rc.d/init.d/functions
$ sh -c '. scripts/functions; CanonPath /usr/bin/../bin/perl'
/usr/bin/perl
$

So actually it does a few different things: 1) prepend $PWD if needed;
2) cleanup dirname; 3) canonicalize dirname with respect to symbolic links.

Now the question is how to process symbolic links which
targets are directories, e.g. /etc/init.d ?  My answer is that
both "/etc/init.d" and "/etc/init.d/", as well as "/etc/init.d/."
should yield the same result, which is "/etc/rc.d/init.d".
2007-08-27 21:00:00 +04:00
fd480b9df1 scripts/find-package.in (FindPackage): Check binary index prior to complete index 2007-08-25 15:38:42 +00:00
Alexey Tourbin
71c3d7908d find-package (FindByName): in ambigous case, first check if [ path = pkg ] 2007-08-10 16:10:58 +04:00
Alexey Tourbin
bd368155cd find-package (FindByPath): discard rpmquery stderr 2007-08-08 02:54:04 +04:00
Alexey Tourbin
968016ffdc find-package: added description atop 2007-08-08 00:49:48 +04:00
Alexey Tourbin
7c7eccde32 find-package (FindByName): added more comments, for casual readers 2007-08-08 00:28:55 +04:00
Alexey Tourbin
706ff5d5ec find-package: more comments for RPM_FINDPACKAGE_PATH processing 2007-08-07 22:59:50 +04:00
Alexey Tourbin
91b7ebe4c6 find-package: added comments to RPM_FINDPACKAGE_PATH awk script 2007-08-07 22:41:19 +04:00
Alexey Tourbin
c9dbb383f6 find-package: manage verbosity with 'local Verbose' variable
When something goes not as good as we would like, we should
be able to increase verbosity locally for this particular case.

Old behaviour:

$ sh -efu -c '. /usr/lib/rpm/find-package; RPM_PKG_CONTENTS_INDEX_ALL=/etc/passwd FindPackage myscript /bin/cat'
sh: myscript: checking contents_index_all for /bin/cat
coreutils
$

In this example I pretend that /bin/cat lookup failed against
contents_index_all.  The problem here is that, once we know about
a "strange thing" happening, we also want to know the end of the story.
Where does coreutils come from?  That is the question.

New behaviour:

$ sh -efu -c '. /usr/lib/rpm/find-package; RPM_PKG_CONTENTS_INDEX_ALL=/etc/passwd FindPackage myscript /bin/cat'
sh: myscript: checking contents_index_all for /bin/cat
sh: myscript: /bin/cat -> coreutils (via rpmdb)
coreutils
$

When "strange things" happen, I increase verbosity locally,
until the "strange thing" is resolved.  I use 'local Verbose=Info'
approach to increase verbosity.  Since shell has dynamic variables
(with visibility bound to function-call stack), this is just what
we need.

Strange things are:
- in FindByPath:
  + contents_index_all search
- in FindByName:
  + ambiguous contents_index_bin search
    (the same command under e.g. /sbin and /usr/bin)
  + ambiguous /usr/bin/which search (ditto)
2007-08-07 22:17:58 +04:00
Alexey Tourbin
a2090d8dd9 find-package (FindPackage): enhanced path vs. command validation
Also increased verbosity for invalid pathnames and/or commands.
2007-08-07 20:43:02 +04:00
Alexey Tourbin
3f764319ec find-package (FindByPath): enhanced contents_index search
In FindByPath, we should always check contents_index_bin first.
It is not quite expensive, and we make no assumptions which path
entries it may contain (our contents_index_bin, in addition
to standard *bin/ paths, also has /etc entries).

However, if contents_index_bin lookup fails, we may or may
not want to proceed with very expensive contents_index_all
search.  We assume that, if contents_index_bin lookup actually
has take place for some standard *bin/ path, then there is simply
no need to proceed with contents_index_all.

Now we also assume that contents_index_all file can be possibly
gzipped (I use "gzip -cdfq" for "zcat or cat", found in zgrep).

Also increased verbosity (Verbose to Info) for contents_index_all
messages, since it is expensive and it is a means of "last resort"
to finding something strange before giving up, which is quite worth
to note about.

Also increased verbosity for "raw, not found" dependencies,
since they are likely to become unmet.
2007-08-07 19:58:35 +04:00
Alexey Tourbin
60ca916d3b shell.req.in: quote grep arguments with "--"
There's a bug in "sh --rpm-requires" mode:

$ sh --rpm-requires /dev/stdin <<<'exec -a PERL /usr/bin/perl'
executable(-a)
$

Then "-a" is passed to grep as its first argument (search pattern).
2007-08-03 19:04:29 +04:00
a78e49bdb2 Merge branch 'master' into mod 2007-03-27 23:15:44 +00:00
94bc3f23e1 scripts/files.req.list: Add /etc/hooks 2007-03-27 22:36:28 +00:00
Alexey Tourbin
5909f93e30 find-package (FindByName): optimized awk script
It looks like that, unlike in perl, pattern matching in awk is very slow.
Perhaps they just don't have regexp engine hackers like Larry Wall or
Ilya Zakharevich (or, most recently, Yves Orton aka demerphq).

That's okay, since I can rewrite the script without pattern matching at all.
That is, I don't have to split each index line into dir+basename, because
I can prepare all valid absolute pathnames in advance.

Old speed:

$ time /usr/lib/rpm/shell.req -v /dev/stdin <<<`rpm -ql rpm-utils |sed -n 's|/usr/bin/||p'`
shell.req: add_changelog -> /usr/bin/add_changelog -> rpm-utils (via content index)
shell.req: buildreq -> /usr/bin/buildreq -> rpm-utils (via content index)
shell.req: cleanup_spec -> /usr/bin/cleanup_spec -> rpm-utils (via content index)
shell.req: compare_packages -> /usr/bin/compare_packages -> rpm-utils (via content index)
shell.req: filereq -> /usr/bin/filereq -> rpm-utils (via content index)
shell.req: packageof -> /usr/bin/packageof -> rpm-utils (via content index)
shell.req: packagereq -> /usr/bin/packagereq -> rpm-utils (via content index)
shell.req: rebuild_package -> /usr/bin/rebuild_package -> rpm-utils (via content index)
shell.req: rebuild_packages -> /usr/bin/rebuild_packages -> rpm-utils (via content index)
shell.req: rpmdups -> /usr/bin/rpmdups -> rpm-utils (via content index)
shell.req: rpmevrcmp -> /usr/bin/rpmevrcmp -> rpm-utils (via content index)
shell.req: rpmrdups -> /usr/bin/rpmrdups -> rpm-utils (via content index)
shell.req: rpmvercmp -> /usr/bin/rpmvercmp -> rpm-utils (via content index)
shell.req: stamp_spec -> /usr/bin/stamp_spec -> rpm-utils (via content index)
rpm-utils
/usr/lib/rpm/shell.req -v /dev/stdin <<<   5.37s user 0.11s system 96% cpu 5.683 total
$

New speed:

$ time /usr/lib/rpm/shell.req -v /dev/stdin <<<`rpm -ql rpm-utils |sed -n 's|/usr/bin/||p'`
shell.req: add_changelog -> /usr/bin/add_changelog -> rpm-utils (via content index)
shell.req: buildreq -> /usr/bin/buildreq -> rpm-utils (via content index)
shell.req: cleanup_spec -> /usr/bin/cleanup_spec -> rpm-utils (via content index)
shell.req: compare_packages -> /usr/bin/compare_packages -> rpm-utils (via content index)
shell.req: filereq -> /usr/bin/filereq -> rpm-utils (via content index)
shell.req: packageof -> /usr/bin/packageof -> rpm-utils (via content index)
shell.req: packagereq -> /usr/bin/packagereq -> rpm-utils (via content index)
shell.req: rebuild_package -> /usr/bin/rebuild_package -> rpm-utils (via content index)
shell.req: rebuild_packages -> /usr/bin/rebuild_packages -> rpm-utils (via content index)
shell.req: rpmdups -> /usr/bin/rpmdups -> rpm-utils (via content index)
shell.req: rpmevrcmp -> /usr/bin/rpmevrcmp -> rpm-utils (via content index)
shell.req: rpmrdups -> /usr/bin/rpmrdups -> rpm-utils (via content index)
shell.req: rpmvercmp -> /usr/bin/rpmvercmp -> rpm-utils (via content index)
shell.req: stamp_spec -> /usr/bin/stamp_spec -> rpm-utils (via content index)
rpm-utils
/usr/lib/rpm/shell.req -v /dev/stdin <<<   0.34s user 0.10s system 88% cpu 0.499 total
$

More than ten times faster, wow!
I didn't know regexp engine could be that slow, really.
2007-03-12 15:06:11 +03:00
Alexey Tourbin
b1b2fab77c find-package (FindPackage): require either absolute path or no slashes 2007-03-12 15:06:10 +03:00
Alexey Tourbin
9693c85f52 implemented symlinks.req
Consider R-devel package, which has its own private bin/ directory,
where it keeps certain scripts.

$ rpm -ql R-devel |grep libtool
/usr/lib/R/bin/libtool
$ rpm -ql R-devel |grep texi2dvi
/usr/lib/R/bin/texi2dvi
$

I replace some scripts, such as libtool, with wrappers:

$ tail -1 /usr/lib/R/bin/libtool
exec /usr/bin/libtool "$@"
$

R-devel now has a libtool dependency, generated by shell.req:

$ rpm -qR R-devel |grep libtool
libtool-common
$ rpm -qf /usr/bin/libtool
libtool-common-0.2-alt1
$

However, I want the very same dependency SIMPLY BY PLACING SYMBOLIC LINK
to /usr/bin/libtool.  My new script symlinks.req implements this idea.

It works as follows:

1) We check all absolute symbolic links, e.g. -> /usr/bin/libtool.
If symbolic link is absolute, we fetch its value and feed to FindPackage.
Note that FindPackage will first check whether e.g. /usr/bin/libtool is
available under RPM_BUILD_ROOT.

2) We also check all broken symbolic links, e.g. -> ../../../bin/libtool.
The fact that symbolic link is broken means that it cannot be resolved into
buildroot and otherwise must be resolved in the host system after the package
is installed, which is the dependency on where it would point to after install.

This means we must canonicalize the link value, strip RPM_BUILD_ROOT,
and then call FindPackage.  Here is what happens:

$ cd `mktemp -d`
$ RPM_BUILD_ROOT=$PWD
$ mkdir -p ./usr/lib/R/bin/
$ ln -s `relative /usr/bin/libtool /usr/lib/R/bin/libtool` $RPM_BUILD_ROOT/usr/lib/R/bin/libtool
$ l $RPM_BUILD_ROOT/usr/lib/R/bin/libtool
lrwxrwxrwx 1 at at 20 Mar  9 22:14 /tmp/.private/at/tmp.AHnBX26473/usr/lib/R/bin/libtool -> ../../../bin/libtool
$ [ -e $RPM_BUILD_ROOT/usr/lib/R/bin/libtool ] || echo broken
broken
$ readlink -vm $RPM_BUILD_ROOT/usr/lib/R/bin/libtool
/tmp/.private/at/tmp.AHnBX26473/usr/bin/libtool
$ to=`!!`; echo ${to#$RPM_BUILD_ROOT}
/usr/bin/libtool
$

And then FindPackage is called with "/usr/bin/libtool".

Now note that if FindPackage is not able to associate e.g. /usr/bin/libtool
with any particular rpm package, it will just place raw dependency on
/usr/bin/libtool.  So, this new type of dependencies is a bit dangerous:
basically for each really broken symbolic link there will be an unmet
dependency.  On the other hand, this can be viewed as a means of protection
from packages with really broken symbolic links.

If you are frightened with this brand new and dangerous type of dependencies,
please also note that this new type of dependencies is not much more dangerous
than absolute paths to executables in plain shell scripts.

$ /usr/lib/rpm/shell.req -v /dev/stdin <<</i/am/unmet
error: file /i/am/unmet: No such file or directory
shell.req: /dev/stdin: /i/am/unmet -> /i/am/unmet (raw, not found)
/i/am/unmet
$
2007-03-12 15:06:09 +03:00
Alexey Tourbin
ae6059ee04 lib.req.files: added "executable not executable" warning 2007-03-12 15:06:08 +03:00
Alexey Tourbin
371f6d1527 adapted pam.req and pam.prov 2007-03-12 15:06:07 +03:00
Alexey Tourbin
47fe2b2b3f find-package (FindByName): if the index search detects real conflict, try /usr/bin/which first
E.g. if the content index search detected something like

	/usr/bin/arpsend -> arpsend
	/usr/sbin/arpsend -> vzctl

then we should consult the host system first.  There's a good chance
that the right package, either arpsend or vzctl, IS installed, and
other candidate packages are NOT installed.  However, if /usr/bin/which
cannot find any candidate, we should reconsult the index again.
2007-03-12 15:06:05 +03:00
Alexey Tourbin
83e2b0cfe7 find-package: introduced RPM_FINDPACKAGE_PATH, which makes PATH search fully configurable
$ RPM_FINDPACKAGE_PATH=/usr/bin /usr/lib/rpm/shell.req -v /dev/stdin <<<arpsend
shell.req: /dev/stdin: arpsend indexed by: /usr/bin/arpsend -> arpsend, /usr/sbin/arpsend -> vzctl
shell.req: /dev/stdin: arpsend -> /usr/bin/arpsend -> arpsend (via content index)
arpsend
$ RPM_FINDPACKAGE_PATH=/usr/sbin /usr/lib/rpm/shell.req -v /dev/stdin <<<arpsend
shell.req: /dev/stdin: arpsend indexed by: /usr/sbin/arpsend -> vzctl, /usr/bin/arpsend -> arpsend
shell.req: /dev/stdin: arpsend -> /usr/sbin/arpsend -> vzctl (via content index)
vzctl
$

Also added %add_findpackage_path() and %set_findpackage_path() to platform.in.
2007-03-12 15:06:04 +03:00
Alexey Tourbin
f060b30e6c find-package (FindByName): enhanced content index part
Old behaviour:

$ /usr/lib/rpm/shell.req -v /dev/stdin <<<arpsend
shell.req: arpsend -> /usr/sbin/arpsend -> vzctl (via content index)
vzctl
$

New behaviour:

$ /usr/lib/rpm/shell.req -v /dev/stdin <<<arpsend
shell.req: /dev/stdin: arpsend indexed by: /usr/bin/arpsend -> arpsend, /usr/sbin/arpsend -> vzctl
shell.req: /dev/stdin: arpsend -> /usr/bin/arpsend -> arpsend (via content index)
arpsend
$ /usr/lib/rpm/shell.req -v /dev/stdin <<<ifup
shell.req: /dev/stdin: ifup indexed by: /sbin/ifup -> etcnet, /sbin/ifup -> net-scripts
shell.req: /dev/stdin: ifup -> /sbin/ifup -> /sbin/ifup (raw, ambiguous, via content index)
/sbin/ifup
$
2007-03-12 15:06:03 +03:00
Alexey Tourbin
b208a5725d find-package (FindByPath): enhanced content index part
There's a problem with content index:

$ /usr/lib/rpm/shell.req -v /dev/stdin <<</sbin/ifup
shell.req: /dev/stdin: /sbin/ifup -> etcnet (via content index)
etcnet
$ grep /sbin/ifup ~tmp/build/cache/contents/contents_index_bin
/sbin/ifup      etcnet
/sbin/ifup      net-scripts
$

After this change:

$ /usr/lib/rpm/shell.req -v /dev/stdin <<</sbin/ifup
shell.req: /dev/stdin: /sbin/ifup indexed by: etcnet net-scripts
shell.req: /dev/stdin: /sbin/ifup -> /sbin/ifup (raw, ambiguous, via content index)
/sbin/ifup
$

Also improved diagnostics and updated copyright statement.
2007-03-12 15:06:02 +03:00
Alexey Tourbin
5852768964 find-package (FindByName): enhanced /usr/bin/which part
There's been a few problems.

1) ~/bin should not be checked.

$ /usr/lib/rpm/shell.req -v /dev/stdin <<<vim
warning: no package provides /home/at/bin/vim
shell.req: /dev/stdin: vim not found (skip)
$

Fortunately /usr/bin/which has --skip-tilde option.

2) Check for /etc/alternatives was missing.

$ PATH=/bin:/usr/bin /usr/lib/rpm/shell.req -v /dev/stdin <<<vim
shell.req: /dev/stdin: vim -> /usr/bin/vim -> vim-X11
vim-console
vim-enhanced (via rpmdb)
vim-X11
vim-console
vim-enhanced
$

This is why FindByName should ultimately call FindByPath.
After this change, it works just fine:

$ scripts/shell.req.in -v /dev/stdin <<<vim
shell.req.in: /dev/stdin: vim -> /usr/bin/vim -> ... (via which)
shell.req.in: /dev/stdin: /usr/bin/vim -> /usr/bin/vim (alternative)
/usr/bin/vim
$

Also enabled /usr/bin/which --all option and added diagnostics
for really ambiguous cases.
2007-03-12 15:06:00 +03:00
Alexey Tourbin
8d2821443d find-package: factored FindByPath() and FindByName()
Actually if you think about it a few hours or so... you may come to
know that FindByName() should ultimately call FindByPath().  But this
will be the next commit.
2007-03-12 15:05:59 +03:00
Alexey Tourbin
f9a7e6dea2 find-package: if some path is provided by two or more rpmdb packages, output raw dependence
Here is the problem:

$ /usr/lib/rpm/shell.req -v /dev/stdin <<</usr/bin/openssl-config
shell.req: /dev/stdin: /usr/bin/openssl-config -> libssl-devel<STDERR-NEWLINE>
openssl (via rpmdb)
libssl-devel
openssl
$

Here is the solution:

$ /usr/lib/rpm/shell.req -v /dev/stdin <<</usr/bin/openssl-config
shell.req: /dev/stdin: /usr/bin/openssl-config provided by: libssl-devel openssl
shell.req: /dev/stdin: /usr/bin/openssl-config -> /usr/bin/openssl-config (raw)
/usr/bin/openssl-config
$

Note that this new behaviour now matches content index search:

$ grep openssl-config ~tmp/build/cache/contents/contents_index_bin
/usr/bin/openssl-config /usr/bin/openssl-config
$
2007-03-12 15:05:58 +03:00
Alexey Tourbin
b8c1488e12 shell.req: better error diagnostics 2007-03-12 15:05:57 +03:00
Alexey Tourbin
c33a51b79c factored files.req 2007-03-12 15:05:18 +03:00
Alexey Tourbin
80c40744e1 factored static.req 2007-03-11 15:00:35 +03:00
Alexey Tourbin
f0ec810739 factored lib.req and lib.prov
Moved old code from find-requires and find-provides to lib.req and lib.prov.
For some reason, also a few python-related lines was removed.

Adapted lib.req and lib.prov to work without RPM_BUILD_ROOT.

In lib.prov, simplified RPM_FINDPROV_LIB_PATH handling (replaced
`lookup_path "$dir" "$PATH"' with `[ -z "${PATH##* $dir *}" ]').

Added lib.req.files and lib.prov.files.
2007-03-11 15:00:33 +03:00
Alexey Tourbin
4a05dd411d scripts/ldd.in: adapted for empty RPM_BUILD_ROOT 2007-03-11 15:00:32 +03:00
Alexey Tourbin
767681ad03 adapted pkgconfig.req and pkgconfig.prov
Also enhanced the scripts by using pkg-config --print-errors, because
pkg-config is silent by default.  Also added checks for pkg-config exit
status and valid output.

Also changed the order: libdir/pkgconfig:datadir/pkgconfig instead of
datadir/pkgconfig:libdir/pkgconfig, according to pkg-config(1).
2007-03-11 15:00:29 +03:00
Alexey Tourbin
e69e87503e scripts/shell.req.in: fixed sed filter
See my previous commit.  It goes like this:

$ /usr/lib/rpm/shell.req -v /usr/bin/buildreq
shell.req: /usr/bin/buildreq: cat -> /bin/cat -> coreutils (via rpmdb)
shell.req: /usr/bin/buildreq: cmp -> /usr/bin/cmp -> diffutils (via rpmdb)
shell.req: /usr/bin/buildreq: function(Info) not found (skip)
shell.req: /usr/bin/buildreq: function(show_help) not found (skip)
shell.req: /usr/bin/buildreq: function(show_usage) not found (skip)
shell.req: /usr/bin/buildreq: rm -> /bin/rm -> coreutils (via rpmdb)
shell.req: /usr/bin/buildreq: sed -> /bin/sed -> sed (via rpmdb)
coreutils
diffutils
sed
$

I argue that this behaviour, i.e. function(Info) processing, is erroneous.
There are two reasons: 1) it is impossible to resolve function(Info) neither
via FindPackage nor via .provides.sh (the latter has just plain function names);
2) the fact that Info has been detected as function means that Info() function
is defined in the very same file, i.e. /usr/bin/buildreq.  This means that
function(Info) is self-provided dependency and thus should not be processed
at all.
2007-03-11 15:00:27 +03:00
Alexey Tourbin
ed12439edd scripts/find-package.in: added verbosity
Now it works like this:

$ /usr/lib/rpm/shell.req -v /usr/bin/buildreq
shell.req: /usr/bin/buildreq: cat -> /bin/cat -> coreutils (via rpmdb)
shell.req: /usr/bin/buildreq: cmp -> /usr/bin/cmp -> diffutils (via rpmdb)
shell.req: /usr/bin/buildreq: function(Info) not found (skip)
shell.req: /usr/bin/buildreq: function(show_help) not found (skip)
shell.req: /usr/bin/buildreq: function(show_usage) not found (skip)
shell.req: /usr/bin/buildreq: rm -> /bin/rm -> coreutils (via rpmdb)
shell.req: /usr/bin/buildreq: sed -> /bin/sed -> sed (via rpmdb)
coreutils
diffutils
sed
$

It looks like there's a problem with function(Info) here.
Verbosity is a good thing.
2007-03-11 15:00:25 +03:00
Alexey Tourbin
2fc12ef2fa factored shebang.req
This is the dependency generator for #! lines.
shebang.req.files makes sure that only executable scripts are processed.

Here is why I chose the "shebang" name.

From Jargon File (4.3.1, 29 Jun 2001) [jargon]:

  shebang /sh*-bang/ n. The character sequence "#!" that frequently
     begins executable shell scripts under Unix. Probably derived from "shell
     bang" under the influence of American slang "the whole shebang"
     (everything, the works).

$ cd /usr/lib/perl5/pod
$ grep -i sharpbang *
perltoc.pod:C<shar>, C<sharpbang>, C<shmattype>, C<shortsize>, C<shrpenv>, C<shsharp>,
$ grep -i shebang *
perl58delta.pod:The command-line options -s and -F are now recognized on the shebang
perlbs2000.pod:BS2000 POSIX doesn't support the shebang notation
perlfaq3.pod:batch file and codify it in C<ALTERNATE_SHEBANG> (see the
perlfaq7.pod:line in your perl script (the "shebang" line) does not contain the
perlfaq7.pod:where you expect it so you need to adjust your shebang line.
perlfaq8.pod:but my shebang line is not the path to perl, so the shell runs the
perlglossary.pod:=item shebang
perljp.pod: "shebang"ѹǡJperlѤscriptΤۤȤɤѹʤѲǽȻפޤ
perlplan9.pod:such as "#!/usr/local/bin/perl". This is known as a shebang
perlplan9.pod:shebang path from config information located in Plan 9
perlport.pod:sub-systems do not support the C<#!> shebang trick for script invocation.
perlport.pod:OS/390 will support the C<#!> shebang trick in release 2.8 and beyond.
perlrun.pod:C<ALTERNATE_SHEBANG> (see the F<dosish.h> file in the source
perltoc.pod:serialization, server, service, setgid, setuid, shared memory, shebang,
perlwin32.pod:Perl scripts on UNIX use the "#!" (a.k.a "shebang") line to
$
2007-03-11 15:00:24 +03:00
Alexey Tourbin
6dd0803866 adapted shell.req and shell.prov
1) added scripts/shell.req.files and scripts/shell.prov.files.
scripts/shell.req.files has new patterns for '/usr/bin/env bash'
and '/bin/ash'.

2) adapted scripts/shell.req.in and scripts/shell.prov.in
by using ArgvFileAction.  Also made them work with empty RPM_BUILD_ROOT.

Note: now shell.req produces dependencies from .provides.sh even
if the latter is inside RPM_BUILD_ROOT.  The reason is that .provides.sh
and the script can reside in two different subpackages (and otherwise,
rpm will optimize out the dependency).

3) removed corresponding old code from autodeps/linux.req.in
and autodeps/linux.prov.in.
2007-03-11 15:00:23 +03:00
Alexey Tourbin
2bce0efdba scripts/find-package.in: adapted for empty RPM_BUILD_ROOT and `sh -u'
Note: this is non-essential change, so I won't update copyright notice.
2007-03-11 15:00:22 +03:00
Alexey Tourbin
ac29fd993a scripts/functions: implemented ArgvFileAction()
This function provides "standard calling conventions" for req/prov methods.
The idea is that the shell script which implements a req/prov method need
not know how exactly it was called and how it should process its arguments.
Instead, it should impelment a function which takes exactly one argument,
which is filename, say MyReq, and finally just call

	ArgvFileAction MyReq "$@"

Standard input to argv conversion is then done automatically and transparently.

This will also enable scripts to process real argv arguments, if any,
instead of standard input (but fall back to standard input otherwise).
I also added --help and -v|--verbose options.  Surprisingly enough,
the latter increases RPM_SCRIPTS_DEBUG level.

Also added non-intrusive canonicalization of pathnames, hence the name
ArgvFileAction.  This is not going to affect rpm-build, but hopefully
this can help when the script is invoked manually.
2007-03-11 15:00:21 +03:00
Alexey Tourbin
844f420037 scripts/functions: implemented SetupMethods() and RunMethods()
I want some rpm scripts to be modular, so that e.g. adding new automatic
dependencies does not require ad hoc modifications.

The plan is as follows: I am going to manage methods.  Methods
are scripts which e.g. implement particular dependency detection.
The set of methods is defined by its suffix, so that /usr/lib/rpm/*.req
are all "req" methods (the "req" method set).

Hereby I provide two functions which abstract the usage of method sets.

1)
methods=$(SetupMethods SETID WANTED_METHODS)

Returns (prints) the list of active methods identified by SETID.
The SETID argument, according to the above, should be filename suffix.

Performs a check if all WANTED_METHODS are available.  WANTED_METHODS is
a space and/or comma separated list of method basenames, e.g. "perl" for
/usr/lib/rpm/perl.req.  The list of WANTED_METHODS is also interpreted
according to AutoReqProv tag rules, i.e. "yes" to enable all methods,
"no" to disable all methods, "noperl" to exclude "perl" etc.

When no methods are active, the output string is guaranteed to be empty.

2)
RunMethods SETID "$methods" [CMD...]

Executes method set scripts identified by SETID; the list of methods
"$methods" must be obtained from SetupMethods.  CMD can warp method script
execution.
2007-03-11 14:59:44 +03:00
Alexey Tourbin
c7a5905b8e scripts/functions: always validate non-empty RPM_BUILD_ROOT
I am going to make certain req/prov scripts work even with empty
RPM_BUILD_ROOT (so that I can analyze the dependencies within the
host system).  This probably means that I will remove ValidateBuildRoot
clause from the script.  However, since non-empty RPM_BUILD_ROOT still
must be valid, I place the check here.
2007-03-06 17:31:31 +03:00
Alexey Tourbin
1490bfdfd8 enhanced RPM_SCRIPTS_DEBUG support, implemented debug levels
Just setting -x is very noisy.  Here is a better plan.  I implement 3
debug levels: verbose (1), debug (2, implies verbose) and -x (3, implies
debug).  I move RPM_SCRIPTS_DEBUG test from scripts to scripts/functions,
as well as provide Verbose() and Debug() shell functions for use in scripts.

Furthermore, _scripts_debug macro is now automatically set when rpmbuild
is invoked with --verbose option.  Use -vv for debug and -vvv for -x.
2007-03-06 17:23:41 +03:00
6a53902827 scripts/files.req.list: Add /etc/udev/rules.d 2007-02-11 21:26:45 +00:00
dcc423b54b scripts/brp-compress.in:
Recognize false|no|none|off as well skip.
scripts/brp-strip.in:
	skip as well as false|no|none|off.

Fixes #9854.
2006-09-16 22:20:03 +00:00
5416277102 Removed cvsid tags. 2006-05-14 17:05:34 +04:00
03ad765c9c VERIFY_ELF_STACK: check for statically linked ELF executables too 2006-04-04 21:14:07 +00:00
f2cdd50995 Implemented VERIFY_ELF_STACK 2006-04-04 16:42:49 +00:00
d4a4544c9a extended VERIFY_ELF_UNRESOLVED=normal to executables. 2006-03-09 16:59:07 +00:00
104b1a8c13 VERIFY_ELF_UNRESOLVED=normal 2006-03-07 16:16:17 +00:00
435ebc43ba change VERIFY_ELF_UNRESOLVED from relaxed to normal 2006-03-07 16:14:23 +00:00
6ea4d923f5 quote $RPM_TARGET_ARCH 2006-02-24 01:46:22 +00:00
b95c6582c3 Cleaned up VERIFY_ELF_RPATH handling even more 2006-02-24 01:11:48 +00:00
bf3687275e Fixed recent changes to VERIFY_ELF_RPATH handling 2006-02-24 01:09:32 +00:00
d3f7193ec5 Added VERIFY_ELF_ARCH support, enhanced VERIFY_ELF_RPATH support. 2006-02-24 00:52:09 +00:00
91fd14681d set VERIFY_ELF_ARCH 2006-02-24 00:19:28 +00:00
7770fa3c41 VERIFY_ELF_RPATH: prohibit rpaths starting/anding with : or containing :: 2006-02-21 15:40:09 +00:00
64e6debda9 fixed typo in VERIFY_ELF_UNRESOLVED support 2006-02-21 15:27:02 +00:00
2ec0e4ddf3 Made %_libdir handling in more generic way. 2006-02-08 15:49:38 +00:00
9567773266 Override default PKG_CONFIG_PATH to find .pc files in RPM_BUILD_ROOT. 2006-02-02 02:48:32 +00:00
9506eb04e8 Implemented pkgconfig reqprov support and enabled it by default. 2006-02-02 01:51:38 +00:00
bf7c7be560 Run fixup-pkgconfig for /usr/share/pkgconfig too. 2006-01-24 00:13:07 +00:00
9d1118aaf6 make fhs check really work; redirect output of unresolved check to stderr; prefix all messages with WARNING or ERROR depending on check mode 2006-01-16 15:39:50 +00:00
f4a8163e44 Fixed RPM_VERIFY_ELF_LDD_RPATH handling [2]. 2006-01-14 23:57:02 +00:00
49ad8c323f Fixed RPM_VERIFY_ELF_LDD_RPATH handling. 2006-01-14 23:33:42 +00:00
15712950dc Fixed RPM_VERIFY_ELF_LDD_RPATH initialization. 2006-01-14 23:33:29 +00:00
6816c5cc25 Run brp-adjust_libraries prior to brp-verify_elf. 2006-01-14 23:03:21 +00:00
881c2a913a Set VERIFY_ELF_FHS and VERIFY_ELF_UNRESOLVED to relaxed for now. 2006-01-14 22:49:01 +00:00
9f9af73c5c Cleanup ELF interpreter detection code. 2006-01-14 21:55:53 +00:00
d9ebc54d2a Provide sane default ELF interpreter. 2006-01-14 21:13:58 +00:00
89f0b28991 Fixed default ELF interpreter. 2006-01-14 20:55:39 +00:00
7e5f0d44b2 Handle $VERIFY_ELF_FHS and $VERIFY_ELF_UNRESOLVED 2006-01-14 20:44:54 +00:00
824fa6f480 define $VERIFY_ELF_FHS, $VERIFY_ELF_UNRESOLVED and $RPM_VERIFY_ELF_LDD_RPATH 2006-01-14 20:42:43 +00:00
c83a07e03d really add ldd 2006-01-14 18:10:11 +00:00
d5ec637e27 simplified 2006-01-14 17:35:47 +00:00
9fa553db17 Add ldd.in 2006-01-14 17:02:09 +00:00
681892feef Change format of pam_module.so/pam_module.so* reqs from pam_module.so$PAM_SO_SUFFIX to PAM(pam_module.so$PAM_SO_SUFFIX). 2006-01-11 16:38:25 +00:00
b2de2b54d4 Add shlib.req.awk 2006-01-11 00:39:39 +00:00
dc26a76eb1 removed StripNote() code 2005-09-29 15:12:05 +00:00
ce28f0855f honor RPM_COMPRESS_SKIPLIST 2005-09-04 17:56:43 +00:00
1eedbeba03 redirect test run of bash --rpm-requires to /dev/null 2005-07-01 10:46:58 +00:00
4eae428069 use /bin/bash for Bourne-Again shell scripts, and /bin/sh for all the rest 2005-06-29 18:21:40 +00:00
9835799623 Added x86_64 support. 2005-06-16 16:18:15 +00:00
5220229243 initial mulitilib support 2005-02-10 13:58:24 +00:00
b3dbebfa15 fixed "find -maxdepth" warning 2004-11-11 10:07:16 +00:00
551ae7df0a make --custom-* options work both as script and script-file 2004-11-01 11:40:25 +00:00
01d14e1c6e make --custom-* options work both as script and script-file 2004-11-01 09:47:06 +00:00
6ad3bdcae2 changed --with-man mode, #5164 2004-10-31 12:00:06 +00:00
0fd5809baf check that $RPM_PYTHON is executable 2004-10-31 11:40:12 +00:00
3637db5d23 updatecd copyright years 2004-10-31 11:37:30 +00:00
e0523ed36f fixed typo: s/RPM_COMPRESS_TOPDIR/RPM_FIXUP_TOPDIR 2004-10-31 11:34:50 +00:00
d813d9c4ed fixed --version 2004-07-11 17:15:40 +00:00
57647ec8d9 added @ regexps tweaks 2004-06-29 15:56:32 +00:00
674eec5213 Added new options:
--custom-dir-script=FILE  look for directories using specified sed script;
  --custom-file-script=FILE look for files using specified sed script;
  --custom-link-script=FILE look for symlinks using specified sed script;
  --version                 print program version and exit.
2004-06-29 15:27:48 +00:00
5f79f4a028 more regexps tweaks 2004-06-29 14:31:08 +00:00
b0a478061a more regexps fixes 2004-06-29 07:32:33 +00:00
ee58994965 fixed locale regexps (#4228) 2004-06-09 12:54:33 +00:00
b326041c2e handle symlinks in --with-gnome mode 2004-05-17 15:23:20 +00:00
8acd0aaf1f use new bytecompiler, from Andrey Orlov 2004-05-17 14:55:23 +00:00
c12fa4f038 recognize PIE objects 2004-04-28 17:20:51 +00:00
de79eac6b5 fixed support for symlinks in /usr/share/locale/ 2004-02-28 20:38:57 +00:00
40f254ec8a implemented support for symlinks in /usr/share/locale/ 2004-02-24 22:30:18 +00:00
5049bf4285 updated copyright information 2004-01-25 18:09:26 +00:00
42b3a949e9 eliminated unneeded pattern substitutions 2004-01-25 17:19:42 +00:00
985f2b1512 implemented %%_keep_libtool_files support 2004-01-21 16:08:37 +00:00
35e500f79a verify SUID/SGID objects as well 2004-01-04 14:07:57 +00:00
0c0d315ee3 implemented --with-kde option (aris@) 2004-01-04 13:06:40 +00:00
5edbe53d0f reordered cleanups; fixed out "cd ./etc/pam.d" 2003-12-03 11:51:33 +00:00
a10b78109d ensure that files are user-writable 2003-11-26 13:06:23 +00:00
5b1319a47e ensure that file objects in /usr/ are user-writable 2003-11-26 12:43:15 +00:00
fb3b612bb9 brp-fix-perms, fixup-libraries: strip executable bit from non-executable libraries 2003-11-26 09:01:23 +00:00
658b8c8d67 brp-cleanup: remove lib*.la files from /lib, /usr/lib, and /usr/X11R6/lib 2003-11-25 15:09:47 +00:00
04d9f8a8f3 brp-cleanup: remove lib*.la files from /lib, /usr/lib, and /usr/X11R6/lib 2003-11-25 13:50:49 +00:00
bc25638297 output textrel information even if textrel=relaxed 2003-11-23 21:37:36 +00:00
df65e04e47 better error diagnostics 2003-11-23 21:31:44 +00:00
d0c573bce2 RPM_VERIFY_ELF_METHOD=relaxed now affects textrel as well as rpath 2003-11-23 21:08:49 +00:00
86895dac87 override RPM_VERIFY_ELF_METHOD with RPM_VERIFY_ELF_RPATH/RPM_VERIFY_ELF_TEXTREL 2003-11-09 20:56:40 +00:00
f8d15668be removed ValidateBuildRoot; fix getopt args to really enable --help option 2003-11-09 20:02:48 +00:00
07f34e0199 define and use RPMCONFIGDIR 2003-11-09 17:42:53 +00:00
ebc53cf631 use functions 2003-11-09 16:47:45 +00:00
8b81f418b6 use functions 2003-11-09 16:30:18 +00:00
0a5d3e33d6 removed obsolete script 2003-11-09 16:21:03 +00:00
a53df38384 removed obsolete script brp-sparc64-linux 2003-11-09 16:17:53 +00:00
acc0eb86cd removed obsolete script brp-strip-shared 2003-11-09 16:13:52 +00:00
ac79bcb3c5 added ValidateBuildRoot() 2003-11-09 16:09:42 +00:00
507420b372 use Fatal() 2003-11-09 16:08:49 +00:00
1628747bc3 use functions 2003-11-09 14:30:36 +00:00
645bc48c54 added: Info(), Fatal() 2003-11-09 14:27:11 +00:00
b2e513a7ab added functions 2003-11-09 14:26:05 +00:00
a51c90e681 eliminated unneeded bashism 2003-11-09 13:31:16 +00:00
65b736c660 fixed 2003-11-08 20:52:31 +00:00
e4758d8bfd do bail out if buildroot doesn't exist 2003-11-08 20:35:36 +00:00
f6ed366071 do not bail out if buildroot doesn't exist 2003-11-08 20:23:41 +00:00
7703423747 added cvsid 2003-11-08 19:52:04 +00:00
928c46a9cc added script check-files 2003-11-08 19:46:35 +00:00
b9aee2d89a added cvsid 2003-11-08 19:26:04 +00:00
d5aef711d7 removed obsolete script check-prereqs 2003-11-08 19:23:48 +00:00
3a742bc4a1 cleanup 2003-11-08 16:39:27 +00:00
9382ac6a9f use printf instead of echo where appropriate 2003-11-07 19:34:00 +00:00
d08d46fb2c removed obsolete script 2003-11-07 19:29:05 +00:00
243abe98b9 use printf instead of echo where appropriate 2003-11-07 17:56:45 +00:00
a6a42108cc use printf instead of echo where appropriate 2003-11-07 17:45:11 +00:00
f6c92dd6bb implemented TEXTREL checking 2003-11-07 17:32:25 +00:00
bdd0317870 validate PAM_{NAME,SO}_SUFFIX 2003-09-27 14:14:35 +00:00
ba2956c03e validate PAM_NAME_SUFFIX 2003-09-27 14:14:14 +00:00
ff4fa6376e fix parser from perl maintainer 2003-09-22 13:56:20 +00:00
4bf102dcf4 fixed perl syntax 2003-09-22 13:54:41 +00:00
ed2d146bea one more package database check fix 2003-09-22 12:23:33 +00:00
4bb5153a8d When dependence name starts with `/',
+ look into pkg contents binary index as well;
	+ fix package database check.
2003-09-22 12:21:51 +00:00
ac306b7831 updated version from at@ 2003-09-12 16:27:18 +00:00
6fcd7abbb6 while checking for pkg contents binary index, check file locations in this order: /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin 2003-07-02 14:39:48 +00:00
34f10a0132 fixed $RPM_PKG_CONTENTS_INDEX_BIN code 2003-06-30 17:52:14 +00:00
a29971ebe4 updated pkg contents index code 2003-06-28 16:46:06 +00:00
6b4fd24a82 fixed $PAM_SO_SUFFIX usage 2003-06-17 14:36:54 +00:00
ebec74ba89 use $PAM_SO_SUFFIX 2003-06-17 14:32:30 +00:00
276ced7ca5 use $PAM_NAME_SUFFIX 2003-06-17 14:20:57 +00:00
f20bef8663 added CVS Id 2003-06-07 10:17:39 +00:00
f23e5939c6 PAM configuration policy enforcement. 2003-05-25 21:01:24 +00:00
929f17eb61 added include control directive support 2003-05-25 20:58:34 +00:00
7a7b4a2418 do not optimize lookup by permissions 2003-05-14 11:26:46 +00:00
d679d77fba updated version from at@ 2003-05-14 09:53:30 +00:00
40a02c934f reverted last change 2003-05-13 14:17:54 +00:00
24ca26c786 added files.req.list 2003-05-13 13:11:03 +00:00
529f12e8a2 initial revision 2003-05-13 13:10:53 +00:00
6380eab4b1 updated version from at@ 2003-05-13 12:48:05 +00:00
7a65f7b625 fixed mktemp usage 2003-05-10 09:25:49 +00:00
7b8bc46bfe Implemented shell functions requires/provides autodetection 2003-04-25 16:51:52 +00:00
c243e50fce Implemented shell functions provides autodetection 2003-04-25 15:53:21 +00:00
d308f65b9f fixed typo in comment 2003-04-22 15:17:53 +00:00
826df7fb62 added pkg contens index support 2003-04-22 15:11:52 +00:00
b8fa98159d minor code cleanups 2003-04-22 14:24:35 +00:00
2543090fae added support for gnome omf files 2003-02-01 18:39:30 +00:00
f9ad206e5c updated copyright information 2003-02-01 17:48:24 +00:00
7c7b0551be fixed typo #0002056 2003-02-01 17:42:34 +00:00
00eb73d94b Fixed skiplists processing 2002-12-29 23:33:01 +00:00
dcf8d99591 fixed typo in processing --scripts/brp-strip.in 2002-12-29 22:49:05 +00:00
c8593c31a6 updated from maintainer 2002-11-06 09:57:16 +00:00
b01936face Enhanced error handling 2002-11-05 18:49:38 +00:00
94c532c3bf fix from at@: s/"perl >= /perl-base >= / 2002-10-11 10:31:38 +00:00
c20d1fc097 check also for $RPM_BUILD_DIR 2002-10-06 19:18:52 +00:00
befa30e3f5 fixed skiplists processing again 2002-10-04 22:45:05 +00:00
6a3255df1b fixed sliplists processing 2002-10-04 21:37:04 +00:00
83699b0b3a fixed subst error 2002-10-04 16:35:19 +00:00