Skip to content

Commit

Permalink
Drop architecture from %builddir path
Browse files Browse the repository at this point in the history
This causes more issues than it solves, at least presently. For one,
when BuildArch is used it typically causes the path to disagree with the
actual arch (eg on noarch packages). Which looks weird and causes yet
other issues in turn. The other issue, raised by Neal Gompa, is that
it can cause superfluous path differences in noarch subpackages, which
sharing the noarch package across multiple architectures in at least
koji.

Use -build suffix instead of %{_arch}. -build may seem redundant since
by default it's in BUILD directory already, but this makes it more
obvious in cases where the default is overridden (eg fedpkg overrides to
current directory), and helps differentiating it from the %buildsubdir
directory commonly created by %setup.

Suggested-by: Neal Gompa <[email protected]>
  • Loading branch information
pmatilai committed Apr 30, 2024
1 parent b8d8bfa commit dde4fe5
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 33 deletions.
2 changes: 1 addition & 1 deletion build/parsePreamble.c
Expand Up @@ -1295,7 +1295,7 @@ int parsePreamble(rpmSpec spec, int initialPackage, enum parseStages stage)
}

/* Using release here causes a buildid no-recompute test to fail */
spec->buildDir = rpmExpand("%{_top_builddir}/%{NAME}-%{VERSION}-%{_arch}", NULL);
spec->buildDir = rpmExpand("%{_top_builddir}/%{NAME}-%{VERSION}-build", NULL);
/* Override toplevel _builddir for backwards compatibility */
rpmPushMacroFlags(spec->macros, "_builddir", NULL, spec->buildDir,
RMIL_SPEC, RPMMACRO_LITERAL);
Expand Down
58 changes: 29 additions & 29 deletions tests/rpmbuild.at
Expand Up @@ -273,12 +273,12 @@ runroot_other find /build/BUILD|sort
],
[0],
[/build/BUILD
/build/BUILD/simple-1.0-noarch
/build/BUILD/simple-1.0-noarch/BUILDROOT
/build/BUILD/simple-1.0-noarch/BUILDROOT/opt
/build/BUILD/simple-1.0-noarch/BUILDROOT/opt/bin
/build/BUILD/simple-1.0-noarch/BUILDROOT/opt/bin/simple
/build/BUILD/simple-1.0-noarch/simple
/build/BUILD/simple-1.0-build
/build/BUILD/simple-1.0-build/BUILDROOT
/build/BUILD/simple-1.0-build/BUILDROOT/opt
/build/BUILD/simple-1.0-build/BUILDROOT/opt/bin
/build/BUILD/simple-1.0-build/BUILDROOT/opt/bin/simple
/build/BUILD/simple-1.0-build/simple
],
[ignore])

