Commit Graph

377 Commits

Author SHA1 Message Date
Panu Matilainen 454859f3cb Only sepolicy-plugin needs linking to libsemanage 2010-12-22 14:58:11 +02:00
Panu Matilainen 4a3d7f2c73 Bump HEAD version at branch-point 2010-12-03 14:11:48 +02:00
Panu Matilainen 71c8f49ca4 Fix BDB version check in configure to work with >= 5 too 2010-10-26 11:54:55 +03:00
Panu Matilainen 9f2c1bd909 Move librpmsign to its own subdirectory in the sources 2010-10-22 15:00:49 +03:00
Panu Matilainen a4adf99b0f Add configure switch to disable plugins build
- For now this is really just to allow building statically while
  hacking, for "real world" use this has implications on collections
  support etc which is not handled by this patch.
2010-10-01 10:43:55 +03:00
Panu Matilainen 8b4ccff2e3 Handle enable/disable python to configure.ac more sanely
- Conditionalize the python subdir on toplevel make instead of
  python subdir makefile.
2010-10-01 10:34:36 +03:00
Steve Lawrence 46cdd1b507 Add SELinux policy plugin
This adds a new plugin specifically for a collection to load SELinux
policy. This implements the post_add and pre_remove plugin hooks. The
only time anything happens during the pre_remove hook is if post_add was
not called (i.e.  if the transaction only removes policies).

This plugin extracts all the policy information from packages in the
sepolicy collection during the open te hook. It then determines which
policies should be installed/removed based on if the package is being
installed/removed and the type of the policy and the system policy. It
then executes semodule (or uses libsemanage if semodule cannot be
executed or installing in a chroot) to remove and install the necessary
policies. It then reloads the selinux state, reloads the file contexts,
and if necessary, relabels the file system.
2010-09-01 09:31:03 +03:00
Steve Lawrence 34b5d67c2d Use selabel interfaces instead of matchpathcon
This replaces the old matchpathcon interfaces with the new selabel
interfaces for relabeling files, storing an selabel handle in the
transaction set.

With this change, also comes an added distinction between --nocontexts
being specified and a failure to read the load file contexts.
Previously, there was no distinction, and both cases used the
RPMTRANS_FLAG_NOCONTEXTS flag.

However, with the new policy plugin, it is necessary to make such a
distinction. This is because matchpathcon_init (now selabel interfaces)
can fail at the beginning of the transaction, but succeed later after
new policy is installed. Because of this, we may need to enable/disable
RPMTRANS_FLAG_NOCONTEXTS multiple times. However, because this flag
could also mean --nocontexts, we cannot do that. By storing the selabel
handle in the rpmts, we can easily keep track if the handle has been
successfully created, rather than overloading RPMTRANS_FLAG_NOCONTEXTS
with two meanings.
2010-09-01 09:30:51 +03:00
Panu Matilainen b6adef396b Add configure.ac check for need to -ldl
- without this the build can barf on unresolved dl* symbols with a
  linker defaulting to --no-add-needed
2010-06-23 15:59:49 +03:00
Steve Lawrence f3bcf9a18c Add a generic plugin for use by simple Collections
This patch adds a generic plugin, exec.so, that should be sufficient for the
majority of Collection actions. After all packages in a Collection have been
installed/removed, this plugin executes the arguments by calling system(3),
allowing for a very generic and powerful method to perform many actions.

This also adds two sample macros as examples of the format, using the exec.so
plugin.
2010-06-22 11:12:43 +03:00
Panu Matilainen 72a472bdcd Require BDB >= 4.5 for sanity's sake
- replace unused feature tests in configure.ac with a simple version check
2010-04-08 12:33:19 +03:00
Panu Matilainen 9791cf2ab5 Lose shmkey + shared BDB config options
- we dont want anything to do with System V IPC, really... BDB uses
  file backed mmap when it needs, this suits us just fine
