Sync from SUSE:SLFO:Main build revision 20f2db26cb6c4fbb5f4e3cf8e0d0fc6a

This commit is contained in:
Adrian Schröter 2024-05-03 11:25:58 +02:00
commit 84ff0d3e39
11 changed files with 2974 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

17
PKGBUILD Normal file
View File

@ -0,0 +1,17 @@
pkgname=build
pkgver=20240221
pkgrel=0
pkgdesc="Build packages in sandbox"
arch=('i686' 'x86_64')
url="https://www.github.com/openSUSE/obs-build"
license=('GPL-2.0+' 'GPL-2.0')
groups=('base-devel')
depends=('perl')
source=(obs-build-${pkgver}.tar.gz)
md5sums=('SKIP')
package() {
msg "Installing build ..."
cd "${srcdir}"/obs-build-${pkgver}
make DESTDIR=${pkgdir} install
}

21
_service Normal file
View File

@ -0,0 +1,21 @@
<services>
<service name="tar_scm" mode="manual">
<param name="revision">20240221</param>
<param name="version">20240221</param>
<param name="url">https://github.com/openSUSE/obs-build.git</param>
<param name="scm">git</param>
<param name="extract">dist/build.changes</param>
<param name="extract">dist/build.spec</param>
<param name="extract">dist/build.dsc</param>
<param name="extract">dist/debian.changelog</param>
<param name="extract">dist/debian.compat</param>
<param name="extract">dist/debian.control</param>
<param name="extract">dist/debian.rules</param>
<param name="extract">dist/PKGBUILD</param>
</service>
<service name="recompress" mode="manual">
<param name="compression">gz</param>
<param name="file">*.tar</param>
</service>
<service name="set_version" mode="manual"/>
</services>

2298
build.changes Normal file

File diff suppressed because it is too large Load Diff

10
build.dsc Normal file
View File

@ -0,0 +1,10 @@
Format: 1.0
Source: build
Version: 20240221
Binary: build
Maintainer: Adrian Schroeter <adrian@suse.de>
Architecture: all
Standards-Version: 3.7.2
Build-Depends: debhelper (>= 4)
Depends: bash, binutils, findutils, perl, tar, psmisc, libwww-perl, libxml-parser-perl, libarchive-tools, zstd, qemu-kvm

318
build.spec Normal file
View File

