[Rpm-maint] [Suse-patch] Revert provides as obsoletes behavior

2007-06-11 Thread Florian Festi

Hi!

I have had a look at the obsolete behavior topic from a RHEL perspective. I 
checked all obsoletes in RHEL 3, 4  and 5 against the same and the previous 
release and filtered all that match against provides. For the results see 
the attachments.


Reading the problem descriptions I have the suspicion that the problem is 
not that obsoletes match against provides but that rpm uses the obsolete 
mechanism to do updates - to find the packages it needs to remove to be more 
precise. This was fine as long as obsoletes just matched against pkg names 
which is what the update should do, too. But with the "new" obsolete 
behavior updates and obsoletes are different and should uses different code 
paths.
If this is true (I have to admit that I did not look into the code) fixing 
the update behavior would be the way to go IMHO and not altering the 
actually unrelated obsolete handling.


Florian Festi
kernel-2.4.21-47.EL.athlon obsoletes kernel-modules 
provided by kernel-smp-unsupported-2.4.21-47.EL.athlon
kernel-2.4.21-47.EL.athlon obsoletes kernel-modules 
provided by kernel-smp-unsupported-2.4.21-47.EL.i686
kernel-2.4.21-47.EL.athlon obsoletes kernel-modules 
provided by kernel-unsupported-2.4.21-47.EL.athlon
kernel-2.4.21-47.EL.athlon obsoletes kernel-modules 
provided by kernel-unsupported-2.4.21-47.EL.i686
kernel-2.4.21-47.EL.athlon obsoletes kernel-modules 
provided by kernel-hugemem-unsupported-2.4.21-47.EL.i686
kernel-2.4.21-47.EL.i686   obsoletes kernel-modules 
provided by kernel-smp-unsupported-2.4.21-47.EL.athlon
kernel-2.4.21-47.EL.i686   obsoletes kernel-modules 
provided by kernel-smp-unsupported-2.4.21-47.EL.i686
kernel-2.4.21-47.EL.i686   obsoletes kernel-modules 
provided by kernel-unsupported-2.4.21-47.EL.athlon
kernel-2.4.21-47.EL.i686   obsoletes kernel-modules 
provided by kernel-unsupported-2.4.21-47.EL.i686
kernel-2.4.21-47.EL.i686   obsoletes kernel-modules 
provided by kernel-hugemem-unsupported-2.4.21-47.EL.i686
cups-1.1.17-13.3.37.i386   obsoletes lpr
provided by LPRng-3.7.4-28.2.i386
system-config-httpd-1.3.1-1.noarch obsoletes apacheconf 
provided by redhat-config-httpd-1.1.0-4.30.2.noarch
system-config-printer-0.6.116.5-1.i386 obsoletes printconf  
provided by redhat-config-printer-0.6.47.3.31-1.i386
system-config-printer-gui-0.6.116.5-1.i386 obsoletes printconf-gui  
provided by redhat-config-printer-gui-0.6.47.3.31-1.i386
system-switch-mail-0.5.25-3.noarch obsoletes redhat-switchmail  
provided by redhat-switch-mail-0.5.20-1.noarch
system-switch-mail-gnome-0.5.25-3.noarch   obsoletes 
redhat-switchmail-gnomeprovided by 
redhat-switch-mail-gnome-0.5.20-1.noarch
xemacs-sumo-20040818-2.noarch  obsoletes ruby-mode-xemacs   
provided by xemacs-21.4.13-8.ent.1.i386
xorg-x11-Mesa-libGL-6.8.2-1.EL.13.36.i386  obsoletes Mesa   
provided by XFree86-Mesa-libGL-4.3.0-110.EL.i386
xorg-x11-devel-6.8.2-1.EL.13.36.i386   obsoletes Mesa-devel 
provided by XFree86-devel-4.3.0-110.EL.i386
xorg-x11-devel-6.8.2-1.EL.13.36.i386   obsoletes xpm-devel  
provided by XFree86-devel-4.3.0-110.EL.i386
xorg-x11-libs-6.8.2-1.EL.13.36.i386obsoletes xpm
provided by XFree86-libs-4.3.0-110.EL.i386
xorg-x11-xauth-6.8.2-1.EL.13.36.i386   obsoletes mkxauth
provided by XFree86-xauth-4.3.0-110.EL.i386
firefox-devel-1.5.0.9-10.el5.i386  obsoletes mozilla-devel  
provided by seamonkey-devel-1.0.3-0.el4.1.i386
libFS-devel-1.0.0-3.1.i386 obsoletes XFree86-devel  
provided by xorg-x11-devel-6.8.2-1.EL.13.36.i386
libFS-1.0.0-3.1.i386   obsoletes XFree86-libs   
provided by xorg-x11-libs-6.8.2-1.EL.13.36.i386
libICE-devel-1.0.1-2.1.i386obsoletes XFree86-devel  
provided by xorg-x11-devel-6.8.2-1.EL.13.36.i386
libICE-1.0.1-2.1.i386  obsoletes XFree86-libs   
provided by xorg-x11-libs-6.8.2-1.EL.13.36.i386
libSM-devel-1.0.1-3.1.i386 obsoletes XFree86-devel  
provided by xorg-x11-devel-6.8.2-1.EL.13.36.i386
libSM-1.0.1-3.1.i386   obsoletes XFree86-libs   
  

Re: [Rpm-maint] [Suse-patch] Revert provides as obsoletes behavior

2007-06-12 Thread Florian Festi

Florian Festi wrote:
> Reading the problem descriptions I have the suspicion that the problem is
> not that obsoletes match against provides but that rpm uses the obsolete
> mechanism to do updates - to find the packages it needs to remove to be
> more precise. This was fine as long as obsoletes just matched against pkg
> names which is what the update should do, too. But with the "new" obsolete
> behavior updates and obsoletes are different and should uses different
> code paths.

> If this is true (I have to admit that I did not look into the code) fixing
> the update behavior would be the way to go IMHO and not altering the
> actually unrelated obsolete handling.

After having a look at the code it is quite clear what's the problem here:

The first line is causing most of the problems as it treats the updated 
package like an obsolete on its own name. This is obviously bullshit as rpm 
-U foobar should only remove packages named foobar and packages explicitly 
obsoleted by the new package. The python case mentioned earlier is a good 
example for that.


In opposite the posting from Michael Schroeder I want to argue that matching 
real obsoletes against provides (second modified line of the patch) is the 
right thing (tm). If a package wants to replace a capability it should not 
need to know what packages anywhere (think of 3rd party repositories) do 
also provide that. I also don't see a problem that this might break other 
dependencies because they are all checked and the new package would be 
rejected with unresolved dependencies if it doesn't fix these problems.
Of course is it still true that obsoletes are dangerous and need to be 
handled with care but this is an packaging issue...


Florian Festi
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [Suse-patch] Revert provides as obsoletes behavior

2007-06-18 Thread Florian Festi

Michael Schroeder wrote:

On Tue, Jun 12, 2007 at 04:06:44PM +0200, Tomas Mraz wrote:

That's really debatable as the provides is M:N relationship - a package
A might provide many virtual provides and after this update some of
these provides might not be provided anymore by any package. So it
surely can be argued both ways.


Yes, but that's exactly the point that I was trying to make: the
same is true for explicit obsoletes, so it does not make much sense
to treat them differently.
IMHO it should either be both look at the provides or neither, for
consistency reasons. But I also agree that just disabling the
provides for the implicit obsoletes solves most of the problems.


I strongly disagree with this argumentation. Let's assume matching (real) 
obsoletes against provides is the wanted behavior - for whatever reason.


Why updates should not be treated as obsoletes of the pkg name can be easily 
 seen at the example already mentioned earlier.


python-2.4 (virtual provides python = 2.4)
python22 provides python = 2.2

rpm -Uvh python-2.5-1.rpm
removes both of the packages above.

The point here is that if someone builds a compat package this packages has 
to provide the regular package name with the old version - this is the 
purpose of the package. If updates match on the provides these packages will 
always be removed on updating the original package. This makes the purpose 
of the compat package - surviving an update to a new version - inexistent.


Because compat packages are an important use cases and there is no way to 
get around this by clever packaging this behavior is a bug in rpm IMHO.


Florian Festi
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] Should installed obsoletes be seen as conflicts

2007-06-27 Thread Florian Festi

Hi!

While discussing the yum resolver I realized that I was erroneously 
believing that rpm would treat installed obsoletes like conflicts.


Scenario:

foo obsoletes: bar
foo is installed
rpm -ivh bar.rpm

Right now rpm installs bar without any error. According to Panu apt-rpm 
issues an error here. Is it possible that rpm did issue an error in some 
earlier versions? And what is the right(tm) behavior?


I have the feeling that just installing the obsoleted package is wrong. Of 
course changing the behavior should not be done for an maintenance release. 
So are there any plans for a major release yet?


Florian Festi
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Should installed obsoletes be seen as conflicts

2007-07-02 Thread Florian Festi

Peter Bowen wrote:

On Wed, 2007-06-27 at 12:04 +0200, Florian Festi wrote:
While discussing the yum resolver I realized that I was erroneously 
believing that rpm would treat installed obsoletes like conflicts.


Scenario:

foo obsoletes: bar
foo is installed
rpm -ivh bar.rpm

Right now rpm installs bar without any error. According to Panu apt-rpm 
issues an error here. Is it possible that rpm did issue an error in some 
earlier versions? And what is the right(tm) behavior?


Nope, this has been like this for ages.  If you want it to conflict, add
a conflict: bar to foo.  


Also, it should be noted that you can do:

foo 2.0 is installed
rpm -ivh foo-1.0.rpm

Yes, you have to pass --oldpackage, but it works otherwise.  Maybe
--oldpackage should be required if you try to install a package that is
obsoleted?


Of course no one wants to make it impossible to install obsoleted packages.
I agree that this situation is much closer to installing an old package than 
having a conflict (especially since obsoletes match package names only now 
and conflicts match provides). An obsoleted package in fact is an older 
version with an different name. So requiring --oldpackage makes perfect 
sense IMHO.


Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Pruning self-dependencies?

2007-07-06 Thread Florian Festi

Panu Matilainen wrote:

On Mon, 2 Jul 2007, Ville Skyttä wrote:


As for how many dependencies this would eliminate, running some quick 
queries
[0] against the Fedora primary sqlite metadata database told me it'd 
be about
7.3% of all dependencies (9246/126066).  This is inaccurate (no 
versions in

dependencies taken into account etc) but I think it should be the correct
order of magnitude.


Actually much of the benefit would be gained by just having createrepo 
drop self-requires out of the metadata. That would have an immediate 
benefit without requiring rebuilding the world. Of course you'd still be 
downloading the dependency bloat in the rpm's themselves but now that 
yum uses it's own depsolver doing this one the metadata level would 
already be beneficial.


- Panu -


Except of a potential C vs Python issue I see no reason why that should be
the easier solution. Implementing it in rpmbuild would grant this benefit
for everyone and not only yum users. Rpmbuild also has a much better chance
to keep manually added requires.

Florian

___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] yum/rpmlib timings: 1000 vs 9000 packages

2008-01-23 Thread Florian Festi

Hi!

As already announced on #yum I am currently playing with really big 
installations: F8 Everything everything


I now have timed various sub tasks in the preprocessing phase of rpmlib. 
This gives a quite good idea where the problems are. Some of them need to be 
fixed in yum others in rpm(lib).


