Opened 3 years ago

Closed 16 months ago

#6300 closed enhancement (fixed)

Do not include source/test_root.cpp in the source archive

Reported by: Ludovic Rousseau Owned by: Stan
Priority: Should Have Milestone: Alpha 27
Component: Build & Packages Keywords:
Cc: Patch: Phab:D4895

Description

The archive https://releases.wildfiregames.com/0ad-0.0.25b-alpha-unix-build.tar.xz contains the file source/test_root.cpp This file is a generated file.

My problem is that the file is erased by build/workspaces/update-workspaces.sh https://trac.wildfiregames.com/browser/ps/trunk/build/workspaces/update-workspaces.sh#L141

So when I build the Debian package I have an error because after the directory is "cleaned" the file has disappeared and the Debian build tool complains the file is missing compared to the original source code.

For Debian I have removed the file but it would be nice if you stop distributing it upstream. https://salsa.debian.org/games-team/0ad/-/commit/b48b9a6129af5e8a88b59b24c17e041c2cf92ff1

Change History (8)

comment:1 by Stan, 3 years ago

Can you compile with --without-tests ?

comment:2 by Ludovic Rousseau, 3 years ago

I could build with --without-tests but I don't think that would solve the problem.

I have:

$ gbp buildpackage 
dh clean
   debian/rules override_dh_auto_clean
make[1]: Entering directory '/home/rousseau/Debian/0ad'
build/workspaces/clean-workspaces.sh
Cleaning bundled third-party dependencies...
make[2]: Entering directory '/home/rousseau/Debian/0ad/build/premake/premake5/build/gmake2.bsd'
make[2]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
Cleaning Premake5
Cleaning lua-lib
Cleaning luashim-lib
Cleaning zlib-lib
Cleaning zip-lib
Cleaning mbedtls-lib
Cleaning curl-lib
Cleaning example
Cleaning luasocket
make[2]: Leaving directory '/home/rousseau/Debian/0ad/build/premake/premake5/build/gmake2.bsd'
make[2]: Entering directory '/home/rousseau/Debian/0ad/build/premake/premake5/build/gmake2.macosx'
make[2]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
Cleaning Premake5
Cleaning lua-lib
Cleaning luashim-lib
Cleaning zlib-lib
Cleaning zip-lib
Cleaning mbedtls-lib
Cleaning curl-lib
Cleaning example
Cleaning luasocket
make[2]: Leaving directory '/home/rousseau/Debian/0ad/build/premake/premake5/build/gmake2.macosx'
make[2]: Entering directory '/home/rousseau/Debian/0ad/build/premake/premake5/build/gmake2.unix'
make[2]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
Cleaning Premake5
Cleaning lua-lib
Cleaning luashim-lib
Cleaning zlib-lib
Cleaning zip-lib
Cleaning mbedtls-lib
Cleaning curl-lib
Cleaning example
Cleaning luasocket
make[2]: Leaving directory '/home/rousseau/Debian/0ad/build/premake/premake5/build/gmake2.unix'
Removing generated test files...
Cleaning build output...

Done. Try running update-workspaces.sh again now.
# Clean up some extra cruft not picked up by clean-workspaces.sh
find binaries/system/ -type f ! -name readme.txt -delete
rm -f libraries/fcollada/lib/*.a
rm -f build/premake/.*.tmp
rm -rf libraries/source/spidermonkey/lib
rm -f libraries/source/cxxtest-4.4/python/cxxtest/*.pyc
rm -f libraries/source/fcollada/lib/*
rm -rf libraries/source/spidermonkey/include-unix-*
rm -rf libraries/source/spidermonkey/mozjs-78.6.0
rm -f libraries/source/nvtt/lib/*.so
rm -f source/ps/tests/stub_impl_hack.cpp
dh_auto_clean
make[1]: Leaving directory '/home/rousseau/Debian/0ad'
   dh_clean
gbp:error: You have uncommitted changes in your source tree:
gbp:error: On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	deleted:    source/test_root.cpp

no changes added to commit (use "git add" and/or "git commit -a")

gbp:error: Use --git-ignore-new to ignore.

The problem occurs at the clean stage. The Debian script is available at https://salsa.debian.org/games-team/0ad/-/blob/master/debian/rules#L21

The clean stage should not remove files that are provided upstream. At least that indicates a problem somewhere.

PS: the build/workspaces/clean-workspaces.sh script could also remove the files we remove in the Debian script. They are:

    # Clean up some extra cruft not picked up by clean-workspaces.sh
    find binaries/system/ -type f ! -name readme.txt -delete
    rm -f libraries/fcollada/lib/*.a
    rm -f build/premake/.*.tmp
    rm -rf libraries/source/spidermonkey/lib
    rm -f libraries/source/cxxtest-4.4/python/cxxtest/*.pyc
    rm -f libraries/source/fcollada/lib/*
    rm -rf libraries/source/spidermonkey/include-unix-*
    rm -rf libraries/source/spidermonkey/mozjs-78.6.0
    rm -f libraries/source/nvtt/lib/*.so
    rm -f source/ps/tests/stub_impl_hack.cpp

comment:3 by Stan, 3 years ago

We will do some improvements for A26 https://code.wildfiregames.com/rP25871

I guess something might be missing there though https://trac.wildfiregames.com/browser/ps/trunk/build/workspaces/clean-workspaces.sh

comment:4 by Freagarach, 2 years ago

Milestone: Alpha 26Alpha 27

comment:5 by Freagarach, 16 months ago

Milestone: Alpha 27Backlog

Pushing back.

comment:6 by Stan, 16 months ago

Milestone: BacklogAlpha 27
Patch: Phab:D4895

comment:7 by Stan, 16 months ago

Owner: set to Stan

comment:8 by Stan, 16 months ago

Resolution: fixed
Status: newclosed

In 27461:

Don't include source/test_root.cpp in bundles.
Reported by: @LudovicRousseau
Accepted by: @sera
Fixes #6300
Differential Revision: https://code.wildfiregames.com/D4895

Note: See TracTickets for help on using tickets.