Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

kernel.mk: Fix regression build issue since #6002 #6089

Merged
merged 21 commits into from
Jun 16, 2024

Conversation

th0ma7
Copy link
Contributor

@th0ma7 th0ma7 commented Apr 30, 2024

Description

  1. kernel.mk: Fix regression build issue since Add generic spksrc.supported.mk #6002 (see description below)
  2. Includes kernel for DSM-7.1 and DSM-7.2

Where was the issue, mainly due to the addition of supporting depend makefile rule into the toolchain build process to accomodate the pre-built rust native installation for qoriq arch:

  • This highlited a pre-existing bug where, when preparing for building a set of kernel modules WORK_DIR was pre-set to the current build location resulting in re-installing the toolchain into the package build directory instead of the actual toolchain/syno-<arch>-<version>. FIXED
  • The addition of depend rule into toolchain ended-up generating a .depend_done, which in turn made the build to entirely skip the actual dependencies which included the kernel module builds. FIXED

Enforcing the WORK_DIR=$(TC_WORK_DIR) in spksrc.cross-env.mk when preparing tc_vars.cmake tc_vars.meson tc_vars.mk solved that, ensuring that the toolchain stays in its appropriate location, resulting in kicking-off the kernel module build process.

Aditionnally:

  1. Usage of the standard spksrc.depend.mk to process all archs from generic build calls (e.g. make arch-<armv7|aarch64|x64|etc>-* or make all-supported - FIXED
  2. Better management of the overwriting of the tc_vars.* files when processing specific archs from generic - FIXED

Fixes #6085

Checklist

  • Build rule all-supported completed successfully
  • New installation of package completed successfully
  • Package upgrade completed successfully (Manually install the package again)
  • Package functionality was tested
  • Any needed documentation is updated/created

Type of change

  • Bug fix
  • New Package
  • Package update
  • Includes small framework changes
  • This change requires a documentation update (e.g. Wiki)

@th0ma7
Copy link
Contributor Author

th0ma7 commented Apr 30, 2024

@hgy59 having a first fix attempt which allowed me to build synokernel-usbserial for a specific arch (namely apollolake).

@th0ma7
Copy link
Contributor Author

th0ma7 commented Apr 30, 2024

@hgy59 confirmed, builds fine for generic arch as it used to. I'll integrate DSM 7.1 and 7.2 kernels, do a few more round of testing and that should be good to go.

@th0ma7
Copy link
Contributor Author

th0ma7 commented May 1, 2024

@hgy59 getting a lot closer. Besides bugs yet to be found, epyc7002 and rtd1619b refuses to build properly. For the moment marked as unsupported in synokernel-usbserial and synokernel-cdrom. Next on my TODO.

Besides that it would be ready for a test run if you have spare cycles.

EDIT: BTW, I doubt this will build sucessfully online as it becomes really large when building for all archs for x64.

@th0ma7 th0ma7 requested a review from hgy59 May 1, 2024 01:04
@th0ma7 th0ma7 self-assigned this May 1, 2024
@hgy59
Copy link
Contributor

hgy59 commented May 1, 2024

@th0ma7 the first issue I see in the github actions is in "Prepare for Build" job.

downloading toolchain as dependency of kernel does not work as expected.

the log starts with:

===> Download packages:  kernel/syno-88f6281-6.2.4 kernel/syno-alpine-6.2.4 kernel/syno-alpine-7.1 kernel/syno-alpine-7.2 kernel/syno-alpine4k-6.2.4 kernel/syno-alpine4k-7.1 kernel/syno-alpine4k-7.2 kernel/syno-apollolake-6.2.4 kernel/syno-apollolake-7.1 kernel/syno-apollolake-7.2 kernel/syno-armada370-6.2.4 kernel/syno-armada370-7.1 kernel/syno-armada375-6.2.4 kernel/syno-armada375-7.1 kernel/syno-armada37xx-6.2.4 kernel/syno-armada37xx-7.1 kernel/syno-armada37xx-7.2 kernel/syno-armada38x-6.2.4 kernel/syno-armada38x-7.1 kernel/syno-armada38x-7.2 kernel/syno-armadaxp-6.2.4 kernel/syno-armadaxp-7.1 kernel/syno-avoton-6.2.4 kernel/syno-avoton-7.1 kernel/syno-avoton-7.2 kernel/syno-braswell-6.2.4 kernel/syno-braswell-7.1 kernel/syno-braswell-7.2 kernel/syno-broadwell-6.2.4 kernel/syno-broadwell-7.1 kernel/syno-broadwell-7.2 kernel/syno-broadwellnk-6.2.4 kernel/syno-broadwellnk-7.1 kernel/syno-broadwellnk-7.2 kernel/syno-broadwellnkv2-7.1 kernel/syno-broadwellnkv2-7.2 kernel/syno-broadwellntbap-7.1 kernel/syno-br
$ make -c kernel/syno-88f6281-6.2.4 download
make: Entering directory '/home/runner/work/spksrc/spksrc/kernel/syno-88f6281-6.2.4'
===>  Downloading toolchain
===>  Downloading files for syno-88f6281
===>    wget --secure-protocol=TLSv1_2 --timeout=30 --waitretry=0 --tries=5 -nv https://sourceforge.net/projects/dsgpl/files/Tool%20Chain/DSM%206.2.4%20Tool%20Chains/Marvell%2088F628x%20Linux%202.6.32/6281-gcc464_glibc215_88f6281-GPL.txz
2024-05-01 01:05:07 URL:https://master.dl.sourceforge.net/project/dsgpl/Tool%20Chain/DSM%206.2.4%20Tool%20Chains/Marvell%2088F628x%20Linux%202.6.32/6281-gcc464_glibc215_88f6281-GPL.txz?viasf=1 [36501964/36501964] -> "6281-gcc464_glibc215_88f6281-GPL.txz.part" [1]
/home/runner/work/spksrc/spksrc/kernel/syno-88f6281-6.2.4/work/tc_vars.mk:1: *** empty variable name.  Stop.
make: Leaving directory '/home/runner/work/spksrc/spksrc/kernel/syno-88f6281-6.2.4'

It first downloads the toolchain (as dependency of kernel)
Than an error is logged:

/home/runner/work/spksrc/spksrc/kernel/syno-88f6281-6.2.4/work/tc_vars.mk:1: *** empty variable name.  Stop.

and indeed, the kernel/*/*/tc_vars.mk file is corrupt.
Before the regular tc_vars.mk content, there are lines of the make output in this file:

(===> Verifying files for syno-88f6281 looks indeed like a variable without a name)

content of spksrc/kernel/syno-88f6281-6.2.4/work/tc_vars.mk/tc_vars.mk:

===>  Verifying files for syno-88f6281
===>    Checking sha1sum of file 6281-gcc464_glibc215_88f6281-GPL.txz
===>    Checking sha256sum of file 6281-gcc464_glibc215_88f6281-GPL.txz
===>    Checking md5sum of file 6281-gcc464_glibc215_88f6281-GPL.txz
/spksrc/toolchain/syno-88f6281-6.2.4/../../distrib/toolchain/6.2.4/6281-gcc464_glibc215_88f6281-GPL.txz
===>  Extracting for syno-88f6281
tar -xpf /spksrc/toolchain/syno-88f6281-6.2.4/../../distrib/toolchain/6.2.4/6281-gcc464_glibc215_88f6281-GPL.txz -C /spksrc/toolchain/syno-88f6281-6.2.4/work 
===>  Fixing libtool files for syno-88f6281
chmod -R u+w /spksrc/toolchain/syno-88f6281-6.2.4/work
===>  Patching for syno-88f6281
patch -p0 < patches/fix_sysroot_quota_h.patch
patching file arm-marvell-linux-gnueabi/libc/usr/include/sys/quota.h
TC_ENV :=
TC_ENV += SYSROOT="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc"
TC_ENV += LD="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-ld"
TC_ENV += LDSHARED="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-gcc -shared"
TC_ENV += CPP="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-cpp"
TC_ENV += NM="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-nm"
TC_ENV += CC="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-gcc"
TC_ENV += AS="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-as"
TC_ENV += RANLIB="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-ranlib"
TC_ENV += CXX="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-g++"
TC_ENV += AR="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-ar"
TC_ENV += STRIP="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-strip"
TC_ENV += OBJDUMP="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-objdump"
TC_ENV += OBJCOPY="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-objcopy"
TC_ENV += READELF="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-readelf"
TC_ENV += CFLAGS="-I/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc/usr/include -I/spksrc/kernel/syno-88f6281-6.2.4/work/install/usr/local/include $(ADDITIONAL_CFLAGS)"
TC_ENV += CPPFLAGS="-I/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc/usr/include -I/spksrc/kernel/syno-88f6281-6.2.4/work/install/usr/local/include $(ADDITIONAL_CPPFLAGS)"
TC_ENV += CXXFLAGS="-I/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc/usr/include -I/spksrc/kernel/syno-88f6281-6.2.4/work/install/usr/local/include $(ADDITIONAL_CXXFLAGS)"
TC_ENV += LDFLAGS="-L/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc/lib -L/spksrc/kernel/syno-88f6281-6.2.4/work/install/usr/local/lib -Wl,--rpath-link,/spksrc/kernel/syno-88f6281-6.2.4/work/install/usr/local/lib -Wl,--rpath,/usr/local/lib $(ADDITIONAL_LDFLAGS)"
TC_ENV += CARGO_HOME="/spksrc/distrib/cargo"
TC_ENV += RUSTUP_HOME="/spksrc/distrib/rustup"
TC_ENV += RUSTUP_TOOLCHAIN="stable"
TC_ENV += CARGO_BUILD_TARGET="armv5te-unknown-linux-gnueabi"
TC_ENV += CARGO_TARGET_ARMV5TE_UNKNOWN_LINUX_GNUEABI_AR="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-ar"
TC_ENV += CARGO_TARGET_ARMV5TE_UNKNOWN_LINUX_GNUEABI_LINKER="/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-gcc"
TC_ENV += CARGO_TARGET_ARMV5TE_UNKNOWN_LINUX_GNUEABI_RUSTFLAGS=" $(ADDITIONAL_RUSTFLAGS)"
TC_CONFIGURE_ARGS := --host=arm-marvell-linux-gnueabi --build=i686-pc-linux
TC_TYPE := DSM
TC_SYSROOT := /spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc
TC_TARGET := arm-marvell-linux-gnueabi
TC_PREFIX := arm-marvell-linux-gnueabi-
TC_PATH := /spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/bin/
CFLAGS := -I/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc/usr/include -I/spksrc/kernel/syno-88f6281-6.2.4/work/install/usr/local/include $(ADDITIONAL_CFLAGS)
CPPFLAGS := -I/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc/usr/include -I/spksrc/kernel/syno-88f6281-6.2.4/work/install/usr/local/include $(ADDITIONAL_CPPFLAGS)
CXXFLAGS := -I/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc/usr/include -I/spksrc/kernel/syno-88f6281-6.2.4/work/install/usr/local/include $(ADDITIONAL_CXXFLAGS)
LDFLAGS := -L/spksrc/toolchain/syno-88f6281-6.2.4/work/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc/lib -L/spksrc/kernel/syno-88f6281-6.2.4/work/install/usr/local/lib -Wl,--rpath-link,/spksrc/kernel/syno-88f6281-6.2.4/work/install/usr/local/lib -Wl,--rpath,/usr/local/lib $(ADDITIONAL_LDFLAGS)
TC_INCLUDE := arm-marvell-linux-gnueabi/libc/usr/include
TC_LIBRARY := arm-marvell-linux-gnueabi/libc/lib
TC_EXTRA_CFLAGS :=
TC_VERS := 6.2.4
TC_BUILD := 25556
TC_OS_MIN_VER := 6.2-25556
TC_ARCH := 88f6281
TC_GCC := 4.6.4
TC_GLIBC := 2.15
TC_KERNEL := 2.6.32

with such a corrupt file, it is not even possible to call make clean

make -C kernel/syno-88f6281-6.2.4 clean
make: Entering directory '/spksrc/kernel/syno-88f6281-6.2.4'
/spksrc/kernel/syno-88f6281-6.2.4/work/tc_vars.mk:1: *** empty variable name.  Stop.
make: Leaving directory '/spksrc/kernel/syno-88f6281-6.2.4'

hopefully you can find the source of the false output redirection 😄


In this context I found another issue.
I first clean a toolchain with make -C toolchain/syno-88f6281-6.2.4 clean
and then call make -C kernel/syno-88f6281-6.2.4 clean

In this scenario the "kernel clean" initializes the toolchain, i.e. it downloads, extracts and builds the toolchain (including the initialization of rust), before it removes the kernel-work folder
That is not expected at all.

$ make -C kernel/syno-88f6281-6.2.4 clean
make: Entering directory '/spksrc/kernel/syno-88f6281-6.2.4'
===>  Setting-up toolchain
===>  Downloading files for syno-88f6281
===>    File 6281-gcc464_glibc215_88f6281-GPL.txz already downloaded
===>  Verifying files for syno-88f6281
===>    Checking sha1sum of file 6281-gcc464_glibc215_88f6281-GPL.txz
===>    Checking sha256sum of file 6281-gcc464_glibc215_88f6281-GPL.txz
===>    Checking md5sum of file 6281-gcc464_glibc215_88f6281-GPL.txz
/spksrc/toolchain/syno-88f6281-6.2.4/../../distrib/toolchain/6.2.4/6281-gcc464_glibc215_88f6281-GPL.txz
===>  Extracting for syno-88f6281
tar -xpf /spksrc/toolchain/syno-88f6281-6.2.4/../../distrib/toolchain/6.2.4/6281-gcc464_glibc215_88f6281-GPL.txz -C /spksrc/toolchain/syno-88f6281-6.2.4/work
===>  Fixing libtool files for syno-88f6281
chmod -R u+w /spksrc/toolchain/syno-88f6281-6.2.4/work
===>  Patching for syno-88f6281
patch -p0 < patches/fix_sysroot_quota_h.patch
patching file arm-marvell-linux-gnueabi/libc/usr/include/sys/quota.h
===>  Installing rustc toolchain for syno-88f6281
===>  - rustup installation PATH: /spksrc/distrib/rustup
===>  - cargo installation PATH: /spksrc/distrib/cargo
===>  - default PATH: /spksrc/distrib/cargo/bin:/scripts:/usr/local/bin:/usr/bin:/bin:/usr/games
===>  curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path
info: downloading installer
...

@th0ma7
Copy link
Contributor Author

th0ma7 commented May 1, 2024

Thnx for testing it out. I'll have a look at that.

Other issues:

  • I also noticed that logging isn't aligned with the remaining and some bits get lost.
  • the two unsupported arch gets included in the all-supported call resulting in build failures. To fix that, then also figure out how to get them to build properly

mk/spksrc.common.mk Outdated Show resolved Hide resolved
@th0ma7
Copy link
Contributor Author

th0ma7 commented May 7, 2024

@hgy59 I've been playing with it in and out and something doesn't please me... Looking into simplifying things a little but current complexity makes it not that easy to deal with. I'll require a few more cycles to get this over with.

@th0ma7
Copy link
Contributor Author

th0ma7 commented May 10, 2024

Yes another round of updates. I've greatly simplified the code (which may not be apparent at first glance but it really is). I yet have a few other bits to deal with before fixing other items mentionned above.

@hgy59 one thing that is now adressed if the playing around with the tc_vars.* files. How it must work for "generic" archs:

  1. create the "generic" tc_vars.* files
  2. back them up
  3. spkclean
  4. write new ones now arch specific
  5. return to no. 3 until all specific archs are over with
  6. restore backup
  7. pursue with the regular build process

Not yet ready for prime time testing though, as mentionned, still needs some more work but now should be simpler to adapt as needed.

@th0ma7
Copy link
Contributor Author

th0ma7 commented May 13, 2024

@hgy59 I believe everything is now addressed and this is ready for a another review & testing.

EDIT: and forgot, i still have two archs kernel to fix...

EDIT2: one thing I wonder, would it be possible to enforce building DSM-7.2 as well when kernel modules are involved?

@th0ma7
Copy link
Contributor Author

th0ma7 commented Jun 4, 2024

@hgy59 I believe all issues are now fixed and this is ready for merge. Remaining epyc7002 but AFAICT that will require a debian image upgrade which justify it's own PR before applying my pending fixes for that arch.

BTW, it looks worst than it actually is, and really is the continuation of #6002 and simplify the whole build process significantly from prior (i.e. relatively to kernel and al). While my testing looked good there will probably be some corner cases. If any, I intend to fix them while enabling epyc7002.

So yeah, a fresh pair of 👀 would be appreciated before merging. thnx.

@th0ma7
Copy link
Contributor Author

th0ma7 commented Jun 11, 2024

@hgy59 considering recent issues with the framework I'm suggesting waiting until the week-end to confirm existing issues are solved before I inject additional changes (while being kernel specific). Let me know if you see anything else needing my attention before I merge.

@hgy59
Copy link
Contributor

hgy59 commented Jun 11, 2024

@hgy59 considering recent issues with the framework I'm suggesting waiting until the week-end to confirm existing issues are solved before I inject additional changes (while being kernel specific). Let me know if you see anything else needing my attention before I merge.

I still vote for dedicated packages for DSM 7.1 and DSM 7.2

@th0ma7
Copy link
Contributor Author

th0ma7 commented Jun 11, 2024

considering recent issues with the framework I'm suggesting waiting until the week-end to confirm existing issues are solved before I inject additional changes (while being kernel specific). Let me know if you see anything else needing my attention before I merge.

I still vote for dedicated packages for DSM 7.1 and DSM 7.2

@hgy59 and you got my vote: fix for that already included in this PR.

Thing I would have liked is to be able to change the matrix on github-action to enforce auto-building DSM-7.1 and DSM-7.2 packages. But they'll have to be manually built & uploaded until that gets figured out, if ever.

@hgy59
Copy link
Contributor

hgy59 commented Jun 11, 2024

Thing I would have liked is to be able to change the matrix on github-action to enforce auto-building DSM-7.1 and DSM-7.2 packages. But they'll have to be manually built & uploaded until that gets figured out, if ever.

There are only three generic archs for DSM 7.2 (x64, aarch64 and armv7) so the matrix is not much larger.
But we normally want to deploy packages for DSM 7.1 only, except for jellyfin that is about to be restricted to DSM 7.2. So far only the kernal packages will need DSM 7.1 and DSM 7.2 versions.

At least we have to update the publish action to not only configure a specific package with ${PACKAGE_TO_PUBLISH} but also the DSM version. To keep it simple, we should publish one DSM version per run.

@hgy59
Copy link
Contributor

hgy59 commented Jun 11, 2024

@th0ma7 BTW I had to restart the github jobs (several times) due to an internal error:
GitHub Actions has encountered an internal error when running your job.

@th0ma7
Copy link
Contributor Author

th0ma7 commented Jun 11, 2024

Are you suggesting to simply add DSM-7.2 builds into the matrix section of the build.yml ?

  build:
    name: Build
    needs: prepare
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        # x64=x86_64, evansport=i686, aarch64=armv8, armv7, hi3535=armv7l, 88f6281=armv5, qoriq=ppc
        # https://github.com/SynoCommunity/spksrc/wiki/Synology-and-SynoCommunity-Package-Architectures
        arch: [noarch, noarch-6.1, noarch-7.0, x64-6.2.4, x64-7.1, evansport-6.2.4, evansport-7.1, aarch64-6.2.4, aarch64-7.1, armv7-6.2.4, armv7-7.1, hi3535-6.2.4, 88f6281-6.2.4, qoriq-6.2.4, comcerto2k-7.1]

I honestly got lost in there on how to include hooks to enhance the matrix as needed. What I had in mind was to include a "new" spk variable or reuse REQUIRED_MIN_DSM (which could be of interest for jellyfin, perhaps less for the kernel use-case though) so the matrix self-adjust based on that.

@hgy59
Copy link
Contributor

hgy59 commented Jun 11, 2024

I honestly got lost in there on how to include hooks to enhance the matrix as needed. What I had in mind was to include a "new" spk variable or reuse REQUIRED_MIN_DSM (which could be of interest for jellyfin, perhaps less for the kernel use-case though) so the matrix self-adjust based on that.

IMHO this will never be possible.
The build.yml is a skeleton for the jobs and does not have any package specific execution path and certainly no knowledge of specific Makefile variables.

@th0ma7
Copy link
Contributor Author

th0ma7 commented Jun 11, 2024

Actually, I'd need further reading but looking at https://docs.github.com/fr/actions/using-jobs/using-a-matrix-for-your-jobs there seems to be a way to dynamically set the matrix.arch value of build.yml. Totally untested by I think we may be able to set a variable in actions/prepare.sh such as:

# x64=x86_64, evansport=i686, aarch64=armv8, armv7, hi3535=armv7l, 88f6281=armv5, qoriq=ppc
# https://github.com/SynoCommunity/spksrc/wiki/Synology-and-SynoCommunity-Package-Architectures
export MATRIX_ARCH="noarch, noarch-6.1, noarch-7.0, x64-6.2.4, x64-7.1, evansport-6.2.4, evansport-7.1, aarch64-6.2.4, aarch64-7.1, armv7-6.2.4, armv7-7.1, hi3535-6.2.4, 88f6281-6.2.4, qoriq-6.2.4, comcerto2k-7.1"

Then from the build.yml reference it such as:

  build:
    name: Build
    needs: prepare
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        arch: [${{ env.MATRIX_ARCH }}]

@th0ma7 th0ma7 mentioned this pull request Jun 12, 2024
10 tasks
@th0ma7 th0ma7 merged commit dec856f into SynoCommunity:master Jun 16, 2024
18 checks passed
@th0ma7 th0ma7 deleted the kernel-fix branch June 16, 2024 10:15
@hgy59
Copy link
Contributor

hgy59 commented Jun 16, 2024

@th0ma7 the prepare job (github action) has now some error logs due missing 'dependency-kernel-list' targets

Run ./.github/actions/prepare.sh
 ---- find dependent packages
  Creating local configuration "local.mk"...
  Setting default toolchain version to DSM-6.2.4
  Setting default toolchain version to DSM-7.1
  Building dependency list...
===> PACKAGES to download references for:  synokernel-cdrom synokernel-usbserial 
make: *** No rule to make target 'dependency-kernel-list'.  Stop.
make: *** No rule to make target 'dependency-kernel-list'.  Stop.
make: *** No rule to make target 'dependency-kernel-list'.  Stop.
make: *** No rule to make target 'dependency-kernel-list'.  Stop.

@th0ma7
Copy link
Contributor Author

th0ma7 commented Jun 16, 2024

@hgy59 thnx for letting me know, I'll have a look at it. I also noticed that make clean under kernel makes it download its related toolchain, will look into fixing both under the same PR.

@hgy59
Copy link
Contributor

hgy59 commented Jun 16, 2024

@th0ma7 the prepare job (github action) has now some error logs due missing 'dependency-kernel-list' targets

Run ./.github/actions/prepare.sh
 ---- find dependent packages
  Creating local configuration "local.mk"...
  Setting default toolchain version to DSM-6.2.4
  Setting default toolchain version to DSM-7.1
  Building dependency list...
===> PACKAGES to download references for:  synokernel-cdrom synokernel-usbserial 
make: *** No rule to make target 'dependency-kernel-list'.  Stop.
make: *** No rule to make target 'dependency-kernel-list'.  Stop.
make: *** No rule to make target 'dependency-kernel-list'.  Stop.
make: *** No rule to make target 'dependency-kernel-list'.  Stop.

@th0ma7 you already removed the dependency-kernel-list target in 908d283

I have now removed the usage in prepare.sh in 5fc6228

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

synokernel-* build is broken
2 participants