2010-03-31 01:59:27 +03:00
Panu Matilainen 8c7e53ec80 First take at pluggable file attribute + dependency extraction system
- move most of the hardwired classification logic from rpmfc C-code
  to macro-based configuration, supporting drop-in addition of arbitrary
  new attributes + dependency extractors based on regex matching of
  libmagic file types and paths
- just the initial rough conversion of our built-in dependency types,
  various open questions + todo-items remain, plus likely fair amount
  of more-or-less subtle breakage
2010-03-23 16:32:46 +02:00
Panu Matilainen 87c237bebf Split elf dependency extraction out of librpmbuild to external helper
- Elf dependency extraction code code lifted from rpmfcELF() and refactored
  to saner pieces. Having it in separate executable also frees librpmbuild
  of libelf dependency, clean up the unnecessary linkage etc from
  autofoo
- This lets internal dependency generator for elf files be
  overridden without losing file coloring (which is required for
  correct multilib handling). It also permits non-native elf files
  (eg when cross-building) to be handled by providing a custom
  elf dependency helper
- On the flip side, this inevitably slows down builds somewhat as
  two fork-exec's are needed for every elf file, but unlike invoking
  something like the python interpreter, this is a slim helper...
- All dependency extractors of the internal dependency generator are now
  external helpers (how twisted is that, huh? :) and thus can be customized
  and filtered through %__foo_provides|requires macros
2010-02-10 11:20:51 +02:00
Panu Matilainen a5dbbd4065 Remove unused mntctl & mount related header checks 2010-02-05 17:09:16 +02:00
Florian Festi 51c96db046 Kill RPMTAG_FSNAMES and RPMTAG_FSSIZES and everything implementing them 2010-02-03 16:27:00 +01:00
Panu Matilainen a9483191a5 Bump version to appear newer than 4.8.0, update translations too 2010-01-08 12:23:54 +02:00
Panu Matilainen dab8a648db Loose string header compatibility goo
- <string.h> is required by C standard, we dont support ancient
  non-conformant compilers anyway
2010-01-05 15:09:08 +02:00
Panu Matilainen 53ab541984 Remove unnecessary NLS definitions from system.h
- all uses of dgettext() and friends are already protected by
  appropriate ifdef's, no need to provide dummy defines here
- setlocale() and <locale.h> are required by C89, C99 and POSIX .. assume
  its there and if not, one can disable the whole thing with --disable-nls
2010-01-05 14:29:48 +02:00
Panu Matilainen 2c6120755c Unconditionally include <sys/wait.h> where needed
- no point conditionalizing what we cant live without
2010-01-05 12:35:54 +02:00
Panu Matilainen 5085ae9923 Move sys/mman.h include out of system.h to the places that care
- just two places where needed, dont pollute system.h needlessly
- include depending on HAVE_MMAP instead of separately checking for
  sys/mman.h, if sys/mman.h doesn't exist or is broken HAVE_MMAP wont be set
2010-01-05 12:16:52 +02:00
Panu Matilainen cd174374ff Remove unnecessary and broken time.h related configure + system.h checks
- the AC_HEADER_TIME check is unnecessary for any remotely recent systems,
  and the HAVE_SYS_TIME_H conditional in system.h is just broken as we
  dont even check for <sys/time.h> header in configure
- dont include from system.h, the time.h and sys/time.h get already
  included through our public headers where necessary
2010-01-05 11:37:59 +02:00
Panu Matilainen 5c084f842a Unconditionally include <netdb.h> where needed instead of system.h
- there's no fallback for missing netdb.h so there's little point
  conditionalizing it
- avoid yet more system.h pollution
2010-01-05 11:26:14 +02:00
Panu Matilainen e9df6383be Remove pointless & unused configure checks
- vprintf(), vsnprintf() and snprintf() are in C99, no point checking
  especially as we dont have fallbacks for them
