Commit Graph

2275 Commits

Author SHA1 Message Date
Alexey Tourbin
0cfbd8401f set.c: use __builtin_ffs to count vlen bits 2011-06-08 10:29:02 +04:00
Alexey Tourbin
292af70160 spec, lib/Makefile.am: compile and run set.c in -DSELF_TEST mode 2011-06-07 10:50:10 +04:00
Alexey Tourbin
57e25bb189 set.c: implemented two-bytes-at-a-time base62 decoding
callgrind annotations, 4.0.4-alt100.27:
1,899,576,194  PROGRAM TOTALS
694,132,522  decode_base62_golomb
583,376,772  rpmsetcmp
106,136,459  __GI_strcmp
102,459,362  __GI_strlen
...

callgrind annotations, this commit (built in hasher):
1,691,904,239  PROGRAM TOTALS
583,395,352  rpmsetcmp
486,433,168  decode_base62_golomb
106,122,657  __GI_strcmp
102,458,654  __GI_strlen
2011-06-07 10:49:48 +04:00
Alexey Tourbin
238e421ad3 set.c: use long subscript for table lookup, to avoid extra movslq instructions 2011-05-25 08:20:06 +04:00
Alexey Tourbin
97ff0102cd set.c: improved base62_decode table lookup
The whole point of using a table is not only that comparisons
like (c >= 'a' && c <= 'z') can be eliminated; but also that conditional
branches (the "ands" and "ifs") should be eliminated as well.

The existing code, however, uses separate branches to check e.g. for the
end of string; to check for an error; and to check for the (num6b < 61)
common case.  With this change, the table is restructured so that the
common case will be handled with only a single instruction.
2011-05-25 08:18:40 +04:00
cb06a84083 4.0.4-alt100.27
- find-{provides,requires}: fixed regression introduced along with
  cleanup in 4.0.4-alt100.25.