The two test candidates are both fresh installs into an installroot on a 
Fedora 8 machine using yum HEAD and rpm HEAD. One does a group install 
resulting in about 1k packages ("Office/Productivity" "GNOME Desktop 
Environment" "Games and Entertainment" "Sound and Video" "Development Tools" 
"Graphical Internet" "System Tools" Core Base Editors Java "X Window System" 
Graphics Ruby "KDE (K Desktop Environment)" ) and the second installs "*", 
excludes 3 packages to resolve conflicts and uses the new --skip-broken 
feature to get a working set of packages. This results in 8.9k packages.


All timings are in seconds (if not stated otherwise). I also give the ratio 
of the timing to make spotting the runtime behavior easier.


Have fun

Florian
(Timings in seconds)

yum groupinstall ...
=
1007 pkgs
143,305 files
Depsolving 23.7
Running rpm_check_debug
populateTs 4.4871840477
check 0.353991985321
Running Transaction Test
initActionTs 0.0228180885315
populateTs 4.14678096771
test 25.1478779316
Finished Transaction Test
Transaction Test Succeeded
initActionTs 0.000195026397705
populateTs 4.15238595009
check 0.357394933701
order 0.437646150589
Running Transaction - not timed, see "test"

sum (with test counted twice): 1m28s
real1m35.466s (including install of 10 pkgs)

yum install *
=
8862 pkgs
1,413,118 files
Depsolving - 178.0
Running rpm_check_debug
populateTs 322.944131136
check 2.16476297379
Running Transaction Test
initActionTs 0.225929021835
populateTs 346.730643034
test 3151.71939611
Finished Transaction Test
Transaction Test Succeeded
initActionTs 0.220103979111
populateTs 513.005566835
check 2.37508201599
order 52.159758091
Running Transaction - not timed, see "test"

sum (with test counted twice): 128m43s
real138m17.627s (including install of 323 pkgs)

Ratio (install * / groupinstall)

pkgs: *8.8 (square: 77)
files: *9.9 (square: 97)
Running rpm_check_debug
populateTs *72
check *6.1
Running Transaction Test
initActionTs *9.9
populateTs *84
test *125
Finished Transaction Test
Transaction Test Succeeded
initActionTs *9.6
populateTs *124
check *6.6
order *119
Running Transaction - not timed, see test

sum (with test counted twice): *117
real *87 (ehm, forget about that)
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] File fingerprinting

2008-04-28 Thread Florian Festi

Hi!

I had some look into the file fingerprinting code. The purpose of this 
code is to find file conflicts. The main problem it has to solve is the 
fact that a file can be visible at different place in the directory tree 
if there are symlinks pointing to any of the parent directories. To 
solve this it does check for identical fingerprints of all files with 
the same basename.


A finger print consists of the device and inode number of the parent 
directory and if this directory doesn't exist yet the finger print of 
that down most directory that does exist and the path from that 
directory to the file.


Finger prints are used for two things:

1. Check all files in the transaction against each other
To do that the finger prints of all files in the transaction are put 
into a big hash table.

2. Check the files in the transaction against those in the rpmdb
For each pkg:
 For each file:
  search the db for files with the same basename and create the 
fingerprints for them


Finger printing actually doesn't work as soon as there are some symlinks 
involved that are not installed yet. I attached 3 spec files that show that.
Install the README rpm that then install FOO and FOO-DOC at once. As you 
can see /usr/share/README-1/README gets over writen without warning.
If README and FOO are already installed installing FOO-DOC raises an 
error as expected.


The packages contain:
README: /usr/share/README-1/README
FOO: /usr/share/FOO-1 -> README-1
FOO-DOC: /usr/share/FOO-1/README

The 2. part is also quite inefficient as it checks the same basename 
over and over again for each pkg containing a file with the same 
basename (Good candidates are README, Copying, ...). This leads to a 
kind of quadratic runtime behavior (installed files * to be installed 
files with the same basename). To get rid of this the file finger prints 
need to be checked for the whole transaction and not only per pkg. This 
requires changing the data structures involved (pointing back from the 
installed files to the "to be installed files") and reversing the way 
the files are traversed.


This will require that we keep all matching files in memory at once. As 
they can be represented (pkg num, file num) + (*pkg, file num) of the to 
be installed pkgs this should be possible in a few dozen bytes per file 
which means a few MB for some 100,000 files.


Florian

Summary: Test rpm performance for common base names
Name: README
Version: 1
Release: 1
License: GPLv2+
Group: Misc
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root

%description
Install one README file
%prep

%build

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p -m 0755 $RPM_BUILD_ROOT/%{_datadir}/%{name}-%{version}
echo "This is a small test package to test performance of rpm when installing a file with a common basename" > $RPM_BUILD_ROOT/%{_datadir}/%{name}-%{version}/README

%clean
rm -rf $RPM_BUILD_ROOT


%files
%defattr(-,root,root,-)
%doc
/usr/share/README-1
/usr/share/README-1/README

%changelog
* Tue Apr 15 2008  <[EMAIL PROTECTED]> - Florian Festi 
- Initial build.

Summary: Test rpm performance for common base names
Name: FOO
Version: 1
Release: 1
License: GPLv2+
Group: Misc
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root

%description

%prep

%build

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p -m 0755 $RPM_BUILD_ROOT/%{_datadir}/
ln -s README-1 $RPM_BUILD_ROOT/%{_datadir}/%{name}-%{version}

%clean
rm -rf $RPM_BUILD_ROOT


%files
%defattr(-,root,root,-)
%doc
/usr/share/*

%changelog
* Tue Apr 15 2008  <[EMAIL PROTECTED]> - Florian Festi 
- Initial build.

Summary: Test rpm performance for common base names
Name: FOO-DOC
Version: 1
Release: 1
License: GPLv2+
Group: Misc
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Requires: FOO
%description

%prep

%build

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p -m 0755 $RPM_BUILD_ROOT/%{_datadir}/FOO-%{version}
echo "Oh dear!" > $RPM_BUILD_ROOT/%{_datadir}/FOO-%{version}/README

%clean
rm -rf $RPM_BUILD_ROOT


%files
%defattr(-,root,root,-)
%doc
/usr/share/FOO-%{version}/README

%changelog
* Tue Apr 15 2008  <[EMAIL PROTECTED]> - Florian Festi 
- Initial build.

___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] rpm --aid problem

2008-05-05 Thread Florian Festi

holmes86 wrote:
Appear error message "Failed dependencies" When I install rpm package 
with --aid option under FC8.

why?


Don't do that. --aid is no longer supported (the database used to
resolve the dependencies is no longer shipped) and this feature is not
working well anyway and will removed from future versions of rpm.

Use "yum install foo" instead. Yum is working on the packages actual
available and is able to download them on demand. It is also possible to
give rpm files to the yum command line.

Florian

___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Shortcut on desktop

2008-05-07 Thread Florian Festi

aneeskA wrote:

Hi all,

Yet another question regarding placing a shortcut on the desktop 
of the user who is installing the package. While writing the spec file 
I found out that you can use the environment variable $HOME in 
%install section. But when it comes to listing the files in the 
distribution in the %files section, i cant use the $HOME. any one has 
any idea how can i do that so that i can copy a *.desktop file to the 
user's desktop which will ultimately solve my problem.


Any help highly appreciated.
There is a very simple reason why this is not possible: Linux is a 
multiuser system. What ever problem you are trying to solve putting 
files into the user directorIES is not the solution. Even if you could 
put a file "on the desktop of the user who is installing the package" it 
would end on the desktop of the "root" user. So you won't win anything 
with this approach.


Consider putting a short cut into the Applications menu or describe the 
problem you are actually interested in more detail.


Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Shortcut on desktop

2008-05-07 Thread Florian Festi

aneeskA wrote:

Hi Florian,

First of all thanks for replying. I will try to explain the 
situation clearly.


You would have noticed that while installing RPMs like adobe 
reader after the processing is complete he puts a shortcut on the 
desktop and also one entry in Applications->Office. Looking at some of 
the spec files I have found out that it is possible to duplicate the 
same by placing a /*.desktop/ file on to //usr/share/applications 
/folder. But it is not working for me. Also i had already figured out 
that putting the file on to the desktop will end up in root's desktop. 
Thats why i was looking for other alternatives. The only possible way 
i can figure out is to place the /*.desktop /file on to some directory 
which is used for such purposes. But //usr/share/applications/ /is 
failing in my case.


If you can provide me with some inputs it will be great. I think I 
have explained the situation vividly.


While I am not an expert in packaging desktop applications the few 
packages I looked at call "update-desktop-database 
%{_datadir}/applications" in their %post and %postun sections. May be 
this is sufficient to make your short cut show up.


Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] upgrade/replace multiple packages with custom package

2008-08-29 Thread Florian Festi

Andy Harrison wrote:

 Everything looks great at this point, but when I actually run the rpm
upgrade command, it complains that my package has files that conflict
with the currently installed openldap packages.  I put in Obsoletes
lines for every package and version to be replaced (expressed this way
just for brevity:  Obsoletes:
openldap-{servers,clients,devel,servers-sql} <= 2.4) to no avail.
  
If you set the obsolete right it should work. Make sure to run rpm -U 
and not rpm -i


Why don't you just modifiy the original source rpms? This would make it 
much more difficult for errors to sneak in.


Florian Festi
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Scalability of RPM

2008-09-02 Thread Florian Festi

Hi Christoph,

I am currently working on the scalability issues in rpm. Unfortunately 
they are not very easy to fix. Huge numbers of files and large numbers 
(>1000) of files with the same base name trigger these problems. If you 
have a different situation I would be very interested how it looks like.


You can try if the rpm versions in Fedora 9 or even Fedora 10 alpha work 
better for you. There have been a lot of bug fixes including fixes for 
memory problems/leaks. But the main scalability problem is still unsolved.


Backup your rpmdb (/var/lib/rpm) and then delete /var/lib/rpm/__db.* 
(temporary files that depend on the exact version of rpm/the bsddb)


Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Re: %post-script prerequisites

2008-09-25 Thread Florian Festi

Michael Schroeder wrote:

On Thu, Sep 25, 2008 at 02:37:27PM +0200, Pixel wrote:

Michael Schroeder <[EMAIL PROTECTED]> writes:


So A requires B and B has a requires(post) to A? This isn't installable
at all, thus it's a packaging bug.

i don't agree.

not knowing exactly what rpmlib does, here is how i understand the pb:

"Requires" is same as "Requires(postrans)", ie if A requires B, it
doesn't mean B must be installed before A.


It means that B must be installed before A *works* (easiest
case: B is a library).
Thus, if C has a "Requires(post): A" (e.g. C calls A in a post
scriptlet), A must work, so B and A have to be installed before C.


Which brings us into the world of dependency loops and especially of 
dependency loops containing Requires(pre).


Happy night mares

Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] unexpected file conflict behavior

2008-11-03 Thread Florian Festi
steven chen wrote:
>  Hi,
> 
> Good day.
> Recently I had a weird situation where I can install two rpms together (in
> one line) without any errors but once I install them one after the other, I
> got a file conflict errors. When looking closedly, the files that complain
> about conflicting are actually owned by both packages.
> Can anyone please shed some lights on me why installing them together will
> work? (I actually expect to see file conflict error there too).
> Thanks in advance.

To fix that file conflict the files in the both packages need to be exactly 
the same (md5, owner, group, ...). As this is sometimes difficult to achieve 
for a multilib situation (as this) this test was lowered in the dark ages so 
that at least most installations will somehow work. This is of course 
nonsense and has already be changed back in rpm upstream (>=4.6). So not 
issuing an file conflict is an (already fixed) bug in rpm.

While some of these multilib file conflicts are packaging bugs it is also 
possible that this conflict just tells you to install only one architecture 
of this devel package.

Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [PATCH] New file conflict check implementation

2008-11-20 Thread Florian Festi

Hi!

I've been working on reimplementing the way files from the transaction
are checked against the rpmdb. This used to be done per package. This
has disadvantages for the rare cases that packages in both the ts and
the rpmdb share files with the same basename. This patch set generates a
global list of all files in the rpmdb with the basenames from the
transaction. This makes sure we load each package from the rpmdb only once.

To be able to do that I extended the rpmhash datatype to also work as a
set and exposed some functions from the rpmdb to the API. The first one
adds some more uglyness to a already ugly and complicated part, but the
only alternative would be to copy the code and then do the adjustments
(more or less just deleting stuff). For the additional functions from
the rpmdb it might be worth cnsidering moving them into rpmdb_internal.h
- comments and opinions are welcome.

There are still some rough edges like missing comments, poor commit
messages and missing disaster handling. So if it breaks you keep the
pieces. Nevertheless - comments are welcome.

Florian




>From 96bd6e1d548f1baf914cc5637b3f2b7292087042 Mon Sep 17 00:00:00 2001
From: Florian Festi <[EMAIL PROTECTED]>
Date: Wed, 5 Nov 2008 15:11:55 +0100
Subject: [PATCH] Support leaving HTDATATYPE undefined to use hash as key only hash (set)

---
 lib/rpmhash.C |   35 +++
 lib/rpmhash.H |   20 +---
 2 files changed, 48 insertions(+), 7 deletions(-)

diff --git a/lib/rpmhash.C b/lib/rpmhash.C
index a631074..907ea86 100644
--- a/lib/rpmhash.C
+++ b/lib/rpmhash.C
@@ -15,8 +15,10 @@ typedef	struct  Bucket_s * Bucket;
  */
 struct  Bucket_s {
 HTKEYTYPE key;  /*!< hash key */
+#ifdef HTDATATYPE
 HTDATATYPE * data;	/*!< pointer to hashed data */
 int dataCount;	/*!< length of data (0 if unknown) */
+#endif
 Bucket next;	/*!< pointer to next item in bucket */
 };
 