- no point testing for inline capability as we dont try to work around
2010-01-05 10:56:56 +02:00
Panu Matilainen 0edc291e50 Sanitize signature checking formatResult() a bit
- whole lotta unnecessary wankery here (what have I been thinking)
- avoid using the non-standard strndup(), we checked for it in configure
  but didn't provide an alternative so checking was just bogus
2010-01-05 10:45:23 +02:00
Panu Matilainen 423a86361b Oops, ftok() is really optional 2010-01-05 10:19:52 +02:00
Panu Matilainen 834551d246 Clean up poll() vs select() tests
- move the includes out of system.h, not commonly needed
- <poll.h> is conditional as we actually provide a fallback through select(),
  but for <sys/select.h> missing there's no fallback so doesn't make
  much sense to test for (and both poll.h and sys/select.h are posix anyway...)
2010-01-04 17:15:26 +02:00
Panu Matilainen 554f3f0cfb Remove unused header checks from configure
- maybe these have been used at some point but not anymore...
2010-01-04 16:59:39 +02:00
Panu Matilainen 1da827724c Eliminate unused id -u tests
- this was used by _fixowner and _fixgroup macros back in the day but they
  no longer exist as they're unusable without building as root
2010-01-04 16:31:10 +02:00
Panu Matilainen 4cb02aa928 Re-enable mmap test in configure & fix the code build again
- this stuff has been disabled for years, lets see what breaks...
2010-01-04 16:20:56 +02:00
Panu Matilainen 8dd92d661d Remove unnecessary stdint check from configure
- a leftover from pre-C99 requirement times
2010-01-04 16:10:44 +02:00
Panu Matilainen 190d2b4783 Remove S_IFSOCK and S_IFLNK kludgery for ancient unixes
- these are specified by POSIX 2001, it's not really rpm's job to
  provide them if the system doesn't
2010-01-04 16:07:11 +02:00
Panu Matilainen 5f0c9a3882 Require lchown() and remove ancient broken chown kludgery
- lchown() is POSIX 2001, we dont care about older / nonconformant stuff
2010-01-04 15:58:55 +02:00
Panu Matilainen 8ca9ce53be Check for our POSIX 2001 requirements and abort if not found 2010-01-04 15:27:31 +02:00
Panu Matilainen 3125bac65f Lose the hysterical fakefork hack
- we're not particularly interested in AmigaOS quirks from 1996
2010-01-04 15:27:25 +02:00
Panu Matilainen 33404070cd Remove further replacement functions for POSIX 2001 required bits
- getwd(), getcwd(), basename() and realpath() are all POSIX 2001
  defined, we dont care about older stuff
2010-01-04 15:27:05 +02:00
Panu Matilainen bb803d630c Remove unnecessary setenv() replacement function
- setenv() and unsetenv() are required by POSIX 2001, we dont care about
  older systems
2010-01-04 14:21:42 +02:00
Panu Matilainen 580f9625e1 Remove largely unnecessary putenv() replacement
- only the lua posix extension "uses" this by providing putenv()
  to Lua, make it conditional and return error if not supported by
  the underlying operating system
2010-01-04 14:15:20 +02:00
Panu Matilainen 60dc809db1 Eliminate myrealloc() replacement function
- realloc(NULL, size) is defined as equal to malloc(size) in C99 and
  POSIX 2001, we dont care about anything older than that
2010-01-04 13:46:43 +02:00
Panu Matilainen 7c62eb237f Remove replacements for C99 mandated functions
- rpm requires C99 compiler anyway, no point in carrying these around
2009-12-23 14:52:49 +02:00
Panu Matilainen 2753a5e934 Dont include <pwd.h> from system.h, dont bother checking for it either
- no much point conditionalizing something we can't live without
- just three places need, no point polluting include space everywhere
2009-12-23 13:40:10 +02:00
Panu Matilainen 68a5dd5803 Dont bother including <sys/socket.h>, we dont use anything from there 2009-12-23 13:36:29 +02:00
Panu Matilainen a39dc445fc Dont include grp.h from system.h, dont bother checking in configure either
- no much point conditionalizing something we can't live without
- just two places need, no point polluting include space everywhere
2009-12-23 13:15:59 +02:00
Panu Matilainen 0fbf88d34c Dont bother checking and including a header we dont use or need 2009-12-23 12:58:17 +02:00
Panu Matilainen c47b96630c Dont bother checking for a header we dont use 2009-12-23 12:37:37 +02:00
Panu Matilainen 5c31864598 Dont bother checking for functions we dont use
- some of this stuff was used in 4.4.x but not anymore
- additionally we dont even use getdomainnname(), check for gethostname()
  instead