Expand All @@ -291,18 +291,18 @@ runroot_other find /build/BUILD|sort
],
[0],
[/build/BUILD
/build/BUILD/simple-1.0-noarch
/build/BUILD/simple-1.0-noarch/BUILDROOT
/build/BUILD/simple-1.0-noarch/BUILDROOT/opt
/build/BUILD/simple-1.0-noarch/BUILDROOT/opt/bin
/build/BUILD/simple-1.0-noarch/BUILDROOT/opt/bin/simple
/build/BUILD/simple-1.0-noarch/SPECPARTS
/build/BUILD/simple-1.0-noarch/simple-1.0
/build/BUILD/simple-1.0-noarch/simple-1.0/dir1
/build/BUILD/simple-1.0-noarch/simple-1.0/dir1/file3
/build/BUILD/simple-1.0-noarch/simple-1.0/file1
/build/BUILD/simple-1.0-noarch/simple-1.0/file2
/build/BUILD/simple-1.0-noarch/simple-1.0/simple
/build/BUILD/simple-1.0-build
/build/BUILD/simple-1.0-build/BUILDROOT
/build/BUILD/simple-1.0-build/BUILDROOT/opt
/build/BUILD/simple-1.0-build/BUILDROOT/opt/bin
/build/BUILD/simple-1.0-build/BUILDROOT/opt/bin/simple
/build/BUILD/simple-1.0-build/SPECPARTS
/build/BUILD/simple-1.0-build/simple-1.0
/build/BUILD/simple-1.0-build/simple-1.0/dir1
/build/BUILD/simple-1.0-build/simple-1.0/dir1/file3
/build/BUILD/simple-1.0-build/simple-1.0/file1
/build/BUILD/simple-1.0-build/simple-1.0/file2
/build/BUILD/simple-1.0-build/simple-1.0/simple
],
[ignore])
RPMTEST_CLEANUP
Expand Down Expand Up @@ -2416,17 +2416,17 @@ runroot rpmbuild -bb --quiet /data/SPECS/filemiss.spec
],
[1],
[],
[error: File not found: /build/BUILD/filemisstest-1.0-x86_64/BUILDROOT/opt/share/doc/filemisstest-1.0/CREDITS
error: File not found: /build/BUILD/filemisstest-1.0-x86_64/BUILDROOT/opt/foo
error: File not found: /build/BUILD/filemisstest-1.0-x86_64/BUILDROOT/opt/bar{a,b}
cp: cannot stat '/build/BUILD/filemisstest-1.0-x86_64/INSTALL': No such file or directory
cp: cannot stat '/build/BUILD/filemisstest-1.0-x86_64/README*': No such file or directory
error: File not found: /build/BUILD/filemisstest-1.0-x86_64/BUILDROOT/opt/share/doc/filemisstest-1.0/INSTALL
error: File not found: /build/BUILD/filemisstest-1.0-x86_64/BUILDROOT/opt/share/doc/filemisstest-1.0/README*
cp: cannot stat '/build/BUILD/filemisstest-1.0-x86_64/LICENSE': No such file or directory
cp: cannot stat '/build/BUILD/filemisstest-1.0-x86_64/OTHERLICENSE?': No such file or directory
error: File not found: /build/BUILD/filemisstest-1.0-x86_64/BUILDROOT/opt/share/licenses/filemisstest-1.0/LICENSE
error: File not found: /build/BUILD/filemisstest-1.0-x86_64/BUILDROOT/opt/share/licenses/filemisstest-1.0/OTHERLICENSE?
[error: File not found: /build/BUILD/filemisstest-1.0-build/BUILDROOT/opt/share/doc/filemisstest-1.0/CREDITS
error: File not found: /build/BUILD/filemisstest-1.0-build/BUILDROOT/opt/foo
error: File not found: /build/BUILD/filemisstest-1.0-build/BUILDROOT/opt/bar{a,b}
cp: cannot stat '/build/BUILD/filemisstest-1.0-build/INSTALL': No such file or directory
cp: cannot stat '/build/BUILD/filemisstest-1.0-build/README*': No such file or directory
error: File not found: /build/BUILD/filemisstest-1.0-build/BUILDROOT/opt/share/doc/filemisstest-1.0/INSTALL
error: File not found: /build/BUILD/filemisstest-1.0-build/BUILDROOT/opt/share/doc/filemisstest-1.0/README*
cp: cannot stat '/build/BUILD/filemisstest-1.0-build/LICENSE': No such file or directory
cp: cannot stat '/build/BUILD/filemisstest-1.0-build/OTHERLICENSE?': No such file or directory
error: File not found: /build/BUILD/filemisstest-1.0-build/BUILDROOT/opt/share/licenses/filemisstest-1.0/LICENSE
error: File not found: /build/BUILD/filemisstest-1.0-build/BUILDROOT/opt/share/licenses/filemisstest-1.0/OTHERLICENSE?
],
)
RPMTEST_CLEANUP
Expand Down
6 changes: 3 additions & 3 deletions tests/rpmspec.at
Expand Up @@ -326,16 +326,16 @@ Prefix: /usr
Simple rpm demonstration.

%prep
cd '/build/BUILD/hello-1.0-x86_64'
cd '/build/BUILD/hello-1.0-build'
rm -rf 'hello-1.0'
/usr/lib/rpm/rpmuncompress -x '/build/SOURCES/hello-1.0.tar.gz'
STATUS=$?
if [ $STATUS -ne 0 ]; then
exit $STATUS
fi
cd 'hello-1.0'
rm -rf '/build/BUILD/hello-1.0-x86_64/SPECPARTS'
/usr/bin/mkdir -p '/build/BUILD/hello-1.0-x86_64/SPECPARTS'
rm -rf '/build/BUILD/hello-1.0-build/SPECPARTS'
/usr/bin/mkdir -p '/build/BUILD/hello-1.0-build/SPECPARTS'
/usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .

echo "Patch #0 (hello-1.0-modernize.patch):"
Expand Down

0 comments on commit dde4fe5

Please sign in to comment.