canonical / dotnet-source-build

Home of the .NET source build effort for Ubuntu platforms.
GNU General Public License v3.0
1 stars 0 forks source link

Test & Validate the generated output of initial version #5

Open dviererbe opened 1 week ago

dviererbe commented 1 week ago

Because many significant changes have been done with #2, #3, #4, the generated flamenco output has to be tested and validated.

This is the last issue that needs to be resolved to complete the https://github.com/canonical/dotnet-source-build/milestone/1 milestone.

dviererbe commented 1 week ago

First verification run in this PPA: https://launchpad.net/~dviererbe/+archive/ubuntu/dn-src-build-testing-1:

dviererbe commented 1 week ago

Second verification run in this PPA: https://launchpad.net/~dviererbe/+archive/ubuntu/dn-src-build-testing-2

dviererbe commented 1 week ago

I pushed some changes (450bf967b5b2711a55c62816936edc8eac9e24a3, 1252bf142919488f5894d68c1140e4b75f9c4339, 80a82dfadbe3aa30e8cfb65c43a542ce9e07ab61) and will now start a third run in this PPA: https://launchpad.net/~dviererbe/+archive/ubuntu/dn-src-build-testing-3

dviererbe commented 1 week ago

All builds faild. It looks like 1252bf142919488f5894d68c1140e4b75f9c4339 did not work as intended.

One example failure (they all look similar):

dpkg-buildpackage
-----------------

Command: dpkg-buildpackage -us -uc -mLaunchpad Build Daemon <buildd@lcy02-amd64-054.buildd> -b -rfakeroot
dpkg-buildpackage: info: source package dotnet6
dpkg-buildpackage: info: source version 6.0.130-0ubuntu1~24.04.1~ppa2
dpkg-buildpackage: info: source distribution noble
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture amd64
 fakeroot debian/rules clean
dh clean --with bash-completion
   debian/rules override_dh_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
rm --force "/<<PKGBUILDDIR>>"/debian/substvars
dh_clean
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
 debian/rules build
dh build --with bash-completion
   dh_update_autotools_config
   dh_autoreconf
   debian/rules override_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'