2009-12-23 12:25:32 +02:00
Panu Matilainen 0de16638aa Use AC_PROG_MKDIR_P for testing mkdir -p capability
- for rpmbuild's purposes MKDIR_P doesn't cut it though, we need to
  point it to something that exists on an installed system
2009-12-23 11:40:55 +02:00
Panu Matilainen 6760122281 Remove unused h_errno test from configure.ac 2009-12-22 14:55:54 +02:00
Florian Festi e2c217b4b7 Remove support for sqlite based rpm database
Also remove abstraction layer between rpmdb.h and the back end
in lib/backend/
2009-12-07 15:59:13 +01:00
Panu Matilainen 139c031d2c Preparing for 4.8.0-beta1 2009-12-07 13:51:48 +02:00
Panu Matilainen 105518cf57 Bump up the python version requirement to match reality
- Python >= 2.6 is known to work, 2.5 might be possible with __future__
  imports but until somebody tests it...
2009-12-05 11:05:39 +02:00
Panu Matilainen 46d1ba0448 Fix the posix chown test for selinux enabled systems (RhBug:543035)
- on selinux enabled systems, 'ls -l' mode string is longer than
  expected here, just trim the ls output to our expected length
2009-12-02 15:30:27 +02:00
Panu Matilainen 480095ab2a Use AS_HELP_STRING() for configure option output 2009-11-27 15:57:44 +02:00
Panu Matilainen 63175d4d31 Avoid using python's print for Python 3.x compatibility
- print chanced from statement to a function in python 3, for our
  purposes sys.stdout.write() is sufficient and avoids dealing with
  the incompatibilities between Python 2.x and 3.x
- suggested by David Malcolm / Ville Skyttä
2009-10-19 10:30:48 +03:00
Ville Skyttä 1c83af6e10 Deprecate %__lzma, use %__xz in it. 2009-10-06 10:47:43 +03:00
Panu Matilainen 9f9ab48f71 Add -Wempty-body to default options if gcc supports it
- ...to help protect against screwups like
  2ee45ef12a
2009-09-07 18:41:32 +03:00
Panu Matilainen db5ac1e44a Bump version to appear newer than 4.7.x branch 2009-08-13 10:35:01 +03:00
Panu Matilainen 8078d0ba24 LZMA -> XZ renaming
- what we support now in payloads is XZ, not the former LZMA format, rename
  user- and header-visible parts to match this
- rpmlib(PayloadIsXz) dependency versioned 5.2-1 to avoid unnecessary
  incompatibility with what rpm5 has and what Mandriva is already using
- only provide the rpmlib dependency if actually built with xz support
- rpmFileIsCompressed() attempts to guess the magicless old lzma format
  by file suffix, so it can handle both right now
2009-03-18 09:42:23 +02:00
Jindrich Novy 74c9a96c3c Port XZ payload compression to xz-4.999.8 API
- use SHA256 digests for archive error detection
- use 100MiB peak memory usage for decoding
- use better XZ detection in configure.ac
2009-03-09 20:20:42 +01:00
Panu Matilainen 0643dd44e6 Test for fakechroot in configure
- only needed by the testsuite
- optimally testsuite should skip parts needing fakechroot if it's not
  there but at least this'll leave a trace into rpmtests.log...