@@ -28,7 +30,9 @@ struct HASHSTRUCT {
 hashFunctionType fn;		/*!< generate hash value for key */
 hashEqualityType eq;		/*!< compare hash keys for equality */
 hashFreeKey freeKey;
+#ifdef HTDATATYPE
 hashFreeData freeData;
+#endif
 };
 
 /**
@@ -54,7 +58,11 @@ Bucket HASHPREFIX(findEntry)(HASHTYPE ht, HTKEYTYPE key)
 
 HASHTYPE HASHPREFIX(Create)(int numBuckets,
 			hashFunctionType fn, hashEqualityType eq,
-			hashFreeKey freeKey, hashFreeData freeData)
+			hashFreeKey freeKey
+#ifdef HTDATATYPE
+, hashFreeData freeData
+#endif
+)
 {
 HASHTYPE ht;
 
@@ -62,13 +70,19 @@ HASHTYPE HASHPREFIX(Create)(int numBuckets,
 ht->numBuckets = numBuckets;
 ht->buckets = xcalloc(numBuckets, sizeof(*ht->buckets));
 ht->freeKey = freeKey;
+#ifdef HTDATATYPE
 ht->freeData = freeData;
+#endif
 ht->fn = fn;
 ht->eq = eq;
 return ht;
 }
 
-void HASHPREFIX(AddEntry)(HASHTYPE ht, HTKEYTYPE key, HTDATATYPE data)
+void HASHPREFIX(AddEntry)(HASHTYPE ht, HTKEYTYPE key
+#ifdef HTDATATYPE
+, HTDATATYPE data
+#endif
+)
 {
 unsigned int hash;
 Bucket b;
@@ -82,20 +96,24 @@ void HASHPREFIX(AddEntry)(HASHTYPE ht, HTKEYTYPE key, HTDATATYPE data)
 if (b == NULL) {
 	b = xmalloc(sizeof(*b));
 	b->key = key;
+#ifdef HTDATATYPE
 	b->dataCount = 0;
-	b->next = ht->buckets[hash];
 	b->data = NULL;
+#endif
+	b->next = ht->buckets[hash];
 	ht->buckets[hash] = b;
 }
 
+#ifdef HTDATATYPE
 b->data = xrealloc(b->data, sizeof(*b->data) * (b->dataCount + 1));
 b->data[b->dataCount++] = data;
+#endif
 }
 
 HASHTYPE HASHPREFIX(Free)(HASHTYPE ht)
 {
 Bucket b, n;
-int i, j;
+int i;
 
 for (i = 0; i < ht->numBuckets; i++) {
 	b = ht->buckets[i];
@@ -107,14 +125,17 @@ HASHTYPE HASHPREFIX(Free)(HASHTYPE ht)
 
 	do {
 	n = b->next;
+#ifdef HTDATATYPE
 	if (b->data) {
 		if (ht->freeData) {
+		  int j;
 		  for (j=0; j < b->dataCount; j++ ) {
 		b->data[j] = ht->freeData(b->data[j]);
 		  }
 		}
 		b->data = _free(b->data);
 	}
+#endif
 	b = _free(b);
 	} while ((b = n) != NULL);
 }
@@ -132,6 +153,8 @@ int HASHPREFIX(HasEntry)(HASHTYPE ht, HTKEYTYPE key)
 if (!(b = HASHPREFIX(findEntry)(ht, key))) return 0; else return 1;
 }
 
+#ifdef HTDATATYPE
+
 int HASHPREFIX(GetEntry)(HASHTYPE ht, HTKEYTYPE key, HTDATATYPE** data,
 	   int * dataCount, HTKEYTYPE* tableKey)
 {
@@ -159,7 +182,9 @@ void HASHPREFIX(PrintStats)(HASHTYPE ht) {
 int buckets = 0;
 for (bucket=ht->buckets[i]; bucket; bucket=bucket->next){
 	buckets++;
+#ifdef HTDATATYPE
 	datacnt += bucket->dataCount;
+#endif
 	}
 	if (maxbuckets < buckets) maxbuckets = buckets;
 	if (buckets) hashcnt++;
@@ -171,3 +196,5 @@ void HASHPREFIX(PrintStats)(HASHTYPE ht) {
 fprintf(stderr, "Values: %i\n", datacnt);
 fprintf(stderr, "Max Keys/Bucket: %i\n", maxbuckets);
 }
+
+#endif
diff --git a/

[Rpm-maint] [Press release] RPM version 4.6.0 is out

2009-02-09 Thread Florian Festi

Friday 6th of January 2009 RPM version 4.6.0 was released. The primary
focus on this release has been cleaning up the code-base to make it
more maintainable and robust, and also more approachable to invite
more community involvement. Code duplications, memory handling and
various code pieces have been cleaned up. The local copies of system
libraries like db4, lua, popt and libmagic were removed. New APIs have
been established and dozens of old bugs have been fixed. A several
obsolete features have been removed from the code base. There also
have been a number of visible improvements. Some of the more notable
include:

 * Subpackages of architecture dependent packages can now be
   noarch. This allows to share language, documentation or data
   subpackages among different architectures.
 * Support for packages > 2GB (up to 64 bit sizes). Right now packaged
   files are still restricted to 4GB due to limitations of cpio.
 * Support for secure file checksums such as SHA256 and SHA512 as a
   replacement for MD5.
 * Improvements for package builders like better support for building
   packages as non root and better access to patches and sources in
   the spec files.

Full release notes can be found at http://rpm.org/wiki/Releases/4.6.0

For a more comprehensive explanation of the most important changes see
http://rpm.org/wiki/Releases/4.6.0#Compatibilitynotes

We want to thank Mandriva Linux and the Fedora Project for their
testing efforts of the 4.6.0 release candidates as parts of their
distributions.

The RPM development team
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] RPM at the Linux Tag 2009 in Berlin

2009-06-12 Thread Florian Festi

Hi!

I am going to give a talk about what's going on in RPM development at the 
Linux Tag in Berlin.  Although the talk is going to be part of the FudCon 
and though some minor parts will be Fedora specific it will target everyone 
interested in RPM. Talk is scheduled for Saturday 16:00[1]. Jinrich Novy 
will also be around.


Additionally to the talk and the discussion afterwards I would love to
meet RPM/packaging related people from the various RPM based
distributions. Things are still moving fast and I'd like to get a personal 
impression how people feel about it and what areas deserve to be targeted in 
the future.


Fell free to announce where you can be found during Linux Tag here or drop 
me a private mail.


Florian Festi

[1] https://fedoraproject.org/wiki/FUDCon:Berlin_and_LinuxTag_2009_talks
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] restricting content in spec files/pkgs to unicode only

2009-08-07 Thread Florian Festi

On 07/23/2009 10:35 PM, Seth Vidal wrote:

Hi,
 Looking at this bug:
 https://bugzilla.redhat.com/show_bug.cgi?id=513459

got me thinking - would it be possible to have rpmbuild check all the 
content it is going to put into the rpm header to see if it is unicode 
decodable and abort if it is not?


It would save anyone handling it from w/i python  a lot of pain and 
suffering, I think.


Would it be possible?


No, files can have any 8 bit name. They should be utf-8 but this is not 
guaranteed.


Sorry...

Florian

___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [PATCH] RPMDB Performance

2009-08-11 Thread Florian Festi

Hi!

I've done a couple of performance measurements around the rpmdb. It 
turns out that the huge number of f(data)sync calls is significantly 
slowing down RPM on todays ext[234] file systems.


Setting no_fsync in the rpmdb config drops the F10 Everything install 
--justdb from 2:51:00 to 4:50. The install without --justdb drops from 
5:38h to 1:20h (All with hot FS caches on my new desktop).


As my first two attempts (setting other config parameter as cache_size 
etc and using db4 transactions) have failed the attached patch does now 
switch off fsync for building the rpmdb indexes only. I don't have 
access to my desktop computer right now, but --justdb now takes 26:29 
instead of 11:21 with no_fsync on my (much slower) laptop. Nevertheless 
building the rpmdb with fsync enabled also takes 2:54h which indicates 
that it is primarily limited by the turning speed of the hard disk which 
seems to be the same on my laptop and desktop.


The patch still needs better integration into the rpmdb configuration 
system and dummy code for the sqlite backend.


Any thoughts or safety concerns?

Florian



>From ff94cad6a0e6d289aa2361329b63a477fe5d0ae5 Mon Sep 17 00:00:00 2001
From: Florian Festi 
Date: Wed, 5 Aug 2009 15:42:11 +0200
Subject: [PATCH] Switch off fsync while editing the indexes of the rpmdb

---
 lib/backend/db3.c  |7 ++-
 lib/backend/dbconfig.c |4 
 lib/rpmdb.c|   23 +++
 lib/rpmdb.h|2 ++
 lib/rpmdb_internal.h   |2 ++
 5 files changed, 37 insertions(+), 1 deletions(-)

diff --git a/lib/backend/db3.c b/lib/backend/db3.c
index 9f0f941..31b8051 100644
--- a/lib/backend/db3.c
+++ b/lib/backend/db3.c
@@ -196,6 +196,11 @@ static int db3_fsync_disable(int fd)
 return 0;
 }
 
+static int db3switchfsync(int on)
+{
+return db_env_set_func_fsync(on ? fdatasync : db3_fsync_disable);
+}
+
 #if (DB_VERSION_MAJOR >= 4 && DB_VERSION_MINOR >= 5)
 /*
  * dbenv->failchk() callback method for determining is the given pid/tid 
@@ -1123,6 +1128,6 @@ static int db3open(rpmdb rpmdb, rpmTag rpmtag, dbiIndex * 
dbip)
 RPM_GNUC_INTERNAL
 const struct _dbiVec db3vec = {
 DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
-db3open, db3close, db3sync, db3copen, db3cclose, db3cdel,
+db3open, db3close, db3sync, db3switchfsync, db3copen, db3cclose, db3cdel,
 db3cget, db3cput, db3ccount, db3byteswapped, db3stat
 };
diff --git a/lib/backend/dbconfig.c b/lib/backend/dbconfig.c
index e668036..cf678d1 100644
--- a/lib/backend/dbconfig.c
+++ b/lib/backend/dbconfig.c
@@ -429,6 +429,10 @@ dbiIndex db3New(rpmdb rpmdb, rpmTag rpmtag)
dbi->dbi_cachesize = 1 * 1024 * 1024;
 }
 
+if (rpmtag != RPMDBI_PACKAGES) {
+   dbi->dbi_no_dbsync = 1;
+}
+
 if ((dbi->dbi_bt_flags | dbi->dbi_h_flags) & DB_DUP)
dbi->dbi_permit_dups = 1;
 
diff --git a/lib/rpmdb.c b/lib/rpmdb.c
index 1f1c545..7b61f97 100644
--- a/lib/rpmdb.c
+++ b/lib/rpmdb.c
@@ -882,6 +882,13 @@ int rpmdbSync(rpmdb db)
 return rc;
 }
 
+int rpmdbSwitchFsync (rpmdb db, int on)
+{
+assert(db->_dbi[0]);
+assert(db->_dbi[0]->dbi_vec);
+return db->_dbi[0]->dbi_vec->switchfsync(on);
+}
+
 /* FIX: dbTemplate structure assignment */
 static
 rpmdb newRpmdb(const char * root,
@@ -2495,6 +2502,7 @@ int rpmdbRemove(rpmdb db, int rid, unsigned int hdrNum,
 sigset_t signalMask;
 int ret = 0;
 int rc = 0;
+int xx;
 
 if (db == NULL)
return 0;
@@ -2523,6 +2531,8 @@ int rpmdbRemove(rpmdb db, int rid, unsigned int hdrNum,
 }
 
 (void) blockSignals(&signalMask);
+xx = rpmdbSwitchFsync(db, 0);
+assert(xx==0);
 
/* FIX: rpmvals heartburn */
 {  int dbix;
@@ -2543,6 +2553,9 @@ int rpmdbRemove(rpmdb db, int rid, unsigned int hdrNum,
continue;
 
if (rpmtag == RPMDBI_PACKAGES) {
+   xx = rpmdbSwitchFsync(db, 1);
+   assert(xx==0);
+
dbi = dbiOpen(db, rpmtag, 0);
if (dbi == NULL)/* XXX shouldn't happen */
continue;
@@ -2565,6 +2578,8 @@ int rpmdbRemove(rpmdb db, int rid, unsigned int hdrNum,
dbcursor = NULL;
if (!dbi->dbi_no_dbsync)
xx = dbiSync(dbi, 0);
+   xx = rpmdbSwitchFsync(db, 0);
+   assert(xx==0);
continue;
}

@@ -2659,6 +2674,9 @@ cont:
rec = _free(rec);
 }
 
+xx = rpmdbSwitchFsync(db, 1);
+assert(xx==0);
+
 (void) unblockSignals(&signalMask);
 
 h = headerFree(h);
@@ -2771,6 +2789,9 @@ int rpmdbAdd(rpmdb db, int iid, Header h,
 
 if (hdrNum)
 {  
+   int xx;
+   xx = rpmdbSwitchFsync(db, 0);
+   assert(xx==0);
dbiIndexItem rec = dbiIndexNewItem(hdrNum, 0);
 
if (dbiTags.tags != NULL)
@@ -2949,6 +2970,8 @@ cont:
if (ret == 0) 

Re: [Rpm-maint] [PATCH] RPMDB Performance

2009-08-11 Thread Florian Festi

On 08/11/2009 12:47 PM, devzero2000 wrote:
On Tue, Aug 11, 2009 at 12:19 PM, Florian Festi<mailto:ffe...@redhat.com>> wrote:

> Any thoughts or safety concerns?
Beware of data loss with ext4 dropping down fsync
http://www.h-online.com/open/Ext4-data-loss-explanations-and-workarounds--/news/112892
The problem with ext4, XFS, or another extent-based filesystem is 
inherent in their design, afaik.


As far as I understand the described problem does not directly affect 
this patch as there is no "rename" done. Of course dropping the fsyncs 
for the indexes may lead to a corruption of the indexes and the db 
environment. But both can be recovered as described on 
http://www.rpm.org/wiki/Docs/RpmRecovery. Omitting the fsyncs can also 
just lead to additional damage if there is a power loss or any other 
hard disruption of the OS. So the risk is comparably limited if I didn't 
miss something else.


Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [PATCH] RPMDB Performance

2009-08-11 Thread Florian Festi

Hi!
Very difficult to recover from a zero  byte RPMDB Packages file, i 
think. Overall there is, as always, a tradeoff between performance and 
integrity.
Even with this patch fsync is always called after writes to the  
Packages file (in opposite to adding "nofync" to the rpmdb configuration 
macro). So ending upwith an empty Packages file should really not happen.


Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] relicensing for Maximum RPM

2009-09-07 Thread Florian Festi

On 08/31/2009 10:42 PM, Karsten Wade wrote:

On Mon, Aug 31, 2009 at 10:58:09PM +0300, Ville Skyttä wrote:
   

On Monday 31 August 2009, Karsten Wade wrote:
 

I don't easily see where the source for the updated MaxRPM snapshot
is; that would be helpful in gathering a list of all copyright
holders.
   

It used to be in a Mercurial repository at http://hg.rpm.org/max-rpm but that
doesn't seem to exist any more (I still have an old working clone from there).
I suppose it's http://rpm.org/gitweb?p=max-rpm.git nowadays.
 

Is that just the names that appear in the snapshot?  Paul,
Matthias, and Ville?
   

Based on git logs, jbj has worked on it quite a bit as well.
 

IANAL and have no clue about the US copyright laws but I'd assume that the 
copyright is by RHT and not the authors.

Florian

--

Reg. Adresse: Red Hat GmbH, Hauptstätter Str. 58, 70178 Stuttgart
Handelsregister: Amtsgericht Muenchen HRB 153243
Geschaeftsfuehrer: Brendan Lane, Charlie Peters, Michael Cunningham,
Charles Cachera

___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [RFC][PATCH] Large file support

2009-09-09 Thread Florian Festi

Hi!

I had a look at the 4GB per packaged file limit. The current cpio format 
[1] uses 8 bytes to encode 32 bit integers as hexadecimal ASCII strings. 
So there is no way of fixing this problem while staying compatible with 
the cpio format (and keep rpm2cpio working).


Having a look at the tar formats I do not belief that switching to tar 
is a real option. The format is just horrible (GNU tar needs over 200 
lines to read an integer out of a header field) and full of hacks to 
remain backward compatible (header in header + extentions). This would 
be all not that bad if there where a nice little library we could link 
against...


My favorite solution would be to use no payload format at all and just 
rely on the meta data we ship in the header anyway. While this would 
surely be possible it requires redoing the hard link handling (as hard 
links are treated specially in the payload - like shipping the content 
just once) and modifying the next upper layer within rpm (fsm.c) which 
is probably the most horrible place in the whole code base. Volunteers 
welcome!


A much simpler alternative would be to use a slightly modified cpio 
format. With a new magic for large files we could just put an binary 
integer into the c_filesize field (or all integer fields). Another 
solution could be to keep the hexadecimal encoding and just double the 
c_filesize or even some more integer fields.
This will both render the payload incompatible with cpio if there are 
large files (and only then).


I did not yet ask cpio upstream or our cpio package maintainer about 
accepting patches to at least read such archives...


Attached patch uses a binary integer for large file sizes. Patch is 
untested and assumes that everything else that deals with file sizes 
already is 64 bit save.


Comments? Ideas? Panic?

Florian

[1] http://people.freebsd.org/~kientzle/libarchive/man/cpio.5.txt (see 
"New ASCII Format")


--

Reg. Adresse: Red Hat GmbH, Hauptstätter Str. 58, 70178 Stuttgart
Handelsregister: Amtsgericht Muenchen HRB 153243
Geschaeftsfuehrer: Brendan Lane, Charlie Peters, Michael Cunningham,
Charles Cachera

>From 4804fcca8a2ee33e60d8a7a042c01443e35b2ae9 Mon Sep 17 00:00:00 2001
From: Florian Festi 
Date: Wed, 9 Sep 2009 12:06:54 +0200
Subject: [PATCH] Add support for 64 bit file sizes to cpio

---
 lib/cpio.c |   27 +--
 lib/cpio.h |3 ++-
 2 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/lib/cpio.c b/lib/cpio.c
index 9003494..db6acbf 100644
--- a/lib/cpio.c
+++ b/lib/cpio.c
@@ -8,7 +8,7 @@
  */
 
 #include "system.h"
-
+#include 
 #include 
 #include 
 
@@ -87,15 +87,21 @@ int cpioHeaderWrite(FSM_t fsm, struct stat * st)
 dev_t dev;
 int rc = 0;
 
-memcpy(hdr->magic, CPIO_NEWC_MAGIC, sizeof(hdr->magic));
 SET_NUM_FIELD(hdr->inode, st->st_ino, field);
 SET_NUM_FIELD(hdr->mode, st->st_mode, field);
 SET_NUM_FIELD(hdr->uid, st->st_uid, field);
 SET_NUM_FIELD(hdr->gid, st->st_gid, field);
 SET_NUM_FIELD(hdr->nlink, st->st_nlink, field);
 SET_NUM_FIELD(hdr->mtime, st->st_mtime, field);
-SET_NUM_FIELD(hdr->filesize, st->st_size, field);
-
+if (st->st_size <= UINT64_MAX) {
+   SET_NUM_FIELD(hdr->filesize, st->st_size, field);
+   memcpy(hdr->magic, CPIO_NEWC_MAGIC, sizeof(hdr->magic));
+
+} else {
+   uint64_t fsize = htole64(st->st_size);
+   memcpy(hdr->filesize, &fsize, sizeof(fsize));
+   memcpy(hdr->magic, CPIO_LARGE_MAGIC, sizeof(hdr->magic));
+}
 dev = major(st->st_dev); SET_NUM_FIELD(hdr->devMajor, dev, field);
 dev = minor(st->st_dev); SET_NUM_FIELD(hdr->devMinor, dev, field);
 dev = major(st->st_rdev); SET_NUM_FIELD(hdr->rdevMajor, dev, field);
@@ -122,6 +128,8 @@ int cpioHeaderRead(FSM_t fsm, struct stat * st)
 char * end;
 unsigned int major, minor;
 int rc = 0;
+int small = strncmp(CPIO_LARGE_MAGIC, hdr.magic,
+   sizeof(CPIO_LARGE_MAGIC)-1);
 
 fsm->wrlen = PHYS_HDR_SIZE;
 rc = fsmNext(fsm, FSM_DREAD);
@@ -131,7 +139,8 @@ int cpioHeaderRead(FSM_t fsm, struct stat * st)
 memcpy(&hdr, fsm->wrbuf, fsm->rdnb);
 
 if (strncmp(CPIO_CRC_MAGIC, hdr.magic, sizeof(CPIO_CRC_MAGIC)-1) &&
-   strncmp(CPIO_NEWC_MAGIC, hdr.magic, sizeof(CPIO_NEWC_MAGIC)-1))
+   strncmp(CPIO_NEWC_MAGIC, hdr.magic, sizeof(CPIO_NEWC_MAGIC)-1) &&
+   small)
return CPIOERR_BAD_MAGIC;
 
 GET_NUM_FIELD(hdr.inode, st->st_ino);
@@ -140,7 +149,13 @@ int cpioHeaderRead(FSM_t fsm, struct stat * st)
 GET_NUM_FIELD(hdr.gid, st->st_gid);
 GET_NUM_FIELD(hdr.nlink, st->st_nlink);
 GET_NUM_FIELD(hdr.mtime, st->st_mtime);
-GET_NUM_FIELD(hdr.filesize, st->st_size);
+if (small) {
+   G

Re: [Rpm-maint] [RFC][PATCH] Large file support

2009-09-10 Thread Florian Festi

On 09/09/2009 08:32 PM, Ville Skyttä wrote:

On Wednesday 09 September 2009, Florian Festi wrote:
   

Having a look at the tar formats I do not belief that switching to tar
is a real option. The format is just horrible (GNU tar needs over 200
lines to read an integer out of a header field) and full of hacks to
remain backward compatible (header in header + extentions). This would
be all not that bad if there where a nice little library we could link
against...
 

libtar doesn't qualify?  http://www.feep.net/libtar/

Not that I know anything about it, but it might at least satisfy "little".
   
It didn't look very trust worthy when visiting the page some days ago. 
Having a look at the ML archive now I am quite sure that it doesn't 
qualify. A library would need to be under active maintenance and have a 
chance to be still around in 5 or 10 years. GNU tar e.g. would, but they 
don't offer a library...


Anyway, thanks for having a look. If there is a great library or archive 
format that should e considered feel free to bring it up.


I just had a look at the XAR format (used by rpm5) but development also 
already has slowed down while some issues are still open (like creating 
the promissed DTD). It also has the disadvantage of pulling in a long 
tail of dependencies.


In general I thing a format without an index and without internal 
compression (as cpio or tar) fits the RPM use case better than formats 
with an file index at the end or the beginning that use by file compression.
As we typically package lots of small files I expect the compression 
rate to significantly drop when switching to by file compression. But I 
cannot back that up with real data right now.


Florian



--

Reg. Adresse: Red Hat GmbH, Hauptstätter Str. 58, 70178 Stuttgart
Handelsregister: Amtsgericht Muenchen HRB 153243
Geschaeftsfuehrer: Brendan Lane, Charlie Peters, Michael Cunningham,
Charles Cachera

___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [deltarpm] Setting inode # to 0 in delta rpms

2009-09-30 Thread Florian Festi

Hi!
I've been discussion various details about deltarpm weth Michael 
Schröder. He mentioned that the inode number is set to 0 when creating 
the delta and also when reconstructing the package because the files on 
disk do no longer carry the inode number that have been assigned to them 
in the cpio payload. After a couple of days this have come back to my mind.


My first thought was: This should not be necessary as you can 
reconstruct the inode numbers from the old rpm header.


My second thought was: True but this won't save anything as the inode 
numbers will be different between the packages anyway.


Third thought: Would using artificially created inode numbers reduce the 
size of the deltas? May be increasing the inode number to the next 10 or 
100 step to avoid changing all inode numbers when adding one file at the 
begining of the package?


Don't know if this does make sense at all. But may be someone wants to 
pick it up...


Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] %logfile option for filelists

2009-12-02 Thread Florian Festi

On 12/01/2009 06:25 PM, Seth Vidal wrote:
Now, that behavior of %ghost is correct for logfiles - but not always 
correct for other files. I was thinking if we had a %logfile option so 
those files did not get removed when the pkg was erased and treat 
%ghost files differently.
Changing the behavior of an already existing tag is very unlikely to 
happen. You better come up with a new name for the behavior you want to 
give to the %ghost tag.


Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] wiki edit rights

2012-01-13 Thread Florian Festi

On 01/10/2012 11:44 PM, David Greaves wrote:

Hi

Could I (username lbt) get wiki edit rights please

David

Done.

Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [PATCH] Improve macro table performance

2013-01-28 Thread Florian Festi
On 01/28/2013 04:05 AM, Alexey Tourbin wrote:
> In the existing implementation, when a new macro is added, the whole
> table has to be sorted again.  Hence the cost of adding n macros is
> worse than O(n^2), due to arithmetic progression.
> 
> This change drops all qsort(3) stuff altogether, by carefully preserving
> table in sorted order.  In findEntry routine, bsearch(3) is replaced
> with customized binary search which tracks position for insertion.
> In the addMacro routine, if a matching entry is not found, this
> position is used for direct insertion, after the rest of the elements
> are "shifted to the right" with memmove(3).  Likewise, in delMacro
> routine, the elements are shifted back to the left when the last macro
> definition is popped.  Technically, shifting half of the array with
> memmove(3) is still O(n^2); however, modern CPUs process contiguous
> memory in a very efficient manner, and glibc provides a fine-tuned
> memmove(3) implementation.
> 
> Also, macro table entries are now allocated in a single chunk.
> 
> This change reduces rpm startup costs by factor of 6 (see callgrind
> annotations below).  Also, this change improves specfile parser
> performance by a factor of 2 (e.g. the parse time of texlive.spec
> is reduced from 67s to 35s).

Impressive numbers. I wonder if thing could even improve further by
switching to a hash table. RPM has it's own generic hash data type found
in lib/rpmhash.H and lib/rpmhash.C
These work with some kind of include magic.

You #define HASHTYPE as a prefix used for the datatype and all related
functions.
HTKEYTYPE for the key data type and
HTDATATYPE for value data type. This can also be a struct for keeping
the value inside the hash. There can be more than one value per key.
With HTDATATYPE undefined the hash acts as a set.

After setting these macros the rpmhash.[HC] fiels are include to build
the header or code for the given types.

See lib/depends.c for two examples of how it is used.

Florian

___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [PATCH] Improve macro table performance

2013-01-30 Thread Florian Festi
On 01/29/2013 10:05 PM, Alexey Tourbin wrote:
> Meanwhile,
> I argue that the change is worth applying anyway, because it removes
> qsort(3) stuff and makes use the underlying data structure in a more
> concise and explicit manner - such that it will be easier to try
> another data structure.

Yes, it is a huge step forward.

Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] newly registered user cannot submit new tickets to Trac

2013-01-31 Thread Florian Festi
On 01/31/2013 01:49 PM, Adam Spiers wrote:
> Is that an issue with the system?

Kindof. We had to close the ticket system due to spam. I added you to
the proper group. So creating tickets should work now. I will update the
wiki page.

Florian

___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Rpm Database musings

2013-03-04 Thread Florian Festi
On 03/01/2013 05:32 PM, Michael Schroeder wrote:
>   (the median is quite different from the avg, that means that
>   some packages are quite big.)

...

> - That means, if I have 2000 packages installed on my system
>   (which is about the real number), the concatenated headers will
>   use 20 MByte (using the median), 10 MByte when using LZO
>   compression, 7.5 with xz.

My guess is that the typically installed package are the bigger ones
while a large number of rarely installed add-on packages are rather
small (at least in header size). So it might be worth using one machine
as an example instead of doing calculations with the "average package".

Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] Large file support