echo "libicu:Depends=libicu74" > "/<<PKGBUILDDIR>>/debian/substvars"
printenv | sort
APT_CONFIG=/var/lib/sbuild/apt.conf
ASFLAGS=
ASFLAGS_FOR_BUILD=
CFLAGS=-g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fdebug-prefix-map=/<<PKGBUILDDIR>>=/usr/src/dotnet6-6.0.130-0ubuntu1~24.04.1~ppa2
CFLAGS_FOR_BUILD=-g -O2
CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=3
CPPFLAGS_FOR_BUILD=
CXXFLAGS=-g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fdebug-prefix-map=/<<PKGBUILDDIR>>=/usr/src/dotnet6-6.0.130-0ubuntu1~24.04.1~ppa2
CXXFLAGS_FOR_BUILD=-g -O2
DEB_BUILD_ARCH=amd64
DEB_BUILD_ARCH_ABI=base
DEB_BUILD_ARCH_BITS=64
DEB_BUILD_ARCH_CPU=amd64
DEB_BUILD_ARCH_ENDIAN=little
DEB_BUILD_ARCH_LIBC=gnu
DEB_BUILD_ARCH_OS=linux
DEB_BUILD_GNU_CPU=x86_64
DEB_BUILD_GNU_SYSTEM=linux-gnu
DEB_BUILD_GNU_TYPE=x86_64-linux-gnu
DEB_BUILD_MAINT_OPTIONS=hardening=+all optimize=-lto
DEB_BUILD_MULTIARCH=x86_64-linux-gnu
DEB_BUILD_OPTIONS=noautodbgsym parallel=4
DEB_BUILD_PROFILES=noudeb
DEB_HOST_ARCH=amd64
DEB_HOST_ARCH_ABI=base
DEB_HOST_ARCH_BITS=64
DEB_HOST_ARCH_CPU=amd64
DEB_HOST_ARCH_ENDIAN=little
DEB_HOST_ARCH_LIBC=gnu
DEB_HOST_ARCH_OS=linux
DEB_HOST_GNU_CPU=x86_64
DEB_HOST_GNU_SYSTEM=linux-gnu
DEB_HOST_GNU_TYPE=x86_64-linux-gnu
DEB_HOST_MULTIARCH=x86_64-linux-gnu
DEB_LDFLAGS_MAINT_APPEND=-Wl,--as-needed
DEB_RULES_REQUIRES_ROOT=binary-targets
DEB_TARGET_ARCH=amd64
DEB_TARGET_ARCH_ABI=base
DEB_TARGET_ARCH_BITS=64
DEB_TARGET_ARCH_CPU=amd64
DEB_TARGET_ARCH_ENDIAN=little
DEB_TARGET_ARCH_LIBC=gnu
DEB_TARGET_ARCH_OS=linux
DEB_TARGET_GNU_CPU=x86_64
DEB_TARGET_GNU_SYSTEM=linux-gnu
DEB_TARGET_GNU_TYPE=x86_64-linux-gnu
DEB_TARGET_MULTIARCH=x86_64-linux-gnu
DFLAGS=-frelease
DFLAGS_FOR_BUILD=-frelease
DH_INTERNAL_BUILDFLAGS=1
DH_INTERNAL_OPTIONS=
DH_INTERNAL_OVERRIDE=dh_auto_build
DOTNET_ARCH=x64
DOTNET_BIN=/usr/bin/dotnet
DOTNET_MAJOR=6
DOTNET_MINOR=0
DOTNET_ROOT_DIR=/usr/lib/dotnet
DOTNET_RUNTIME_ID=ubuntu.24.04-x64
DOTNET_SYSCONF_DIR=/etc/dotnet
FCFLAGS=-g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -fcf-protection -fdebug-prefix-map=/<<PKGBUILDDIR>>=/usr/src/dotnet6-6.0.130-0ubuntu1~24.04.1~ppa2
FCFLAGS_FOR_BUILD=-g -O2
FFLAGS=-g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -fcf-protection -fdebug-prefix-map=/<<PKGBUILDDIR>>=/usr/src/dotnet6-6.0.130-0ubuntu1~24.04.1~ppa2
FFLAGS_FOR_BUILD=-g -O2
HOME=/tmp/tmp.V1RpsHOZ2k
LANG=C.UTF-8
LC_ALL=C.UTF-8
LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed
LDFLAGS_FOR_BUILD=
LOGNAME=buildd
MAKEFLAGS=w
MAKELEVEL=2
MFLAGS=-w
OBJCFLAGS=-g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fdebug-prefix-map=/<<PKGBUILDDIR>>=/usr/src/dotnet6-6.0.130-0ubuntu1~24.04.1~ppa2
OBJCFLAGS_FOR_BUILD=-g -O2
OBJCXXFLAGS=-g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fdebug-prefix-map=/<<PKGBUILDDIR>>=/usr/src/dotnet6-6.0.130-0ubuntu1~24.04.1~ppa2
OBJCXXFLAGS_FOR_BUILD=-g -O2
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
PWD=/<<PKGBUILDDIR>>
SCHROOT_ALIAS_NAME=build-PACKAGEBUILD-28611156
SCHROOT_CHROOT_NAME=build-PACKAGEBUILD-28611156
SCHROOT_COMMAND=dpkg-buildpackage -us -uc -mLaunchpad Build Daemon <buildd@lcy02-amd64-054.buildd> -b -rfakeroot
SCHROOT_GID=2501
SCHROOT_GROUP=buildd
SCHROOT_SESSION_ID=build-PACKAGEBUILD-28611156
SCHROOT_UID=2001
SCHROOT_USER=buildd
SHELL=/bin/sh
SOURCE_DATE_EPOCH=1719366109
TERM=unknown
USER=buildd
V=1
mkdir --parents "/<<PKGBUILDDIR>>/prereqs/packages/archive"
ln --symbolic \
    "/usr/lib/dotnet"/source-built-artifacts/Private.SourceBuilt.Artifacts.*.tar.gz \
    "/<<PKGBUILDDIR>>/prereqs/packages/archive/"
cp --recursive --dereference --preserve=mode,ownership,timestamps \
    "/usr/lib/dotnet" \
    "/<<PKGBUILDDIR>>/previously-built-dotnet"
VERBOSE=1 ./build.sh --with-sdk "/<<PKGBUILDDIR>>/previously-built-dotnet" --with-packages "/<<PKGBUILDDIR>>/prereqs/packages/archive" \
-- \
/v:n \
/p:SkipPortableRuntimeBuild=true \
/p:LogVerbosity=n \
/p:MinimalConsoleLogOutput=false \
/p:ContinueOnPrebuiltBaselineError=true
Detected '--': passing remaining parameters '/v:n /p:SkipPortableRuntimeBuild=true /p:LogVerbosity=n /p:MinimalConsoleLogOutput=false /p:ContinueOnPrebuiltBaselineError=true' as build.sh arguments.
Using custom bootstrap SDK from '/<<PKGBUILDDIR>>/previously-built-dotnet', version '6.0.130'
Cannot find PackagesVersions.props.  Debugging info:
  Attempted archive path: /<<PKGBUILDDIR>>/packages/archive
  Attempted custom PVP path: /<<PKGBUILDDIR>>/prereqs/packages/archive/PackageVersions.props
make[1]: *** [debian/rules:101: override_dh_auto_build] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:87: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
dviererbe commented 1 week ago

I think that I found the fixes needed to address the issues from the previous build. Now building at: https://launchpad.net/~dviererbe/+archive/ubuntu/dn-src-build-testing-4

