Code Monkey home page Code Monkey logo

obs-build's Introduction

This repository provides the build tool to build binary packages in a a safe and reproducible way. It can be used standalone or within the Open Build Service (OBS).

Latest packages for obs-build are available from openSUSE:Tools downloads.

Documentation is available here

Supported build environments

Unsecure

  • chroot
  • LXC

Secure but with limited reproducibility

  • docker
  • nspawn

Secure and with full reproducibility

  • KVM
  • XEN
  • ZVM (S390)

Experimental support

In addition, there is currently experimental support for

For hardware emulation there are

  • qemu, which runs a QEMU system emulator. This can be considered also secure and reproducible. It requires a kernel image as part of the build config.
  • The "emulator" VM can be used to run builds using any other emulator via a wrapper script.
  • A QEMU user land emulation is also possible. This would give higher speed, but requires a preparation inside of the base distribution for this mode.

Supported build formats

Major distribution package formats

Image formats

  • DockerfileDocker container via docker or podman tooling)
  • kiwi appliances—This includes a long list of formats supported by the kiwi tool From live USB stick images, network deployment images, VM images to docker containers
  • SUSE Product—SUSE product media builds
  • SimpleImagechroot tar ball based on rpm spec file syntax
  • Debian Livebuild
  • Preinstallimages—for speeding up builds esp. inside of OBS
  • OBS Product Builds, to generate rpm-md trees and installable images.

Desktop Image formats

  • AppImage
  • FlatPak
  • Snapcraft

Special modes and formats

  • debbuild: build debian debs from rpm spec files
  • debbootstrap: debian builds using debootstrap as the engine
  • mock: rpm spec file build using mock
  • collax: debian package variation
  • fissile: docker images based on BOSH dev releases
  • helm: helm charts
  • modulemd: modulemd rpm-md extensions

Use the --help option for more information.

obs-build's People

Contributors

abitrolly avatar adrianschroeter avatar andreas-schwab avatar bluca avatar bmwiedemann avatar bugfinder avatar coolo avatar cschneemann avatar dcermak avatar dimstar77 avatar dirkmueller avatar flichtenheld avatar gollub avatar ila-embsys avatar ionic avatar jblunck avatar jengelh avatar jimmykarily avatar lbt avatar lethliel avatar lnussel avatar m0ses avatar marcus-h avatar mlschroe avatar mmetak avatar mmohring avatar nickbroon avatar perlpunk avatar sjamgade avatar sjoerdsimons avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

obs-build's Issues

tests named test/testbuild* -> how to execute them

Hi,

during package build, I would like to run the provided tests. I added this (so far) to the Makefile (which works well):

"""
test:
cd test-debtransform && ./run.sh && rm -Rf test-debtransform/out
t/dist
cd t && ./live-build

.PHONY: test
"""

However, I am a bit clueless on what to do with the testbuild* scripts in the test/ subfolder.

Any hint for activating the tests (via the Makefile) is appreciated.

Mike

--clean before --root <dir> -> --clean gets ignored

Hi,

I haven't investigated this deeper, but using --clean and --root

together as options for "build" does only work if I give --root first, and then --clean. The otherway round: --clean has no effect.

Mike

[RFE] Support "Name <email>" format for changes file entries

The separate changelog file is quite nice to have, but I was a bit disappointed to find out that OBS doesn't generate them with the entry author set as "name ". This format is common across Debian and Red Hat systems, so it surprises me that it doesn't.

Could it be supported and a switch could be set in the build service configuration to use it instead of just email addresses? It helps for increasing accountability (especially in organizations where people wind up having similar email addresses). The Open Build Service does let you set your name for your account, so it can use that. If that's not filled in, then it could use the username.

Issue with local rpm builds and build root path containing %(something)

Maybe this is known/accepted behavior, but I'd like to report it anyways.

If given build root path is /foo/bar/%(bat), then 'bat' would be executed as a command when init_buildsystem is run. "bat" could be for example a script in user's home directory /home/user/nasty.sh.

This kind of character sequence could easily appear if the user makes a typo in their .oscrc build-root setting. For example %(repo) instead of %(repo)s. Or a nasty user might make it intentionally.

This particular line causes that:

https://github.com/openSUSE/obs-build/blob/master/build-pkg-rpm#L156

But in general looks like if rpm command is given %(something) as a parameter from the command line or from a spec file, that something gets executed.

This can become an issue in a machine where multiple users are building packages with osc/build using chroot build roots.

Easy way to test this:

$ touch foo.rpm
$ rpm -qpi './%(something)/foo.rpm'

archlinux, pacman can't install packages without 'libidn'...

Arch repos were synced yesterday and all packages failed to build with the same error.
Pacman couldn't find libidn.so.11 blah blah... when installing packages.

I managed to fix this by adding 'libidn' to my prjconf file.

Preinstall: libidn

Packages build fine, but they don't get published in repo... archlinux

Like I said in title... as far as I can tell it happens only with packages which have set_version part in _service file. OBS would download the git snapshot for example and update the pkgver in PKGBUILD file and successfully build the package, but the built result wouldn't be published in repo and previous binary package in repo would be deleted, so no package in repo.

Workaround: update pkgver field manually and remove set_version part in _service file. Then it builds and publishes as it should.

Examples:
https://build.opensuse.org/package/show/home:metakcahura/cool-old-term-git
https://build.opensuse.org/package/show/home:metakcahura/qupzilla

Roman Neuhauser told me to report this kinds of things in here... so here it goes, my first "report"... ;-)

Archlinux commits, rebuilds... release?

I know that archlinux code for obs was written as part of gsoc project, but I was wondering if this feature will be implemented for archlinux?

  1. CI_CNT is the number of commits
  2. B_CNT is the number of rebuilds (when the rebuild is triggered).

Release: CI_CNT>.<B_CNT

It can cause problems because if there are many packages in repo and you don't manually bump $pkrel field in PKGBUILD file then pacman won't update anything. The same thing goes for git snapshots and if $pkgver stays the same the set-version will just put $pkgrel back to 0 again and no update for pacman. ;-)

broken indentation

Don't mix tabs and spaces. Never assume any tab width.

Files:

  • build
  • common_functions
  • spec_add_patch
    and probably more.

Cannot create arch linux chroot

Sorry if the is a n00b question. I'm trying out the OpenSUSE build service and I'm trying to build a package locally for Arch Linux.

I'm actually running Arch Linux on my host and obtained the following packages to get the osc tool and the build functionality.

https://aur.archlinux.org/packages/obs-build-git/
https://aur.archlinux.org/packages/osc/

When I run osc build locally an attempt is made to set up an Arch Linux chroot on my system and initialise it but the initialisation fails. pacman is complaining about not being able to determine the root mount point. Here's the output

[dan@dan-sputnik z3]$ osc build --clean
Building PKGBUILD for Arch_Extra/x86_64
Getting buildinfo from server and store to /home/dan/dev/obs/home:delcypher:z3/z3/.osc/_buildinfo-Arch_Extra-x86_64.xml
Getting buildconfig from server and store to /home/dan/dev/obs/home:delcypher:z3/z3/.osc/_buildconfig-Arch_Extra-x86_64
Updating cache of required packages
100.0% cache miss. 0/156 dependencies cached.