2013-04-19 Thread Florian Festi
Hi!

Here is the first version of a patch set adding large file support to
RPM. It uses a own file format that is in the spirit of cpio but only
contains the file number and file size in the header - omitting all
other meta data. With a bit more thought may be even these two pieces of
data might be omitted.

Right now there is no way to switch between the two formats. Packages
with large files are generated with the new format.

The new format will fail rpm2cpio. In the long run we need a new tool
converting rpm packages into more modern archive formats.

Florian
>From d190860b62cd8303a89f2562ad0ab7328db5eb1e Mon Sep 17 00:00:00 2001
From: Florian Festi 
Date: Fri, 19 Apr 2013 14:13:46 +0900
Subject: [PATCH 1/8] Load LONGFILESIZES into rpmfi if present

---
 lib/rpmfi.c  | 7 +--
 lib/rpmfi_internal.h | 1 +
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/rpmfi.c b/lib/rpmfi.c
index 6428fbf..db9bac6 100644
--- a/lib/rpmfi.c
+++ b/lib/rpmfi.c
@@ -246,6 +246,8 @@ rpm_loff_t rpmfiFSizeIndex(rpmfi fi, int ix)
 if (fi != NULL && ix >= 0 && ix < fi->fc) {
 	if (fi->fsizes != NULL)
 	fsize = fi->fsizes[ix];
+else if (fi->lfsizes != NULL)
+fsize = fi->lfsizes[ix];
 }
 return fsize;
 }