dviererbe commented 1 week ago

It seems to fully work on .NET 8 and the actual build succeed on dotnet6/7, but there it fails to create the deb files :/ (at least an other error :tada:)

dviererbe commented 1 week ago

Uff... I only invoked dh_gencontrol for .NET 8 🙈

https://github.com/canonical/dotnet-source-build/blob/76a17182c71103ca2154e55e036ec3c9fef73c7b/src/rules#L146-L148

dviererbe commented 1 week ago

Just triggered a new build (version: 29a2a8c248451a9c5edc7eaa5999103f0e264e52) in this PPA: https://launchpad.net/~dviererbe/+archive/ubuntu/dn-src-build-testing-5/+packages

It includes fixes, improvements and #6 (PPC64el changes on oracular)

dviererbe commented 6 days ago

All builds succeeded 🎉 Now running the test suite and doing some dogfooding is left.

dviererbe commented 6 days ago

Test are running, lets wait and see...

pkg release arch ppa trigger
dotnet6 jammy amd64 dviererbe/dn-src-build-testing-5 dotnet6/6.0.130-0ubuntu1~22.04.2~ppa1
dotnet6 jammy arm64 dviererbe/dn-src-build-testing-5 dotnet6/6.0.130-0ubuntu1~22.04.2~ppa1
dotnet6 mantic amd64 dviererbe/dn-src-build-testing-5 dotnet6/6.0.130-0ubuntu1~23.10.2~ppa1
dotnet6 mantic arm64 dviererbe/dn-src-build-testing-5 dotnet6/6.0.130-0ubuntu1~23.10.2~ppa1
dotnet6 noble amd64 dviererbe/dn-src-build-testing-5 dotnet6/6.0.130-0ubuntu1~24.04.1~ppa2
dotnet6 noble arm64 dviererbe/dn-src-build-testing-5 dotnet6/6.0.130-0ubuntu1~24.04.1~ppa2
dotnet7 jammy amd64 dviererbe/dn-src-build-testing-5 dotnet7/7.0.119-0ubuntu1~22.04.2~ppa1
dotnet7 jammy arm64 dviererbe/dn-src-build-testing-5 dotnet7/7.0.119-0ubuntu1~22.04.2~ppa1
dotnet7 mantic amd64 dviererbe/dn-src-build-testing-5 dotnet7/7.0.119-0ubuntu1~23.10.2~ppa1
dotnet7 mantic arm64 dviererbe/dn-src-build-testing-5 dotnet7/7.0.119-0ubuntu1~23.10.2~ppa1
dotnet7 noble amd64 dviererbe/dn-src-build-testing-5 dotnet7/7.0.119-0ubuntu1~24.04.1~ppa3
dotnet7 noble arm64 dviererbe/dn-src-build-testing-5 dotnet7/7.0.119-0ubuntu1~24.04.1~ppa3
dotnet8 jammy amd64 dviererbe/dn-src-build-testing-5 dotnet8/8.0.105-8.0.5-0ubuntu1~22.04.2~ppa1
dotnet8 jammy arm64 dviererbe/dn-src-build-testing-5 dotnet8/8.0.105-8.0.5-0ubuntu1~22.04.2~ppa1
dotnet8 mantic amd64 dviererbe/dn-src-build-testing-5 dotnet8/8.0.105-8.0.5-0ubuntu1~23.10.2~ppa1
dotnet8 mantic arm64 dviererbe/dn-src-build-testing-5 dotnet8/8.0.105-8.0.5-0ubuntu1~23.10.2~ppa1
dotnet8 noble amd64 dviererbe/dn-src-build-testing-5 dotnet8/8.0.105-8.0.5-0ubuntu1~24.04.2~ppa1
dotnet8 noble arm64 dviererbe/dn-src-build-testing-5 dotnet8/8.0.105-8.0.5-0ubuntu1~24.04.2~ppa1
dotnet8 noble s390x dviererbe/dn-src-build-testing-5 dotnet8/8.0.105-8.0.5-0ubuntu1~24.04.2~ppa1
dotnet8 oracular amd64 dviererbe/dn-src-build-testing-5 dotnet8/8.0.105-8.0.5-0ubuntu3~ppa1
dotnet8 oracular arm64 dviererbe/dn-src-build-testing-5 dotnet8/8.0.105-8.0.5-0ubuntu3~ppa1
dotnet8 oracular ppc64el dviererbe/dn-src-build-testing-5 dotnet8/8.0.105-8.0.5-0ubuntu3~ppa1
dotnet8 oracular s390x dviererbe/dn-src-build-testing-5 dotnet8/8.0.105-8.0.5-0ubuntu3~ppa1
ppa -A ~/launchpad.oauth tests dn-src-build-testing-5 -r jammy,mantic,noble,oracular -a amd64,arm64,s390x,ppc64el