Commit Graph

46 Commits

Author SHA1 Message Date
Panu Matilainen 162ce177b0 Default to Sequoia crypto as per roadmap
Defaulting to a deprecated build option tends to looks a bit strange.
Make Sequoia the default crypto option, update docs and add the
dependency to CI environment.

Fixes: #2065
2022-11-29 13:46:56 +02:00
Panu Matilainen 96f9b82e26 Also make the ci target a boolean option with explicit dependencies
Similar rationale as for 821bd6c271
2022-11-25 10:33:45 +01:00
Panu Matilainen faa3b8822c Make test-suite a boolean option with explicit dependencies
Silently skipping the "check" target generation if one or more of its
dependencies are missing is unobvious and inconsistent with how other
optional dependencies are handled. Add an option to disable the
tests-suite and make it's dependencies explicit.

Fixes: #2288
2022-11-25 10:33:45 +01:00
Panu Matilainen 3e70775a1a Change INSTALL to document the cmake build and drop experimental status
Yes folks, this is it.
2022-10-20 14:38:50 +03:00
Panu Matilainen 0f0fa49170 Update rpm-sequoia URL as per #2164 2022-08-31 12:07:43 +03:00
Panu Matilainen 66fa46c006 Axe our internal and buggy glob() and fnmatch() copies
glibc 2.2 (or thereabouts) changed glob() and fnmatch() to not return
dangling symlinks as matches, which gravely affects rpmbuild in particular.
Because of this, rpm has carried a bundled copies of glibc 2.1 functions
for close to 22 years now (commit bed2a465fe).
glibc 2.27 in 2018 thankfully finally reverted that particular braindamage,
I think we've carried the compatibility babbage long enough to excuse
ourselves with a little shorter grace period in this case.
Nukes away, add a blurb about the version requirement on glibc
based systems.

This still leaves our internal glob_pattern_p() intact as unlike glob()
itself, that's not portable.

No functional changes as such.
2022-05-04 09:17:35 +03:00
Neal H. Walfield db36ea85aa Add a Sequoia-based OpenPGP backend
This change adds support for using Sequoia as an alternative to the
internal OpenPGP backend.  To use this backend, it is necessary to
have the rpm-sequoia library installed.

https://gitlab.com/sequoia-pgp/rpm-sequoia

Fixes #1978.
2022-04-29 14:36:44 +03:00
Panu Matilainen 96ec957e28 Validate intermediate symlinks during installation, CVE-2021-35939
Whenever directory changes during unpacking, walk the entire tree from
starting from / and validate any symlinks crossed, fail the install
on invalid links.

This is the first of step of many towards securing our file operations
against local tamperers and besides plugging that one CVE, paves the way
for the next step by adding the necessary directory fd tracking.
This also bumps the rpm OS requirements to a whole new level by requiring
the *at() family of calls from POSIX-1.2008.

