Hi Ahmad,You probably don't realize it yet, but you picked a project of one of the most difficult kind to package. Properly bootstrapping packages with circular dependencies is far from being trivial.
Le 2025-01-25 12:54, Ahmad Khalifa a écrit :
On 25/01/2025 08:08, Salvo Tomaselli wrote:I haven't looked at the package at all, but this sounds like a "no", if itcan't be bootstrapped with an already existing compiler.Does this lintian-override help? # bootstrap compiler source is the same source, but thanks lintian source-is-missing [debian/bootstrap/fbc] It's not a blob I brought along from somewhere else.
Technically you are not wrong and pre-built binary objects are not explicitly forbidden by the policy, especially here where you could eventually prove that you can regenerate a perfectly identical copy using the sources provided in the package, and provide documentation and scripts to make it easy for the reviewers to verify that.
In practice pre-built binaries are to be avoided as much as possible for the reasons listed there [1], and sponsors and ftp masters are very likely to all reject the package in its current form.
I took a look at your package. You are a fairly lucky guy: this upstream project already considered the bootstrapping issue, and they already did all the work to make it possible in a more satisfying way [2].
# Precompile the compiler sources into .asm/.c files and put them into a # bootstrap/ directory, then package the source tree including the bootstrap/# sources. This package can then be distributed, and people can do # "make bootstrap" to build an fbc from the precompiled sources.
Although reviewing automatically generated C and assembly code is tedious, that's still much better than disassembling machine code. When you will be done with this, please consider dropping a note to bootstrappable.org so they can list FreeBasic as one of the projects that implements an interesting workaround to the self-hosted compiler bootstrap issue. You will still have to make sure that the generated code can be regenerated (ideally identically, but minor deviations may be allowed) from the source code and the generated compiler.
Another issue you will have to consider is the set of valid architectures for this package. As I understand it, only `amd64` is currently supported and some additional work would be required to build that compiler for `arm64` for example. Currently your `debian/control` mentions `Architecture: any`.
Cheers, [1]: http://bootstrappable.org/best-practices.html#distro[2]: https://github.com/freebasic/fbc/blob/bb84ada575562bef060eb2a05aaafc6204195fb5/makefile#L1420
-- Julien Plissonneau Duquène