2011-05-24 23:21:53 +00:00
9b75decc2e autodeps/linux.*: fix regression introduced along with the recent cleanup 2011-05-24 23:20:04 +00:00
774c21e1a6 4.0.4-alt100.26
- fixup-desktop: Fixed to edit files in place (closes: #25645).
- platform.in: Removed obsolete %update_wms/%clean_wms and
  %update_scrollkeeper/%clean_scrollkeeper macros (by Igor Vlasenko).
2011-05-20 15:17:40 +00:00
7eea54be91 fixup-desktop: edit files inplace (ALT#25645) 2011-05-20 15:10:41 +00:00
Igor Vlasenko
54babd022d drop obsolete alt macros %update_scrollkeeper/%clean_scrollkeeper 2011-05-17 18:31:42 +03:00
Igor Vlasenko
9dcc998b63 drop obsolete alt macros %update_wms/%clean_wms 2011-05-17 18:28:22 +03:00
2851902211 4.0.4-alt100.25
- fixup-desktop: new file that does trivial fixes in desktop files
  (by Igor Vlasenko; closes: #25605).
- ru.po: removed ambiguous translations for "source", "patch" and "icon"
  (closes: #24857).
2011-05-15 23:39:18 +00:00
789ffa88f9 ru.po: remove translations for "source", "patch" and "icon" (ALT#24857) 2011-05-15 23:35:36 +00:00
Panu Matilainen
f0df84e119 Remove unused variable in debugedit 2011-05-15 22:55:00 +00:00
d0efa0675e scripts: cleanup exit/signal handlers 2011-05-14 18:17:53 +00:00
Igor Vlasenko
2b3028a966 fixup-desktop: new file that does trivial fixes in desktop files
Some of the fixes for the freedesktop .desktop files are so routine
and trivial that they better be performed by script.
2011-05-13 21:43:39 +00:00
fb598690cf 4.0.4-alt100.24
- platform.in: Added %systemd_unitdir macro.
2011-04-04 20:29:44 +00:00
99554e894c platform.in: add %systemd_unitdir 2011-04-04 20:28:42 +00:00
5604c71627 4.0.4-alt100.23
- build/reqprov.c: fixed optimization of subpackage self-requirements.
- build/interdep.c: fixed check for cycles introduced along with
  pruning of requirements in 4.0.4-alt100.18.
2011-03-14 02:59:44 +00:00
0358825884 pruneRDeps1: fix check for cycles
The check for cycles introduced in 4.0.4-alt100.17-6-ga71e004 appeared
to be incomplete.  For example, it fails to recognize a cycle in the
following example:

%package -n test
Requires: libtest = %version-%release

%package -n libtest
Requires: libtest-common = %version-%release

%package -n libtest-common
Requires: libtest = %version-%release
2011-03-14 02:27:17 +00:00
37ca0532c0 addReqProv: fix optimization of subpackage self-requirements
Optimization of subpackage self-requirements never worked before because
version-release is normally not defined for subpackages at parse time.
2011-03-14 01:49:42 +00:00
Alexey Tourbin
3f500eb080 4.0.4-alt100.22
- cpp.req: New dependency generator for C and C++ header files.
- Reverted "pkg-config --print-requires-private" change introduced in alt100.2.
2011-02-27 07:39:08 +03:00
Alexey Tourbin
808184893c cpp.req: disable for gcc 2011-02-27 07:17:15 +03:00
Alexey Tourbin
91d73ac0ae find-package: prune generic devel deps like gcc4.x in HOST_PKG mode 2011-02-27 06:29:15 +03:00
Alexey Tourbin
3df5f4ac6d cpp.req: try to enter c++ mode after the first failure 2011-02-27 05:34:23 +03:00
Alexey Tourbin
5bce334b5e cpp.req: new dependency generator for header files 2011-02-27 03:51:26 +03:00
Alexey Tourbin
a9278eb466 Revert "pkgconfig.req: pass --print-requires-private to pkg-config"
This reverts commit 2fc9a40da8.
2011-02-27 03:39:08 +03:00
Alexey Tourbin
3cc4ba3448 4.0.4-alt100.21
- build/files.c: Fixed RPMTAG_SIZE for src.rpm packages (broken in alt100.16).
2011-02-09 14:17:15 +03:00
Alexey Tourbin
57ecc37f6f build/files.c: fixed RPMTAG_SIZE for src.rpm packages 2011-02-09 14:15:54 +03:00
Alexey Tourbin
5fe2c17ec3 4.0.4-alt100.20
- find-requires, shell.req: improved support for 'buildreq -bi'.
2011-02-09 07:20:36 +03:00
Alexey Tourbin
6f60362519 find-requires: absolute smbolic links should not be passed to file(1)
Again, this is to improve 'buildreq -bi' support.  See, file(1) is
so full of shit that, to determine whether a link is broken, it has
to read the link and stat its destination (instead of bare stat
on the link).  This hardly makes any sense, but enables buildreq
to calculate self-dependency when the package is installed.
2011-02-09 07:09:01 +03:00
Alexey Tourbin
9b87852e0f shell.req: avoid 'type -t' call for paths
This is to improve 'buildreq -bi' support: 'type -t' will stat
absolute paths and buildreq will make self-dependency.  Note
that in the next command PATH is nullified to avoid stat/search
for regular commands.
2011-02-09 06:31:40 +03:00
Alexey Tourbin
d549b5b04d 4.0.4-alt100.19
- build/interdep.c: Diagnose mssing Epoch in subpackage dependencies.
- build/interdep.c: Diagnose non-strict dependencies between subpackages.
2011-02-08 09:07:10 +03:00
Alexey Tourbin
d5b1a5e2f2 build/interdep.c: missing alFree 2011-02-08 08:28:24 +03:00
Alexey Tourbin
7891bc3a46 build/interdep.c: diagnose non-strict dependencies between subpackages
warning: util-linux: non-strict dependency on libblkid
warning: util-linux: non-strict dependency on libuuid
warning: util-linux: non-strict dependency on libmount
warning: mount: non-strict dependency on libblkid
warning: cfdisk: non-strict dependency on libblkid
warning: fdisk: non-strict dependency on libblkid
warning: libblkid: non-strict dependency on libuuid
warning: libblkid-devel: non-strict dependency on libuuid-devel
warning: libmount-devel: non-strict dependency on libblkid-devel
warning: util-linux-debuginfo: non-strict dependency on libblkid-debuginfo
warning: util-linux-debuginfo: non-strict dependency on libuuid-debuginfo
warning: util-linux-debuginfo: non-strict dependency on libmount-debuginfo
warning: mount-debuginfo: non-strict dependency on libblkid-debuginfo
warning: cfdisk-debuginfo: non-strict dependency on libblkid-debuginfo
warning: fdisk-debuginfo: non-strict dependency on libblkid-debuginfo
warning: libblkid-debuginfo: non-strict dependency on libuuid-debuginfo

Note that the right time for this check is after strict dependencies
are propagated, and also after debuginfo dependencies have been lifted.
2011-02-08 07:19:01 +03:00
Alexey Tourbin
d92517ed56 build/interdep.c: diagnose mssing Epoch in subpackage dependencies
warning: libX11-devel: dependency on libX11 needs Epoch
warning: libX11: dependency on libX11-locales needs Epoch
2011-02-08 05:21:38 +03:00
Alexey Tourbin
622fd8f698 4.0.4-alt100.18
- lib.req: Indirect functions need dependency on rtld(GNU_IFUNC).
- build/interdep.c: Prune already required deps between dependent subpackages.
2011-02-07 07:45:18 +03:00
Alexey Tourbin
a71e004bdf build/interdep.c: cycles must not be pruned completely
%package -n test
Requires: libtest = %version-%release
Requires: libtest-common = %version-%release

%package -n libtest
Requires: libtest-common = %version-%release

%package -n libtest-common
Requires: libtest = %version-%release

Here libtest and libtest-common make a cycle, and the "test" package
requires a cycle.  Naiive optimization against a cycle can simply
wipe out all dependencies: the dependency on libtest-common will be
optimized out, because libtest-common is already required by libtest;
likewise, the dependency on libtest will be optimized out, because
libtest is already required required by libtest-common.
2011-02-07 07:38:04 +03:00
Alexey Tourbin
e9d4612abe build/interdep.c: recognize %_deps_optimization
%_deps_optimization is now treated as optimization level 0, 1, or 2
(the default is 2).  Level 1 will make single-package optimizations.
Level 2 will additionally optimize dependencies between subpackages.
2011-02-07 06:26:02 +03:00
Alexey Tourbin
f5ed7f870a build/interdep.c: prune already required deps between dependent subpackages 2011-02-07 06:03:02 +03:00
Alexey Tourbin
705b043ac2 build/reqprov.c, rpmbuild.h: export compare_deps() 2011-02-07 04:28:18 +03:00
Alexey Tourbin
0cf73c5886 lib.req, lib.prov: simplify leading number check in ProvidedSymbols 2011-02-06 03:42:15 +03:00
Alexey Tourbin
a405f7c61e lib.req: indirect functions need dependency on rtld(GNU_IFUNC) 2011-02-06 03:38:32 +03:00
Alexey Tourbin
d2457ebf7b 4.0.4-alt100.17
- build/files.c: Missing error check resulted in "Bad CSA data" error.
- build/checkFiles.c: Disabled intersection check for /usr/src/debug.
2011-02-06 01:02:06 +03:00
Alexey Tourbin
856fad26a6 build/checkFiles.c: disable intersection check for /usr/src/debug
Though the intersection check can be useful even for /usr/src/debug
(it indicates binary code duplication and/or poor dependencies between
subpackages), it is too noisy and can eat up quite a bit of output.
The same information is still available directly within the packages
or via contents_index.
2011-02-05 23:54:19 +03:00
Alexey Tourbin
033bb95511 brp-debuginfo: pass LD_ORIGIN_PATH=/usr/bin to eu-strip
This is the same as with eu-findtextrel and eu-elflint; eu-strip
needs to load EBL backend only with --strip-debug, though.
2011-02-05 23:34:11 +03:00
Alexey Tourbin
a7b7111110 build/files.c (processBinaryFiles): fixed return after find-requires failure 2011-02-05 09:22:40 +03:00
Alexey Tourbin
a421d99177 4.0.4-alt100.16
- find-debuginfo-files: Create /usr/lib/debug/.build-id links.
- build/pack.c: Added support for %_debuginfo_payload macro.
- brp-debuginfo, platfrom.in: Impelemnted %brp_strip_{debug,none} macros.
- debuginfo.{req,prov}: Implemented soname-based debug dependencies.
- build/interdep.c: Prune extra deps between dependent subpackages.
- build/files.c: Calculate RPMTAG_SIZE after build/interdep.c optimizations.
2011-02-05 07:28:59 +03:00
Alexey Tourbin
8d0056fd39 build/interdep.c: also prune rpmlib(SetVersions) dependency 2011-02-05 07:25:46 +03:00
Alexey Tourbin
c1cccab3d8 debuginfo.req: avoid repeated "not yet debuginfo-enabled" warnings 2011-02-05 04:11:46 +03:00