Trying openSUSE Build Service server for glibc (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for bash (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for perl (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for sed (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for grep (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for coreutils (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for pacman (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for pacman-mirrorlist (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for gawk (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for gzip (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for filesystem (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for curl (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libidn (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for acl (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for gpgme (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libarchive (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for openssl (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libssh2 (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for zlib (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libassuan (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libgpg-error (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for attr (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for expat (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for xz (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for bzip2 (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for readline (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for lzo (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for krb5 (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for e2fsprogs (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for keyutils (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for ncurses (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for util-linux (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libutil-linux (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for binutils (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for pcre (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libcap (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for git (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for mono (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for jre7-openjdk-headless (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for gcc-libs (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for gcc (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libtool (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for perl-error (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for python (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libgdiplus (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for nss (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for lcms2 (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libcups (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libjpeg-turbo (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for java-runtime-common (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for ca-certificates-utils (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libmpc (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for tzdata (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for linux-api-headers (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for tar (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for gdbm (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for db (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libffi (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for glib2 (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libtiff (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for cairo (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for giflib (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libexif (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for p11-kit (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for sqlite (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for nspr (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for gnutls (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for avahi (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libusb (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libpng (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for findutils (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for mpfr (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for iana-etc (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libldap (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for texinfo (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for fontconfig (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libxext (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libxrender (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for mesa (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for pixman (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libtasn1 (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for nettle (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for dbus (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libdaemon (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for systemd (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for gmp (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libsasl (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for freetype2 (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libx11 (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for xextproto (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for renderproto (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libxdamage (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libdrm (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libxxf86vm (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for llvm-libs (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for wayland (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for elfutils (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libxshmfence (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libomxil-bellagio (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libtxc_dxtn (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libdbus (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for pam (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libsystemd (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for kmod (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libgcrypt (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for hwids (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libelf (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for lz4 (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for iptables (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for kbd (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libseccomp (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for less (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for harfbuzz (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libxcb (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for xproto (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for kbproto (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libxfixes (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for damageproto (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libpciaccess (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for xf86vidmodeproto (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libedit (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libtirpc (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for cracklib (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for pambase (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for shadow (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for graphite (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libxau (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libxdmcp (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for xcb-proto (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for fixesproto (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for mesa-libgl (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for autoconf (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for automake (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for fakeroot (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for file (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for sudo (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for patch (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for make (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for net-tools (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for pkg-config (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for inetutils (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for bison (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for flex (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for gettext (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for which (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for archlinux-keyring (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for gnupg (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for m4 (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for diffutils (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for guile (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libunistring (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libksba (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for npth (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for pinentry (Arch:Core), not found at download.opensuse.org.
 Trying openSUSE Build Service server for gc (Arch:Extra), not found at download.opensuse.org.
 Trying openSUSE Build Service server for libatomic_ops (Arch:Extra), not found at download.opensuse.org.
fetching packages for 'Arch:Extra'                                            116 MB 00:39
fetching packages for 'Arch:Core'                                             109 MB 01:07
WARNING: unknown packages get not verified, they can compromise your system !
Writing build configuration
Running build
logging output to /var/tmp/build-root/Arch_Extra-x86_64/.build.log...
[    0s] Memory limit set to 21962972KB
[    0s] Using BUILD_ROOT=/var/tmp/build-root/Arch_Extra-x86_64
[    0s] Using BUILD_ARCH=x86_64:i686:i586:i486:i386
[    0s]
[    0s]
[    0s] dan-sputnik started "build PKGBUILD" at Sun Nov 29 13:31:45 UTC 2015.
[    0s]
[    0s]
[    0s] processing recipe /home/dan/dev/obs/home:delcypher:z3/z3/PKGBUILD ...
[    0s] running changelog2spec --target rpm --file /home/dan/dev/obs/home:delcypher:z3/z3/PKGBUILD
[    0s] init_buildsystem --configdir /usr/lib/build/configs --cachedir /var/cache/build --clean --rpmlist /tmp/rpmlist.2pCkNI /home/dan/dev/obs/home:delcypher:z3/z3/PKGBUILD ...
[    1s] [1/31] preinstalling filesystem...
[    1s] [2/31] preinstalling pacman-mirrorlist...
[    1s] [3/31] preinstalling glibc...
[    1s] [4/31] preinstalling attr...
[    1s] [5/31] preinstalling bzip2...
[    1s] [6/31] preinstalling expat...
[    1s] [7/31] preinstalling grep...
[    1s] [8/31] preinstalling libidn...
[    1s] [9/31] preinstalling lzo...
[    1s] [10/31] preinstalling ncurses...
[    2s] [11/31] preinstalling perl...
[    3s] [12/31] preinstalling zlib...
[    3s] [13/31] preinstalling acl...
[    3s] [14/31] preinstalling openssl...
[    3s] [15/31] preinstalling readline...
[    3s] [16/31] preinstalling libssh2...
[    3s] [17/31] preinstalling bash...
[    3s] [18/31] preinstalling coreutils...
[    3s] [19/31] preinstalling e2fsprogs...
[    3s] [20/31] preinstalling xz...
[    3s] [21/31] preinstalling gawk...
[    3s] [22/31] preinstalling gzip...
[    3s] [23/31] preinstalling keyutils...
[    3s] [24/31] preinstalling libgpg-error...
[    3s] [25/31] preinstalling sed...
[    3s] [26/31] preinstalling gpgme...
[    3s] [27/31] preinstalling libassuan...
[    3s] [28/31] preinstalling krb5...
[    3s] [29/31] preinstalling libarchive...
[    3s] [30/31] preinstalling curl...
[    4s] [31/31] preinstalling pacman...
[    4s]
[    4s] reordering...cycle: freetype2 -> harfbuzz
[    4s]   breaking dependency harfbuzz -> freetype2
[    4s] done
[    4s] [1/156] installing archlinux-keyring-20150605-1
[    4s] looking for conflicting packages...
[    4s] Packages (1) archlinux-keyring-20150605-1
[    4s] error: could not determine root mount point /
[    4s] error: not enough free disk space
[    4s] error: failed to commit transaction (not enough free disk space)
[    4s] Errors occurred, no packages were upgraded.
[    4s] exit ...
[    4s]
[    4s] dan-sputnik failed "build PKGBUILD" at Sun Nov 29 13:31:49 UTC 2015.
[    4s]

The buildroot was: /var/tmp/build-root/Arch_Extra-x86_64

rpm changed behaviour, spec file parse need to follow

We need to find a way to follow the changed behaviour of rpm when parsing complex conditions. For example:

%if ! 0%{?rhel} || 0%{?fedora}

has changed precedence. since quite some years, but our build script parser still handles it as

%if (! 0%{..}) || 0%{..}

not sure what we can take as trigger to follow this behaviour. If we just change the behaviour we will influence builds of current and older distros.

license situation unclear

Hi Michael,

when scanning obs-build with the licensecheck tool from Debian, the result is rather disappointing:

"""
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: OBS Build
Upstream-Contact: Michael Schroeder https://github.com/mlschroe
Source: https://github.com/openSUSE/obs-build

Files: Build.pm
Build/Arch.pm
Build/Deb.pm
Build/Kiwi.pm
Build/Rpm.pm
Build/Susetags.pm
Build/Zypp.pm
emulator/emulator.sh
initvm.c
test-debtransform/run.sh
test/testbuild.sh
Copyright: No copyright
License: UNKNOWN
FIXME

Files: Build/LiveBuild.pm
Copyright: No copyright
License: GPL-2+
"""

Can you please provide:

o a COPYING or LICENSE file
o license and copyright information in every code file header

I cannot upload this piece of software to Debian, if this is missing.

Thanks,
Mike

Please add tags for github to generate tarballs

It seems that simply latest snapshot are dated and used in OBS to build packages.
Could you please tag the commits used for those builds? That way github would generate tarballs via it's "releases" feature and one would be able to just download the tarballs. I'm packaging obs-build for Debian and at the moment I have to rely on watching and downloading tarballs from: http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_14.04/build_(.*)\.orig\.tar\.gz which is ugly, because that tarball does not match the git checkout. Specifically sles11.conf is a symlink in git, yet it's a flat file in the orig.tar.gz OBS generated tarball.

Anyway... Please tag top-level commits such that one can download tarballs direct from github, without resorting to downloading tarballs by hash.

unrpm and vc lack man pages

Hi,

the tools/scripts unrpm and vc get installed to /usr/bin, but do not have a man page. If those tools are just helpers for obs-build and not meant to be executed by the user directly, an idea might be to move the into the {_libexec} path.

If they are supposed to be in /usr/bin, I'd appreciate a man page for them.

Thanks,
Mike

OBS Worker fails to build with LXC 1.1

I get these error messages with LXC 1.1.2 based worker on openSUSE Leap 42.1:

[ 14s] booting lxc...
[ 14s] lxc-start: lsm/apparmor.c: apparmor_process_label_set: 169 If you really want to start this container, set
[ 14s] lxc-start: lsm/apparmor.c: apparmor_process_label_set: 170 lxc.aa_allow_incomplete = 1
[ 14s] lxc-start: lsm/apparmor.c: apparmor_process_label_set: 171 in your container configuration file
[ 14s] lxc-start: sync.c: __sync_wait: 51 invalid sequence number 1. expected 4
[ 14s] lxc-start: start.c: __lxc_start: 1164 failed to spawn 'obsbuild:root_1'
[ 14s] lxc-start: cgfs.c: cgroup_rmdir: 207 Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/hugetlb/lxc/obsbuild:root_1
[ 14s] lxc-start: cgfs.c: cgroup_rmdir: 207 Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/perf_event/lxc/obsbuild:root_1
[ 14s] lxc-start: cgfs.c: cgroup_rmdir: 207 Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/net_cls,net_prio/lxc/obsbuild:root_1
[ 14s] lxc-start: cgfs.c: cgroup_rmdir: 207 Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/freezer/lxc/obsbuild:root_1
[ 14s] lxc-start: cgfs.c: cgroup_rmdir: 207 Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/devices/lxc/obsbuild:root_1
[ 14s] lxc-start: cgfs.c: cgroup_rmdir: 207 Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/memory/lxc/obsbuild:root_1
[ 14s] lxc-start: cgfs.c: cgroup_rmdir: 207 Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/blkio/lxc/obsbuild:root_1
[ 14s] lxc-start: cgfs.c: cgroup_rmdir: 207 Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/cpu,cpuacct/lxc/obsbuild:root_1
[ 14s] lxc-start: cgfs.c: cgroup_rmdir: 207 Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/cpuset/lxc/obsbuild:root_1

/proc/sys/fs/binfmt_misc/register: write failed

Setup:

Machine1 (OBS server) Machine2 (OBS worker)
openSUSE 13.1 (x86_64) openSUSE 13.1 (x86_64)
OBS server: 2.5.3 OBS worker: 2.5.3
build-20140424-1.1 qemu-linux-user-2.0.0-239.1
build-initvm-x86_64-20140424-1.1 OBS_WORKER_INSTANCES=1

I'm using "QEMU chroot" cross-build setup.
I have below in the project config:

%ifarch armv7el
Hostarch: x86_64
Preinstall: qemu-linux-user-arm
%endif

Failure:

[    1s] write: Invalid argument
[    1s] /proc/sys/fs/binfmt_misc/register: write failed
[    1s] /var/run/obs/worker/1/build/qemu-reg: line 7: write failed. Content: :aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-aarch64-binfmt:P
[    1s] 
[    1s] /.build/qemu-reg: No such file or directory
[    1s] /.build/qemu-reg: failed. Trying alternate binfmt file
[    1s] /usr/lib/build/qemu-reg: No such file or directory
[    1s] /usr/lib/build/qemu-reg: binfmt registration failed

Steps:

1. When the worker run the first (since bootup) cross build, there's no failure message:
[    0s] Memory limit set to 35790464KB
[    0s] Using BUILD_ROOT=/local/ramdrive/obs/worker/root_1
[    0s] Using BUILD_ARCH=armv7el
[    0s] 
[    0s] 
[    0s] obs-worker-008 started "build krb5.spec" at Fri May 30 17:49:37 UTC 2014.
[    0s] 
[    0s] Building krb5 for project 'Trunk:MxC' repository 'standard' arch 'armv7el' srcmd5 '035ac9ac0a2a378824d5a9d16b62ab8a'
[    0s] 
[    0s] processing recipe /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec ...
[    0s] running changelog2spec --target rpm --file /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec
[    0s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs --cachedir /var/cache/build --clean --rpmlist /local/ramdrive/obs/worker/root_1/.build.rpmlist /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec build rpmlint-Factory ...
[    0s] registering binfmt handlers for cross build: /var/run/obs/worker/1/build/initvm.x86_64
[    0s] interpreter for 'aarch64' is -1
[    0s] interpreter for 'aarch64' is -1
[    0s] interpreter for 'arm' is -1
[    0s] interpreter for 'armeb' is -1
[    0s] interpreter for 'ppc' is -1
[    0s] interpreter for 'mips' is -1
[    0s] interpreter for 'mipsel' is -1
[    0s] interpreter for 'sh4' is -1
[    0s] interpreter for 'sh4eb' is -1
[    1s] cycle: glibc -> glibc-common -> bash
[    1s]   breaking dependency glibc-common -> bash
[    1s] cycle: glibc -> glibc-common
[    1s]   breaking dependency glibc -> glibc-common
[    1s] cycle: glibc -> nss-softokn-freebl
[    1s]   breaking dependency nss-softokn-freebl -> glibc
[    1s] cycle: libgcc -> glibc -> nss-softokn-freebl
[    1s]   breaking dependency glibc -> nss-softokn-freebl
[    1s] cycle: libgcc -> glibc
[    1s]   breaking dependency libgcc -> glibc
[    1s] cycle: coreutils -> pam
[    1s]   breaking dependency coreutils -> pam
[    1s] cycle: rpm-libs -> rpm
[    1s]   breaking dependency rpm -> rpm-libs
[    1s] [1/62] preinstalling setup...
2. For any subsequent cross-build, there's a failure message (even I immediately do the rebuilt of the same package):
[    0s] Memory limit set to 35790464KB
[    0s] Using BUILD_ROOT=/local/ramdrive/obs/worker/root_1
[    0s] Using BUILD_ARCH=armv7el
[    0s] 
[    0s] 
[    0s] obs-worker-008 started "build krb5.spec" at Fri May 30 18:23:47 UTC 2014.
[    0s] 
[    0s] Building krb5 for project 'Trunk:MxC' repository 'standard' arch 'armv7el' srcmd5 '035ac9ac0a2a378824d5a9d16b62ab8a'
[    0s] 
[    0s] processing recipe /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec ...
[    0s] running changelog2spec --target rpm --file /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec
[    0s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs --cachedir /var/cache/build --clean --rpmlist /local/ramdrive/obs/worker/root_1/.build.rpmlist /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec build rpmlint-Factory ...
[    1s] registering binfmt handlers for cross build: /var/run/obs/worker/1/build/initvm.x86_64
[    1s] interpreter for 'aarch64' is -1
[    1s] write: Invalid argument
[    1s] /proc/sys/fs/binfmt_misc/register: write failed
[    1s] /var/run/obs/worker/1/build/qemu-reg: line 7: write failed. Content: :aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-aarch64-binfmt:P
[    1s] 
[    1s] /.build/qemu-reg: No such file or directory
[    1s] /.build/qemu-reg: failed. Trying alternate binfmt file
[    1s] /usr/lib/build/qemu-reg: No such file or directory
[    1s] /usr/lib/build/qemu-reg: binfmt registration failed
[    2s] cycle: glibc -> glibc-common -> bash
[    2s]   breaking dependency glibc-common -> bash
[    2s] cycle: glibc -> glibc-common
[    2s]   breaking dependency glibc -> glibc-common
[    2s] cycle: glibc -> nss-softokn-freebl
[    2s]   breaking dependency nss-softokn-freebl -> glibc
[    2s] cycle: libgcc -> glibc -> nss-softokn-freebl
[    2s]   breaking dependency glibc -> nss-softokn-freebl
[    2s] cycle: libgcc -> glibc
[    2s]   breaking dependency libgcc -> glibc
[    2s] cycle: coreutils -> pam
[    2s]   breaking dependency coreutils -> pam
[    2s] cycle: rpm-libs -> rpm
[    2s]   breaking dependency rpm -> rpm-libs
[    2s] [1/62] preinstalling setup...
3. After reboot on the worker machine, the first build is back to OK, and the subsequent builds are with failure message:
[    0s] Memory limit set to 35790464KB
[    0s] Using BUILD_ROOT=/local/ramdrive/obs/worker/root_1
[    0s] Using BUILD_ARCH=armv7el
[    0s] 
[    0s] 
[    0s] obs-worker-008 started "build krb5.spec" at Fri May 30 18:40:02 UTC 2014.
[    0s] 
[    0s] Building krb5 for project 'Trunk:MxC' repository 'standard' arch 'armv7el' srcmd5 '035ac9ac0a2a378824d5a9d16b62ab8a'
[    0s] 
[    0s] processing recipe /local/ramdrive/obs/worker/root_2/.build-srcdir/krb5.spec ...
[    0s] running changelog2spec --target rpm --file /local/ramdrive/obs/worker/root_2/.build-srcdir/krb5.spec
[    0s] init_buildsystem --configdir /var/run/obs/worker/2/build/configs --cachedir /var/cache/build --clean --rpmlist /local/ramdrive/obs/worker/root_2/.build.rpmlist /local/ramdrive/obs/worker/root_2/.build-srcdir/krb5.spec build rpmlint-Factory ...
[    4s] registering binfmt handlers for cross build: /var/run/obs/worker/2/build/initvm.x86_64
[    4s] interpreter for 'aarch64' is -1
[    4s] interpreter for 'aarch64' is -1
[    4s] interpreter for 'arm' is -1
[    4s] interpreter for 'armeb' is -1
[    4s] interpreter for 'ppc' is -1
[    4s] interpreter for 'mips' is -1
[    4s] interpreter for 'mipsel' is -1
[    4s] interpreter for 'sh4' is -1
[    4s] interpreter for 'sh4eb' is -1
[    5s] cycle: glibc -> glibc-common -> bash
[    5s]   breaking dependency glibc-common -> bash
[    5s] cycle: glibc -> glibc-common
[    5s]   breaking dependency glibc -> glibc-common
[    5s] cycle: glibc -> nss-softokn-freebl
[    5s]   breaking dependency nss-softokn-freebl -> glibc
[    5s] cycle: libgcc -> glibc -> nss-softokn-freebl
[    5s]   breaking dependency glibc -> nss-softokn-freebl
[    5s] cycle: libgcc -> glibc
[    5s]   breaking dependency libgcc -> glibc
[    5s] cycle: coreutils -> pam
[    5s]   breaking dependency coreutils -> pam
[    5s] cycle: rpm-libs -> rpm
[    5s]   breaking dependency rpm -> rpm-libs
[    5s] [1/62] preinstalling setup...
[    0s] Memory limit set to 35790464KB
[    0s] Using BUILD_ROOT=/local/ramdrive/obs/worker/root_1
[    0s] Using BUILD_ARCH=armv7el
[    0s] 
[    0s] 
[    0s] obs-worker-008 started "build krb5.spec" at Fri May 30 18:50:38 UTC 2014.
[    0s] 
[    0s] Building krb5 for project 'Trunk:MxC' repository 'standard' arch 'armv7el' srcmd5 '035ac9ac0a2a378824d5a9d16b62ab8a'
[    0s] 
[    0s] processing recipe /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec ...
[    0s] running changelog2spec --target rpm --file /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec
[    0s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs --cachedir /var/cache/build --clean --rpmlist /local/ramdrive/obs/worker/root_1/.build.rpmlist /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec build rpmlint-Factory ...
[    3s] registering binfmt handlers for cross build: /var/run/obs/worker/1/build/initvm.x86_64
[    3s] interpreter for 'aarch64' is -1
[    3s] write: Invalid argument
[    3s] /proc/sys/fs/binfmt_misc/register: write failed
[    3s] /var/run/obs/worker/1/build/qemu-reg: line 7: write failed. Content: :aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-aarch64-binfmt:P
[    3s] 
[    3s] /.build/qemu-reg: No such file or directory
[    3s] /.build/qemu-reg: failed. Trying alternate binfmt file
[    3s] /usr/lib/build/qemu-reg: No such file or directory
[    3s] /usr/lib/build/qemu-reg: binfmt registration failed
[    4s] cycle: glibc -> glibc-common -> bash
[    4s]   breaking dependency glibc-common -> bash
[    4s] cycle: glibc -> glibc-common
[    4s]   breaking dependency glibc -> glibc-common
[    4s] cycle: glibc -> nss-softokn-freebl
[    4s]   breaking dependency nss-softokn-freebl -> glibc
[    4s] cycle: libgcc -> glibc -> nss-softokn-freebl
[    4s]   breaking dependency glibc -> nss-softokn-freebl
[    4s] cycle: libgcc -> glibc
[    4s]   breaking dependency libgcc -> glibc
[    4s] cycle: coreutils -> pam
[    4s]   breaking dependency coreutils -> pam
[    4s] cycle: rpm-libs -> rpm
[    4s]   breaking dependency rpm -> rpm-libs
[    4s] [1/62] preinstalling setup...

Network support for kvm

Virtualization of kvm can not use network
However, when build a commercial program, connect license server to get certification during the build

Are there any particular reason why you do not support the network kvm?

lxc-create opensuse 13.1/13.2 containers

Hi,

The expanddeps scripts does not work when we call this command :

lxc-create -t opensuse -n test -- --release 13.2

Configuration :

lxc 1.1.2 (repo : home:T1loc)
host : openSUSE 13.2 64bits
build package : Version : 20150115-2.4.1

The output command :

Retrieving: snapper-zypp-plugin-0.2.4-4.1.noarch.rpm ....................................................................................................................................................................................[fait]
Récupération de paquet btrfsmaintenance-0.1-1.1.noarch                                                                                                                                             (312/312),  11,5 KiB (  9,4 KiB décompressé)
Retrieving: btrfsmaintenance-0.1-1.1.noarch.rpm .........................................................................................................................................................................................[fait]
initializing /var/cache/lxc/opensuse/13.2/partial-x86_64/.srcfiles.cache ...
/usr/lib/build/createdirdeps --oldfile /var/cache/lxc/opensuse/13.2/partial-x86_64/.srcfiles.cache /var/cache/lxc/opensuse/13.2/partial-x86_64-packages/var/cache/zypp/packages/repo-oss/suse/x86_64
/usr/lib/build/createdirdeps --oldfile /var/cache/lxc/opensuse/13.2/partial-x86_64/.srcfiles.cache /var/cache/lxc/opensuse/13.2/partial-x86_64-packages/var/cache/zypp/packages/repo-oss/suse/noarch
/usr/lib/build/createdirdeps --oldfile /var/cache/lxc/opensuse/13.2/partial-x86_64/.srcfiles.cache /var/cache/lxc/opensuse/13.2/partial-x86_64-packages/var/cache/zypp/packages/update/x86_64
/usr/lib/build/createdirdeps --oldfile /var/cache/lxc/opensuse/13.2/partial-x86_64/.srcfiles.cache /var/cache/lxc/opensuse/13.2/partial-x86_64-packages/var/cache/zypp/packages/update/noarch
expanding package dependencies...
Use of uninitialized value $recipe in pattern match (m//) at /usr/lib/build/expanddeps line 100.
Use of uninitialized value $recipe in pattern match (m//) at /usr/lib/build/expanddeps line 103.
Use of uninitialized value within %packs in hash element at /usr/lib/build/expanddeps line 288.
Use of uninitialized value in concatenation (.) or string at /usr/lib/build/expanddeps line 288.
Use of uninitialized value within %packs in exists at /usr/lib/build/expanddeps line 289.
unsupported url for 'libgcc_s1': 
Failed to download 'opensuse base'
failed to install opensuse
lxc-create: lxccontainer.c: create_run_template: 1202 container creation template for web failed
lxc-create: lxc_create.c: main: 274 Error creating container web

The step who doesn't work (I think) :

/usr/lib/build/expanddeps --dist /var/cache/lxc/opensuse/13.2/partial-x86_64-packages/opensuse.conf --depfile /var/cache/lxc/opensuse/13.2/partial-x86_64/.srcfiles.cache --archpath x86_64:i686:i586:i486:i386 --configdir /usr/lib/build/configs

The sub function return always undef :
/usr/lib/build/Build.pm

sub recipe2buildtype {
  my ($recipe) = @_;
  return $1 if $recipe =~ /\.(spec|dsc|kiwi|livebuild)$/;
  $recipe =~ s/.*\///;
  $recipe =~ s/^_service:.*://;
  return 'arch' if $recipe eq 'PKGBUILD';
  return 'preinstallimage' if $recipe eq '_preinstallimage';
  return undef;
}

If you need more information, tell me.

Regards,
Florian

bs_sched not scanning imported .deb files

bs_sched from obs-server-2.6.2 is not pulling in .deb files from /srv/obs/build/Collax:5.8/standard/x86_64/:full for no obvious reason other than "dirty" (what does that even mean?).

$ zosc meta prj Collax:5.8
<project name="Collax:5.8">
  <title/>
  <description/>
  <person userid="jengelh" role="maintainer"/>
  <repository name="standard">
    <arch>i586</arch>
    <arch>x86_64</arch>
  </repository>
</project>

$ zosc meta prjconf Collax:5.8
Repotype: debian
Type: dsc
Preinstall: bash perl5.8 sed grep coreutils findutils device-mapper
Preinstall: ncurses5 acl attr libgcc1 libc6 bzip2
Preinstall: libreadline4 gawk dpkg xz gzip zlib1g tar
Preinstall: sysvinit base-files util-linux
Preinstall: base-passwd libc6

#Runscripts:
#VMinstall: binutils util-linux device-mapper
#Order: user-setup:base-files

Required: acl attr libgcc1 libc6
Required: autoconf automake binutils gcc gettext
Required: libtool ncurses5 perl5.8 zlib1g dpkg
Required: xz bzip2 gzip tar

Support: fakeroot
Support: bison cpio cracklib-runtime cvs login
Support: file findutils flex diff
Support: groff-base gzip info less
Support: make man module-init-tools
Support: net-tools util-linux
Support: patch procps psmisc rcs strace
Support: texinfo unzip vim ncurses-base
Support: mount initscripts
# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=493938
# http://lists.opensuse.org/opensuse-buildservice/2009-03/msg00100.html
Support: mktemp

# circular dependendencies in openjdk stack
Order: openjdk-6-jre-lib:openjdk-6-jre-headless
Order: openjdk-6-jre-headless:ca-certificates-java

Support: sysvinit

Keep: binutils cpp cracklib file findutils gawk gcc gcc-ada gcc-c++
Keep: gzip libada libstdc++ libunwind
Keep: libunwind-devel libzio make mktemp pam-devel pam-modules
Keep: patch perl rcs timezone

Prefer: cvs libesd0 libfam0 libfam-dev expect

Prefer: gawk locales default-jdk
Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa
Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel
Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2
Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp
Prefer: glib-sharp libzypp-zmd-backend mDNSResponder

Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++
Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g
Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links
Prefer: -crossover-office -libgnutls11-dev

Conflict: ghostscript-library:ghostscript-mini

Ignore: sysvinit:initscripts

Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release
Ignore: gettext-devel:libgcj,libstdc++-devel
Ignore: pwdutils:openslp
Ignore: pam-modules:resmgr
Ignore: rpm:suse-build-key,build-key
Ignore: bind-utils:bind-libs
Ignore: alsa:dialog,pciutils
Ignore: portmap:syslogd
Ignore: fontconfig:freetype2
Ignore: fontconfig-devel:freetype2-devel
Ignore: xorg-x11-libs:freetype2
Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng
Ignore: apache2:logrotate
Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis
Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,krb5,libjasper
Ignore: kdelibs3-devel:libvorbis-devel
Ignore: kdebase3:kdebase3-ksysguardd,OpenEXR,dbus-1,dbus-1-qt,hal,powersave,openslp,libusb
Ignore: kdebase3-SuSE:release-notes
Ignore: jack:alsa,libsndfile
Ignore: libxml2-devel:readline-devel
Ignore: gnome-vfs2:gnome-mime-data,desktop-file-utils,cdparanoia,dbus-1,dbus-1-glib,krb5,hal,libsmbclient,fam,file_alteration
Ignore: libgda:file_alteration
Ignore: gnutls:lzo,libopencdk
Ignore: gnutls-devel:lzo-devel,libopencdk-devel
Ignore: pango:cairo,glitz,libpixman,libpng
Ignore: pango-devel:cairo-devel
Ignore: cairo-devel:libpixman-devel
Ignore: libgnomeprint:libgnomecups
Ignore: libgnomeprintui:libgnomecups
Ignore: orbit2:libidl
Ignore: orbit2-devel:libidl,libidl-devel,indent
Ignore: qt3:libmng
Ignore: qt-sql:qt_database_plugin
Ignore: gtk2:libpng,libtiff
Ignore: libgnomecanvas-devel:glib-devel
Ignore: libgnomeui:gnome-icon-theme,shared-mime-info
Ignore: scrollkeeper:docbook_4,sgml-skel
Ignore: gnome-desktop:libgnomesu,startup-notification
Ignore: python-devel:python-tk
Ignore: gnome-pilot:gnome-panel
Ignore: gnome-panel:control-center2
Ignore: gnome-menus:kdebase3
Ignore: gnome-main-menu:rug
Ignore: libbonoboui:gnome-desktop
Ignore: postfix:pcre
Ignore: docbook_4:iso_ent,sgml-skel,xmlcharent
Ignore: control-center2:nautilus,evolution-data-server,gnome-menus,gstreamer-plugins,gstreamer,metacity,mozilla-nspr,mozilla,libxklavier,gnome-desktop,startup-notification
Ignore: docbook-xsl-stylesheets:xmlcharent
Ignore: liby2util-devel:libstdc++-devel,openssl-devel
Ignore: yast2:yast2-ncurses,yast2-theme-SuSELinux,perl-Config-Crontab,yast2-xml,SuSEfirewall2
Ignore: yast2-core:netcat,hwinfo,wireless-tools,sysfsutils
Ignore: yast2-core-devel:libxcrypt-devel,hwinfo-devel,blocxx-devel,sysfsutils,libstdc++-devel
Ignore: yast2-packagemanager-devel:rpm-devel,curl-devel,openssl-devel
Ignore: yast2-devtools:perl-XML-Writer,libxslt,pkgconfig
Ignore: yast2-installation:yast2-update,yast2-mouse,yast2-country,yast2-bootloader,yast2-packager,yast2-network,yast2-online-update,yast2-users,release-notes,autoyast2-installation
Ignore: yast2-bootloader:bootloader-theme
Ignore: yast2-packager:yast2-x11
Ignore: yast2-x11:sax2-libsax-perl
Ignore: openslp-devel:openssl-devel
Ignore: java-1_4_2-sun:xorg-x11-libs
Ignore: java-1_4_2-sun-devel:xorg-x11-libs
Ignore: kernel-um:xorg-x11-libs
Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed
Ignore: yast2-country:yast2-trans-stats
Ignore: susehelp:susehelp_lang,suse_help_viewer
Ignore: mailx:smtp_daemon
Ignore: cron:smtp_daemon
Ignore: hotplug:syslog
Ignore: pcmcia:syslog
Ignore: avalon-logkit:servlet
Ignore: jython:servlet
Ignore: ispell:ispell_dictionary,ispell_english_dictionary
Ignore: aspell:aspel_dictionary,aspell_dictionary
Ignore: smartlink-softmodem:kernel,kernel-nongpl
Ignore: OpenOffice_org-de:myspell-german-dictionary
Ignore: mediawiki:php-session,php-gettext,php-zlib,php-mysql,mod_php_any
Ignore: squirrelmail:mod_php_any,php-session,php-gettext,php-iconv,php-mbstring,php-openssl

Ignore: simias:mono(log4net)
Ignore: zmd:mono(log4net)
Ignore: horde:mod_php_any,php-gettext,php-mcrypt,php-imap,php-pear-log,php-pear,php-session,php
Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
Ignore: xdg-menu:desktop-data
Ignore: nessus-libraries:nessus-core
Ignore: evolution:yelp
Ignore: mono-tools:mono(gconf-sharp),mono(glade-sharp),mono(gnome-sharp),mono(gtkhtml-sharp),mono(atk-sharp),mono(gdk-sharp),mono(glib-sharp),mono(gtk-sharp),mono(pango-sharp)
Ignore: gecko-sharp2:mono(glib-sharp),mono(gtk-sharp)
Ignore: vcdimager:libcdio.so.6,libcdio.so.6(CDIO_6),libiso9660.so.4,libiso9660.so.4(ISO9660_4)
Ignore: libcdio:libcddb.so.2
Ignore: gnome-libs:libgnomeui
Ignore: nautilus:gnome-themes
Ignore: gnome-panel:gnome-themes
Ignore: gnome-panel:tomboy

Substitute: utempter

%ifnarch s390 s390x ppc ia64
Substitute: java2-devel-packages java-1_4_2-sun-devel
%else
 %ifnarch s390x
Substitute: java2-devel-packages java-1_4_2-ibm-devel
 %else
Substitute: java2-devel-packages java-1_4_2-ibm-devel xorg-x11-libs-32bit
 %endif
%endif

Substitute: yast2-devel-packages docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer popt-devel sgml-skel update-desktop-files yast2 yast2-devtools yast2-packagemanager-devel yast2-perl-bindings yast2-testsuite

#
# SUSE compat mappings
#
Substitute: gcc-c++ gcc
Substitute: libsigc++2-devel libsigc++-2.0-dev
Substitute: glibc-devel-32bit
Substitute: pkgconfig pkg-config



%ifarch %ix86
Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-debug kernel-um kernel-xen kernel-kdump
%endif
%ifarch ia64
Substitute: kernel-binary-packages kernel-default kernel-debug
%endif
%ifarch x86_64
Substitute: kernel-binary-packages kernel-default kernel-smp kernel-xen kernel-kdump
%endif
%ifarch ppc
Substitute: kernel-binary-packages kernel-default kernel-kdump kernel-ppc64 kernel-iseries64
%endif
%ifarch ppc64
Substitute: kernel-binary-packages kernel-ppc64 kernel-iseries64
%endif
%ifarch s390
Substitute: kernel-binary-packages kernel-s390
%endif
%ifarch s390x
Substitute: kernel-binary-packages kernel-default
%endif

%define collax_version 50800

Macros:
%collax_version 50800


$ zosc meta prj home:jengelh
<project name="home:jengelh">
  <title/>
  <description/>
  <person userid="jengelh" role="bugowner"/>
  <person userid="jengelh" role="maintainer"/>
  <build>
    <enable/>
  </build>
  <publish>
    <disable/>
  </publish>
  <debuginfo>
    <enable/>
  </debuginfo>
  <repository name="openSUSE_13.2">
    <path project="zarafa-build-dependencies" repository="openSUSE_13.2"/>
    <arch>x86_64</arch>
  </repository>
  <repository name="Debian_7.0">
    <path project="zarafa-build-dependencies" repository="Debian_7.0"/>
    <arch>x86_64</arch>
  </repository>
  <repository name="Collax_5.8">
    <path project="Collax:5.8" repository="standard"/>
    <arch>x86_64</arch>
  </repository>
</project>

$ zosc r home:jengelh/zarafa -v
openSUSE_13.2        x86_64     succeeded(unpublished)
Debian_7.0           x86_64     failed
Collax_5.8           x86_64     unresolvable: nothing provides debhelper >= 4.0.0
      nothing provides binutils >= 2.12.90.0.9
      nothing provides devscripts
      nothing provides autotools-dev
      nothing provides g++
      nothing provides automake >= 1:1.9 | automake1.9
      nothing provides autoconf >= 2.59
      nothing provides libtool >= 1.5
      nothing provides pkg-config >= 0.18
      nothing provides libssl-dev
      nothing provides zarafa-libvmime-dev >= 0.9.1
      nothing provides uuid-dev
      nothing provides php4-dev | php5-dev
      nothing provides libmysqlclient15-dev | libmysqlclient-dev
      nothing provides libcurl3-dev | libcurl4-openssl-dev
      nothing provides gettext
      nothing provides libldap2-dev
      nothing provides flex
      nothing provides bison
      nothing provides m4
      nothing provides zlib1g-dev
      nothing provides fakeroot
      nothing provides libncurses5-dev
      nothing provides libncursesw5-dev
      nothing provides libxml2-dev
      nothing provides libpam0g-dev
      nothing provides libkrb5-dev
      nothing provides libboost-date-time1.35-dev | libboost-date-time1.40-dev | libboost-date-time1.46-dev | libboost-date-time-dev
      nothing provides libboost-filesystem1.35-dev | libboost-filesystem1.40-dev | libboost-filesystem1.46-dev | libboost-filesystem-dev
      nothing provides libboost-thread1.35-dev | libboost-thread1.40-dev | libboost-thread1.46-dev | libboost-thread-dev
      nothing provides libicu-dev
      nothing provides libical-zarafa-dev
      nothing provides swig
      nothing provides xmlto
      nothing provides python-dev
      nothing provides gsoap-zarafa
      nothing provides libgsoap-zarafa-dev
      nothing provides libgoogle-perftools-dev
      nothing provides acl
      nothing provides attr
      nothing provides libgcc1
      nothing provides libc6
      nothing provides autoconf
      nothing provides automake
      nothing provides binutils
      nothing provides gcc
      nothing provides libtool
      nothing provides ncurses5
      nothing provides perl5.8
      nothing provides zlib1g
      nothing provides dpkg
      nothing provides xz
      nothing provides bzip2
      nothing provides gzip
      nothing provides tar

devserver5:/srv/obs/build/Collax:5.8/standard/x86_64 # ls -al
total 136
drwxr-xr-x 3 obsrun obsrun   4096 Aug 31 13:37 .
drwxr-xr-x 4 obsrun obsrun   4096 Aug 25 16:19 ..
-rw-r--r-- 1 obsrun obsrun     11 Aug 25 13:14 :bininfo
-rw-r--r-- 1 obsrun obsrun     79 Aug 25 16:47 :depends
drwxr-xr-x 2 obsrun obsrun 102400 Aug 25 13:17 :full
-rw-r--r-- 1 obsrun obsrun    120 Aug 31 13:37 :full.solv
-rw-r--r-- 1 obsrun obsrun     50 Aug 25 16:47 :packstatus
-rw-r--r-- 1 obsrun obsrun     32 Aug 25 16:47 :repodone
-rw-r--r-- 1 obsrun obsrun     34 Aug 25 16:47 :repoinfo
-rw-r--r-- 1 obsrun obsrun      8 Aug 25 16:47 :schedulerstate
devserver5:/srv/obs/build/Collax:5.8/standard/x86_64 # ls -l :full/gzip*
-rw-r--r-- 1 obsrun obsrun 41260 Aug 25 16:39 :full/gzip_1.3.12-ak15_amd64.deb
-rw-r--r-- 1 obsrun obsrun 26890 Aug 25 16:39 :full/gzip-doc_1.3.12-ak15_amd64.deb

# scheduler_x86_64.log:
2015-08-31 13:37:20: looking at high prio home:jengelh/Collax_5.8 (2/0/3/0/240)
  - home:jengelh/Collax_5.8
    scanning repo home:jengelh/Collax_5.8...
    scanning repo Collax:5.8/standard...
    (dirty: 1461)
    expanding dependencies
    sorting 2 packages
      - zarafa (dsc)
        unresolvable:
            nothing provides debhelper >= 4.0.0, nothing provides binutils >= 2.[...]
      - zcp-nonoss (no spec/dsc/kiwi file)
    broken: 1
    unresolvable: 1
    building: 0, notready: 0, unfinished: 0
    took 0 seconds to check the packages
    publishing is disabled
    leaf prp, freeing data

FR: please make build-recipe-kiwi provide prjconf rpm macros to buildroot

build-recipe-spec copies rpm macros from the prjconf into the buildroot so that .spec files can use them. However the same is not true for build-recipe-kiwi. Normally this is not needed, but in the case of building containment rpms, it is useful to have these macros accessible by kiwi_post_run (e.g. via rpm --eval) and by rpmbuild which is invoked by kiwi_post_run. This would allow project-specific parameters to be passed to generic scripts in the containment-rpm package.

Currently I am working around this by installing another rpm in the kiwi build root which installs the required macros into /etc/rpm, but this is an ugly heavyweight hack:

It would be nice if it was enough to define the macros in the prjconf.

add patch listing support

Obs source service uses "perl -I/usr/lib/build -MBuild -e Build::show config specFile sources"
Could you also add ability to print patches from spec?
ie
"perl -I/usr/lib/build -MBuild -e Build::show config specFile patches"

signing and build-compare

Not sure if I already reported a bugzilla bug, in any case:

build-compare has to compare old signed package and new signed package. But right now the process compares just old signed package and new not-yet-signed package. This is a bug in the buildservice, not in build-compare. As a second step build-compare MAY need an update to interpret the sign.

https://bugzilla.suse.com/show_bug.cgi?id=906160

"HTTP Error 400" occurs when "osc commit".

Hi,
When I want to commit my changs to server, "HTTP Error 400: Bad Request" occurs.

And I confirm that the usr & password are correct.

  1. ~/.oscrc file
[general]
# URL to access API server, e.g. http://api.opensuse.org
# you also need a section [http://api.opensuse.org] with the credentials
apiurl = https://api.opensuse.org

*cut*

#http_headers = Host: foofoobar,
#       User: mumblegack
# Plain text password
#pass =
# Force using of keyring for this API
#keyring = 1

[https://api.opensuse.org]
user=omitted
pass=omitted

2.what I did:

n2:~/home:ZRen:branches:network:ha-clustering:Factory/ocfs2-test # osc commit 
Sending    _service
Deleting    add_cluster_options.patch
Deleting    allow_root_to_run.patch
Deleting    correct_install_path.patch
Deleting    library-for-aio-stress.patch
Deleting    mmaptruncate_hangup_clustersize_1048576.patch
Deleting    ocfs2-test-1.0.4+git.1382452089.8ec62e9.tar.bz2
Sending    ocfs2-test.spec
Deleting    remove_python_imports_timing.patch
Deleting    update-README-with-executing-instructions.patch
Sending    ocfs2-test-1.0.4+git.1425366927.4243065.tar.bz2
Transmitting file data .Server returned an error: HTTP Error 400: Bad Request
service validation error: Invalid attribute mode for element service

Integration of debootstrap

Hi,

Collabora's OBS currently uses a pretty ugly patch [1] to enable building deb packages with debootstrap.
It was done this way for two reasons:

  1. We build a lot of debian packages and not all of them work outside the debootstrap setup (eg. if post-inst scripts have not been run)
  2. We use arm boards as builders and these are not able to run hardware accelerated vms

We would like to try and upstream this work.

What would be your preferred approach for integrating debootstrap?
One suggested approach might be to use debootstrap's --foreign flag. This would mean that the prepared environment could still be run in a vm as other builds are. This would solve 1) but not 2).

Do you have any ideas on 2). Perhaps introducing a config flag that allows building outside a vm if the server is not public?

Any pointers on the new code layout since the refactor would be appreciated.

Thanks.

[1] http://cgit.collabora.com/git/singularity/tools/obs-build.git/commit/?id=2144acf8a0f82838e3ede5c57c74553a8cbef6c7

Cannot build Debian/Ubuntu packages that require binaries added to source tree

Unfortunately I'm building a package where a small binary file needs to be added to the source tree before configuring and building

The way I achieved getting the binary there is by adding the following tag to my .dsc file.

DEBTRANSFORM-FILES: my_binary_file

when I try to build it fails

[   85s] ** Started: debtransform //usr/src/packages/SOURCES //usr/src/packages/SOURCES/z3.dsc //usr/src/packages/SOURCES.DEB                                                   [17/1995]
[   85s] No DEBTRANSFORM-FILES-TAR line in the .dsc file.
[   85s] Attempting automatic discovery of a debian archive.
[   85s] Hardlinking //usr/src/packages/SOURCES/z3-4.4.1.tar.gz to //usr/src/packages/SOURCES.DEB/z3_4.4.1.orig.tar.gz
[   85s] files 4336a9df24f090e711c6d42fd4e2b1fc 3347371 z3_4.4.1.orig.tar.gz
[   85s] Scanning //usr/src/packages/SOURCES.DEB/z3_4.4.1.orig.tar.gz...
[   86s] Generating //usr/src/packages/SOURCES.DEB/z3_4.4.1-0.diff
[   86s] Processing file "//usr/src/packages/SOURCES/Microsoft.Z3.mono.snk"...
[   86s] Processing file "//usr/src/packages/SOURCES/debian.rules"...
[   86s] Processing file "//usr/src/packages/SOURCES/debian.control"...
[   86s] Processing file "//usr/src/packages/SOURCES/debian.changelog"...
[   86s] Writing //usr/src/packages/SOURCES.DEB/z3_4.4.1-0.dsc
[   86s] dpkg-source: warning: extracting unsigned source package (/usr/src/packages/SOURCES.DEB/z3_4.4.1-0.dsc)
[   86s] dpkg-source: info: extracting z3 in /usr/src/packages/BUILD
[   86s] dpkg-source: info: unpacking z3_4.4.1.orig.tar.gz
[   86s] dpkg-source: info: applying z3_4.4.1-0.diff.gz
[   86s] dpkg-source: info: upstream files that have been modified: 
[   86s]  /usr/src/packages/BUILD/Microsoft.Z3.mono.snk
[   86s] -----------------------------------------------------------------
[   86s] ----- building z3.dsc (user abuild)
[   86s] -----------------------------------------------------------------
[   86s] -----------------------------------------------------------------
[   86s] dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
[   86s] dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): -D_FORTIFY_SOURCE=2
[   86s] dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
[   86s] dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2
[   86s] dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): -Wl,-Bsymbolic-functions -Wl,-z,relro
[   86s] dpkg-buildpackage: source package z3
[   86s] dpkg-buildpackage: source version 4.4.1-0
[   86s] dpkg-buildpackage: source changed by Dan Liew <[email protected]>
[   86s] dpkg-buildpackage: host architecture amd64
[   86s]  dpkg-source --before-build BUILD
[   86s]  fakeroot debian/rules clean
[   86s] dh clean
[   86s] dh: No compatibility level specified in debian/compat
[   86s] dh: This package will soon FTBFS; time to fix it!
[   86s] dh: Compatibility levels before 5 are deprecated (level 1 in use)
[   86s]    dh_testdir
[   86s]    dh_auto_clean
[   86s] dh_auto_clean: No compatibility level specified in debian/compat
[   86s] dh_auto_clean: This package will soon FTBFS; time to fix it!
[   86s] dh_auto_clean: Compatibility levels before 5 are deprecated (level 1 in use)
[   86s]    debian/rules override_dh_clean
[   86s] make[1]: Entering directory `/usr/src/packages/BUILD'
[   86s] rm -rf build/
[   86s] make[1]: Leaving directory `/usr/src/packages/BUILD'
[   86s]  dpkg-source -b BUILD
[   86s] dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1)
[   86s] dpkg-source: warning: source directory 'BUILD' is not <sourcepackage>-<upstreamversion> 'z3-4.4.1'
[   86s] dpkg-source: warning: .orig directory name BUILD.orig is not <package>-<upstreamversion> (wanted z3-4.4.1.orig)
[   86s] dpkg-source: info: using source format `1.0'
[   86s] dpkg-source: info: building z3 using existing z3_4.4.1.orig.tar.gz
[   87s] dpkg-source: info: building z3 in z3_4.4.1-0.diff.gz
[   87s] dpkg-source: error: cannot represent change to BUILD/my_binary_file: binary file contents changed
[   87s] dpkg-source: unrepresentable changes to source
[   87s] dpkg-buildpackage: error: dpkg-source -b BUILD gave error exit status 1
[   87s] 
[   87s] dan-sputnik failed "build z3.dsc" at Mon Nov 30 13:06:45 UTC 2015.
[   87s] 
[   88s] 
[   88s]  failed "build z3.dsc" at Mon Nov 30 13:06:46 UTC 2015.
[   88s] 
[   88s] 
[   88s] dan-sputnik failed "build z3.dsc" at Mon Nov 30 13:06:46 UTC 2015.

Seeing as we only want to build the binary package I don't even know why dpkg-source is running.

I had a quick look at it seems in the 3.0 (quilt) package format there can be a debian/source/include-binaries file which can be used. However the debtransform tool seems to convert everything to the 1.0 format so a include-binaries file is not going to work.

There seems to be only two ways of working around this:

  • Use the debian packaging tools and make my own .dsc, pristine source tarball and *.debian.tar.gz tarball files that use the newer package format. This is really annoying because I have to jump through all the hoops required to setup the debian packaging files
  • But the binary inside the original source tarball. This is gross but it is the easiest fix.

To me it seems like the debtransfrom script needs to use the 3.0 format and add some extra magic to allow listing binary files.

local build uses wrong log for gcc check

While building clewarecontrol it did build fine locally but didn't after submitting to the build service because of [unacceptable] compiler warnings.
The compiler warnings were the same but locally the gcc check didn't work.

Add support for building Debian/Ubuntu packages with debbuild

debbuild is a tool written in Perl that accepts RPM spec files and outputs installable Debian packages as well as the equivalent of ".src.rpm" as ".sdeb" packages.

For those of us who would like to be able to build Debian packages using spec files, it would be fantastic if support was added to the Open Build Service to do just that.

Please enable IPv6 support in the VM workers

I have a package that tries at configure time to create an IPv6 socket. This fails as we only set up IPv4 network in the worker atm. Please add IPv6 support and set ::1/128 on the lo interface.

Documentation of "debtransform" tags needs improving

The tags are poorly documented at

https://en.opensuse.org/openSUSE:Build_Service_Debian_builds#Debian_Builds

It is not explained what each of the tags mean. Pointing at some perl code and an old mailing list post is not sufficient. It should not be a requirement to understand perl just so the tags can be used.

It looks like there are some additional tags are undocumented (e.g. DEBTRANSFORM-RELEASE) as well.

If I knew perl I would document them myself but I don't (and don't have time to learn right now).

osc build -l succeeds, osc build -o complains about missing deps

darix suggested to file this against obs-build, so here you are.

osc 0.145, build-20140424+d41aaf2252794aa78c422574edc1dbcf40f0ee79

i don't know how widespread this failure is, the package i encountered it with is home:roman-neuhauser:arch-community/linuxsampler;
you'll need to remove the comments in PKGBUILD to placate build's "parser":
makedepends=('ladspa' 'dssi' 'lv2') # ladspa is a header dep of dssi
options=('libtool') # do NOT slay libtool; required by gigedit

osc build -l Arch_Extra x86_64 PKGBUILD
Building PKGBUILD for Arch_Extra/x86_64
Getting buildinfo from server and store to /home/roman/wc/MINE/obs-arch-community/linuxsampler/.osc/_buildinfo-Arch_Extra-x86_64.xml
Getting buildconfig from server and store to /home/roman/wc/MINE/obs-arch-community/linuxsampler/.osc/_buildconfig-Arch_Extra-x86_64
Updating cache of required packages
0.9% cache miss. 105/106 dependencies cached.

Trying openSUSE Build Service server for liblo (Arch:Extra), not found at download.opensuse.org.
fetching packages for 'Arch:Extra' 49 kB 00:00
WARNING: unknown packages get not verified, they can compromise your system !
Writing build configuration
Preload done for selected repo/arch.

osc build -o Arch_Extra x86_64 PKGBUILD
WARNING: source service from package or project will not be executed. This may not be the same build as on server!
Building PKGBUILD for Arch_Extra/x86_64
Use local '/home/roman/wc/MINE/obs-arch-community/linuxsampler/.osc/_buildinfo-Arch_Extra-x86_64.xml' file as buildinfo
Updating cache of required packages
0.9% cache miss. 105/106 dependencies cached.

Missing '/var/tmp/osbuild-packagecache/Arch:Extra/standard/x86_64/liblo-0.28-1-x86_64.arch' in cache: --offline not possible.

osc build Arch_Extra x86_64 PKGBUILD
Building PKGBUILD for Arch_Extra/x86_64
Getting buildinfo from server and store to /home/roman/wc/MINE/obs-arch-community/linuxsampler/.osc/_buildinfo-Arch_Extra-x86_64.xml
Getting buildconfig from server and store to /home/roman/wc/MINE/obs-arch-community/linuxsampler/.osc/_buildconfig-Arch_Extra-x86_64
Updating cache of required packages
0.9% cache miss. 105/106 dependencies cached.

Trying openSUSE Build Service server for liblo (Arch:Extra), not found at download.opensuse.org.
fetching packages for 'Arch:Extra' 49 kB 00:00
WARNING: unknown packages get not verified, they can compromise your system !
Writing build configuration
Running build
logging output to /var/tmp/build-root/Arch_Extra-x86_64/.build.log...
[ 0s] Memory limit set to 10695200KB
[ 0s] Using BUILD_ROOT=/var/tmp/build-root/Arch_Extra-x86_64
[ 0s] Using BUILD_ARCH=x86_64:i686:i586:i486:i386

obs-build fails with "mkdir: cannot create directory `<build_root>': File exists"

With a special BUILD_ROOT setting, I get this error sometimes:

"""
linux32 sudo obs-build --nosignature --repo http://download.opensuse.org/distribution/12.3/repo/oss/suse/ --root /var/cache/obs-build/opensuse/12.3/i386/ --clean /var/lib/jenkins/pkg-dist/heuler/pinentry-x2go/opensuse/12.3//rpmbuild/SRPMS/pinentry-x2go-0.7.5.8-0.0x2go1.0.git20141012.85.heuler.src.rpm
mkdir: cannot create directory `/var/cache/obs-build/opensuse/12.3/i386/': File exists
can not create BUILD_ROOT=/var/cache/obs-build/opensuse/12.3/i386/. Exit...
"""
-> see https://jenkins.x2go.org:8443/job/pinentry-x2go+nightly+opensuse-12.3/2/console

With the below patch, this issue is gone...

--- a/build
+++ b/build
@@@ -584,7 -602,7 +602,7 @@@ mkdir_build_root() 
        fi
      else
        test "$BUILD_ROOT" != "${BUILD_ROOT%/*}" && mkdir -p "${BUILD_ROOT%/*}"
--      if ! mkdir $BUILD_ROOT ; then
++      if ! mkdir -p $BUILD_ROOT ; then
            echo "can not create BUILD_ROOT=$BUILD_ROOT. Exit..."
            cleanup_and_exit 1
        fi

--nosignature not get passed over to init_buildsystem if --clean is used

Hi Michael,

the --nosignature option is not fully functional. To make it work for me, I need the below patch.

Mike

--- a/build
+++ b/build
@@@ -1072,7 -1093,7 +1093,7 @@@ for RECIPEFILE in "${RECIPEFILES[@]}" 
        egrep '^#[       ]*needsbinariesforbuild[       ]*$' >/dev/null <$MYSRCDIR/$RECIPEFILE && CREATE_BUILD_BINARIES=--create-build-binaries
        test "$BUILDTYPE" = mock && CREATE_BUILD_BINARIES=--create-build-binaries
        test "$BUILDTYPE" = livebuild && CREATE_BUILD_BINARIES=--create-build-binaries
--      set -- init_buildsystem --configdir "$CONFIG_DIR" --cachedir "$CACHE_DIR" "${definesnstuff[@]}" "${repos[@]}" $CLEAN_BUILD $USEUSEDFORBUILD $CREATE_BUILD_BINARIES $RPMLIST "$MYSRCDIR/$RECIPEFILE" $ADDITIONAL_PACKS
++      set -- init_buildsystem --configdir "$CONFIG_DIR" --cachedir "$CACHE_DIR" "${definesnstuff[@]}" "${repos[@]}" $CLEAN_BUILD $USEUSEDFORBUILD $DLNOSIGNATURE $CREATE_BUILD_BINARIES $RPMLIST "$MYSRCDIR/$RECIPEFILE" $ADDITIONAL_PACKS
        echo "$* ..."
          start_time=`date +%s`
        "$@" || cleanup_and_exit 1

When using debbuild engine, BuildRequires encapsulated in debbuild vendor tag aren't evaluated and installed

As it says on the tin, when using the debbuild engine, BuildRequires aren't being evaluated and installed prior to attempting to build the package.

Here's my package where I see the problem, and the build log from one of the builders.

Also, here's the spec file.

It appears the problem is that it's not evaluating the stuff inside the %if %{_vendor} == "debbuild" clauses to ensure the BuildRequires are properly evaluated. The BuildRequire for cmake, which is outside of the vendor clause, is installed prior to starting the build. But not the ones encapsulated in the conditional.

Debian sid + kvm builds

Hi,

I had to change these things to get 'osc build SLE_11_SP2 x86_64' to work on my Debian sid desktop:

  1. Set kvm_bin=/usr/bin/qemu-system-x86_64
  2. Drop "kvm-noclock" from the kernel args, as the Debian kernels just hang with this.
  3. Symlink a kernel to /boot/vmlinuz and symlink an initrd to /boot/initrd (as I couldn't figure out how to set these things in .oscrc)

Please consider incorporating these things.

Thanks,
C.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.