@@ -1152,9 +1154,10 @@ static int rpmfiPopulate(rpmfi fi, Header h, rpmfiFlags flags)
 	_hgfi(h, RPMTAG_FILEFLAGS, &td, scareFlags, fi->fflags);
 if (!(flags & RPMFI_NOFILEVERIFYFLAGS))
 	_hgfi(h, RPMTAG_FILEVERIFYFLAGS, &td, scareFlags, fi->vflags);
-if (!(flags & RPMFI_NOFILESIZES))
+if (!(flags & RPMFI_NOFILESIZES)) {
 	_hgfi(h, RPMTAG_FILESIZES, &td, scareFlags, fi->fsizes);
-
+_hgfi(h, RPMTAG_LONGFILESIZES, &td, scareFlags, fi->lfsizes);
+}
 if (!(flags & RPMFI_NOFILECOLORS))
 	_hgfi(h, RPMTAG_FILECOLORS, &td, scareFlags, fi->fcolors);
 
diff --git a/lib/rpmfi_internal.h b/lib/rpmfi_internal.h
index 19484ec..f82dbe7 100644
--- a/lib/rpmfi_internal.h
+++ b/lib/rpmfi_internal.h
@@ -26,6 +26,7 @@ struct rpmfi_s {
 uint32_t * dil;		/*!< Directory indice(s) (from header) */
 rpm_flag_t * fflags;	/*!< File flag(s) (from header) */
 rpm_off_t * fsizes;		/*!< File size(s) (from header) */
+rpm_loff_t * lfsizes;	/*!< File size(s) (from header) */
 rpm_time_t * fmtimes;	/*!< File modification time(s) (from header) */
 rpm_mode_t * fmodes;	/*!< File mode(s) (from header) */
 rpm_rdev_t * frdevs;	/*!< File rdev(s) (from header) */
-- 
1.7.11.7

>From 85d90a519a5ae9edfd51c520a0a866148728f2f7 Mon Sep 17 00:00:00 2001
From: Florian Festi 
Date: Fri, 19 Apr 2013 15:46:02 +0900
Subject: [PATCH 2/8] Add support for 64bit sizes to
 rpmfi[SG]etFReplacedSizeIndex

---
 lib/rpmfi.c  | 26 +-
 lib/rpmfi_internal.h |  1 +
 2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/lib/rpmfi.c b/lib/rpmfi.c
index db9bac6..3995b72 100644
--- a/lib/rpmfi.c
+++ b/lib/rpmfi.c
@@ -1076,6 +1076,7 @@ rpmfi rpmfiFree(rpmfi fi)
 	fi->fflags = _free(fi->fflags);
 	fi->vflags = _free(fi->vflags);
 	fi->fsizes = _free(fi->fsizes);
+	fi->lfsizes = _free(fi->lfsizes);
 	fi->frdevs = _free(fi->frdevs);
 	fi->finodes = _free(fi->finodes);
 
@@ -1092,6 +1093,7 @@ rpmfi rpmfiFree(rpmfi fi)
 fi->apath = _free(fi->apath);
 
 fi->replacedSizes = _free(fi->replacedSizes);
+fi->replacedLSizes = _free(fi->replacedLSizes);
 
 fi->h = headerFree(fi->h);
 
@@ -1291,11 +1293,23 @@ rpmfi rpmfiNew(const rpmts ts, Header h, rpmTagVal tagN, rpmfiFlags flags)
 void rpmfiSetFReplacedSizeIndex(rpmfi fi, int ix, rpm_loff_t newsize)
 {
 if (fi != NULL && ix >= 0 && ix < fi->fc) {
-	if (fi->replacedSizes == NULL) {
-	fi->replacedSizes = xcalloc(fi->fc, sizeof(*fi->replacedSizes));
+/* Switch over to 64 bit variant */
+if (newsize>UINT32_MAX && fi->replacedLSizes == NULL) {
+fi->replacedLSizes = xcalloc(fi->fc, sizeof(*fi->replacedLSizes));
+/* copy 32 bit data */
+if (fi->replacedSizes) {
+for (int i=0; ifc; i++)
+fi->replacedLSizes[i] = fi->replacedSizes[i];
+fi->replacedSizes = _free(fi->replacedSizes);
+}
+}
+if (fi->replacedLSizes != NULL) {
+fi->replacedLSizes[ix] = newsize;
+} else {
+if (fi->replacedSizes == NULL)
+fi->replacedSizes = xcalloc(fi->fc, sizeof(*fi->replacedSizes));
+fi->replacedSizes[ix] = (rpm_off_t) newsize;
 	}
-	/* XXX watch out, replacedSizes is not rpm_loff_t (yet) */
-	fi->replacedSizes[ix] = (rpm_off_t) newsize;
 }
 }
 
@@ -1305,7 +1319,9 @@ rpm_loff_t rpmfiFReplacedSizeIndex(rpmfi fi, int ix)
  

Re: [Rpm-maint] RPM tag not working

2013-10-15 Thread Florian Festi
On 10/14/2013 09:49 AM, prashant tyagi wrote:
> Hi,
> 
> I have rpm documentation for renaming the package. I get to know about
>  tag. I am able to build a new package successfully after
> adding this tag in spec file. For example:
> 
> Suppose there is a package PkgA , I want to rename it to PkgB...
> For PkgB-
> Obsoletes: PkgA <= 2.00.000-1
> 
> But When I install PkgB, it is not uninstalling PkgA. Instead PkgA and
> PkgB are installed side by side.

You have to "install" package B with "rpm -U pkgB". U for update.
Updaters like yum do the right thing. For historical reasons rpm -i does
not take obsoletes into account as it is supposed to leave other
packages alone.

Florian

PS: In general such questions are better suited for the rpm user list
rpm-l...@lists.rpm.org as it has a wider audience which gives a better
chance for quick responses.
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] RPM tag not working

2013-10-15 Thread Florian Festi
On 10/15/2013 01:13 PM, prashant tyagi wrote:
> Hi Panu,
> 
> Thanks for quick reply.
> It worked with 'rpm -U'. I have got another problem in  tag.
> 
> Hi All,
> 
> Here is the complete scenario:
> 
> I have two packages pkgA 10.10.100, pkgB 10.10.100 and I want to merge
> these into pkgC 20.00.000.
> The thing I want to achieve If I install pkgC, it should remove pkgA
> and pkgB. and if I try to install pkgA or pkgB higher version, it
> should tell me "already higher version is installed'.
> what I did to achieve this-
> I used  and  tags in spec file for pkgC like this :
> 
> Obsoletes: pkgA <= 10.10.100-1, pkgB <= 10.10.100
> Provides: pkgA <=20.00.000-1, pkgB <20.00.000-1
> 
> when I use- rpm -U pkgC, it remove pkgA and pkgB (
> working), but I install pkgA higher version (10.20.200),it got
> installed (  not working ).
> Is there any other way to achieve this?

In general the way of solving this is not issuing a higher version of
pkgA and pkgB. In cases you do not control those packages you can add a
Conflict: pkgA and Conflict: pkgB to pkgC which issues an error if those
packages are being installed while pkgC is on the system. Adding such
Conflict:s without a version number is a bit fishy but this is needed
here to rule out all future versions that might come out during pkgC's
life time.

Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] Idea of the day