This necessarily does a whole lot of huffing and puffing we previously
did not do. It should be possible to cache secure (ie root-owned)
directory structures to avoid validating everything a million times
but for now, just keeping things simple.
2022-02-16 10:57:18 +02:00
Panu Matilainen 8338fe60eb Update INSTALL to reflect dropped Python 2 support
Should've been in commit 67f8f2b01d
2021-11-23 15:50:57 +02:00
Michael Schroeder 2547b261ba Use lua_replace instead of lua_rotate
lua_rotate works but is somewhat the wrong tool if we just
want to set a specific stack element. Use lua_replace instead.
This has the added advantage that the code works again with
lua version 5.2 (not that it matters much).
2021-10-27 11:53:35 +03:00
Peter Pentchev 24b6c45423
Bump the Lua minimum version to 5.3. (#1738)
Bump the Lua minimum version to 5.3.

The 986be669fb commit introduced a use of
lua_rotate(), which is not available in Lua 5.2, unintentionally causing a dependency on 5.3. Rather than work around it, just bump the requirement to 5.3, it's almost seven years old by now...
2021-08-06 09:54:21 +03:00
Panu Matilainen 04b0805a75 Use external debuginfo tooling
There's been an increasing interest in the wider community to use
the debuginfo tooling outside rpm context, and deep ELF format
internals are not rpm's core business anyhow, the reasons for it
being here are entirely historical. So without further ado, remove
the debuginfo tooling from rpm and rely on the external debugedit
project from now on.

Update INSTALL to document the new dependency, and add conditionals
to relevant debuginfo build tests. The lower-level debugedit and
sepdebugcrcfix tools are tested in the external project, no need
to duplicate that here.
2021-06-21 12:52:39 +03:00
Panu Matilainen 7f3fdf6868 Make Lua a hard requirement for rpm
More and more macros, scriptlets and other functionality has been getting
built around Lua, to the point that it has in practice been required for
several years now.

Maintaining the pretense of being optional comes at a cost in holding
back developments and having to check for that theoretical special
case. Lets make it a hard requirement and embrace it some more!
2021-02-09 13:57:27 +02:00
Panu Matilainen 4290300e24 Remove support for Berkeley Database backend
Back in 2013, the Berkeley DB license was changed in a way that prevented
most of open-source world to go along, rpm was no different. We now have
other options and a standalone migration path from BDB for those that
haven't yet done so.

Whatever else might be said about this partnership, it has been a long one.
Now's the time to part ways.
2021-02-03 14:41:48 +01:00
Michal Domonkos 6a780f10c2 Check for OpenMP version at configure time
Only accept OpenMP >= 4.5, due to the "priority" clause that we use
since commit 6f6f5e7, and also document that in the INSTALL file.

If explicitly required with --enable-openmp, fail configuration if the
version is not available.

https://www.openmp.org/wp-content/uploads/openmp-4.5.pdf

Resolves: #1315
2020-09-02 09:47:16 +03:00
Panu Matilainen 276f61949f Document the database backend variants and their dependencies 2020-08-21 13:43:14 +03:00
Panu Matilainen c98ace6a00 Document BDB as deprecated in INSTALL too 2020-08-21 13:43:14 +03:00
Panu Matilainen 25f41fa23b Update popt download location 2020-06-23 14:55:56 +03:00
Panu Matilainen d009ac4828 Remove support for NSS
NSS is a behemoth of a library which drags in a whole runtime subsystem
of its own which is often at odds with normal Unix system behavior
(hello SIGPIPE). Now that we have nicer alternatives available there's
little reason to lug this baggage along. NSS was deprecated in rpm 4.16
(commit 0b9efb93fb).
2020-05-29 08:54:56 +03:00
Panu Matilainen cf967331d3 Remove support for beecrypt
Beecrypt whose upstream is dead for more than ten years now, was deprecated
in rpm 4.16 (in commit 0910e6aa9e).
2020-05-29 08:54:56 +03:00
Panu Matilainen 3017eae9a3 Drop unmaintained "hacking docs" doxygen docs
We only maintain API docs for public interfaces, this is just
unnecessary clutter that nobody builds anyway.
2020-03-27 15:49:18 +02:00
Panu Matilainen 2c57944691 Document popt build-requirement and point a download location
Oops, all this time our most important build-dependency had been missing.
Add a version recommendation too - while rpm almost certainly works with
1.12 and 1.11 too, those are getting *really* long in the tooth, and 1.13
has an important type fix in poptGetOptArg() return value so might as
well use that as the base.
2019-11-08 10:50:02 +02:00
Panu Matilainen 5c0801a1a3 Change the default crypto implementation to libgcrypt (from NSS)
libgcrypt is a much more straightforward and lightweight as a library,
doesn't come with a massive runtime library of its own, runtime which
messes with SIGPIPE and all, has a nice clearly compatible license (LGPL)
and is somewhat faster than NSS. What's not to like?

Change the default and add relevant documentation to INSTALL. Drop
the hopefully now unnecessary override from distcheck flags, and
switch CI over too. Note that in CI, openssl-devel is still needed
for ima-evm (missing dep in ima-evm-utils-devel?)
2019-09-11 09:58:00 +03:00
Panu Matilainen 1fac727638 Default to Python 3 for bindings, deprecate Python 2 support
Python 2 EOL is closing in fast, time we start looking forward instead
of backward too. Document how to build for Python 2 for now, and update
version requirements.
2019-02-26 11:58:15 +02:00
Panu Matilainen 6d4c68ba10 Modernize Lua library/module initialization, drop support for Lua < 5.2
Replace long since deprecated luaL_openlib() with modern counterparts
luaL_newlib() and luaL_setfuncs() and use luaL_requiref() for
loading our modules (these changes needed to go hand in hand, otherwise
it blows up every which way). Because these functions are only available
in Lua >= 5.2, this means we can drop the other compat checks as well,
just update the documenation for the new version requirement.

This also means that rpm now works on a modern Lua (tested with 5.3.5)
without requiring any compat modules and defines to be present in Lua. Whee!

Patch based on work done by @daurnimator in PR #169.

Resolves: #166
2019-02-21 16:02:52 +02:00
Panu Matilainen e1d3811883 Support building rpm without Berkeley DB, simplify the configuration
Replace the --with-external-db switch with the following simple logic:
if internal copy of BDB is detected, use it, otherwise look for an
external one. By default BDB is still required, but it's now possible
to build without it by using --disable-bdb argument to configure.
If no database is built in, we'll segfault for now, to be dealt with
in coming commits.

This is a rather historical moment, BTW.
2019-02-01 15:21:08 +02:00
Jun Aruga 2357add5aa Fix fakechroot wrong URL. 2017-07-04 12:08:30 +02:00
Stephen Gallagher 64028f9a1c Add OpenSSL support for digest and signatures
Autotools: add --with-crypto=openssl
This enables RPM to locate the appropriate flags for compiling
against OpenSSL for digest and hash functions.

This implementation changes the old behavior of
--with[out]-beecrypt toggling between beecrypt and nss. It will
now throw an error if attempting to use --with-beecrypt
indicating that the user should instead use --with-crypto=

See also:
https://github.com/rpm-software-management/rpm/issues/119
2017-02-16 11:26:55 +01:00
Ville Skyttä 8002b3f985 Spelling fixes.
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
2013-02-19 21:35:40 +02:00
Panu Matilainen 9b995a7674 Get rid of long since deprecated VFY_VerifyDigest() uses
- VFY_VerifyDigest() has been deprecated since NSS >= 3.12 and for
  a good reason too: with VFY_VerifyDigest() caller needs to painfully
  enumerate every possible supported enc + hash combination, only for
  NSS to revert the process. Use the saner VFY_VerifyDigestDirect()
  interface instead and test for its presence in configure.
- This means we now require NSS >= 3.12 but as that's already 4.5 years
  old and included in ancient beasts like RHEL-4, this doesn't seem
  exactly unreasonable requirement. And then there's always beecrypt...
2012-11-29 12:35:13 +02:00
Panu Matilainen 7e91fb7370 Update INSTALL a bit, include blurb about the test-suite + fakechroot 2011-04-04 14:39:19 +03:00
Ville Skyttä 79b0ebedc1 Use grep -E and grep -F instead of egrep and fgrep.
egrep and fgrep are deprecated in GNU grep and "historical" in POSIX.
2009-12-17 10:43:52 +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 e9cc481202 Document libcap, libacl in INSTALL 2009-03-06 13:43:17 +02:00
Panu Matilainen 6bd713ab31 Update / clarify documentation on building API/hacking docs 2009-01-19 14:50:18 +02:00
Panu Matilainen 743415bb78 Improve INSTALL documentation wrt NSRP/NSS requirements 2008-08-19 13:45:20 +03:00
Ville Skyttä 6b3a81c5dd Decompressor clarifications.
Signed-off-by: Ville Skyttä <ville.skytta@iki.fi>
2008-07-11 13:35:34 +03:00
Panu Matilainen 2eb20ad359 Document external Lua requirement 2008-04-16 15:52:06 +03:00
Panu Matilainen 43636bc513 Document libmagic requirement 2008-01-27 17:28:32 +02:00
Panu Matilainen 927865ad4a Document internal vs external BDB usage in INSTALL 2008-01-09 18:56:34 +02:00
Panu Matilainen 1a2a82d389 Document NSS requirement, revise obsolete comment in macros.in 2007-11-02 10:16:16 +02:00
Panu Matilainen 722e03c1a8 Dust off INSTALL docs a bit 2007-10-08 15:37:38 +03:00
jbj 80aa232495 rpmbuiod, not rpm, -ba.
CVS patchset: 6756
CVS date: 2003/04/17 14:47:19
2003-04-17 14:47:19 +00:00
jbj d83648fc60 Rip out rpmrc configuration.
CVS patchset: 4134
CVS date: 2000/08/27 19:43:51
2000-08-27 19:43:51 +00:00
jbj abe7856bb0 Add reminder to export shell variables.
CVS patchset: 3431
CVS date: 1999/11/19 19:47:43
1999-11-19 19:47:43 +00:00
jbj 776dc9c258 change support@redhat.com to rpm-list@redhat.com.
CVS patchset: 2891
CVS date: 1999/03/14 00:34:52
1999-03-14 00:34:52 +00:00