2008-12-09 13:23:00 +02:00
Jindrich Novy 73c17671de Add AC_CONFIG_MACRO_DIR for the new libtool 2008-11-18 11:23:26 +01:00
Panu Matilainen e0e0a5e035 Fix capability verification
- the previous implementation was pretty busted up, cap_size() is the
  size of external representation, not sizeof(*cap_t) as pointed out by
  Andrew Morgan
- check for cap_compare() in configure and use it if available (it's
  a Linux-specific extension to the posix draft and only very recent
  libcap has it)
- if cap_compare() isn't available, use internal variant that does it
  the hard way by converting the capabilities to external presentation
  and comparing those
2008-11-14 09:47:43 +02:00
Panu Matilainen 9a509e9f1a Avoid leaking C99 options into stock %{__cc} macro 2008-11-04 11:37:09 +02:00
Panu Matilainen f4b5bd55db Beginnings of acl (POSIX.1e draft 17) verification support
- if built with --with-acl, check that files and directories don't have
  any extra acl's set
- for now, any acl beyond the regular unix permission set is reported as
  file mode difference as the acl's cannot have been set by rpm itself
- patch from Andreas Gruenbacher, modified to use libacl instead of raw
  xattrs for portability, BUT atm this uses non-portable acl_equiv_mode()
  Linux libacl extension, the posix draft doesn't seem to have much in
  the way of comparing entries :-/
2008-10-26 14:18:17 +02:00
Panu Matilainen 770a0f34c9 Beginnings of file capability (POSIX.1e draft 15) verification support
- add minimal bits and pieces to check for capabilities in files on verify
- for now, any capability set is a verification failure as the capability
  cannot have been set by rpm itself
- patch from Andreas Gruenbacher, modified to use libcap instead of raw
  xattrs for portability
2008-10-26 14:17:16 +02:00
Jindrich Novy ca40fafedb Remove timezone autoconf checks and system.h reference
- timezone is no more used so it's no more needed
2008-10-24 12:32:31 +02:00
Panu Matilainen df8b431be8 Bump version 2008-10-16 17:09:28 +03:00
Panu Matilainen 0b31ec61cc Add configure detection for SuSE too
- distro detection in configure is pretty futile but while we still have it...
2008-10-14 16:32:58 +03:00
Panu Matilainen 085dcab72f Move luaext include fiddling out of toplevel configure 2008-10-14 15:49:57 +03:00
Panu Matilainen a1b05720b0 Sanitize libluaext linkage 2008-10-14 15:36:23 +03:00
Panu Matilainen 9397bb61ba Kick out ancient and unused LDFLAGS_STATIC configure.ac-hackery 2008-10-14 14:17:14 +03:00
Panu Matilainen 79fe0e0e3b Use standard auto*foo checks for NSS
- upstream NSPR/NSS doesn't ship pkg-config files (unfortunately)
- hardcoded guesses are always wrong for somebody, expect builder to
  pass in appropriate CPPFLAGS etc
2008-08-19 13:33:21 +03:00
Panu Matilainen 77ecf321bf Fix segfault on zero-length %policy file 2008-08-14 15:02:52 +03:00
Panu Matilainen 27a6edd36d Add a new legacy compatibility header, kill rpmints.h
- build-time generated rpmints.h causes issues with distcheck and is
  not really worth the trouble
- we have all sorts of legacy junk to deal with, sticking them all into
  rpmints.h would be just wrong...
2008-07-08 18:54:28 +03:00
Panu Matilainen 7985d6afb5 Bump version to resemble library versioning 2008-07-04 16:09:47 +03:00
Panu Matilainen 90e10708f8 Fixup paths and Makefiles for rpmdb/ elimination 2008-05-12 12:28:12 +03:00
Panu Matilainen 4ad7f40395 Rip useless ROOT_GROUP checking from configure
- it was only used for an ancient RH-specific %_fixgroup anyway which
  in turn only ever did anything when building as root - bad bad...
