Hallo.

I am just starting to work on my idea of automatic generating of devel
BuildRequires and Requires.

The goal is:

- Increase quality of packages preventing unwanted failed checks and
  consequent building of feature stripped packages.

- Drop obsolete dependencies (now added manually, removed after bug
  report)


1) As I wrote in past, I created a pkg-buildrequires package, which
should help with automatic generating of BuildRequires.

2) Next idea would be automatic creating of devel Requires/Provides
using information provided by pkg-config files.


1)

Package pkg-buildrequires with a simple documentation is available for
download from OBS home:sbrabec.
https://build.opensuse.org/package/show?project=home%3Asbrabec&package=pkg-buildrequires

I just started to experiment with pkg-buildrequires it in OBS
GNOME:UNSTABLE repository with it.
https://build.opensuse.org/project/show?project=GNOME%3AUNSTABLE

There is still a lot of failures, but low level packages (glib2, cairo,
pango) are already built using pkg-buildrequires.

It creates BuildRequires automatically in following form compatible with
RPM:

BuildRequires:  list of packages added manually
#BEGIN pkg-buildrequires
# Created by pkg-buildrequires. Do not edit by hand.
BuildRequires:  list of packages added by pkg-buildrequires
%define pkg_buildrequires_checksum b49abeb28e08721413a59a3d53324613
%define pkg_buildrequires_unknown_checksum cb977b8752a03a75a077316c2efdd439
#END pkg-buildrequires

One checksum includes all needed packages. If the list changes, special
type of failure will happen. It can be detected, BuildRequires
automatically updated and package built again.

Second (optional) checksum sums list of all failed pkg-config checks and
its presence should confirm, that packager reviewed all failed checks
and confirms, that it is correct. If this number changes, user will be
notified to take manual action (i. e. add missing package, rebuild and
update values).

Currently I have no idea, how to do it better and still stay RPM
compatible (i. e. in one step).


2)

Second idea would require modification of %find_provides and
%find_requires to provide/require symbols like PC(libIDL-2.0), which
could create devel dependency chain automatically.

I see no chance to convert these symbols to package names - if you are
building two devel packages from one spec file, there is no way to
generate dependencies between them - script does not know file lists of
other sub-packages.

I plan to extend my experiments in GNOME:UNSTABLE with this (not yet
written) script.


-- 
Best Regards / S pozdravem,

Stanislav Brabec
software developer
---------------------------------------------------------------------
SUSE LINUX, s. r. o.                          e-mail: [EMAIL PROTECTED]
Lihovarská 1060/12                            tel: +420 284 028 966
190 00 Praha 9                                fax: +420 284 028 951
Czech Republic                                http://www.suse.cz/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to