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

ARM64 Ubuntu build #407

Open
flosoft opened this issue Jun 6, 2022 · 6 comments
Open

ARM64 Ubuntu build #407

flosoft opened this issue Jun 6, 2022 · 6 comments
Labels
CI Related to continuous integration.

Comments

@flosoft
Copy link

flosoft commented Jun 6, 2022

It would be great to also have arm64 builds for Ubuntu 22.04 alongside the amd64 ones.

@fangfufu fangfufu added CI Related to continuous integration. build_system Issue relates to the build system labels Jun 6, 2022
@gsliepen gsliepen removed the build_system Issue relates to the build system label Jun 7, 2022
@hg
Copy link
Contributor

hg commented Jun 7, 2022

I'm thinking we should just move packages to OBS instead of reinventing the wheel. They provide support for lots of distributions and architectures (on real hardware), sign packages and handle 'proper' repositories automatically.

demo:

Setup is a bit contrived. @gsliepen it looks like I can transfer the repository to you (hopefully there are no weird side effects), or you can do it manually (profile setup is needed in both cases):

  1. create an account on https://build.opensuse.org
  2. enable beta features in profile settings
  3. copy this XML to your own profile (fixing usernames and such), or jobs will fail due to missing dependencies
  4. make sure all needed repositories are enabled in your profile (XML may need some further adjustment). The spec works on all currently supported versions of Ubuntu, Debian, SLES/OpenSUSE, and Fedora.
  5. install the CLI (note: the package in PyPI seems to be very old)
  6. update links in tinc.spec and _service
  7. fetch your 'home project' to your own machine: osc checkout home:foobar
  8. copy _service and tinc.spec from my repository (don't forget to change names and links)
  9. add and commit both: osc add * && osc ci -m 'add files'
  10. attach OBS to your github account (docs: one, two, three)
  11. add this thing to the repo (not finished; I'll PR that after OBS is configured)

maybe something else I'm forgetting.

Maintenance should be easy, you just have to toggle checkboxes for new distribution versions once in a while.

This also solves #329.


BTW, the builds are almost reproducible, we can remove build timestamps and make them fully so.

--- /dev/fd/63	2022-06-07 14:14:43.941001412 +0000
+++ /dev/fd/62	2022-06-07 14:14:43.941001412 +0000
@@ -1344,8 +1344,8 @@
  27c70 7778797a 30313233 34353637 38392b2f  wxyz0123456789+/
  27c80 00000000 00000000 00000000 00000000  ................
  27c90 30313233 34353637 38394142 43444546  0123456789ABCDEF
- 27ca0 00312e31 70726531 38003133 3a33313a  .1.1pre18.13:31:
- 27cb0 3135004a 756e2020 37203230 32320000  15.Jun  7 2022..
+ 27ca0 00312e31 70726531 38003134 3a31343a  .1.1pre18.14:14:
+ 27cb0 3330004a 756e2020 37203230 32320000  30.Jun  7 2022..
  27cc0 436f756c 64206e6f 74207265 61642072  Could not read r
  27cd0 616e646f 6d206e75 6d626572 733a2025  andom numbers: %
  27ce0 730a0054 6f6f206d 75636800 496e7661  s..Too much.Inva

@fangfufu
Copy link
Collaborator

fangfufu commented Jun 7, 2022

I think moving to OBS is a great idea. Removing timestamps and making them fully reproducible would be great.

@hg
Copy link
Contributor

hg commented Jun 8, 2022

Both nightly and stable builds can be supported from the same codebase by branching the main package and replacing this line in _service:

    <param name="revision">@PARENT_TAG@</param>

with this one:

    <param name="revision">1.1</param>

and changing the name in tinc.spec to something like tinc-pre.

I only wish they'd used a more popular SCM instead of re-implementing their own since it's not obvious how it does merging and what to do in case of conflicts.

Which gives us this

for stable builds, and this

for nightly.


As the main developer of tinc you can also (probably) request a top-level project name, so it doesn't have to lie in some obscure 'home project' like it does in my case.

I.e. it can be https://build.opensuse.org/project/show/tinc instead of https://build.opensuse.org/project/show/home:cromulent

Create an account and write to noreply@opensuse.org (yes, that's the correct email).

@flosoft
Copy link
Author

flosoft commented Dec 22, 2023

hey @hg,

Been using your packages for a while now without any issues, besides a small cosmetic one which is the missing Maintainer field.
missing 'Maintainer' field

Any chance of getting that fixed in the package?

@hg
Copy link
Contributor

hg commented Dec 22, 2023

Sure. It was technically correct, though. I'll keep an eye on it since someone is using it.

@flosoft
Copy link
Author

flosoft commented Dec 8, 2024

Seems like that repository is acting up again -

W: GPG error: http://download.opensuse.org/repositories/home:/cromulent/xUbuntu_24.04  InRelease: The following signatures were invalid: EXPKEYSIG 9DA2C742AE15ABC1 home:cromulent OBS Project <home:cromulent@build.opensuse.org>
E: The repository 'http://download.opensuse.org/repositories/home:/cromulent/xUbuntu_24.04  InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Are there any plans of providing an official build at some point?

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

No branches or pull requests

4 participants