Unable to use Synth inside a 32-bit jail

  • Thread starter Deleted member 59789
  • Start date
D

Deleted member 59789

Guest
I'm trying to build 32-bit packages by using Synth in a dedicated FreeBSD i386 jail. I was trying to run synth upgrade-system inside the jail but I get the following error message:

Code:
raised REPLICANT.SCENARIO_UNEXPECTED : /sbin/mount -t tmpfs tmpfs /usr/obj/synth-live/SL09 => failed with code 1

After that, I experimented by using mount -t tmpfs tmpfs /mnt and then got this error:

Code:
mount: tmpfs: Operation not permitted

I'm not sure what else needs to be configured to solve this problem. This is what I currently have for /etc/jail.conf

Code:
freebsdx86 {
    host.hostname = "freebsdx86";
    path = "/usr/jails/${host.hostname}";
    allow.mount;
    allow.mount.tmpfs;
    mount.devfs;
    ip4.addr = "192.168.0.192";
    interface = "igb0";
    exec.start = "/bin/sh /etc/rc";
    exec.stop = "/bin/sh /etc/rc.shutdown";
}

I'm aware that Poudriere can handle this kind of task with a couple command flags but I prefer using Synth since I like how easy it is to configure and how it builds packages with its parallelism approach via N-workers times M-jobs.
 
I'm aware that Poudriere can handle this kind of task with a couple command flags but I prefer using Synth since I like how easy it is to configure and how it builds packages with its parallelism approach via N-workers times M-jobs.
I don't know the answer for your question, I never tried to use either Synth or Poudriere inside a jail but you probably would need to remove some restrictions jails have. IMO this is easier to just configure Pouriere to use a i386 jail than run something inside a i386 jail.

Poudriere can also configured to do the same:

PARALLEL_JOBS
PREPARE_PARALLEL_JOBS
 
It seems you have answered the real need of my question. Your response motivated me to allocate a bit of time to study Poudriere through the handbook and its manpages. After getting a better picture of what it is capable of and how to take advantage of it, it started to seem less "intimidating" to me. As of now with me writing this reply, I'm currently using it to build the i386 packages I need within a 13i386 Poudriere jail that I created. After that, I will need to figure out how to make a repo configuration to have pkg see the i386 packages I generated for installing.

With that said, I don't know if I would feel comfortable marking this thread as "solved" just yet. Someone in the future looking at this thread may genuinely want an answer to running Synth or Poudriere inside a jail.
 
Huh, interesting. Inside my freebsdx86 jail, both [K] and [L] were already set to false. I didn't configure those, they were like that to begin with. However, when I was checking my Synth configuration on the host itself, both were already set to true. Synth probably detected I was in a jail and set both of those to false by the time I ran synth configure.
 
After that, I will need to figure out how to make a repo configuration to have pkg see the i386 packages I generated for installing.

If you are going to install the packages in the same machine, like in a x86 jail, you can use nullfs(5) to mount the necessary files inside the jail and point pkg(8) to it like done in the host.

Alternatively, you can just use the typical http method. THIS is a good guide, slightly outdated but yet quite on point. There is also good information on the POUDRIERE page.
 
If you are going to install the packages in the same machine, like in a x86 jail, you can use nullfs(5) to mount the necessary files inside the jail and point pkg(8) to it like done in the host.

Alternatively, you can just use the typical http method. THIS is a good guide, slightly outdated but yet quite on point. There is also good information on the POUDRIERE page.
Hey there, I just want to follow up with you.

The original point of needing to build my i386 packages was to solve the problem of installing i386 emulators/wine-devel inside ~/.i386-wine-pkg for Wine 32-bit compatibility because I was building my own packages using Synth and already disabled the FreeBSD repository.

What I decided to do was use my Poudriere-generated i386 packages inside my 32-bit jail by using pkg(8)'s --rootdir in order to install emulators/wine-devel and friends to /root/.i386-wine-pkg. I exit out and move that directory from my jail to my to user's home dir and then chown -R $USER:$USER ~/.i386-wine-pkg it.

This got it to work and finally solved my need for building i386 packages.
 
Back
Top