@ -0,0 +1,318 @@
#
# spec file for package build
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
# needsrootforbuild
# needsbinariesforbuild
%if 0%{?suse_version}
%define __pkg_name build
%else
%define __pkg_name obs-build
%endif
Name: %{__pkg_name}
Summary: A Script to Build SUSE Linux RPMs
License: GPL-2.0-only OR GPL-3.0-only
Group: Development/Tools/Building
Version: 20240221
Release: 0
Source: obs-build-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
#!BuildIgnore: build-mkbaselibs build-mkbaselibs-sle
# Keep the following dependencies in sync with obs-worker package
Requires: bash
Requires: binutils
Requires: findutils
Requires: perl
Requires: tar
# needed for fuser
Requires: psmisc
# just to verify existence of packages
BuildRequires: bash
BuildRequires: binutils
BuildRequires: perl
BuildRequires: psmisc
BuildRequires: tar
# For testcases
BuildRequires: perl(Date::Parse)
BuildRequires: perl(Test::Harness)
BuildRequires: perl(Test::More)
%if 0%{?fedora}
Requires: perl-TimeDate
Requires: perl(LWP::Protocol::https)
Requires: perl(XML::Parser)
BuildRequires: perl-TimeDate
%endif
Conflicts: bsdtar < 2.5.5
%if 0%{?suse_version}
Conflicts: qemu < 2.5.0
%endif
BuildRequires: perl(Date::Parse)
BuildRequires: perl(Test::Harness)
BuildRequires: perl(Test::More)
%if 0%{?suse_version} >= 1200
BuildRequires: perl(YAML::LibYAML)
%endif
%if 0%{?suse_version} > 1000 || 0%{?centos_version} >= 800 || 0%{?rhel_version} >= 800 || 0%{?fedora_version} >= 21
# None of them are actually required for core features.
# Perl helper scripts use them.
Recommends: perl(Archive::Tar)
Recommends: /sbin/mkfs.ext3
Recommends: /usr/bin/qemu-kvm
Recommends: bsdtar
Recommends: qemu-linux-user
Recommends: zstd
Recommends: perl(Config::IniFiles)
Recommends: perl(Date::Language)
Recommends: perl(Date::Parse)
Recommends: perl(LWP::UserAgent)
Recommends: perl(Pod::Usage)
Recommends: perl(Time::Zone)
Recommends: perl(URI)
Recommends: perl(XML::Parser)
Recommends: perl(YAML::LibYAML)
# for vc:
Recommends: /usr/bin/dnsdomainname
Recommends: /usr/bin/rpmdev-packager
%endif
%if 0%{?suse_version} > 1120 || ! 0%{?suse_version}
Requires: %{__pkg_name}-mkbaselibs
%endif
%if 0%{?suse_version} > 1120 || 0%{?mdkversion}
Recommends: %{__pkg_name}-mkdrpms
%endif
# With fedora 33 the POSIX module was split out of the perl
# package
BuildRequires: perl(POSIX)
Requires: perl(POSIX)
%description
This package provides a script for building RPMs for SUSE Linux in a
chroot environment.
%if 0%{?suse_version} > 1120 || ! 0%{?suse_version}
%package mkbaselibs
Summary: Tools to generate base lib packages
# NOTE: this package must not have dependencies which may break boot strapping (eg. perl modules)
Group: Development/Tools/Building
%description mkbaselibs
This package contains the parts which may be installed in the inner build system
for generating base lib packages.
%package mkdrpms
Summary: Tools to generate delta rpms
Group: Development/Tools/Building
Requires: deltarpm
# XXX: we wanted to avoid that but mkdrpms needs Build::Rpm::rpmq
Requires: %{__pkg_name}
%description mkdrpms
This package contains the parts which may be installed in the inner build system
for generating delta rpm packages.
%endif
%define initvm_arch %{_host_cpu}
%if "%{_host_cpu}" == "i686"
%define initvm_arch i586
%endif
%package initvm-%{initvm_arch}
Summary: Virtualization initializer for emulated cross architecture builds
Group: Development/Tools/Building
Requires: %{__pkg_name}
BuildRequires: gcc
BuildRequires: glibc-devel
Provides: %{__pkg_name}-initvm
Obsoletes: %{__pkg_name}-initvm
%if 0%{?suse_version} > 1200
BuildRequires: glibc-devel-static
%endif
%description initvm-%{initvm_arch}
This package provides a script for building RPMs for SUSE Linux in a
chroot or a secure virtualized
%prep
%setup -q -n obs-build-%version
%build
%if 0%{?suse_version}
# initvm
make CFLAGS="$RPM_BUILD_FLAGS" initvm-all
%endif
%install
# initvm
%if 0%{?suse_version}
make DESTDIR=%{buildroot} initvm-install
strip %{buildroot}/usr/lib/build/initvm.*
export NO_BRP_STRIP_DEBUG="true"
%endif
# main
make DESTDIR=%{buildroot} install
# tweak default config on suse
%if 0%{?suse_version}
cd %{buildroot}/usr/lib/build/configs/
SUSE_V=%{?suse_version}
SLE_V=%{?sle_version}
%if 0%{?sle_version} && 0%{?is_opensuse} && %suse_version == 1315
# this is SUSE Leap 42.X
ln -s sl42.${SLE_V:3:1}.conf default.conf
%endif
%if 0%{?sle_version} && 0%{?is_opensuse} && %suse_version > 1315
# this is SUSE Leap 15 and higher
ln -s sl${SLE_V:0:2}.${SLE_V:3:1}.conf default.conf
%endif
%if !0%{?sle_version} && ( 0%{?suse_version} <= 1310 || 0%{?suse_version} == 1320 || 0%{?suse_version} == 1330 )
# this is old openSUSE releases and Factory
ln -s sl${SUSE_V:0:2}.${SUSE_V:2:1}.conf default.conf
%endif
%if !0%{?sle_version} && ( 0%{?suse_version} == 1699 )
ln -s tumbleweed.conf default.conf
%endif
%if 0%{?sle_version} && !0%{?is_opensuse}
# this is SUSE SLE 12 and higher
ln -s sle${SLE_V:0:2}.${SLE_V:3:1}.conf default.conf
%endif
%if 0%{?sles_version} == 1110
# this is SUSE SLE 11
ln -s sles11sp2.conf default.conf
%endif
%if 0%{?suse_version} == 1600
# this is SUSE ALP
ln -s alp.conf default.conf
%endif
# make sure that we have a config
test -e default.conf || exit 1
%endif
# tweak baselibs config on suse
%if 0%{?suse_version}
cd %{buildroot}/usr/lib/build
%if %suse_version == 1500
# SLE 15 / Leap 15
ln -sf baselibs_configs/baselibs_global-sle15.conf baselibs_global.conf
%endif
%if %suse_version == 1315
# SLE 12 / Leap 42
ln -sf baselibs_configs/baselibs_global-sle12.conf baselibs_global.conf
%endif
%if %suse_version <= 1110
# SLE 11
ln -sf baselibs_configs/baselibs_global-sle11.conf baselibs_global.conf
%endif
test -e baselibs_global.conf || exit 1
%endif
%check
for i in build build-* ; do bash -n $i || exit 1 ; done
# run perl module unit tests
LANG=C make test || exit 1
if [ `whoami` != "root" ]; then
echo "WARNING: Not building as root, build test did not run!"
exit 0
fi
if [ ! -f "%{buildroot}/usr/lib/build/configs/default.conf" ]; then
echo "WARNING: No default config, build test did not run!"
exit 0
fi
# get back the default.conf link
cp -av %{buildroot}/usr/lib/build/configs/default.conf configs/
# do not get confused when building this already with build:
export BUILD_IGNORE_2ND_STAGE=1
# use our own build code
export BUILD_DIR=$PWD
# simple chroot build test
cd test
# target is autodetected
%if 0%{?sles_version}
echo "SLES config differs currently on purpose between OBS and build script."
echo "Skipping test case"
exit 0
%endif
%if 0%{?qemu_user_space_build}
echo "test suite is not prepared to run using qemu linux user"
echo "Skipping test case"
exit 0
%endif
# we need to patch the not packaged configs, due to the buildignore
sed -i 's,build-mkbaselibs,,' ../configs/*.conf
if [ ! -e /.build.packages/rpmlint-Factory.rpm ]; then
sed -i 's,rpmlint-Factory,,' ../configs/*.conf
fi
if [ ! -e /.build.packages/rpmlint-strict.rpm ]; then
sed -i 's,rpmlint-strict,,' ../configs/*.conf
fi
if [ ! -e /.build.packages/rpmlint-mini.rpm ]; then
sed -i 's,rpmlint-mini,,' ../configs/*.conf
fi
./testbuild.sh /.build.binaries/
%files
%defattr(-,root,root)
%doc README.md docs
/usr/bin/build
/usr/bin/pbuild
/usr/bin/buildvc
/usr/bin/unrpm
/usr/lib/build
%config(noreplace) /usr/lib/build/emulator/emulator.sh
%{_mandir}/man1/build.1*
%{_mandir}/man1/unrpm.1*
%{_mandir}/man1/buildvc.1*
%{_mandir}/man1/pbuild.1*
%if 0%{?suse_version}
%exclude /usr/lib/build/initvm.*
%endif
%if 0%{?suse_version} > 1120 || ! 0%{?suse_version}
%exclude /usr/lib/build/mkbaselibs
%exclude /usr/lib/build/baselibs*
%exclude /usr/lib/build/mkdrpms
%files mkbaselibs
%defattr(-,root,root)
%dir /usr/lib/build
/usr/lib/build/mkbaselibs
/usr/lib/build/baselibs*
%files mkdrpms
%defattr(-,root,root)
%dir /usr/lib/build
/usr/lib/build/mkdrpms
%endif
%if 0%{?suse_version}
%files initvm-%{initvm_arch}
%defattr(-,root,root)
/usr/lib/build/initvm.*
%endif
%changelog

201
debian.changelog Normal file
View File

@ -0,0 +1,201 @@
build (20240221) unstable; urgency=low
* Update to current git trunk
- add sles11sp2 build config and adapt autodetection
-- Michael Schroeder <mls@suse.de> Mon, 10 Oct 2011 19:30:22 +0200
build (2011.09.26-1) unstable; urgency=low
* Update to current git trunk
-- Adrian Schroeter <adrian@suse.de> Fri, 01 Jul 2010 10:03:54 +0200
build (2011.07.01-1) unstable; urgency=low
* Update to current git trunk
-- Adrian Schroeter <adrian@suse.de> Fri, 01 Jul 2010 10:03:54 +0200
build (2010.12.15-1) unstable; urgency=low
* Update to current git trunk
- support bsdtar for setting up build enviroment
- make expanddeps use the highest version of a package if multiple
versions aver available in a repository [bnc#656599]
-- Michael Schroeder <mls@suse.de> Wed, 15 Dec 2010 14:08:29 +0200
build (2010.07.28-1) unstable; urgency=low
* Update to current git trunk
- document --repo and --dist
- update wiki links
- fix bugs in repo handling
- fix distribution autodetection code
-- Michael Schroeder <mls@suse.de> Wed, 28 Jul 2010 12:46:52 +0200
build (2010.07.08-1) unstable; urgency=low
* Update to current git trunk
-- Adrian Schroeter <adrian@suse.de> Wed, 08 Jul 2010 10:03:54 +0200
build (2010.06.29-1) unstable; urgency=low
* Update to current git trunk
- add 11.3 config
- fix repo creation in --noinit case
- support ovf files directly
- allow multiple --oldpackages
- delta rpm support
-- Adrian Schroeter <adrian@suse.de> Tue, 29 Jun 2010 10:03:54 +0200
build (2010.02.02-1) unstable; urgency=low
* Update to current git trunk
- Support new kiwi 4.1 schema files
-- Adrian Schroeter <adrian@suse.de> Tue, 02 Feb 2010 10:03:54 +0200
build (2009.09.23-1) unstable; urgency=low
* Update to current svn trunk
-- Michael Schroeder <mls@suse.de> Wed, 23 Sep 2009 12:03:54 +0200
build (2009.04.20-1) unstable; urgency=low
* Update to current svn trunk
-- Adrian Schroeter <adrian@suse.de> Mon, 20 Feb 2009 08:27:13 +0200
build (2009.02.20-1) unstable; urgency=low
* Fix kvm support together with Alexander
* Support for new disturl containing a complete pointer to build
service instance resource
* add support for package compare to allow Build Service to drop
same packages after build
* image repack support from Christoph
-- Adrian Schroeter <adrian@suse.de> Fri, 20 Feb 2009 08:27:13 +0200
build (2007.09.14-1) unstable; urgency=low
* update to 2173:
- add sl10.3 config [#310089]
- also look for BuildRequires in subpackage definitions [#305568]
- allow removal of more config parameters
-- Michael Schroeder <mls@suse.de> Fri, 14 Sep 2007 18:27:13 +0200
build (2007.08.02-1) unstable; urgency=low
* update to 1902:
- support 'order' config option
- support 'patterntype' config option
- new setdeps() method
- support for flexible query options
- support 'description' query
- fix bug in changelog2spec time cutoff
- make debtransform understand Debtransform-Tar/Debtransform-Files-Tar/
Debtransform-Series
- fix bug in substitutedeps
-- Michael Schroeder <mls@suse.de> Thu, 2 Aug 2007 15:58:48 +0200
build (2007.06.13-1) unstable; urgency=low
* update to 1727:
- implement rpm installation order calculation in perl
- make substitute code modify requires, too
- add filelist query support
- add prereq parsing support
- speed up version comparison a bit
-- Michael Schroeder <mls@suse.de> Wed, 13 Jun 2007 17:18:17 +0100
build (2007.05.10-1) unstable; urgency=low
* update to 1653:
- add _vendor to configs
- fix deban dependency compare
- allow not operator in configs
- fix build from source rpms
-- Michael Schroeder <mls@suse.de> Thu, 10 May 2007 20:02:29 +0100
build (2007.04.12-1) unstable; urgency=low
* update to 1575:
- add --root to rpm call in rpm to work around a bug in rpm [#255720]
-- Michael Schroeder <mls@suse.de> Thu, 12 Apr 2007 16:22:51 +0100
build (2007.04.05-1) unstable; urgency=low
* update to 1561:
- support architecture dependand requires in dsc files
- support "global" definitions for rpm
- support vminstall config option
-- Michael Schroeder <mls@suse.de> Thu, 5 Apr 2007 16:01:51 +0100
build (2007.03.12-1) unstable; urgency=low
* update to r1419:
- fix buildroot in debtransform call
- obey version numbers when expanding
-- Michael Schroeder <mls@suse.de> Mon, 12 Mar 2007 15:42:48 +0100
build (2007.03.02-1) unstable; urgency=low
* update
- transform suse changes file to rpm specfile format
- improved debian support
-- Michael Schroeder <mls@suse.de> Fri, 2 Mar 2007 21:22:41 +0100
build (2007.01.26-1) unstable; urgency=low
* update to r1114
- re-add the lost unrpm script
- make exclarch an array
- remount root rw in xen case, needed if root is not reiserfs
- add repotype/runscripts options
- remove devs in sl10.1/10.2
- fix boolean test to make "00" false like rpm does
- add rpm_verscmp for version comparison
- runscripts
- macro blocks
- read_config_dist
- useful xen exit status
- add --kill
- update 10.2 config
- extend spec/dsc parser
- fixed two bugs in the specfile parser
-- Peter Poeml <poeml@suse.de> Fri, 26 Jan 2007 14:15:22 +0100
build (2006.10.5-1) unstable; urgency=low
* update for fixed XEN build
-- Michael Schroeder <mls@suse.de> Thu, 5 Oct 2006 10:58:42 +0200
build (2006.8.10-1) unstable; urgency=low
* update for fixed XEN build and proc mounting
-- Adrian Schroeter <adrian@suse.de> Thu, 10 Aug 2006 12:01:08 +0200
build (2006.6.14-1) unstable; urgency=low
* Initial release based on build-2006.6.14-5.1.src.rpm
-- Rene Engelhard <rengelhard@suse.de> Thu, 22 Jun 2006 12:01:08 +0200

1
debian.compat Normal file
View File

@ -0,0 +1 @@
7

17
debian.control Normal file
View File

@ -0,0 +1,17 @@
Source: build
Section: devel
Priority: optional
Maintainer: Adrian Schroeter <adrian@suse.de>
Build-Depends: debhelper (>= 5)
Standards-Version: 3.7.2
Package: obs-build
Architecture: all
Depends: ${perl:Depends}, rpm, findutils, libarchive-tools | bsdtar
Recommends: rpm2cpio
Conflicts: build
Replaces: build
Provides: build
Description: A script to build SUSE RPMs
This package provides a script for building RPMs for SUSE
in a chroot environment.

65
debian.rules Normal file
View File

@ -0,0 +1,65 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany
# This file and all modifications and additions to the pristine package
# are under the same license as the package itself.
#
# Please submit bugfixes or commens via http://bugs.opensuse.org
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
SHELL=/bin/bash
configure: configure-stamp
configure-stamp:
dh_testdir
touch configure-stamp
build: build-stamp
build-stamp: configure-stamp
dh_testdir
touch build-stamp
clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
make DESTDIR=$(CURDIR)/debian/obs-build install
binary-arch: build install
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installexamples
dh_installman
dh_link
dh_strip
dh_compress
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary-indep: build install
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure

BIN
obs-build-20240221.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.