2014-02-06 Thread Florian Festi
Hi!

While discussing updates and version-in-package-names issues (related to
a programming language that shall not be named) we came up with the
following (completely not thought through) idea:

Offer a special character for separating the version number within the
package name from the "real" name e.g. "@". While updates would continue
to work as they do right now and foo@1-1.2.3 is only do be updated by
other foo@1 versions the "@" has the following effects:

Whenever you query for or address a package (name) you also match the
part before the @. So you could do rpm -e foo-1.2.3 which would remove
foo@1-1.2.3

Whenever the name or NVR is printed in the UI the part after the @ is
omitted and the matching part of the number is highlighted if possible:
foo-*1*.2.3

May be even automatically add a Provide for the part before the @.


Benefit of the idea: All "real" operation just keep working as they used
to. We have the wanted behaviour on the UI of not showing the version
number twice and matching the name without the version number.

This feature could also be used for library packages.


Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] Heads up: Weak and rich dependencies in RPM

2014-02-20 Thread Florian Festi
Hi!

We are currently working on adding weak and rich dependencies to
upstream RPM. There are basically two parts:

#1 Adding weak dependencies as already used by SuSE and others:
Recommends:, Suggests:, Supplements: and Enhances:. We agreed with
Michael Schröder to not use SuSE's current implementation but to add new
tags for a cleaner interface and an easy update path for already
existing packages. This is planned to be part of the next RPM version.

As old tools will just ignore the new tags this isn't a big
compatibility issue. Support in rpmbuild can probably back ported easily.

#2 Allow Boolean expressions of (Name Flag Version) terms in Requires:,
Conflicts: and the new weak dependencies (rich dependencies). This will
add a new expressive strength to RPM's dependency model and allow fixing
a couple of packaging problems we don't have a solution for
right now and also get rid of some special case solutions like hand
coded language pack support. As we are still figuring out some of the
implementation details and implications this feature may or may not make
it in the next release.

Packages using such Boolean expressions will not work with old versions
of rpm and other related tools and it is still unclear to what extend
this feature can be back ported.



What implication does this have on your distribution?

Although this new features do affect rpm and packages directly and you
may want to reflect that in your packaging policy the main impact is
outside of rpm itself. The weak dependencies are basically ignored by
rpm and need to be handled in your dependency solver, installer,
updater, software management tool - however you call it.


If you are already using weak dependencies you want to make sure to add
support for the new tags before updating to the next major rpm version.
Also expect that most of your patches adding the old support will fail
to apply. In general I expect the transition to be comparably easy. We
will probably even add some compatibility code in upstream RPM to make
your life easier. Talk to us.


Getting the support into createrepo and libsolv is taken care of. This
should cover Fedora and OpenSUSE and may be others.


If you use a different dependency solver you have various options:

You may just ignore the new features for now. The weak dependencies can
just be ignored. But you won't be able to process packages with Boolean
expression in Requires: or Conflicts:.

If your solver is not NP complete you may want to consider changing to a
libsolv based solution or any other NP complete solver that has a chance
of growing support for weak and rich dependencies in the future.

If you already have a NP complete solver - may be already with support
for weak dependencies - and want to stick with it you should consider
adding support for rich dependencies. Right now there is no code to look
at and there are still some implementation details that we need to
figure out. We will keep you updated on the rpm-maint list.


I wrote a document describing more technical details. Find it attached
to this mail.

Florian



rich_relations.odt
Description: application/vnd.oasis.opendocument.text
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Weak dependencies SUSE compatibility patch

2014-02-26 Thread Florian Festi
On 02/25/2014 03:25 PM, Michael Schroeder wrote:
> attached is a little patch that I have in my rpm to make --recommends
> et al work with old SUSE rpms.

Thanks! Applied.

Florian

___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Weak dependencies SUSE compatibility patch

2014-03-13 Thread Florian Festi
On 03/11/2014 04:07 PM, Michael Schroeder wrote:
> I also need the following patch to make rpm export the old tags.

Pushed with a little tweaking.

Florian

___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Upgrade requirements

2014-04-22 Thread Florian Festi
On 04/17/2014 09:05 AM, Shapiro Ben wrote:
> Hi all.
> I've been looking around and trying for some time to create the
> following situation:
> I have an application v3.0 packaged and i have to update lots of clients
> which some have v2.0 installed, some have v1.0. there is major changes
> between the baselines so i want to require from those who have v1.0
> installed, to automatically download and install v2.0 first and just
> then v3.0
> When i use the Required section "Required: app >= 2.0" it still does not
> work. it installs v3.0 over 1.0 without requiring v2.0... Is it possible
> to achieve??

No. RPM does always update to the newest version. The right way to solve
this is to ship the scripts that can update from all versions to the
current one within the newest (and there fore all) package(s).

Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] read rpm database with Java

2014-06-04 Thread Florian Festi
In other words: If you do not need a lot of data try getting along with
CLI and --qf and save yourself a lot of trouble.

Florian

-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] RPM 4.12.0 alpha released

2014-07-02 Thread Florian Festi
On 06/29/2014 01:51 PM, Florian Weimer wrote:
> On 06/27/2014 04:41 PM, Panu Matilainen wrote:
> 
>> - Support for files over 4GB in packages
> 
> Is the new payload format documented somewhere?  It seems to use the FX
> index in a pseudo-cpio header instead of duplicating the data from the
> header, but it would be nice to to see this spelled out explicitly.

Not yet. It should probably be added to the rpm.org page describing the
file format. Be aware that we have not yet decided on making the new
format part of the API. Note also that we added an API for accessing the
payload data. Have a look at the rpm2archive(.c) utility to get an idea
how it works.

Florian


-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Please allow ovitters to report bugs

2014-07-31 Thread Florian Festi
On 07/29/2014 01:01 AM, Olav Vitters wrote:
> As per subject.
> 
> This is a pretty cumbersome process btw.

Yes. Yes, it is

Done.

Florian

-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] RFC: experiments with rich dependencies

2014-09-11 Thread Florian Festi
On 09/11/2014 02:18 PM, Panu Matilainen wrote:
> [*] IF-dependencies have similar issues as reverse dependencies: one can
> break somebody elses dependencies by installing some seemingly unrelated
> package. Perhaps they should be limited to weak dependencies.

That's not exactly the same situation. Reverse Requires can make your
installation "broken" by adding a package to the repository.

While I agree tha most use case should and will probably use weak
dependencies I do not see anything intrinsicly wrong about forcing in an
intermediate package (or act as a conflict in case this package is not
available)

Florian

-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] RFC: experiments with rich dependencies

2014-09-11 Thread Florian Festi
On 09/11/2014 02:51 PM, Michael Schroeder wrote:
> Ah, but I was hoping for a discussion of the syntax. Are you ok with
> the enclosing the rich deps with ()? What about the op names, I'd
> love to use & as 'and' and | as 'or' (which also makes it more like
> Debian), but I can't think of any good charater for 'if'.

Formally the sign would be "<-" (reverse implication). But I kinda doubt
that most people would get that.

Florian

-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] How to get RPM requires quickly

