dd010101 / vyos-jenkins

Instructions on how to build your own vyos package mirror for stable branches (1.3 equuleus/1.4 sagitta) with Jenkins (for ISO build)
52 stars 15 forks source link

Packages defined for sagitta, that is missing in git #15

Closed GurliGebis closed 1 month ago

GurliGebis commented 1 month ago

I just noticed something - not sure if it is a problem though.

The following three packages is defined for sagitta in the jobs.json file, pointing to the vyos/vyos-build repo:

iproute2
minisign
ocserv

However, if you look here: https://github.com/vyos/vyos-build/tree/sagitta/packages - those folders are missing from the sagitta branch. How does the system handle this?

Crushable1278 commented 1 month ago

The version of iproute2 found in the official {circinus|sagitta} repo is 6.6.0. This version is lower than that found in the upstream Bookworm (for Circinus and Sagitta) Debian repos. The version of minisign found in the official Equuleus repo is 0.9. This version is lower than that found in the upstream Bookworm Debian repos. It is not found in the Sagitta repo. The version of ocserv found in the official Equuleus repo is 1.1.6-3. This version is equivalent to that found in the upstream Bookworm Debian repos. It is not found in the Sagitta repo.

You should not build these for Sagitta. I'm unsure of the behavior around ocserv with its matching version, but on Sagitta .iso build, even if these packages are present in your repo, you should pull in the upstream version instead.

The evidence that this is the case can be found in the 1.5 rolling .iso where the current repo has the mentioned packages, but the .iso built has newer versions. From vyos-1.5-rolling-202406060020-amd64.iso

iproute2    6.9.0-1~bpo12+1
minisign    0.11-1
ocserv      1.1.6-3
dd010101 commented 1 month ago

@GurliGebis These packages are only in equuleus branch. If you don't see the Jenkinsfile on the GIT for sagitta then Jenkins doesn't do anything and acts like the branch doesn't exist. Thus this looks like visual bug, I will mark it as equuleus only.

@Crushable1278 We don't really build these but I would like to clear some things up.

Let's take iproute2 as example - http://dev.packages.vyos.net/?dir=repositories/sagitta/pool/main/i/iproute2 the official repo has this version (iproute2_6.6.0-1~bpo12+1_amd64.deb). It's the same for current.

Why they have it there? The 6.6.0 in repo is just leftover from the previous times and exists there for no reason?

That's not issue though. If the Debian has newer version and the package isn't specifically pinned to VyOS repository (iproute2 isn't) then the apt install decides for it self what it wants and takes the Debian version since it's newer.

That's why you don't need to worry if we would build some redundant package with older version - it will be left unused like it does with the official repository. It's not the case with these packages but I know you likely will find some where we do this.

We take the simpler route to replicate whatever VyOS has since if you have many packages then it's not easy to verify all of them - specifically for branches where we don't even have official ISO. I know sagitta is very close to rolling but equuleus is not.

Do you agree that this way its non-issue to have some redundant packages with older version?

GurliGebis commented 1 month ago

I was more thinking how jenkins handles it (being asked to compile for a branch where the Jenkinsfile is missing) šŸ™‚

dd010101 commented 1 month ago

@GurliGebis You can see what it does if you look at the branch indexing log:

Checking branches...
  Checking branch equuleus
      ā€˜packages/iproute2/Jenkinsfileā€™ found
    Met criteria
No changes detected: equuleus (still at b3da0d46ea029b65a8853b3197374931703a4b60)
  Checking branch sagitta
      ā€˜packages/iproute2/Jenkinsfileā€™ not found
    Does not meet criteria
Processed 10 branches
[Fri Jun 07 07:07:07 CEST 2024] Finished branch indexing. Indexing took 1.7 sec
Finished: SUCCESS

The condition is generally - 1) branch exists 2) there is Jenkinsfile. If one of those isn't met then Jenkins silently waits for you to create branch or put Jenkinsfile there.

GurliGebis commented 1 month ago

Okay, that makes sense šŸ‘