Bug 239066

Summary: sysutils/qjail: option install -f does not work on STABLE version
Product: Ports & Packages Reporter: Igor Konov <montblanc>
Component: Individual Port(s)Assignee: freebsd-ports-bugs (Nobody) <ports-bugs>
Status: New ---    
Severity: Affects Only Me CC: lwhsu, qjail1, qjail
Priority: --- Flags: qjail: maintainer-feedback+
Version: Latest   
Hardware: Any   
OS: Any   
Bug Depends on: 250696    
Bug Blocks:    

Description Igor Konov 2019-07-09 15:55:58 UTC
Option install -f does not work on STABLE and CURRENT version.

For correction:

1946,1949c1946,1947
<     if [ "${local_install}" != "yes" ]; then
<       kill "to the sharedfs directory tree."
<     fi;; esac
<
---
>     kill "to the sharedfs directory tree.";; esac
>
Comment 1 Igor Konov 2019-07-09 17:12:12 UTC
New patch

1938,1948c1938,1946
<     if [ "${local_install}" != "yes" ]; then
<       post_msg "Error: The Host is running a ${os_release} version."
<       post_msg "Manually fetch distribution base.txz file from snapshot"
<       post_msg "FTP directory. Use option -f to create a clean qjail system."
<       post_msg "If you compiled your OS from source, most likly it's"
<       post_msg "revision number is out of sync with the snapshot version."
<       post_msg "To update the qjail system to use the same OS revision number"
<       post_msg "as what's running on the host."
<       post_msg "Issue 'qjail update -b' command to clone the host's running libs"
<       kill "to the sharedfs directory tree."
<     fi;; esac
---
>     post_msg "Error: The Host is running a ${os_release} version."
>     post_msg "Manually fetch distribution base.txz file from snapshot"
>     post_msg "FTP directory. Use option -f to create a clean qjail system."
>     post_msg "If you compiled your OS from source, most likly it's"
>     post_msg "revision number is out of sync with the snapshot version."
>     post_msg "To update the qjail system to use the same OS revision number"
>     post_msg "as what's running on the host."
>     post_msg "Issue 'qjail update -b' command to clone the host's running libs"
>     kill "to the sharedfs directory tree.";; esac
Comment 2 qjail 2019-07-09 18:58:03 UTC
Just saying something doesn't work is not providing enough information about what you were trying to do in the first place. So I will have to guess at what you were trying to do.  

1. Based on the first message qjail outputted is telling you that the version of Freebsd running on the host is not the same as the version of Freebsd you are trying to create the qjail environment with. By design qjail requires that the qjail environment is the same release level as the host. This means you are trying to do something that is invalid and not allowed. This is a user usage problem and not a qjail problem.

2. The stable and current versions of FreeBSD are moving targets and qjail is not supported to work on those versions. Qjail is only supported at the RELEASE version level. No port is ever supported for stable and current version levels. Now most times changes made in those versions do not effect qjail, but in the past there have been times when that was not true and if so it will come to light during qjail new release testing.

3. The qjail install -f command only works if you have the distribution file all ready downloaded to your FreeBSD hard drive and it matches the version of Freebsd that is running on the host. It expects to find the base.txz file at the path location provided with the -f flag.

For this bug to get further attention you have to explain in detail what you were doing and provide the qjail commands used. You will have to be using 12.0-RELEASE on the host and installing that same version into the qjail environment when using the -f flag on the qjail install command doing your testing. Otherwise this bug report will be closed as user error.
Comment 3 Igor Konov 2019-07-10 06:01:18 UTC
~~~
# qjail install
Error: The Host is running a STABLE version.
Manually fetch distribution base.txz file from snapshot
FTP directory. Use option -f to create a clean qjail system.
If you compiled your OS from source, most likly it's
revision number is out of sync with the snapshot version.
To update the qjail system to use the same OS revision number
as what's running on the host.
Issue 'qjail update -b' command to clone the host's running libs
to the sharedfs directory tree.
~~~

The script says that you need to manually fetch base.txz and use the -f option.

~~~
# fetch https://download.freebsd.org/ftp/snapshots/arm64/aarch64/12.0-STABLE/base.txz
base.txz                                               135 MB 1558 kBps 01m29s
# qjail install -f .
Error: The Host is running a STABLE version.
Manually fetch distribution base.txz file from snapshot
FTP directory. Use option -f to create a clean qjail system.
If you compiled your OS from source, most likly it's
revision number is out of sync with the snapshot version.
To update the qjail system to use the same OS revision number
as what's running on the host.
Issue 'qjail update -b' command to clone the host's running libs
to the sharedfs directory tree.
~~~

When using the patched script:

~~~
# qjail.patched install -f .
The RELEASE distribution files are populating template.
Estimated less than 1 minute for this to complete.

sharedfs is being populated.
Estimated less than 1 minute for this to complete.

Successfully installed qjail system.
~~~


1. The host uses the FreeBSD-12.0-STABLE-arm64-aarch64-RPI3-20190705-r349749.img.xz image. Jail also uses base.txz revision r349749.

2. The patch adds the ability to use the STABLE and CURRENT versions for experiments.
Comment 4 qjail 2019-07-10 15:46:00 UTC
This problem is caused by your bug report # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238192

The FreeBSD directory naming convention of the source files has to be updated to the new naming convention standard. This is out of my control. This is not a qjail bug. You are the only person using aarch64 so this has no impact on the normal qjail user community. You should file a bug report to get the FreeBSD directory naming convention for aarch64 sources changed to the new naming convention standard. Your only other option is maintain your own patches to qjail to use with aarch64 distribution files.
Comment 5 Igor Konov 2019-07-12 10:47:11 UTC
> This problem is caused by your bug report #
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238192

These are two different problems.

> The FreeBSD directory naming convention of the source files 
> has to be updated to the new naming convention standard.
> This is out of my control. This is not a qjail bug.

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238192#c5
This is a bug in qjail,  it should fetch from arm64/aarch64 directory.

> You are the only person using aarch64 so this has no impact 
> on the normal qjail user community.

The stated error is also relevant on the amd65 platform.
Option install -f does not work on STABLE version.
Comment 6 Joe Barbish 2020-10-28 14:37:12 UTC
The "qjail install -f /usr/base.txz" option has been fixed in qjail-5.5 

You can close this bug report as fixed.