2008-05-08 14:37:29 +03:00
Panu Matilainen a306a04a89 RIP alloca() 2008-04-30 14:38:09 +03:00
Panu Matilainen 811e7be604 Drop va_copy check, it's already done by C99 checks 2008-04-28 14:02:51 +03:00
Panu Matilainen 48f19e86b5 Require C99 capable compiler in configure
- also enable C99 mode if not on by default
2008-04-28 14:02:51 +03:00
Jindrich Novy 3d8e0ef13a Check for lzma library in configure.ac and reference it in Makefile.am 2008-04-22 12:36:27 +02:00
Panu Matilainen d48e6c8380 Start phasing out internal copy of Lua
- don't build internal copy of Lua
- move 3rd party extensions (posix and rexlib) to toplevel luaext/
  directory, built by default (unless --without-lua specified)
- auto*foo checks for external Lua
- minimal tweaks to lposix.c and rpmlua.c to get them build with Lua 5.1
2008-04-16 15:37:52 +03:00
Jindrich Novy 58fdb16e75 Require mkstemp()
- mktemp() and tempnam() are dangerous
2008-04-16 13:01:06 +02:00
Panu Matilainen babade1594 Enable stack protector by default if gcc supports it 2008-04-03 12:59:13 +03:00
Panu Matilainen 0c0d812b0d Remove unused RPMUSER, GROUP etc from configure.ac 2008-03-07 12:36:22 +02:00
Panu Matilainen 61189cb868 Add super-H arch support (rhbz#432496)
Patch from Masaki Chikama
2008-03-04 08:16:02 +02:00
Panu Matilainen e1ca3be052 Rip the horrible (ia64) autorelocate kludgery. RIP.
- we don't support relocated x86 on ppc in qemu either...
2008-02-05 10:08:44 +02:00
Panu Matilainen 924007789d Drop internal db from dist tarballs
- tarball down to almost 1/4 of earlier size
- check if internal db is present in configure, point to INSTALL if not
- distcheck needs --with-external-db now to have any chance at working
- leaving to hg for now for easy reversal if getting second thoughts ;)
2008-01-09 19:07:20 +02:00
Panu Matilainen 20bfd34975 Drop duplicate locale.h check 2007-12-19 09:01:39 +02:00
Panu Matilainen bef37587d3 Don't bother configuring db3 directory if using external db 2007-12-17 11:38:12 +02:00
Ralf Corsépius f407b391c0 test == is a bashism. 2007-12-11 09:12:12 +01:00
Panu Matilainen d4cc1de207 Rename apidocs to hackingdocs, only build on request 2007-12-05 11:56:33 +02:00
Ralf Corsépius 333f10c56e Adjust comment. 2007-11-26 15:41:24 +01:00
Ralf Corsépius 8f82c7309e s/build_os/host_os/ 2007-11-26 15:38:20 +01:00
Ralf Corsépius 5831404601 Add header preinstallation. 2007-11-22 15:54:42 +01:00
Ralf Corsépius 5787b3f7c1 Eliminate egrep (Abandoned by POSIX many years ago). 2007-11-22 09:43:40 +01:00
Ralf Corsépius d58b2666e3 Add AC_USE_SYSTEM_EXTENSIONS.
Remove AC_AIX, AC_MINIX.
Do not add -D_GNU_SOURCE to CFLAGS.
2007-11-21 16:51:57 +01:00
Ralf Corsépius 4990a44984 s/build_cpu/host_cpu/ 2007-11-21 11:34:30 +01:00
Panu Matilainen b359165445 Fix build without O2
HAVE_LOCALE_H is used by system.h, ensure it is defined properly
(the issue only occurs when compiling without __OPTIMIZE__ (ie -O2)
 otherwise libintl.h do include locale.h)

Patch from Pascal Rigaux
2007-11-13 13:03:38 +02:00
Panu Matilainen df84cabff6 Disable -Wstrict-prototypes for now due to noise from NSPR headers 2007-11-08 12:57:02 +02:00