2014-09-15 Thread Florian Festi
On 09/15/2014 02:42 PM, Panu Matilainen wrote:
> On 09/13/2014 04:13 PM, Richard W.M. Jones wrote:
>>
>> We have a program[1] that needs to take a list of installed RPM
>> package names, and quickly generate all of the installed dependencies
>> (recursively).

> To get rpm do a bit more work for you, use 'rpm -e --test' to make rpm
> resolve the deps. Basically

I don't think these are same things. 'rpm -e' gives the packages
requiring the package in question while I think the original question
was for the packages required *by* the package.

Florian

-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [RFC v4 06/11] Add rpmtags for file signatures and their length

2015-01-14 Thread Florian Festi
On 01/13/2015 07:33 PM, f...@linux.vnet.ibm.com wrote:
> This patch adds rpmtags for file signatures and their length, so they can be
> stored in the package header.
This patch needs to go before
[RFC v4 04/11] Add support for file signatures to rpmfi and rpmfiles
as the tags are used there.

Florian


-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [RFC v4 04/11] Add support for file signatures to rpmfi and rpmfiles

2015-01-14 Thread Florian Festi
On 01/13/2015 07:33 PM, f...@linux.vnet.ibm.com wrote:

Ok, some minor knitpicks:

> This patch adds file signatures and file signature length to rpmfiles. These
> new members are set in rpmfilesPopulate, and they can be accessed with 
> rpmfiFSignature.
> 
> Signed-off-by: Fionnuala Gunter 


> +char *rpmfiFSignatureHex(rpmfi fi)
Missing whitespace after "*".


>  if (!(flags & RPMFI_NOFILERDEVS))
> +
>   _hgfi(h, RPMTAG_FILERDEVS, &td, scareFlags, fi->frdevs);
Errous empty line.

> +/** \ingroup rpmfi
> + * Return current file (hex) signature of file info set iterator.
> + * The file info set iterator stores files signatures in binary format to
> + * conserve memory, this converts the binary data back to hex presentation 
> used
> + * in headers.
> + */
> +char * rpmfiFSignatureHex(rpmfi fi);

char * rpmfilesFSignatureHex(rpmfi fi);
missing (ok, can be argued if really needed)


> +RPMFI_NOFILESIGNATURES   = (1 << 18),
Not actually used. Should probably guard the new code in rpmfilesPopulate()

Florian

-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Identifying which files need signatures

2015-01-19 Thread Florian Festi
On 01/16/2015 11:18 PM, Fionnuala Gunter wrote:
> Hi,
> 
> Missing from the RPM patches that add file signatures is a way for
> package maintainers to specify which files need signing. Dmitry
> Kasatkin suggested that we enumerate signed files with a spec tag,
> similar to how we enumerate files, ie.

I wonder if there is a way around all this. Right now we already have
the files divided up into normal files which are supposed to not change
and config files which are expected to change. I wonder if this
distinction is already sufficient.

Also note that prelink will happily alter binary files. The verify code
in rpm undoes the prelinking for checking digests of binary files. I
wonder if this can be done with the signatures, too. Otherwise prelink
needs to be disabled for the whole signing to work (as I guess binaries
are a primary target for signing)

Florian


-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [PATCH] Read uncompressed patches from stdin

2015-01-26 Thread Florian Festi
Thank you very much for spotting and doing the research. Pushed to master.

Florian

-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [PATCH] Use setexecfilecon() from libselinux instead of ad-hoc code

2015-02-16 Thread Florian Festi
On 01/15/2015 05:01 PM, Guillem Jover wrote:
> This function was factored out from rpm_execcon() upstream to make it
> easier to use by its users, by making it not call execve() directly. It
> is now also used by dpkg since 1.17.11.
> 
> Preserve the ad-hoc code for now so that it can be compiled against old
> libselinux versions.

Thanks for the patch! Pushed.

Florian


-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [PATCH] Add API to completely disable librpm's use of Unix signal handlers

2015-02-17 Thread Florian Festi
Sorry, for the last response. DevConf takes its toll...

On 01/23/2015 04:07 AM, Colin Walters wrote:
> Numerous consumers of librpm use it in a pattern where they're
> constructing fresh chroots.  For example, rpm-ostree operates this
> way, and is used to provide atomic upgrades in concert with rpm.
> 
> If the process dies due to SIGINT or another signal, the root can
> simply be discarded.
> 
> Currently today, rpm-ostree undoes the signal handlers after loading
> librpm so that Control-C does what I want, but there's still a race
> condition where the interrupt can be lost.
> 
> Add an API so callers can disable the behavior.

Is there any chance someone would want to switch them back on? My gut
feeling tells me this should rather be rpmsqSetInterruptSafety(int on);

Florian

-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] RPM repository moved to GitHub

2015-03-24 Thread Florian Festi
Hi!

We moved your Git repository to GitHub[1] into the
rpm-software-management project[2] where a lot of other rpm related
repositories already reside. The original repository[3] will stay in
place is updated from the GitHub one.

If you have a local checkout you can continue to use is read only. If
you have write access to the repository please move over the the GitHub
repository and request access there.

To switch over your local checkout to the new repository use one of the
following commands:

git remote set-url origin https://github.com/rpm-software-management/rpm.git

git remote set-url origin g...@github.com:rpm-software-management/rpm.git

Thanks!

Florian

[1] https://github.com/rpm-software-management/rpm
[2] https://github.com/rpm-software-management
[3] http://rpm.org/git/rpm.git/

-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] MT compression in rpmbuild ?

2015-03-26 Thread Florian Festi
On 03/26/2015 12:42 PM, Håkan Olsson wrote:
> Hello,
> 
> I’m looking for various ways forward in speeding up RPM build times.  In our 
> various build pipelines (Continuous Integration, …) a common resource usage 
> scenario is nice parallel compilations (-j10 or up, etc), after which the 
> build spends several minutes in rpmbuild, with just one core running at 100%. 
> Developers are in various ways skipping the RPM generation step in many cases 
> due to this, not really what we want.

Welcome to the list!

> The little investigation I’ve done points to not very many (or any?) 
> compression libraries themselves capable of multi-threading, what’s available 
> seems to be mostly/only applications such as pxz, pbzip2, pigz using the 
> standard libraries.  With rpmbuild using a library rather than e.g. streaming 
> output to a child process replacing this appears to require a coding effort.

My guess is that choosing the right tools/libraries is one of the more
difficult parts. It might be possible to just do compression in a
separate process for some formats, though.

The compression handling code is actually one of the less ugly corners.
It can be found in rpmio/rpmio.c [1]. It implements an abstract file
descriptor data type. The patches adding lzma support[2] give a rough
idea of what is needed to add a new compression format (although some
things have changed since then. E.g. the name of the format changed to xz).

> I have a support case with RedHat open into investigating ways forward and 
> one of the suggestions was to ask here.  Possibly this has been discussed 
> before?

I got some question forwarded. So if you got some answers from
"Engineering" they are probably from me.

> (e.g. “deltarpm” has been mentioned as an issue, but at least in my case this 
> is not a concern - we won’t be using it.)

Well, it is one reason for requiring bit for bit reproducibility of the
compression stage. But having bit for bit reproducibility is an value on
its own. So this is something to test for when choosing the library/tool.

Florian

[1] https://github.com/rpm-software-management/rpm/blob/master/rpmio/rpmio.c

[2]341266ae26e6685d1d870b28533469c653355bb7..
   edc5c0ef84a93d19acecaaf9a07f4ea3e9d8fe39


-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] New Rpm-ecosystem Mailing List

2015-05-20 Thread Florian Festi
Hi!

tl;td: Join at http://lists.rpm.org/mailman/listinfo/rpm-ecosystem if
your interested in any part of the rpm ecosystem.


While there are quite some mailing lists already that deal with the
different tools around and including rpm we realized that there is no
good place to discuss issues that involve multiple parts of (our own)
package handling stack even less so to stay in contact with other rpm
based solutions. To solve this we create a new mailing list:

rpm-ecosys...@lists.rpm.org

Normal user questions and development talk is supposed to stay on the
per project mailing lists. The new list is for questions like:

 * How do other implementations handle specific problems?
 * Is this new feature interesting for downstream distributions?
 * How do the different packaging guidelines treat a special topic?
 * Anyone there to support our demand for this new rpm feature?

And it is for topics like:

 * Packaging guide lines
 * RPM features
 * Build systems and compose tools
 * Dependency solvers, installers and updaters
 * RPM based image creation / non rpm based updates for rpm
   based distributions

In short: It is meant to bind the rpm universe together.

Join at http://lists.rpm.org/mailman/listinfo/rpm-ecosystem

Please forward this mail to anyone that might be interested - especially
to rpm related sub projects and groups.

Thanks!

Florian

-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] New Rpm-ecosystem Mailing List

2015-05-20 Thread Florian Festi
> Please forward this mail to anyone that might be interested - especially
> to rpm related sub projects and groups.

Can someone forward this mail to the Mageia folks, please? I signed up
to a few MLs to get the message out but I won't start creating account
for other distros.

Thanks!

Florian

-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [PATCH v7 03/11] Add rpmtags for file signatures and their length

2015-07-21 Thread Florian Festi
On 07/21/2015 12:11 AM, Fionnuala Gunter wrote:
> From: "f...@linux.vnet.ibm.com" 
> 
> This patch adds rpmtags for file signatures and their length, so they
> can be stored in the package header.
> 
> Changelog:
> - update rpmtag values (rebase error) - Mimi
> ---
>  lib/rpmtag.h | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/lib/rpmtag.h b/lib/rpmtag.h
> index 6c7dbf2..d06a3b7 100644
> --- a/lib/rpmtag.h
> +++ b/lib/rpmtag.h
> @@ -350,6 +350,8 @@ typedef enum rpmTag_e {
>  RPMTAG_TRANSFILETRIGGERVERSION   = 5081, /* s[] */
>  RPMTAG_TRANSFILETRIGGERFLAGS = 5082, /* i[] */
>  RPMTAG_REMOVEPATHPOSTFIXES  = 5083, /* s internal */
> +RPMTAG_FILESIGNATURES= 5084, /* s[] */
> +RPMTAG_FILESIGNATURELENGTH  = 5085, /* i */
>  
>  RPMTAG_FIRSTFREE_TAG /*!< internal */
>  } rpmTag;
> 

This break test case 004. This should fix it:

diff --git a/tests/rpmgeneral.at b/tests/rpmgeneral.at
index 61cc2fb..332adf6 100644
--- a/tests/rpmgeneral.at
+++ b/tests/rpmgeneral.at
@@ -113,6 +113,8 @@ FILENLINKS
 FILEPROVIDE
 FILERDEVS
 FILEREQUIRE
+FILESIGNATURELENGTH
+FILESIGNATURES
 FILESIZES
 FILESTATES
 FILETRIGGERFLAGS



-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [PATCH v7 03/11] Add rpmtags for file signatures and their length

