Solved poudriere and locally build stable branch version mismatch

Hello forum,

Recently I decided to go back to the stable branch with poudriere and a build server.
But for some reason I cannot create a 14-STABLE jail with poudriere.

Disclaimer: I usually prefer text over screenshots, but to avoid lost of context with my bad English i will need to appeal to images this time.

poudriere_jail_creation.jpg


As you all can see I use this command to create my jail:
Code:
doas poudriere jail -c -v stable/14 -a amd64 -j 14STABLE-amd64 -J2 -m src=/usr/src

Before this post I also tried:
Code:
doas poudriere jail -c -v 14-STABLE -a amd64 -j 14STABLE-amd64 -J2 -m src=/usr/src
# and
doas poudriere jail -c -v 14.2-STABLE -a amd64 -j 14STABLE-amd64 -J2 -m src=/usr/src

poudriere_jail_done.jpg


With the same result, during jail's creation the version match with the one I specified in the cmd line, but it allways change to 14-RELEASE-p6 after it's done.

AFAIK it shouldn't be a release, since my system it running stable and the jail used the same src and obj that is running on my system.

Can someone kindly clarify where is my mistake/confusion, please?
 
It builds from whatever source is present in /usr/src/, I suspect that source is on the releng/14.1 branch, thus 14.1-RELEASE. Did you switch branches too? And then did the whole build{world,kernel} bit?

Also note that stable/14 is newer than releng/14.1, so the host must also be running stable/14. The host has to be the same or newer version than the jail.

Alternatively, you could use poudriere jail -c -j 14STABLE-amd64 -v 14-STABLE and it'll build from a downloaded snapshot. That may or may not be in sync with your local 14-STABLE though.
 
It builds from whatever source is present in /usr/src/, I suspect that source is on the releng/14.1 branch, thus 14.1-RELEASE. Did you switch branches too? And then did the whole build{world,kernel} bit?

Also note that stable/14 is newer than releng/14.1, so the host must also be running stable/14. The host has to be the same or newer version than the jail.

Alternatively, you could use poudriere jail -c -j 14STABLE-amd64 -v 14-STABLE and it'll build from a downloaded snapshot. That may or may not be in sync with your local 14-STABLE though.
That is the problem SirDice, as you can see in the bottom of my second picture in my opening post, I'm in fact running 14.2-STABLE, vide the output of freebsd-version -kru.

Also, my source is from the stable branch, look at my shell history:
1732718716157.png
 
What happenes if you buildworld/buildkernel BEFORE creating poudriere builder jail?

In my exapmles of my Tips and tricsk page on brew.bsd.cafe, I already had pre-built world and kernel at /usr/obj.

