Skip to content

Commit

Permalink
Improve 'build' and 'buildinfo' commands by uploading *.inc files to …
Browse files Browse the repository at this point in the history
…OBS for parsing BuildRequires (boo#1221340)
  • Loading branch information
dmach committed May 7, 2024
1 parent f908092 commit 2eb5157
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 0 deletions.
12 changes: 12 additions & 0 deletions behave/features/buildinfo.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Feature: `osc buildinfo` command


Scenario: Run `osc buildinfo` on a package with a .inc file
Given I set working directory to "{context.osc.temp}"
And I execute osc with args "co test:factory/test-pkgA"
And I set working directory to "{context.osc.temp}/test:factory/test-pkgA"
And I copy file "{context.fixtures}/pac/test-pkgA-3-inc.spec" to "{context.osc.temp}/test:factory/test-pkgA/test-pkgA.spec"
And I copy file "{context.fixtures}/pac/test-pkgA-3-inc.inc" to "{context.osc.temp}/test:factory/test-pkgA/test-pkgA.inc"
When I execute osc with args "buildinfo"
Then the exit code is 0
And stdout contains "<error>unresolvable: nothing provides DOES-NOT-EXIST</error>"
1 change: 1 addition & 0 deletions behave/fixtures/pac/test-pkgA-3-inc.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
BuildRequires: DOES-NOT-EXIST
27 changes: 27 additions & 0 deletions behave/fixtures/pac/test-pkgA-3-inc.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
%include test-pkgA.inc

Name: test-pkgA
Version: 4
Release: 1
License: GPL-2.0
Summary: Test package
URL: https://example.com/test-package/


BuildArch: noarch


%description
desc


%prep


%install


%files


%changelog
7 changes: 7 additions & 0 deletions osc/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -708,6 +708,13 @@ def create_build_descr_data(
# build recipe must go first for compatibility with the older OBS versions
result_data.append((os.path.basename(build_descr_path).encode("utf-8"), build_descr_data))

if topdir:
for include_file in glob.glob(os.path.join(topdir, "*.inc")):
fn = os.path.basename(include_file)
print(f"Using local file: {fn}", file=sys.stderr)
with open(include_file, "rb") as f:
result_data.append((fn.encode("utf-8"), f.read()))

if topdir:
buildenv_file = os.path.join(topdir, f"_buildenv.{repo}.{arch}")
if not os.path.isfile(buildenv_file):
Expand Down

0 comments on commit 2eb5157

Please sign in to comment.