2015-07-22 Thread Florian Festi
On 07/22/2015 04:30 PM, Fionnuala Gunter wrote:
> Florian,
> 
> I'm going to send an updated patch 9. Should I also include this patch
> to fix test 004, when I resend the patch set?
> 
> -Fin
> 
> On Tue, Jul 21, 2015 at 5:53 AM Florian Festi  <mailto:ffe...@redhat.com>> wrote:
> 
> On 07/21/2015 12:11 AM, Fionnuala Gunter wrote:
> > From: "f...@linux.vnet.ibm.com <mailto:f...@linux.vnet.ibm.com>"
> mailto:f...@linux.vnet.ibm.com>>
> >
> > This patch adds rpmtags for file signatures and their length, so they
> > can be stored in the package header.
> >
> > Changelog:
> > - update rpmtag values (rebase error) - Mimi
> > ---
> >  lib/rpmtag.h | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/lib/rpmtag.h b/lib/rpmtag.h
> > index 6c7dbf2..d06a3b7 100644
> > --- a/lib/rpmtag.h
> > +++ b/lib/rpmtag.h
> > @@ -350,6 +350,8 @@ typedef enum rpmTag_e {
> >  RPMTAG_TRANSFILETRIGGERVERSION   = 5081, /* s[] */
> >  RPMTAG_TRANSFILETRIGGERFLAGS = 5082, /* i[] */
> >  RPMTAG_REMOVEPATHPOSTFIXES  = 5083, /* s internal */
> > +RPMTAG_FILESIGNATURES= 5084, /* s[] */
> > +RPMTAG_FILESIGNATURELENGTH  = 5085, /* i */
> >
> >  RPMTAG_FIRSTFREE_TAG /*!< internal */
> >  } rpmTag;
> >

Yes, please. Just squash it into [PATCH 03/11]

Florian

-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] RPM 4.13.0-alpha released

2015-07-24 Thread Florian Festi
Time to wrap things up and stabilize all that changes to a new release.
There are two big new features that we hope to get feedback on:

 * Boolean (aka "Rich") Dependencies
 * File triggers

Beside that there are many other fixes, improvements and cleanups.

For download information and further details, see the draft release
notes: http://rpm.org/wiki/Releases/4.13.0

On behalf of the rpm-team,

Florian

-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [PATCH] really default to default XZ compression level

2015-08-28 Thread Florian Festi
On 08/28/2015 02:46 PM, Thierry Vignaud wrote:
> Hi
> 
> This patches makes rpm really default to default XZ compression level
> 
> BTW this fixes the default compression level which is 6 instead of 7.

Added this one and the above upstream. Thanks for the patches.

Florian


-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [Patch] Fix file signature bugs

2015-09-01 Thread Florian Festi
On 08/31/2015 11:39 PM, Fionnuala Gunter wrote:
> Hi,
> 
> The first patch fixes a bug that occurs when the signature header
> changes sizes (after including file signatures). I revised it based on
> Lubos' comments. The second patch fixes another bug where only the first
> file signature was installed. Please pull if these fixes are acceptable.

They look good. Pushed.

Thanks!

Florian

-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] RPM 4.13.0-rc1 released

2015-09-02 Thread Florian Festi
Time to get 4.13.0 out. Here is the first release candidate.

There have been quite a few changes since the alpha. The most notable are:
 * Added support for file signatures in security.ima xattr
 * Finalized syntax for rich dependencies
 * Enable {} expansion in rpmGlob()/%files and enhanced glob handling

But there are also smaller changes and fixes:
 * Fix compressed patches
 * Don't warn when an escaped macro is in comment.
 * Add --filetriggers query option
 * Fix for Py3 compatibility
 * Do not bytecompile python scripts in docdir
 * Improvements to find-lang.sh and perl dependency generator
 * Use default value (currently 7) for XZ compression
   if not value is given

For download information and further details, see the draft release
notes: http://rpm.org/wiki/Releases/4.13.0

On behalf of the rpm-team,

Florian
-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] RPM 4.13.0-rc1 released

2015-09-07 Thread Florian Festi
On 09/02/2015 03:25 PM, Florian Festi wrote:
> Time to get 4.13.0 out. Here is the first release candidate.
> 
> There have been quite a few changes since the alpha. The most notable are:
>  * Finalized syntax for rich dependencies
Looks like I messed this one up. Current HEAD is already fixed.

See
https://github.com/rpm-software-management/rpm/commit/d20b7d2b00e349610f3cf08d9ff3723cc7c56e32
if you are interested in the details.

Florian


-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Add support for 'patch -o outfile'. (#18)

2015-11-13 Thread Florian Festi
Closed #18.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/18#event-462274352___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] brp-python-hardlink: Handle Python 3.5's *.opt-[12].pyc (#16)

2015-11-13 Thread Florian Festi
Pushed as is. Feel free to file new pull requests for the proposed improvements 
(We promise to review them faster than this one).

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/16#issuecomment-156096649___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Fix broken -q on %setup. (#20)

2015-11-13 Thread Florian Festi
Closed #20.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/20#event-462296518___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Some minor localization fixes (#24)

2015-11-13 Thread Florian Festi
Thanks for taking care. Pushed.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/24#issuecomment-156063054___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Add RubyGems support. (#27)

2015-11-13 Thread Florian Festi
Closed #27.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/27#event-462253355___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Fix comment for doPatchMacro. (#19)

2015-11-13 Thread Florian Festi
Thanks for the patch! Pushed.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/19#issuecomment-156068222___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Add RubyGems support. (#27)

2015-11-13 Thread Florian Festi
Pushed to master.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/27#issuecomment-156053073___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Fix comment for doPatchMacro. (#19)

2015-11-13 Thread Florian Festi
Closed #19.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/19#event-462300128___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Fix broken -q on %setup. (#20)

2015-11-13 Thread Florian Festi
Thanks for the fix! Pushed.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/20#issuecomment-156067274___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Improvements to brp-compress & find-lang.sh (#12)

2015-11-13 Thread Florian Festi
Closed #12.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/12#event-462411000___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Various fixes for new pythonegg dependency generator (#23)

2015-11-13 Thread Florian Festi
Pushed.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/23#issuecomment-156154873___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Some minor localization fixes (#24)

2015-11-13 Thread Florian Festi
Closed #24.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/24#event-462284346___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Add support for 'patch -o outfile'. (#18)

2015-11-13 Thread Florian Festi
Pushed as squashed patch to master. Thanks for the patch!

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/18#issuecomment-156059100___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Various fixes for new pythonegg dependency generator (#23)

2015-11-13 Thread Florian Festi
Closed #23.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/23#event-462619697___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] brp-python-hardlink: Handle Python 3.5's *.opt-[12].pyc (#16)

2015-11-13 Thread Florian Festi
Closed #16.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/16#event-462402751___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Set up more portable definitions for alternative libc (μClibc and MUSL) (#26)

2015-11-13 Thread Florian Festi
Thanks for the patch. Pushed.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/26#issuecomment-156110294___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Set up more portable definitions for alternative libc (μClibc and MUSL) (#26)

2015-11-13 Thread Florian Festi
Closed #26.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/26#event-462457432___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Improvements to brp-compress & find-lang.sh (#12)

2015-11-13 Thread Florian Festi
Closing this for now. Feel free to file a new PR if the issues of the remaining 
patch is resolved.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/12#issuecomment-156098775___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] brp-python-hardlink: Use cmp instead of sha1summing (#30)

2015-11-19 Thread Florian Festi
Closed #30.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/30#event-468985726___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] brp-python-hardlink: Use cmp instead of sha1summing (#30)

2015-11-19 Thread Florian Festi
Thanks for the patch! Pushed.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/30#issuecomment-158012044___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] pythoneggs.py: flake8 fixes (#31)

2015-11-19 Thread Florian Festi
Closed #31.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/31#event-468988703___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] pythoneggs.py: flake8 fixes (#31)

2015-11-19 Thread Florian Festi
Thanks!

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/31#issuecomment-158013259___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Xz support improvements (#11)

2015-11-19 Thread Florian Festi
Closed #11.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/11#event-469206927___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Xz support improvements (#11)

2015-11-19 Thread Florian Festi
Obsolete now.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/11#issuecomment-158070494___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Improvements for xz support (#17)

2015-11-19 Thread Florian Festi
Ok, pushed all but the very last patch to master.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/17#issuecomment-158071032___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] initial embedded python interpreter support (@rpm5.org derived) (#25)

2015-11-26 Thread Florian Festi
On 11/19/2015 04:09 PM, Vít Ondruch wrote:
> What is the usecase for this? Isn't this just feature bloat?

I kinda agree that this looks like feature bloat. This patch set needs a
very good justification to go in upstream. The overall trend is to
rather keep minimal installs smaller as this is a big issue for
containers and VMs. Python is one of the candidates to be thrown out at
some point.

Also embedding a particular version of Python into rpm itself makes this
Python version part of the spec syntax with all kind of possibly ugly
implications.

It also seems to not bring many benefits except from saving the
interpreter starting time (which can be significant if there are many
Python scriptlets). But the trend here is also to rather getting rid of
more of the scriptlets using the new file trigger feature (We'll see how
this works out).

Having access to the transaction objects of the running rpm instance
could give such justification as it can hardly done in any other way.
But I really, really doubt that we wan to go down that route. Especially
as it gives a whole new way of how scriptlets can break a transaction.

As the patch set is not interfering with many places in the rpm code it
should be not too hard to maintain the changes outside of the upstream
repository for distributions with (still) rely on this feature.

Florian

-- 

Red Hat GmbH, http://www.de.redhat.com/ Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Charles Peters
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Fix %setup logic in presence of '-[cbaT]' options. (#21)

2015-11-26 Thread Florian Festi
Thanks for looking that deeply into this! We opted for the second option. 
Pushed.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/21#issuecomment-159885205___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Fix %setup logic in presence of '-[cbaT]' options. (#21)

2015-11-26 Thread Florian Festi
Closed #21.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/21#event-475481848___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Put all Perl-related macros in a single file. (#37)

2016-01-28 Thread Florian Festi
Not sure if those macro can just be hidden away. We'd need to check how much 
packages this is going to break before doing such a change.

It might be necessary to go the opposite direction (including the macros.perl 
unconditionally) and leave removing it again to the distros.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/37#issuecomment-176153756___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Unknown tag %ifdef. (#39)

2016-01-28 Thread Florian Festi
Thanks for spotting this!

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/39#issuecomment-176156624___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Unknown tag %ifdef. (#39)

2016-01-28 Thread Florian Festi
Closed #39.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/39#event-529599270___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Add lua function posix.close (#44)

2016-01-28 Thread Florian Festi
This pull request is not sufficient to fix the problem. For one there is no 
io.open in rpm's lua so far. Also we probably do not want random scriptlets to 
mess with with the file descriptors of the rpm process. So this would need some 
kind of protection (as we already added to exec and exit).

It might need to be a bit more complex, though, as permitting file operations 
only after forking is kinda strange.

Also your proposed script relies on io.open("/dev/null") returning 2 as it 
assumes that this is the lowest free file descriptor. This is really ugly and 
probably unreliable. A proper solution would be to use dup2 (also not 
available).

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/44#issuecomment-176179051___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Doc (#48)

2016-01-28 Thread Florian Festi
Sorry, but the translations are done at https://www.transifex.com/rpm-team/rpm/
Changes to the translation files will just be overwritten.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/48#issuecomment-176184096___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Doc (#48)

2016-01-28 Thread Florian Festi
Closed #48.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/48#event-529695803___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Doc (#48)

2016-01-28 Thread Florian Festi
Ok, added all the doc updates. Changed the commit message for the GROUPS patch. 
I close this although the translation updates were dropped.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/48#issuecomment-176191782___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Add RPMCALLBACK_ELEM_PROGRESS callback type (#36)

2016-01-28 Thread Florian Festi
Pushed.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/36#issuecomment-176251217___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm] Add RPMCALLBACK_ELEM_PROGRESS callback type (#36)

2016-01-28 Thread Florian Festi
Closed #36.

---
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/36#event-529895073___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


  1   2   3   4   5   6   7   8   9   10   >