Another difference between yours and mine is that I have custom kernel config file to enable additional options and specifyng it with -K option.
So if pre-building world and kernel does not help, next to try could be (if you're using GENERIC kernel) additionally specifying -K GENERIC.
 
What happenes if you buildworld/buildkernel BEFORE creating poudriere builder jail?
I did, I'm already running 14.2-stable, and I did not use the -b flag with poudriere so it uses the same binaries then my host is running on.
 
You could do what I do with 15-CURRENT. I use my /usr/obj to update my poudriere jails. The poudriere jail src method is used to create and maintain the jail, i.e.,

Code:
cwsys# poudriere jail -l
JAILNAME  VERSION              ARCH  METHOD               TIMESTAMP           PATH
HEADamd64 15.0-CURRENT 1500028 amd64 src=/opt/src/git-src 2024-11-27 09:15:14 /poudriere/cwsys/jails/HEADamd64
cwsys#

I upgrade my jails when I update my host. As you can see it was updated today.
 
I use my /usr/obj to update my poudriere jails. The poudriere jail src method is used to create and maintain the jail
As I said in my original post, I did exactly that, but with 14-STABLE.

I will try to explain better:

A few days ago I moved my homelab from 14.1-RELEASE to 14-STABLE.
I got the source issuing the following command (as showed in my previous comments):

Code:
doas git clone --branch stable/14 https://git.FreeBSD.org/src.git /usr/src

And then I compiled and installed the code issuing the following commands:

Code:
cd /usr/src
doas make -j4 buildworld
doas make -j4 buildkernel
doas make installkernel
doas shutdown -r now
doas etcupdate -p
cd /usr/src
doas make installword
doas etcupdate -B
doas make check-old
doas make delete-old
doas make check-old-libs
doas make delete-old-libs
doas shutdown -r now

To prove that I'm running 14-STABLE, here is the output of the freebsd-version -kru (again):

Code:
beastie@BattleStar-Hydra --> ~
Ψ freebsd-version -kru                                                                                                  < 19:08 >  < 11,724-11-27 >  < 130 > 
14.2-STABLE
14.2-STABLE
14.2-STABLE

After that i915kms stopped working, so I disabled and decided to build it from ports with my new environment.

I created my poudriere jail with this command:

Code:
doas poudriere jail -c -v stable/14 -a amd64 -j 14STABLE-amd64 -J2 -m src=/usr/src

But for some reason it results in a 14.1-RELEASE-p6:

Code:
beastie@BattleStar-Hydra --> ~
Ψ poudriere jail -l                                                                                                       < 19:08 >  < 11,724-11-27 >  < 0 > 
JAILNAME       VERSION                 ARCH  METHOD       TIMESTAMP           PATH
14STABLE-amd64 14.1-RELEASE-p6 1402500 amd64 src=/usr/src 2024-11-27 14:24:00 /usr/local/poudriere/jails/14STABLE-amd64

Why?

PS:
As you all can see I use this command to create my jail:
doas poudriere jail -c -v stable/14 -a amd64 -j 14STABLE-amd64 -J2 -m src=/usr/src
Before this post I also tried:
doas poudriere jail -c -v 14-STABLE -a amd64 -j 14STABLE-amd64 -J2 -m src=/usr/src # and doas poudriere jail -c -v 14.2-STABLE -a amd64 -j 14STABLE-amd64 -J2 -m src=/usr/src

AFAIK it shouldn't be a release, since my system it running stable and the jail used the same src and obj that is running on my system.

Can someone kindly clarify where is my mistake/confusion, please?
 
This suggests your sources are at 14.1-RELEASE. Can you type in git branch, please?
Code:
beastie@BattleStar-Hydra --> /usr/src
Ψ doas git branch                                                                                                         < 19:55 >  < 11,724-11-27 >  < 0 > 
zsh: correct 'git' to '.git' [nyae]? n
* stable/14
beastie@BattleStar-Hydra --> /usr/src
Ψ
 
What's the git hash?

BTW, it's probably not a good idea to manage your git sources from root. Git has been known to contain some vulnerabilities over the years. I've set up an account to manage my "prod" git repo, while I use my own account for development purposes which would be installed on my sandbox machine, in a jail or VM.
 
BTW, it's probably not a good idea to manage your git sources from root. Git has been known to contain some vulnerabilities over the years.
But that is how the handbook tell us to do:
1732746939603.png


What's the git hash?
Code:
beastie@BattleStar-Hydra --> /usr/src
Ψ uname -a                                                                                                                < 19:55 >  < 11,724-11-27 >  < 0 > 
FreeBSD BattleStar-Hydra.chaos.org 14.2-STABLE FreeBSD 14.2-STABLE stable/14-n269671-0e290388cb17 GENERIC amd64
beastie@BattleStar-Hydra --> /usr/src
Ψ
 
Let's take a look at /poudriere/data/packages/${JAIL}-${PORTS}/.building/.jailversion and /poudriere/data/packages/${JAIL}-${PORTS}/.building/.jailversion.
 
Let's take a look at /poudriere/data/packages/${JAIL}-${PORTS}/.building/.jailversion and /poudriere/data/packages/${JAIL}-${PORTS}/.building/.jailversion.
I don't have those dirs, I just created the jail.
Code:
beastie@BattleStar-Hydra --> /usr/src
Ψ ls /usr/local/poudriere                                                                                                  < 0:47 >  < 11,724-11-28 >  < 0 > 
 jails
beastie@BattleStar-Hydra --> /usr/src
Ψ
 
I don't have those dirs, I just created the jail.
Code:
beastie@BattleStar-Hydra --> /usr/src
Ψ ls /usr/local/poudriere                                                                                                  < 0:47 >  < 11,724-11-28 >  < 0 >
 jails
beastie@BattleStar-Hydra --> /usr/src
Ψ
FYI:
In my running configuration, the file cy@ mentioned is /poudriere/data/packages/14amd64-default/.jailversion and having contents 14.2-STABLE 1402500.

And would-be-essential-for-jail part of /usr/local/etc/poudriere.conf is as follows.

Code:
# root of the poudriere zfs filesystem, by default /poudriere
ZROOTFS=/poudriere

# The directory where poudriere will store jails and ports
# BASEFS=/usr/local/poudriere
BASEFS=/poudriere
 
In my running configuration, the file cy@ mentioned is /poudriere/data/packages/14amd64-default/.jailversion and having contents 14.2-STABLE 1402500.
You probably built something with that jail, right? I didn't.

And would-be-essential-for-jail part of /usr/local/etc/poudriere.conf is as follows.

# root of the poudriere zfs filesystem, by default /poudriere ZROOTFS=/poudriere # The directory where poudriere will store jails and ports # BASEFS=/usr/local/poudriere BASEFS=/poudriere
It's certainly is, I just changed to a more organized setup:
Code:
beastie@BattleStar-Hydra --> ~
Ψ cat /usr/local/etc/poudriere.conf                                                                                       < 10:38 >  < 11,724-11-28 >  < 0 > 

# Poudriere can optionally use ZFS for its ports/jail storage. For
# ZFS define ZPOOL, otherwise set NO_ZFS=yes
# 
#### ZFS
# The pool where poudriere will create all the filesystems it needs
# poudriere will use ${ZPOOL}/${ZROOTFS} as its root
#
# You need at least 7GB of free space in this pool to have a working
# poudriere.
#
ZPOOL=tank0

### NO ZFS
# To not use ZFS, define NO_ZFS=yes
#NO_ZFS=yes

# root of the poudriere zfs filesystem, by default /poudriere
# ZROOTFS=/usr/local/poudriere

# the host where to download sets for the jails setup
# You can specify here a host or an IP
# replace _PROTO_ by http or ftp
# replace _CHANGE_THIS_ by the hostname of the mirrors where you want to fetch
# by default: ftp://ftp.freebsd.org
#
# Also note that all protocols supported by fetch(1) are supported here, even
# file:///
# Suggested: https://download.FreeBSD.org
FREEBSD_HOST=ftp://ftp.freebsd.org

# By default the jails have no /etc/resolv.conf, you will need to set
# RESOLV_CONF to a file on your hosts system that will be copied to
# /etc/resolv.conf for the jail, except if you don't need it (using an http
# proxy for example)
RESOLV_CONF=/etc/resolv.conf

# The directory where poudriere will store jails and ports
BASEFS=/usr/local/poudriere

# The directory where the jail will store the packages and logs
# by default a zfs filesystem will be created and set to
# ${BASEFS}/data
#
POUDRIERE_DATA=${BASEFS}/data

# Use portlint to check ports sanity
USE_PORTLINT=no

# Use tmpfs(5)
# This can be a space-separated list of options:
# wrkdir    - Use tmpfs(5) for port building WRKDIRPREFIX
# data      - Use tmpfs(5) for poudriere cache/temp build data
# localbase - Use tmpfs(5) for LOCALBASE (installing ports for packaging/testing)
# all       - Run the entire build in memory, including builder jails.
# yes       - Enables tmpfs(5) for wrkdir and data
# no        - Disable use of tmpfs(5)
# EXAMPLE: USE_TMPFS="wrkdir data"
USE_TMPFS=yes

# How much memory to limit tmpfs size to for *each builder* in GiB
# (default: none)
#TMPFS_LIMIT=8

# List of package globs that are not allowed to use tmpfs for their WRKDIR
# Note that you *must* set TMPFS_BLACKLIST_TMPDIR
# EXAMPLE: TMPFS_BLACKLIST="rust"

# The host path where tmpfs-blacklisted packages can be built in.
# A temporary directory will be generated here and be null-mounted as the
# WRKDIR for any packages listed in TMPFS_BLACKLIST.
# EXAMPLE: TMPFS_BLACKLIST_TMPDIR=${BASEFS}/data/cache/tmp

# How much memory to limit jail processes to for *each builder*
# in GiB (default: none)
# This can also be set per PKGBASE, such as MAX_MEMORY_rust=20.
# Package names with hyphens (-) should be replaced with underscores (_).
#MAX_MEMORY=8

# How many file descriptors to limit each jail process to (default: 8192)
# This can also be set per PKGBASE, such as MAX_FILES_RStudio=2048.
# Package names with hyphens (-) should be replaced with underscores (_).
#MAX_FILES=8192

# If set the given directory will be used for the distfiles
# This allows to share the distfiles between jails and ports tree
# If this is "no", poudriere must be supplied a ports tree that already has
# the required distfiles.
DISTFILES_CACHE=/usr/ports/distfiles

# If set the source tree marked to use git will use the defined
# mirror (default: git.FreeBSD.org/src.git)
#
# Example to use github mirror:
#GIT_BASEURL=github.com/freebsd/freebsd-src.git

# If set the ports tree marked to use git will use the defined
# mirror (default: git.FreeBSD.org/ports.git)
#
# Example to use github mirror:
#GIT_PORTSURL=github.com/freebsd/freebsd-ports.git

# If set the ports tree or source tree marked to use svn will use the defined
# mirror (default: svn.FreeBSD.org)
# The SSL fingerprints are published here:
# https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/svn.html#svn-mirrors
#SVN_HOST=svn.FreeBSD.org

# Automatic OPTION change detection
# When bulk building packages, compare the options from kept packages to
# the current options to be built. If they differ, the existing package
# will be deleted and the port will be rebuilt.
# Valid options: yes, no, verbose
# verbose will display the old and new options
CHECK_CHANGED_OPTIONS=verbose

# Automatic Dependency change detection
# When bulk building packages, compare the dependencies from kept packages to
# the current dependencies for every port. If they differ, the existing package
# will be deleted and the port will be rebuilt. This helps catch changes such
# as DEFAULT_RUBY_VERSION, PERL_VERSION, WITHOUT_X11 that change dependencies
# for many ports.
# Valid options: yes, no
# Default: yes
CHECK_CHANGED_DEPS=yes

# Consider bad dependency lines on the wrong PKGNAME as fatal.
# For example:
#    BUILD_DEPENDS=  p5-List-MoreUtils>=0:lang/p5-List-MoreUtils
# If this port's PKGNAME were really "List-MoreUtils" then it would
# not be recorded into the resulting package.  The next build with
# CHECK_CHANGED_DEPS enabled would consider it a "new dependency"
# since it is in the port but not in the package.  This is usually
# a warning but can be made fatal instead by enabling this option.
# Default: no
#BAD_PKGNAME_DEPS_ARE_FATAL=yes

# Path to the RSA key to sign the PKG repo with. See pkg-repo(8)
# This produces a repo that supports SIGNATURE_TYPE=PUBKEY
# Default: not set
PKG_REPO_SIGNING_KEY=/usr/local/etc/ssl/keys/poudriere.key

# Command to sign the PKG repo with. See pkg-repo(8)
# This produces a repo that supports SIGNATURE_TYPE=FINGERPRINTS
# Default: not set
#SIGNING_COMMAND=ssh signing-server sign.sh

# Repo signing command execution context
# If SIGNING_COMMAND is set, run pkg-repo(8) on the host?
#   no  -   Run in the jail
#   yes -   Run on the host
# Default: no
#PKG_REPO_FROM_HOST=yes

# ccache support. Supply the path to your ccache cache directory.
# It will be mounted into the jail and be shared among all jails.
# It is recommended that extra ccache configuration be done with
# ccache -o rather than from the environment.
#CCACHE_DIR=/var/cache/ccache

# Static ccache support from host.  This uses the existing
# ccache from the host in the build jail.  This is useful for
# using ccache+memcached which cannot easily be bootstrapped
# otherwise.  The path to the PREFIX where ccache was installed
# must be used here, and ccache must have been built statically.
# Note also that ccache+memcached will require network access
# which is normally disabled.  Separately setting RESTRICT_NETWORKING=no
# may be required for non-localhost memcached servers.
#CCACHE_STATIC_PREFIX=/usr/local

# The jails normally only allow network access during the 'make fetch'
# phase.  This is a security restriction to prevent random things
# ran during a build from accessing the network.  Disabling this
# is not advised.  ALLOW_NETWORKING_PACKAGES may be used to allow networking
# for a subset of packages only.
#RESTRICT_NETWORKING=yes
#ALLOW_NETWORKING_PACKAGES="npm-foo"

# Networking can be fully disabled by setting DISALLOW_NETWORKING to "yes"
# this will prevent networking access even in the 'make fetch' phase
# and will block access even for packages listed in ALLOW_NETWORKING_PACKAGES.
# Default: no
#DISALLOW_NETWORKING=yes

# parallel build support.
#
# By default poudriere uses hw.ncpu to determine the number of builders.
# You can override this default by changing PARALLEL_JOBS here, or
# by specifying the -J flag to bulk/testport.
#
# Example to define PARALLEL_JOBS to one single job
PARALLEL_JOBS=2

# How many jobs should be used for preparing the build? These tend to
# be more IO bound and may be worth tweaking. Default: PARALLEL_JOBS * 1.25
PREPARE_PARALLEL_JOBS=2


# If set, failed builds will save the WRKDIR to ${POUDRIERE_DATA}/wrkdirs
# SAVE_WRKDIR=yes

# Choose the default format for the workdir packing: could be tar,tgz,tbz,txz,tzst
# default is tbz
# WRKDIR_ARCHIVE_FORMAT=tbz

# Disable Linux support
# NOLINUX=yes

# By default poudriere sets FORCE_PACKAGE
# To disable it (useful when building public packages):
# NO_FORCE_PACKAGE=yes

# By default poudriere sets PACKAGE_BUILDING
# To disable it:
# NO_PACKAGE_BUILDING=yes

# If you are using a proxy define it here:
# export HTTP_PROXY=bla
# export FTP_PROXY=bla
#
# Cleanout the restricted packages
# NO_RESTRICTED=yes

# By default MAKE_JOBS is disabled to allow only one process per cpu
# Use the following to allow it anyway
ALLOW_MAKE_JOBS=yes

# List of packages that will always be allowed to use MAKE_JOBS
# regardless of ALLOW_MAKE_JOBS. This is useful for allowing ports
# which holdup the rest of the queue to build more quickly.
#ALLOW_MAKE_JOBS_PACKAGES="pkg ccache py*"

# Timestamp every line of build logs
# Default: no
TIMESTAMP_LOGS=yes

# This defines the max time (in seconds) that a command may run for a build
# before it is killed for taking too long. Default: 86400
#MAX_EXECUTION_TIME=86400

# This defines the time (in seconds) before a command is considered to
# be in a runaway state for having no output on stdout. Default: 7200
#NOHANG_TIME=7200

# The repository is updated atomically if set yes. This leaves the
# repository untouched until the build completes. This involves using
# hardlinks and symlinks. The operations are fast, but can be intrusive
# for remote syncing or backups.
# Recommended to always keep on.
# Default: yes
#ATOMIC_PACKAGE_REPOSITORY=yes

# When using ATOMIC_PACKAGE_REPOSITORY, commit the packages if some
# packages fail to build. Ignored ports are considered successful.
# This can be set to 'no' to only commit the packages once no failures
# are encountered.
# Default: yes
#COMMIT_PACKAGES_ON_FAILURE=yes

# Keep older package repositories. This can be used to rollback a system
# or to bisect issues by changing the repository to one of the older
# versions and reinstalling everything with `pkg upgrade -f`
# ATOMIC_PACKAGE_REPOSITORY is required for this.
# Default: no
KEEP_OLD_PACKAGES=yes

# How many old package repositories to keep with KEEP_OLD_PACKAGES
# Default: 5
KEEP_OLD_PACKAGES_COUNT=3

# Make testing errors fatal.
# If set to 'no', ports with test failure will be marked as failed but still
# packaged to permit testing dependent ports (useful for bulk -t -a)
# Default: yes
#PORTTESTING_FATAL=yes

# Define the building jail hostname to be used when building the packages
# Some port/packages hardcode the hostname of the host during build time
# This is a necessary setup for reproducible builds.
#BUILDER_HOSTNAME=pkg.FreeBSD.org

# Define to get a predictable timestamp on the ports tree
# This is a necessary setup for reproducible builds.
#PRESERVE_TIMESTAMP=yes

# Define to yes to build and stage as a regular user
# Default: yes, unless CCACHE_DIR is set and CCACHE_DIR_NON_ROOT_SAFE is not
# set.  Note that to use ccache with BUILD_AS_NON_ROOT you will need to
# use a non-shared CCACHE_DIR that is only built by PORTBUILD_USER and chowned
# to that user.  Then set CCACHE_DIR_NON_ROOT_SAFE to yes.
#BUILD_AS_NON_ROOT=no

# Define to the username and groupname to build as when BUILD_AS_NON_ROOT is yes.
# Default: nobody (uid PORTBUILD_UID)
#PORTBUILD_USER=nobody
#PORTBUILD_GROUP=nobody

# Define to the uid and gid to use for PORTBUILD_USER if the user does not
# already exist in the jail.
# Default: 65532
#PORTBUILD_UID=65534
#PORTBUILD_GID=65534

# Define pkgname globs to boost priority for
# Default: none
#PRIORITY_BOOST="pypy openoffice*"

# Define format for buildnames
# Default: %Y-%m-%d_%Hh%Mm%Ss
# ISO8601:
#BUILDNAME_FORMAT="%FT%T%z"

# Define format for build duration times
# Default: %H:%M:%S
#DURATION_FORMAT="%H:%M:%S"

# Use colors when in a TTY
# Default: yes
#USE_COLORS=yes

# Only build what is requested. Do not rebuild build deps if nothing requested
# depends on them. This can create an inconsistent repository if you often
# build one-off packages but expect the repository to stay consistent.
# Default: yes
#TRIM_ORPHANED_BUILD_DEPS=yes

# Whether or not bulk/testport should delete unknown files in the repository
# Default: yes
#DELETE_UNKNOWN_FILES=yes

# Whether or not bulk/testport should automatically "pkgclean".
# Values: yes, always, no
# yes: Does the behavior with bulk -a and bulk -f. Use of testport or
#      bulk -t or bulk -C will not delete unqueued packages.
# Default: no
#DELETE_UNQUEUED_PACKAGES=no

# A list of directories to exclude from leftover and filesystem violation
# mtree checks.  Ccache is used here as an example but is already
# excluded by default.  There is no need to add it here unless a
# special configuration is used where it is a problem.
# Default: none
#LOCAL_MTREE_EXCLUDES="/usr/obj /var/tmp/ccache"

# URL where your POUDRIERE_DATA/logs are hosted
# This will be used for giving URL hints to the HTML output when
# scheduling and starting builds
#URL_BASE=http://yourdomain.com/poudriere/

# Set to hosted to use the /data directory instead of inline style HTML
# Default: inline
#HTML_TYPE="hosted"

# Set to track remaining ports in the HTML interface.  This can slow down
# processing of the queue slightly, especially for bulk -a builds.
# Default: no
#HTML_TRACK_REMAINING=yes

# Grep build logs to determine a possible build failure reason.  This is
# only shown on the web interface.
# Default: yes
#DETERMINE_BUILD_FAILURE_REASON=yes

# Set to pass arguments to buildworld.
# Default:
#MAKEWORLDARGS="WITHOUT_LLVM_ASSERTIONS=yes WITH_MALLOC_PRODUCTION=yes -DMALLOC_PRODUCTION"

# Set to always attempt to fetch packages or dependencies before building.
# XXX: This is subject to change
# Default: off; requires -b <branch> for bulk or testport.
#PACKAGE_FETCH_BRANCH=latest
# The branch will be appended to the URL:
#PACKAGE_FETCH_URL=pkg+http://pkg.FreeBSD.org/\${ABI}
# Packages which should never be fetched.  This is useful for ports that
# you have local patches for as otherwise the patches would be ignored if
# a remote package is used instead.
#PACKAGE_FETCH_BLACKLIST=""
# Alternatively a whitelist can be created to only allow specific packages to
# be fetched.
# Default: everything
#PACKAGE_FETCH_WHITELIST="gcc* rust llvm*"
 
Let's take a look at /poudriere/data/packages/${JAIL}-${PORTS}/.building/.jailversion and /poudriere/data/packages/${JAIL}-${PORTS}/.building/.jailversion.
I build editors/nano as a test.

I still don't have those dirs:
Code:
beastie@BattleStar-Hydra --> ~
Ψ la /usr/local/poudriere/data/packages                                                                                   < 11:16 >  < 11,724-11-28 >  < 0 >
d0755 root wheel 16 B 11,724-11-28  14STABLE-amd64-local-test/
beastie@BattleStar-Hydra --> ~
Ψ la /usr/local/poudriere/data/packages/14STABLE-amd64-local-test                                                         < 11:17 >  < 11,724-11-28 >  < 0 >
l0755 root wheel 16 B 11,724-11-28  .latest@ ⇒ .real_1732788731
d0755 root wheel  2 B 11,724-11-28  .real_1732788503/
d0755 root wheel 13 B 11,724-11-28  .real_1732788731/
l0755 root wheel 11 B 11,724-11-28  All@ ⇒ .latest/All
l0755 root wheel 14 B 11,724-11-28  Latest@ ⇒ .latest/Latest
l0755 root wheel 12 B 11,724-11-28  logs@ ⇒ .latest/logs
l0755 root wheel 18 B 11,724-11-28  .buildname@ ⇒ .latest/.buildname
l0755 root wheel 20 B 11,724-11-28  .jailversion@ ⇒ .latest/.jailversion
l0755 root wheel 16 B 11,724-11-28  data.pkg@ ⇒ .latest/data.pkg
l0755 root wheel 16 B 11,724-11-28  data.txz@ ⇒ .latest/data.txz
l0755 root wheel 12 B 11,724-11-28  meta@ ⇒ .latest/meta
l0755 root wheel 17 B 11,724-11-28  meta.conf@ ⇒ .latest/meta.conf
l0755 root wheel 23 B 11,724-11-28  packagesite.pkg@ ⇒ .latest/packagesite.pkg
l0755 root wheel 23 B 11,724-11-28  packagesite.txz@ ⇒ .latest/packagesite.txz
beastie@BattleStar-Hydra --> ~
Ψ

EDIT: But I found this file:
Code:
beastie@BattleStar-Hydra --> ~
Ψ cat /usr/local/poudriere/data/packages/14STABLE-amd64-local-test/.latest/.jailversion                                   < 11:19 >  < 11,724-11-28 >  < 0 > 
14.1-RELEASE-p6 1402500
beastie@BattleStar-Hydra --> ~
Ψ
 
You probably built something with that jail, right?
Yes. But if I recall correctly, it was created at creation of jail.

It's certainly is, I just changed to a more organized setup:
Looking into your setup, the directory Cy@ noted should be interpreted as /usr/local/poudriere/data/packages/14STABLE-amd64-default/.jailversion.

I build editors/nano as a test.

I still don't have those dirs:
You have it as a symlink as l0755 root wheel 20 B 11,724-11-28  .jailversion@ ⇒ .latest/.jailversion
.
 
Yes. But if I recall correctly, it was created at creation of jail.


Looking into your setup, the directory Cy@ noted should be interpreted as /usr/local/poudriere/data/packages/14STABLE-amd64-default/.jailversion.


You have it as a symlink as l0755 root wheel 20 B 11,724-11-28  .jailversion@ ⇒ .latest/.jailversion
.
Yup, later I found it and included it in the edit section in my last post. Thanks.

EDIT: But I found this file:
beastie@BattleStar-Hydra --> ~ Ψ cat /usr/local/poudriere/data/packages/14STABLE-amd64-local-test/.latest/.jailversion < 11:19 > < 11,724-11-28 > < 0 > 14.1-RELEASE-p6 1402500 beastie@BattleStar-Hydra --> ~ Ψ
 
I build editors/nano as a test.

I still don't have those dirs:
Code:
beastie@BattleStar-Hydra --> ~
Ψ la /usr/local/poudriere/data/packages                                                                                   < 11:16 >  < 11,724-11-28 >  < 0 >
d0755 root wheel 16 B 11,724-11-28  14STABLE-amd64-local-test/
beastie@BattleStar-Hydra --> ~
Ψ la /usr/local/poudriere/data/packages/14STABLE-amd64-local-test                                                         < 11:17 >  < 11,724-11-28 >  < 0 >
l0755 root wheel 16 B 11,724-11-28  .latest@ ⇒ .real_1732788731
d0755 root wheel  2 B 11,724-11-28  .real_1732788503/
d0755 root wheel 13 B 11,724-11-28  .real_1732788731/
l0755 root wheel 11 B 11,724-11-28  All@ ⇒ .latest/All
l0755 root wheel 14 B 11,724-11-28  Latest@ ⇒ .latest/Latest
l0755 root wheel 12 B 11,724-11-28  logs@ ⇒ .latest/logs
l0755 root wheel 18 B 11,724-11-28  .buildname@ ⇒ .latest/.buildname
l0755 root wheel 20 B 11,724-11-28  .jailversion@ ⇒ .latest/.jailversion
l0755 root wheel 16 B 11,724-11-28  data.pkg@ ⇒ .latest/data.pkg
l0755 root wheel 16 B 11,724-11-28  data.txz@ ⇒ .latest/data.txz
l0755 root wheel 12 B 11,724-11-28  meta@ ⇒ .latest/meta
l0755 root wheel 17 B 11,724-11-28  meta.conf@ ⇒ .latest/meta.conf
l0755 root wheel 23 B 11,724-11-28  packagesite.pkg@ ⇒ .latest/packagesite.pkg
l0755 root wheel 23 B 11,724-11-28  packagesite.txz@ ⇒ .latest/packagesite.txz
beastie@BattleStar-Hydra --> ~
Ψ

You're looking in all the wrong places.

EDIT: But I found this file:
Code:
beastie@BattleStar-Hydra --> ~
Ψ cat /usr/local/poudriere/data/packages/14STABLE-amd64-local-test/.latest/.jailversion                                   < 11:19 >  < 11,724-11-28 >  < 0 >
14.1-RELEASE-p6 1402500
beastie@BattleStar-Hydra --> ~
Ψ

This is the file. It would appear this jail was built from a 14.1-RELEASE download and updated to stable/14. Correct?
 
It would appear this jail was built from a 14.1-RELEASE download and updated to stable/14. Correct?
This doesn't explain why the host is on Stable and the jail is a Release, but I will re-download the src, recompile it and try everything from scratch.
 
Yup, this one will be left without answer.

It worked this time.
Got the fresh src, rebuild stable in the host and used the same obj to build the jail.
Now it has the correct version:
1732883153929.png
 
In my experience, sometimes non-empty /usr/obj on switching branch caused strange results. And if I've applied some patches on /usr/src, without any of them reverted, caused strange mis-upgrading of /usr/src (on CVS and SVN era, before switching to git, as git has stash), of course caused strange build failures/malfunctioning.

When I switched to Root on ZFS, I habitally renamed /usr/src and /usr/obj to something different (to ease rolling back on failures), but now I simply take snapshot and delete the contents of /usr/obj (for /usr/src, switch branch by git) on swithing between branches (i.e., stable/13 to stable/14).
If deep-cloned, git can easily switch between branches. And ZFS allows us to easily rolling back to older snapshots until it is destroyed, occupying extra disk spaces for older contents.
 
Back
Top