openSUSE Lizards

Authors
Adrian Schröter (5)
Agustin Chavarria (1)
Akhil Laddha
Alexander Naumov
Alexander Orlovskyy (3)
Alexey Eromenko
Alin M Elena (4)
Andrea Florio (14)
Andreas Jaeger (43)
Andreas Stieger (1)
Andreas van dem Helge
Andrej Semen
Andrew Wafaa (25)
Arvin Schnell (6)
Beineri2
Bharath Acharya
Bonnie Kurniawan
Brian G. Merrell
Carl Fletcher
Casual Programmer
Christoph Thiel
Christopher Hobbs (15)
Ciaran Farrell (2)
Coly Li
Cristian Rodríguez
Daniel Bornkessel
David C. Rankin
Dean Hilkewich
Dinar Valeev (5)
Dirk Müller (1)
Dmitry Serpokryl (6)
Duncan Mac-Vicar
Enrique Herrera Noya
Eugene Pivnev
FabioMux (1)
Federico Lucifredi
Frank Lee
Gabriele Mohr
Gerrit Beine
Helman Rene Taleno Martinez
Helmut Schaa
Henne (6)
Herbert Graeber
Holgi (2)
Hubert Mantel (1)
Ioan Vancea
J. Daniel Schmidt (1)
Jaime Andrés Vélez Osorio
James Tremblay (7)
Jan Blunck (4)
Jan Madsen (1)
Jan Nieuwenhuizen
Jan-Christoph Bornschlegel (3)
Jan-Simon Möller (19)
Javier Llorente (1)
Jigish Gohil (18)
Jiri Srain (1)
Jiří Suchomel (1)
jloeser
Johan Kotze (5)
John Terpstra
Joop Boonen
Josef Reidinger (7)
Juergen Weigert (1)
Julio Vannini (7)
Justin Haygood
Kálmán Kéménczy
Kevin Yeaux (10)
Klaas Freitag (19)
Klara Cihlarova
Klaus Kämpf
Klaus Singvogel
kl_eisbaer (10)
Lars Marowsky-Bree
Li Bin
Ludwig Nussel (6)
M. Edwin Zakaria
Manuel Trujillo
Marcus Hüwe (8)
Marcus Meissner (1)
Marcus Moeller (1)
Marcus Schaefer (3)
Martin Lasarsch (8)
Martin Mohring (8)
Martin Schmidkunz
Masim "Vavai" Sugianto (20)
Matt Sealey
Mauro Parra-Miranda
Michael Andres (1)
Michael Löffler (3)
Michael Skiba
Michal Marek (3)
Michal Vyskocil (8)
Michal Zugec
mrdocs
Nikanth Karthikesan (2)
Oprea Lucian
Oswin Zulu
Peter Nixon
Peter Pöml (4)
Petr Mladek (28)
Petr Uzel (1)
Philipp Thomas
Pragnesh Radadiya
Ray Chen
Ray Wang (1)
Ricardo Varas Santana (6)
Richard Bos (4)
Robert Lihm
Roland Haidl
Roman Drahtmueller
Rossana Motta (1)
Rupert Horstkötter (9)
Sascha Manns (45)
Sebastian Schöbinger (4)
Stanislav Visnovsky (7)
Stefan Haas (1)
Stefan Hundhammer (5)
Stefan Schubert (3)
Steffen Winterfeldt (4)
Stephan Kulow (10)
Suman Manjunath
Suresh Jayaraman (1)
Susanne Oberhauser (2)
Syamsul Qamar Ngabito
Thomas Göttlicher (4)
Thomas Schraitle (13)
Thruth Wang
Tuukka (11)
Ulrich Hecht
Wilken Gottwalt
Will Stephenson (1)
Xin Wei Hu





 

openSUSE Build Service Build Checks

1 Star2 Stars3 Stars4 Stars5 Stars (9 votes, average: 3.67 out of 5)
Loading ... Loading ...
Monday, September 8th, 2008 by Andreas Jaeger Digg!

Last week, Adrian announced that the openSUSE Build Service uses the same build checks that the internal autobuild uses and that these have been enabled for builds of factory and for builds of packages against factory.  This is an important step for building packages with the OBS since it means that a package that builds in the OBS, will not anymore fail once it has been submitted to build for factory.

We now have put all checks in packages so that they can be easily enhanced: brp-check-suse, rpmlint (the polices are in the rpmlint-Factory package) and post-build-checks.  The rpmlint checks are run after the package has been built, the brp-check-suse scripts might be run during the build since they contain specific rpm macros and finally post-build-checks is executed at the end.  The goal is to move everything to rpmlint checks.

These packages are some kind of automated QA: They check that the package follows the conventions that are used for openSUSE packages.  So, a good practice is whoever changes a packaging policy that s/he create as well some checks that enforce the new policy.  These checks might be initially warnings to make the transition easier and to see how many packages are affected – and will then later turned into errors.  With the policies in rpmlint-Factory it’s easy possible to change the result of a check from warning to error – or ignore it completely.

Here’s a list of some of the checks that are used and the reasoning behind them:

  • brp-boot-scripts: Simply check the init and boot scripts for LSB compliance
  • brp-check-bytecode-version: Check that all Java files are compiled with Java 1.5 bytecode (or older)
  • brp-check-pie: Check that certain binaries are compiled with -fpie to have position-independend code, this increases security for these programs.
  • brp-rootfs: Check that binaries on the defined root filesystem (/bin and /sbin) are only linked against libraries that are also on the root filesystem (/lib and /lib64) but not on filesystems that can be remote (like /usr or /opt).
  • check-file-list: Check that no invalid directories are used, e.g. /usr/X11R6
  • check-gcc-output: Check for warnings by gcc that indicate errors, e.g. stack overflow, uninitialized variables, undefined behaviour.
  • check-suid: Check that /etc/permissions is used and no package comes with any new suid binaries
  • check-packaged-twice: Check that no file is more than one (sub-) package of the just build rpm.

If you notice any problems with these checks, you can just fix them yourself since they are in these packages – or file a bug in bugzilla against the base system.

Note that I was not involved in the implementation of these and therefore can only give a quick overview, thanks for implemention and driving this goes especially to Dirk Müller, Rüdiger Oertel, JP Rosevear, and Adrian Schröter.


Comments

No comments yet.

Sorry, the comment form is closed at this time.