Commit Graph

2049 Commits

Author SHA1 Message Date
Gleb Fotengauer-Malinovskiy
ecd20cdbb6 4.0.4-alt100.97
- fixup-libraries: fixed recognition of PIEs (ldv@).
- verify-elf: treat PIEs as executables in the check for unresolved symbols (ldv@).
- Disabled rpm's installer part.
- Built rpm-build in "compat" mode with rpm-4.13.
2016-12-08 19:24:36 +03:00
Gleb Fotengauer-Malinovskiy
477fe329f3 Add fake provides for librpm{,build}
This change is needed only for rpm-4.13+rpmbuild-4.0.4 bootstrap.
2016-12-08 19:24:36 +03:00
Gleb Fotengauer-Malinovskiy
2781e0f2af Disable sisyphus_check dirlist test for /usr/lib/rpm
This directory now belongs to both librpm and librpm7.
2016-12-08 19:24:36 +03:00
Gleb Fotengauer-Malinovskiy
3691deca51 Rename macros and rpmrc to buildmacros and rpmbuildrc
This change is needed only for rpm-4.13+rpmbuild-4.0.4 bootstrap.
Files in rpm-4.13 can and should be compatible with rpmbuild-4.0.4 and
vice versa.
2016-12-08 19:23:33 +03:00
Gleb Fotengauer-Malinovskiy
7f429ba6da macros.in: change default database configuration to btree 2016-12-08 19:18:21 +03:00
Gleb Fotengauer-Malinovskiy
d32a8374b4 Build only rpm-build, librpm and librpmbuild packages 2016-12-08 19:18:21 +03:00
a4fb4d42e7 verify-elf (verify_unresolved): treat PIEs as executables 2016-12-07 11:30:44 +00:00
8c1f9d589b Move "is this ELF shared object an executable" check to a separate script
* configure.ac (AC_OUTPUT): Add scripts/fixup-libraries.
* rpm-4_0.spec (%files build): Add %_rpmlibdir/is_elf_so_executable.
* scripts/is_elf_so_executable: New file.
* scripts/Makefile.am (EXTRA_DIST, config_SCRIPTS): Add it.
* scripts/fixup-libraries: Rename to scripts/fixup-libraries.in,
use is_elf_so_executable.
2016-12-07 11:30:42 +00:00
a51ea574e9 scripts/fixup-libraries: fix recognition of PIEs 2016-12-07 11:30:25 +00:00
Ivan Zakharyaschev
401d9520ba 4.0.4-alt100.96
- verify-elf: don't confuse the initial verify_rpath() in case
  of two RUNPATH/RPATHs (ALT#32826).
2016-11-30 17:50:04 +03:00
Ivan Zakharyaschev
d362bae600 verify-elf made a bit safer: pipes or command substitutions make it fail
1. set -o pipefail
2. don't use command substitutions inside other complex expressions; just assign to a var -- then it would make the script fail
2016-11-30 17:49:59 +03:00
Ivan Zakharyaschev
00b00565ea verify-elf: don't call verify_rpath() under a pipe because the errors are saved in a var
(A pipe makes a subshell and the var is modified there.)
2016-11-30 17:48:24 +03:00
Ivan Zakharyaschev
c0f11587a5 verify-elf: don't confuse verify_rpath() in case of two RUNPATH/RPATHs (ALT#32826) 2016-11-30 17:30:49 +03:00
Ivan Zakharyaschev
91c923f251 verify-elf: tiny cleanup: unify the awk expression for RPATH extraction
Rewritten equivalently, like in lib.req.
2016-11-30 17:09:09 +03:00
Ivan Zakharyaschev
70369c1a8e verify-elf: tiny cleanup: local var declaration moved to the place of use
The other occurence of "rpath" is in the second part of a pipe and is
local to that subshell anyway.
2016-11-30 17:08:09 +03:00
Ivan Zakharyaschev
00635cb1ac 4.0.4-alt100.95
- verify-elf: honor RUNPATH in addition to RPATH, too (like in lib.req).
- (unnoticeable) shell.req: generalize the shebang regexp w.r.t. other
  hardcoded locations of /usr/bin/env. (No need to be too strict here:
  shebang.req should catch bad locations. It's not our job.)
- %distribution: ALT Linux --> ALT (ALT#32707).
2016-11-29 15:12:34 +03:00
Ivan Zakharyaschev
3172abb8c1 %%distribution: ALT Linux --> ALT (ALT#32707) and some minor corrections of old @altlinux.ru addresses 2016-11-29 15:12:34 +03:00
Ivan Zakharyaschev
66f1a4cb8d verify-elf: RUNPATH overrides RPATH for verify_unresolved
From ld.so's documentation about the search order:

Using the directories specified in the DT_RPATH dynamic section
attribute of the binary if present and DT_RUNPATH attribute does not
exist. Use of DT_RPATH is deprecated.
2016-11-29 15:11:46 +03:00
Ivan Zakharyaschev
65509e2763 verify-elf: honor RUNPATH, too (like in lib.req.in:95 and debuginfo.req.in:76)
in addition to RPATH
2016-11-28 22:37:18 +03:00
Ivan Zakharyaschev
e2810bda5c added me to "Copyright (C)" 2016-11-28 22:37:13 +03:00
Ivan Zakharyaschev
d2e5d7dce7 shell.req: generalize the shebang regexp w.r.t. other locations of env
No need to be too strict here: shebang.req would (or should) catch bad
locations. It's not our work.
2016-05-27 16:02:37 +03:00
Ivan Zakharyaschev
ef66de16d5 shell.req: more idiomatic regexp for reading the shebang (use ?)
Compared with a similar regexp in Emacs sources --
http://git.altlinux.org/gears/e/emacs24.git?p=emacs24.git;a=blob;f=lisp/progmodes/sh-script.el;h=4700324d376db79e27d05e5352fff2f7e841a603;hb=HEAD#l1637
: "#![ \t]?\\([^ \t\n]*/bin/env[ \t]\\)?\\([^ \t\n]+\\)"

Conclusion: mostly identical meaning, with the exception of a more
liberal path of env in Emacs.

But ALT Sisyphus has /usr/bin/env only, so I don't see a good reason
to make the regexp more general. (If a different path is written
there, it won't work in ALT Sisyphus.)
2016-05-27 15:19:10 +03:00
Ivan Zakharyaschev
06f844cd6f 4.0.4-alt100.94
- shell.req: use the version of (ba|)sh from the shebang.
- find-{requires,provides}: run all scripts even for empty lists of files.
2016-05-24 23:08:16 +03:00
Ivan Zakharyaschev
f9bf39c2aa shell.req: use the version of (ba|)sh from the shebang 2016-05-24 23:08:04 +03:00
Ivan Zakharyaschev
d13f11fe4f find-provides: removed optimization for empty lists of files
The same reasons as for find-requires:

1. can be buggy in future;
2. give a chance to the methods to generate some special Provides
2016-04-07 13:58:27 +03:00
Ivan Zakharyaschev
0ebfa8f191 find-requires: removed optimization for empty lists of files
Reasons:

1. code clarity (and more robust w.r.t. to future changes which might
lead to bugs, as before)

2. to give all the special methods a chance to print something in the
case of an empty list, too (when needed)
2016-04-06 17:09:38 +03:00
Ivan Zakharyaschev
edf305d42c 4.0.4-alt100.93
- find-requires fixed for packages consisting completely of symlinks.
2016-04-06 03:30:21 +03:00
Ivan Zakharyaschev
4d23ad4702 percolate: removed loop optimization (for code clarity), result won't change 2016-04-06 03:26:17 +03:00
Ivan Zakharyaschev
95ffed16a6 find-requires: it was wrong to check "$tmpdir"/files for emptiness
Since there appeared a special handling for just some kind of
symlinks, "$tmpdir"/files gave only a part of "$tmpdir"/files+types --
the final list of what to analyze.
2016-04-06 03:22:49 +03:00
Ivan Zakharyaschev
e6e202e522 4.0.4-alt100.92
- find-requires: treat symlinks leading to some real content all way
  through the same package as that content.
- find-{requires,provides}: in case of an error in it, the pipe to it
  will be broken (must not change the visible behavior of rpm-build).
2016-04-05 23:26:03 +03:00
Ivan Zakharyaschev
6b43518d50 find-{requires,provides}: switched to the equivalent use of tmpdir.sh 2016-04-05 23:24:45 +03:00
Ivan Zakharyaschev
816c140ae7 find-{requires,provides}: in case of an error in it, the pipe to it will be broken (must not change the visible behavior of rpm-build)
We move "cat > /dev/null" to the only place where consuming the whole
input is useful for there to be no error.

This is done in preparation for a switch to the usage of tmpdir.sh.
2016-04-05 23:22:24 +03:00
Ivan Zakharyaschev
5630438416 debuginfo.req.files: ignore everything under /usr/lib/debug/.build-id/
The special directory structure there doesn't correspond to the
directory structure where debuginfo.req expects to find and process
*.debug files.
2016-04-05 22:57:42 +03:00
Ivan Zakharyaschev
7f43b629e2 find-requires: a TODO notice on directory symlinks vs percolation 2016-04-05 22:57:42 +03:00
Ivan Zakharyaschev
6412a7f161 find-requires: treat symlinks leading to some real content inside the same package as that content 2016-04-05 22:57:42 +03:00
Ivan Zakharyaschev
dc0def4a3b percolate: hopefully, it will work just with /bin/sh (not to create an extra dep)
Conflicts:
	scripts/percolate
2016-04-05 22:57:42 +03:00
Ivan Zakharyaschev
0f969acf44 percolate: register it in Makefile etc. 2016-04-05 22:57:42 +03:00
Ivan Zakharyaschev
70bf25fc08 percolate: a helper script (will be used to follow symlinks only through known files) 2016-04-05 22:57:35 +03:00
Ivan Zakharyaschev
484d6f523f 4.0.4-alt100.91
- brp-verify_elf: handle all rules for setting LD_PRELOAD in the form
  of pairs of RPM_LD_PRELOAD_@ and RPM_FILES_TO_LD_PRELOAD_@ env vars.
- verify-elf: substitute LD_PRELOAD with "$VERIFY_ELF_LD_PRELOAD"
  before ldd (i.e., any prior value of LD_PRELOAD will be cleared!)
- examples of usage of the above facilities:
  rpm-build-python3-0.1.9.3 and rpm-build-python.
2016-03-31 21:23:29 +03:00
Ivan Zakharyaschev
c024ff3ce7 brp-verify_elf: set -o pipefail -- just in case 2016-03-31 21:23:29 +03:00
Ivan Zakharyaschev
e124ef0b4c brp-verify_elf: handle all rules for setting LD_PRELOAD in the form of pairs of RPM_LD_PRELOAD_@ and RPM_FILES_TO_LD_PRELOAD_@ env vars 2016-03-31 21:23:29 +03:00
Ivan Zakharyaschev
9d2611ea44 verify-elf: substitute LD_PRELOAD before ldd (with what is passed on stdin after \t)
Of course, this will clean any externally set LD_PRELOAD.
2016-03-31 21:23:22 +03:00
a0380cbc27 4.0.4-alt100.90
- lib.req: made "no symbol bindings" condition fatal.
- relative: fixed potential heap buffer overflow (by Gleb F-Malinovskiy).
- rpmrc.in: armv7: do not force FPU kind, rely on compiler defaults
  (by Sergey Bolshakov).
2016-03-10 16:27:08 +00:00
Gleb Fotengauer-Malinovskiy
03302d4963 relative.c: fix potential heap buffer overflow 2016-03-10 19:22:33 +03:00
b78cc75d12 lib.req: make "no symbol bindings" condition fatal 2016-03-10 15:30:27 +00:00
Sergey Bolshakov
00c4f63a1d rpmrc.in: armv7: do not force FPU kind, rely on compiler defaults 2016-03-10 15:04:32 +00:00
3899fb125e 4.0.4-alt100.89.1
- ldd: reverted recent change (closes: #31870).
2016-03-10 16:14:33 +00:00
864001eba2 Revert "ldd.in: pass --list to rtld"
ld.so --list option is incompatible with LD_TRACE_LOADED_OBJECTS.

This reverts commit da9e6dfaab.
2016-03-10 16:10:54 +00:00
f4c77cad3e 4.0.4-alt100.89
- brp-bytecompile_python: exclude paths listed
  in $RPM_PYTHON3_COMPILE_INCLUDE (ALT#28606).
- ldd: pass --list to rtld.
2016-03-09 15:23:58 +00:00
42eacfcc82 brp-bytecompile_python: exclude paths listed in $RPM_PYTHON3_COMPILE_INCLUDE (ALT#28606)
$RPM_PYTHON3_COMPILE_INCLUDE is usually a subset of
$RPM_PYTHON_COMPILE_INCLUDE, so add the former to the exclude list.
2016-03-09 15:02:22 +00:00