258 Commits

Author SHA1 Message Date
Alexey Tourbin
c4170e6003 rpmhash.c: htFree() takes freeKey and freeData fns and returns NULL 2009-03-26 11:17:46 +03:00
Alexey Tourbin
d4b7714b36 rpmhash.c: removed keySize arg from htCreate() 2009-03-26 11:17:14 +03:00
Alexey Tourbin
07c1a647d4 4.0.4-alt97.M50.2
- Removed prehistoric multilib support.
2009-03-10 14:39:35 +03:00
Alexey Tourbin
3995f6a271 4.0.4-alt95.M41.14
- Removed prehistoric multilib support.
2009-03-10 14:37:49 +03:00
Alexey Tourbin
aebc9a42dd removed prehistoric multilib support 2009-03-10 14:27:38 +03:00
Alexey Tourbin
07e59dab46 4.0.4-alt97.M50.1
- alt97.M50 release series is for branch 5.0, alt98 is for Sisyphus.
- Updated %config algorithm to avoid unnecessary *.rpmnew, *.rpmsave,
  and *.rpmorig files (credits: Panu Matilainen, Tomas Mraz).
  + If new package keeps the same config file, updating the file on disk
    is skipped (rhbz#194246).  This provides limited support for replacing
    config files with custom symbolic links.
  + If pre-existing file is the same as the one being installed for
    the first time, backup action is suppress (rhbz#128622).
  + Backup action is also disabled but for regular files and symlinks.
2009-03-09 21:06:06 +03:00
Alexey Tourbin
098c3256ab 4.0.4-alt95.M41.13
- Updated %config algorithm to avoid unnecessary *.rpmnew, *.rpmsave,
  and *.rpmorig files (credits: Panu Matilainen, Tomas Mraz).
  + If new package keeps the same config file, updating the file on disk
    is skipped (rhbz#194246).  This provides limited support for replacing
    config files with custom symbolic links.
  + If pre-existing file is the same as the one being installed for
    the first time, backup action is suppress (rhbz#128622).
  + Backup action is also disabled but for regular files and symlinks.
2009-03-09 20:59:18 +03:00
Alexey Tourbin
822062204d transaction.c: shorter local names in decideConfigFate 2009-03-09 20:13:10 +03:00
Alexey Tourbin
52e51f6ae6 Avoid unnecessary .rpmnew and .rpmsave files (rhbz#128622)
[Based on rpm.org ebfbc82b by Panu Matilainen.]

Don't create .rpmnew and .rpmsave files when file/symlink on disk differs
just by timestamp. Patch by Tomas Mraz.
2009-03-09 20:13:08 +03:00
Alexey Tourbin
329d84a5d8 transaction.c: simplified SAVE/ALTNAME/CREATE condition 2009-03-09 20:13:08 +03:00
Alexey Tourbin
7bb2ab740a transaction.c: use explicit conditions for newWhat 2009-03-09 20:13:07 +03:00
Alexey Tourbin
be808f57ca Avoid .rpmnew when the file hasn't changed in package (rhbz#194246)
[Based on rpm.org e64bf5b9 by Panu Matilainen.]

The current behavior of %config(noreplace) creates a .rpmnewfile iff the type
of the current file has been changed wrto what was originally installed.

The patch changes this behavior so when old and new (in db and in package) is
identical -> not changed, the function returns FA_SKIP -> it won't clobber
anything, it simply skips installation of the file from the package.
This patch handles also the opposite case when old and new packages contain
%config symlink and we have regular file on disk.

Patch from Tomas Mraz.
2009-03-09 20:13:05 +03:00
Alexey Tourbin
ebf4093293 transaction.c: further decideConfigFate() tweaks 2009-03-09 20:13:02 +03:00
Alexey Tourbin
0ee67602ee transaction.c: revamped decideFileFate() akin to filecmp() 2009-03-09 20:11:22 +03:00
Alexey Tourbin
f9c067a1ad psm.[ch]: skip fuser and fgroup test/set for src.rpm
Previous change in loadFi() triggers the code which depends
on fi->fuser and fi->fgroup being NULL for source rpms.
Now I add explicit check for source rpms.

Update: also turn off suid/sgid bits for src.rpm.
(cherry picked from commit 070b65040eab0f221c5f79796358986e698cd2ef)
2009-03-08 20:12:41 +03:00
Alexey Tourbin
75978600ab s/relocateable/relocatable/ (jbj) 2009-03-08 20:12:18 +03:00
Alexey Tourbin
9d970cf8e2 lib/transaction.c (handleInstInstalledFiles): fixed RPMFILE_CONFIG bug
(cherry picked from commit c5e957a3b30abcdc368082be3a99e3f8c95a238f)
2009-03-08 20:07:14 +03:00
Alexey Tourbin
32c0658171 lib/transaction.c (filecmp): require st_mode and uid/gid match for overlapping files; do not require md5 match for %ghost files
(cherry picked from commit 1f439402e04acfea1bb3393b13771c6486601c91)
2009-03-08 20:06:45 +03:00
Alexey Tourbin
75e60a90bb lib/psm.c: in syslog messages, discriminate between no epoch and zero epoch
(cherry picked from commit e60ab8fa21243bd7741e198c9942924849e90d59)
2009-03-08 20:06:17 +03:00
4097b8f499 Merge branch 'altlinux-4.1' into maint 2008-12-09 16:24:17 +00:00
e1164fb5a4 Merge branch 'altlinux-4.0' into altlinux-4.1 2008-12-09 15:13:26 +00:00
62d33b6587 psm.c (psmTriggerPosttrans): Handle unset "transaction file info" pointer properly (ALT#18079)
rpmRunTransactions() may call psmTriggerPosttrans() without transaction file info.
We have to handle this case gracefully.

Reported by Artem Zolochevskiy.
2008-12-02 22:28:38 +00:00
Alexey Tourbin
82d6fbdfe6 4.0.4-alt95.M41.8
- fixed crash in previous release (Dmitry V. Levin)
2008-11-13 07:12:42 +03:00
e350f7fcf1 psm.c (saveTriggerFiles): Fix missing sentinel in rpmGetPath() call
(cherry picked from commit dc9343e541c8ded7364e3624990bce3c976ef5b4)
2008-11-13 03:47:30 +03:00
dc9343e541 psm.c (saveTriggerFiles): Fix missing sentinel in rpmGetPath() call 2008-11-13 00:18:16 +00:00
Alexey Tourbin
3c75eaca60 4.0.4-alt96.11
- implemented post-transaction filetriggers, loosely based on filetriggers.patch
  from Mandriva Linux (see %_rpmlibdir/posttrans-filetriggers for details)
- implemented %_rpmlibdir/0ldconfig.filetrigger, so that packages with
  shared libraries need not to invoke ldconfig(1) in they %%post-scriptlets
- rpmlib.req: automatically generate rpmlib(PosttransFiletriggers) dependency
  for packages which provide %_rpmlibdir/*.filetrigger programs
2008-11-13 01:01:07 +03:00
Alexey Tourbin
4acd4051a0 4.0.4-alt95.M41.6+
- implemented post-transaction filetriggers, loosely based on filetriggers.patch
  from Mandriva Linux (see %_rpmlibdir/posttrans-filetriggers for details)
- implemented %_rpmlibdir/0ldconfig.filetrigger, so that packages with
  shared libraries need not to invoke ldconfig(1) in they %%post-scriptlets
2008-11-13 00:55:42 +03:00
Alexey Tourbin
2de9c0ce48 psm.c (psmTriggerPosttrans): try to increase "Running %s" message verbosity (for apt-get) 2008-11-13 00:41:02 +03:00
Alexey Tourbin
764606da7f rpmlibprov.c: added "rpmlib(PosttransFiletriggers)" 2008-11-12 06:02:13 +03:00
Alexey Tourbin
699a24ad65 psm.c (psmTriggerPosttrans): downgrade database lock, for e.g. update-menus 2008-11-12 06:01:08 +03:00
Alexey Tourbin
bffe630760 psm.c (psmTriggerPosttrans): missing sentinel in rpmGetPath() call 2008-11-12 06:00:27 +03:00
389d7864cf build/files.c, lib/signature.c: Do not include unused md5.h
(cherry picked from commit fe6df19341082028ef0faba0bdc44e6f97fc9b3e)
2008-11-12 05:29:08 +03:00
Alexey Tourbin
bd1897e46c psm.c (psmTriggerPosttrans): do not set RPM_INSTALL_ARG1 and RPM_INSTALL_ARG2 2008-11-12 05:10:51 +03:00
Alexey Tourbin
5fffe7272e psm.c (saveTriggerFiles): don't write filenames with '\n' character 2008-11-12 05:10:11 +03:00
Alexey Tourbin
4ada155008 implemented posttrans filetriggers, vaguely based on Mandriva patch 2008-11-12 05:10:11 +03:00
Alexey Tourbin
ffb79de5d1 4.0.4-alt96.10
- improved install/upgrade package reordering (in tsort algorithm,
  changed "presentation order" to "chainsaw order")
2008-11-10 05:46:39 +03:00
Alexey Tourbin
b51c799f6b 4.0.4-alt95.M41.6
- improved install/upgrade package reordering (in tsort algorithm,
  changed "presentation order" to "chainsaw order")
2008-11-10 05:44:13 +03:00
Alexey Tourbin
b8767dceb1 depends.c: disabled tsort presentation order
This should facilitate library upgrades, e.g. glibc-prthread.
Consider that we upgrade gcc-* and glibc-* packages; and glibc
has new subpackage glibc-pthread (with libpthread and librt
shared libraries).

Old order was:
D: ========== tsorting packages (order, #predecessors, #succesors, tree, depth)
D:     0    0   14    0    0  glibc-preinstall-2.8.90-alt3
D:     1    1   21    0    1    glibc-core-2.8.90-alt3
D:     2    1    9    0    2      cpp4.3-4.3.2-alt5
D:     3    1    5    0    2      libgcc4.3-4.3.2-alt5
D:     4    2   13    0    3        glibc-pthread-2.8.90-alt3
D:     5    2   20    0    4          glibc-core-debug-2.8.90-alt3
D:     6    2   17    0    4          glibc-gconv-modules-2.8.90-alt3
D:     7    2   16    0    4          glibc-locales-2.8.90-alt3
D:     8    2   15    0    4          glibc-nss-2.8.90-alt3
D:     9    2   12    0    4          glibc-timezones-2.8.90-alt3
D:    10    2   11    0    4          glibc-utils-2.8.90-alt3
D:    11    2   10    0    5            iconv-2.8.90-alt3
D:    12    8   22    0    6              glibc-2.8.90-alt3
D:    13    4   19    0    7                glibc-devel-2.8.90-alt3
D:    14    1   18    0    8                  glibc-devel-static-2.8.90-alt3
D:    15    4    8    0    8                  gcc4.3-4.3.2-alt5
D:    16    1    4    0    2      libgfortran4.3-4.3.2-alt5
D:    17    2    3    0    3        libgfortran4.3-devel-4.3.2-alt5
D:    18    3    6    0    4          gcc4.3-fortran-4.3.2-alt5
D:    19    2    2    0    3        libstdc++4.3-4.3.2-alt5
D:    20    2    1    0    4          libstdc++4.3-devel-4.3.2-alt5
D: ========== successors only (presentation order)
D:    21    3    7    0    5            gcc4.3-c++-4.3.2-alt5

Note that #succesors value is actually changed using the package index
in the input list of packages (on the command line): earlier packages
have higher values.  This is called "successors from tsort are processed
in presentation order".  E.g. when choosing to upgrade between cpp4.3,
libgcc4.3, and libgfortran4.3, cpp4.3 gets upgraded first.  (The
collation is probably due to using shell glob on the command line.)

The problem is that, in cpp4.3 %post-script, some pthread-dependent
code might be called, and pthread shared library is simply mssing
at that point (after glibc-core upgrade and before glibc-pthread
install).

New order is:
D: ========== tsorting packages (order, #predecessors, #succesors, tree, depth)
D:     0    0    1    0    0  glibc-preinstall-2.8.90-alt3
D:     1    1   17    0    1    glibc-core-2.8.90-alt3
D:     2    1    3    0    2      libgcc4.3-4.3.2-alt5
D:     3    2    8    0    3        glibc-pthread-2.8.90-alt3
D:     4    2    2    0    4          glibc-gconv-modules-2.8.90-alt3
D:     5    2    2    0    4          glibc-nss-2.8.90-alt3
D:     6    2    1    0    5            iconv-2.8.90-alt3
D:     7    2    1    0    4          glibc-locales-2.8.90-alt3
D:     8    2    1    0    4          glibc-timezones-2.8.90-alt3
D:     9    2    1    0    4          glibc-utils-2.8.90-alt3
D:    10    8    1    0    5            glibc-2.8.90-alt3
D:    11    4    4    0    6              glibc-devel-2.8.90-alt3
D:    12    2    1    0    3        libstdc++4.3-4.3.2-alt5
D:    13    2    1    0    4          libstdc++4.3-devel-4.3.2-alt5
D:    14    1    1    0    2      cpp4.3-4.3.2-alt5
D:    15    4    2    0    3        gcc4.3-4.3.2-alt5
D:    16    1    1    0    2      libgfortran4.3-4.3.2-alt5
D:    17    2    1    0    3        libgfortran4.3-devel-4.3.2-alt5
D: ========== successors only (presentation order)
D:    18    2    0    0    4          glibc-core-debug-2.8.90-alt3
D:    19    1    0    0    7                glibc-devel-static-2.8.90-alt3
D:    20    3    0    0    4          gcc4.3-fortran-4.3.2-alt5
D:    21    3    0    0    4          gcc4.3-c++-4.3.2-alt5

Note that #succesors now indicates the number of immediate successors;
libgcc4.3 now has 3 immediate successors (glibc-pthread, gcc4.3, and
libstdc++4.3), while cpp4.3 and libgfortran4.3 have only one immediate
successor.

Also removed tools/rpmsort.c.

> The are various serial representations of a partially ordered set.
>
> The default is what I call "chainsaw", always emit the node that has
> the most children.  The "chainsaw" heuristic tries to emit nodes that
> are depended upon as early as possible to localize interactions
> amongst packages, but really should be
>     Always emit the node of the largest sub-tree.
> rather than the number of immediate children. I call this "buzzsaw".
>
> Anaconda has the constraint of changing cd's during install. So
> "presentation" ordering preserves the arrival ordering into a
> transaction set. Too bad that "presentation" ordering is often
> incorrect because of no loop analysis first.

https://lists.dulug.duke.edu/pipermail/rpm-devel/2005-June/000468.html
2008-11-10 05:21:23 +03:00
4ce1b4bead lib/header_internal.c (headerGetLangs): Fix stupid X<=Y<=Z comparison 2008-10-20 11:49:56 +00:00
fe6df19341 build/files.c, lib/signature.c: Do not include unused md5.h 2008-10-20 11:39:45 +00:00
Alexey Tourbin
70b853bb1f Merge branch 'altlinux-4.0' 2008-06-13 05:29:00 +04:00
Alexey Tourbin
070b65040e psm.[ch]: skip fuser and fgroup test/set for src.rpm
Previous change in loadFi() triggers the code which depends
on fi->fuser and fi->fgroup being NULL for source rpms.
Now I add explicit check for source rpms.

Update: also turn off suid/sgid bits for src.rpm.
2008-06-13 05:23:41 +04:00
Alexey Tourbin
5632ef5ac2 rpmrc.c: classify SSE2-capable CPUs as "pentium4" 2008-06-12 04:45:53 +04:00
9376fa4c22 rpmrc.c (is_pentium3): Add new p3 family models
http://download.intel.com/design/processor/applnots/24161832.pdf page 22
2008-06-05 21:52:02 +00:00
669c2e04c2 rpmrc.c (is_pentium4): Add new p4 models
http://download.intel.com/design/processor/applnots/24161832.pdf page 23
Patch from alexander@npo-inform.com
2008-06-05 21:52:02 +00:00
Alexey Tourbin
6fab850d5e s/relocateable/relocatable/ (jbj) 2008-06-04 13:54:36 +04:00
Alexey Tourbin
c5e957a3b3 lib/transaction.c (handleInstInstalledFiles): fixed RPMFILE_CONFIG bug 2008-06-04 03:21:04 +04:00
Alexey Tourbin
4a557675fc Merge branch 'altlinux-4.0' 2008-05-30 22:25:55 +04:00
Alexey Tourbin
9814453966 backported LZMA payload compression from SuSE 2008-05-24 13:47:41 +04:00
Alexey Tourbin
1f439402e0 lib/transaction.c (filecmp): require st_mode and uid/gid match for overlapping files; do not require md5 match for %ghost files 2008-05-14 07:26:15 +04:00