Discussion:
more fallout from removal of lint
(too old to reply)
Don Lewis
2018-01-02 01:14:00 UTC
Permalink
Since lint was removed from 12.0-CURRENT, it is not possible to build
11.1-STABLE on a 12.0-CURRENT host, but I was able to work around that
by copying /usr/bin/true to /usr/bin/lint. Unfortunately, that trick
doesn't work when updating a 11.1-STABLE poudriere jail on a
12.0-CURRENT host.

===> usr.bin/xlint (install)
===> usr.bin/xlint/lint1 (install)
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -s -o root -g wheel -m 555 lint1 /var/poudriere/jails/111STABLEi386/usr/libexec/lint1
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -o root -g wheel -m 444 lint1.debug /var/poudriere/jails/111STABLEi386/usr/lib/debug/usr/libexec/lint1.debug
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -o root -g wheel -m 444 lint.7.gz /var/poudriere/jails/111STABLEi386/usr/share/man/man7/
===> usr.bin/xlint/lint2 (install)
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -s -o root -g wheel -m 555 lint2 /var/poudriere/jails/111STABLEi386/usr/libexec/lint2
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -o root -g wheel -m 444 lint2.debug /var/poudriere/jails/111STABLEi386/usr/lib/debug/usr/libexec/lint2.debug
===> usr.bin/xlint/xlint (install)
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -s -o root -g wheel -m 555 xlint /var/poudriere/jails/111STABLEi386/usr/bin/lint
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -o root -g wheel -m 444 lint.debug /var/poudriere/jails/111STABLEi386/usr/lib/debug/usr/bin/lint.debug
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -o root -g wheel -m 444 lint.1.gz /var/poudriere/jails/111STABLEi386/usr/share/man/man1/
===> usr.bin/xlint/llib (install)
lint -cghapbx -I/usr/obj/i386.i386/var/poudriere/jails/111STABLEi386/usr/src/tmp/usr/include -Cposix /var/poudriere/jails/111STABLEi386/usr/src/usr.bin/xlint/llib/llib-lposix
sh: lint: not found
*** [llib-lposix.ln] Error code 127

make[6]: stopped in /var/poudriere/jails/111STABLEi386/usr/src/usr.bin/xlint/llib
1 error


# ls -l /usr/bin/lint /usr/bin/true
-r-xr-xr-x 1 root wheel 4976 Dec 30 12:37 /usr/bin/lint
-r-xr-xr-x 1 root wheel 4976 Dec 29 21:13 /usr/bin/true
Shawn Webb
2018-01-02 14:33:08 UTC
Permalink
Post by Don Lewis
Since lint was removed from 12.0-CURRENT, it is not possible to build
11.1-STABLE on a 12.0-CURRENT host, but I was able to work around that
by copying /usr/bin/true to /usr/bin/lint. Unfortunately, that trick
doesn't work when updating a 11.1-STABLE poudriere jail on a
12.0-CURRENT host.
===> usr.bin/xlint (install)
===> usr.bin/xlint/lint1 (install)
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -s -o root -g wheel -m 555 lint1 /var/poudriere/jails/111STABLEi386/usr/libexec/lint1
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -o root -g wheel -m 444 lint1.debug /var/poudriere/jails/111STABLEi386/usr/lib/debug/usr/libexec/lint1.debug
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -o root -g wheel -m 444 lint.7.gz /var/poudriere/jails/111STABLEi386/usr/share/man/man7/
===> usr.bin/xlint/lint2 (install)
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -s -o root -g wheel -m 555 lint2 /var/poudriere/jails/111STABLEi386/usr/libexec/lint2
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -o root -g wheel -m 444 lint2.debug /var/poudriere/jails/111STABLEi386/usr/lib/debug/usr/libexec/lint2.debug
===> usr.bin/xlint/xlint (install)
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -s -o root -g wheel -m 555 xlint /var/poudriere/jails/111STABLEi386/usr/bin/lint
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -o root -g wheel -m 444 lint.debug /var/poudriere/jails/111STABLEi386/usr/lib/debug/usr/bin/lint.debug
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -o root -g wheel -m 444 lint.1.gz /var/poudriere/jails/111STABLEi386/usr/share/man/man1/
===> usr.bin/xlint/llib (install)
lint -cghapbx -I/usr/obj/i386.i386/var/poudriere/jails/111STABLEi386/usr/src/tmp/usr/include -Cposix /var/poudriere/jails/111STABLEi386/usr/src/usr.bin/xlint/llib/llib-lposix
sh: lint: not found
*** [llib-lposix.ln] Error code 127
make[6]: stopped in /var/poudriere/jails/111STABLEi386/usr/src/usr.bin/xlint/llib
1 error
# ls -l /usr/bin/lint /usr/bin/true
-r-xr-xr-x 1 root wheel 4976 Dec 30 12:37 /usr/bin/lint
-r-xr-xr-x 1 root wheel 4976 Dec 29 21:13 /usr/bin/true
I had filed[1] a bug report about this a little over a month ago and
FreeBSD was disinterested in even discussing it. HardenedBSD worked
around the issue by disabling the build of lint in its 11-STABLE and
10-STABLE trees.

[1]: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223892

Thanks,
--
Shawn Webb
Cofounder and Security Engineer
HardenedBSD

Tor-ified Signal: +1 443-546-8752
GPG Key ID: 0x6A84658F52456EEE
GPG Key Fingerprint: 2ABA B6BD EF6A F486 BE89 3D9E 6A84 658F 5245 6EEE
O. Hartmann
2018-01-04 11:17:49 UTC
Permalink
On Tue, 2 Jan 2018 09:33:08 -0500
Post by Shawn Webb
Post by Don Lewis
Since lint was removed from 12.0-CURRENT, it is not possible to build
11.1-STABLE on a 12.0-CURRENT host, but I was able to work around that
by copying /usr/bin/true to /usr/bin/lint. Unfortunately, that trick
doesn't work when updating a 11.1-STABLE poudriere jail on a
12.0-CURRENT host.
===> usr.bin/xlint (install)
===> usr.bin/xlint/lint1 (install)
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -s -o root -g
wheel -m 555 lint1 /var/poudriere/jails/111STABLEi386/usr/libexec/lint1
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -o root -g wheel
-m 444
lint1.debug /var/poudriere/jails/111STABLEi386/usr/lib/debug/usr/libexec/lint1.debug
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -o root -g wheel
-m 444 lint.7.gz /var/poudriere/jails/111STABLEi386/usr/share/man/man7/
===> usr.bin/xlint/lint2 (install) install
-N /var/poudriere/jails/111STABLEi386/usr/src/etc -s -o root -g wheel -m
555 lint2 /var/poudriere/jails/111STABLEi386/usr/libexec/lint2 install
-N /var/poudriere/jails/111STABLEi386/usr/src/etc -o root -g wheel -m 444
lint2.debug /var/poudriere/jails/111STABLEi386/usr/lib/debug/usr/libexec/lint2.debug
===> usr.bin/xlint/xlint (install) install
-N /var/poudriere/jails/111STABLEi386/usr/src/etc -s -o root -g wheel -m
555 xlint /var/poudriere/jails/111STABLEi386/usr/bin/lint install
-N /var/poudriere/jails/111STABLEi386/usr/src/etc -o root -g wheel -m 444
lint.debug /var/poudriere/jails/111STABLEi386/usr/lib/debug/usr/bin/lint.debug
install -N /var/poudriere/jails/111STABLEi386/usr/src/etc -o root -g wheel
-m 444 lint.1.gz /var/poudriere/jails/111STABLEi386/usr/share/man/man1/
===> usr.bin/xlint/llib (install) lint -cghapbx
-I/usr/obj/i386.i386/var/poudriere/jails/111STABLEi386/usr/src/tmp/usr/include
-Cposix /var/poudriere/jails/111STABLEi386/usr/src/usr.bin/xlint/llib/llib-lposix
sh: lint: not found *** [llib-lposix.ln] Error code 127
make[6]: stopped
in /var/poudriere/jails/111STABLEi386/usr/src/usr.bin/xlint/llib 1 error
# ls -l /usr/bin/lint /usr/bin/true
-r-xr-xr-x 1 root wheel 4976 Dec 30 12:37 /usr/bin/lint
-r-xr-xr-x 1 root wheel 4976 Dec 29 21:13 /usr/bin/true
I had filed[1] a bug report about this a little over a month ago and
FreeBSD was disinterested in even discussing it. HardenedBSD worked
around the issue by disabling the build of lint in its 11-STABLE and
10-STABLE trees.
[1]: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223892
Thanks,
I ran also into this problem and for security reasons, I HAVE TO update several
hosts to 11.1-RELENG-p6. I can not, because the building host (poudriere, also
the binary packages for a binary update of base) is on CURRENT.

I hope this issue gets fixed soon.

Regards,

Oliver
Mark Heily
2018-01-04 14:06:16 UTC
Permalink
Post by O. Hartmann
On Tue, 2 Jan 2018 09:33:08 -0500
Post by Don Lewis
Since lint was removed from 12.0-CURRENT, it is not possible to build
11.1-STABLE on a 12.0-CURRENT host
There is a big difference between what is "possible" and what is
"supported".
Since CURRENT is branched off of STABLE, there is always a period of time
where the two build systems are compatible. During this time, it is
*possible*
to build STABLE on a CURRENT host.

However, the build system for CURRENT can be changed in
ways that make it incompatible with building STABLE. This is normal and
expected behavior for a development branch. It has never been a *supported*
option to mix and match source code from different branches on a single
host.

Can you try creating a 11.1-STABLE jail on your 12-CURRENT host, and
perform the build within the jail? I'm not clear on what role Poudriere
plays
in all of this, so that may take some additional work to straighten out.

Regards,

- Mark
Mark Millard
2018-01-05 03:13:04 UTC
Permalink
Mark Heily mark at heily.com wrote on
Post by Mark Heily
the build system for CURRENT can be changed in
ways that make it incompatible with building STABLE. This is normal and
expected behavior for a development branch. It has never been a *supported*
option to mix and match source code from different branches on a single
host.
If I understand right, at the transition from
stable/11 to release/12.0 and stable/12,
stable/11 is supposed to be able to build 12
as part of a source based upgrade. (Normally
the most recent release/11.? should be able
to as well? The oldest supported release/11.?
as well?)

So at certain times one direction of mixing
seems to be supported for specific versions
in order to allow progressing forward.

That does not mean that the other direction
is supported.
Post by Mark Heily
On Tue, 2 Jan 2018 09:33:08 -0500
Post by Don Lewis
Since lint was removed from 12.0-CURRENT, it is not possible to build
11.1-STABLE on a 12.0-CURRENT host
It does seem to me that having a head/ based
system set up to do the stable/?? builds is
backwards generally under the normal principles
of operation. The other direction seems to be
the general intent.

Even having stable/11 try to build, say,
stable/10 would seem to be backwards on
the general principles if I've understood
right. head/ is not actually essential to
the issue.

===
Mark Millard
markmi at dsl-only.net
Mark Millard
2018-01-05 05:39:03 UTC
Permalink
[I need to be more careful about identifying
the context I'm referring to.]
Post by Mark Millard
Mark Heily mark at heily.com wrote on
Post by Mark Heily
the build system for CURRENT can be changed in
ways that make it incompatible with building STABLE. This is normal and
expected behavior for a development branch. It has never been a *supported*
option to mix and match source code from different branches on a single
host.
The original material below was tied to
buildworld buildkernel activity of itself.

This is somewhat different than having
COMPAT_FREEBSD*'s in the live kernel and
running an already correctly built, older
world in a jail based on such a newer
kernel and world.
Post by Mark Millard
If I understand right, at the transition from
stable/11 to release/12.0 and stable/12,
stable/11 is supposed to be able to build 12
as part of a source based upgrade. (Normally
the most recent release/11.? should be able
to as well? The oldest supported release/11.?
as well?)
So at certain times one direction of mixing
seems to be supported for specific versions
in order to allow progressing forward.
That does not mean that the other direction
is supported.
This can have implications for poudriere,
needing to use "pre-built distribution
options" instead of "build from source
options". There would be source around
that "will not be built from" but for
which the source tree is used in the
jail, at least to build ports that
contain modules. (This is another
case of having sources from multiple
branches on a single host. But
the usage is not for buildworld
buildkernel in this context.)

For custom configurations, one might
have to use, say, stable/11/ to build
a world that is then to be put in a
head/ context for use in poudriere.
This avoids building stable/11/
from a head/ context.

More direct jail use may be similar.
(I've only used jails via poudriere.)

Unlike for, say, stable/11/ vs.
stable/10/ there could be temporary
periods for head/ for which some
COMPAT_FREEBSD*'s might not work,
even if such is normally avoided.
This is a risk vs., say, stable/11/
running a jail that has a
stable/10/ world.
Post by Mark Millard
Post by Mark Heily
On Tue, 2 Jan 2018 09:33:08 -0500
Post by Don Lewis
Since lint was removed from 12.0-CURRENT, it is not possible to build
11.1-STABLE on a 12.0-CURRENT host
The below is tied to buildworld buildkernel
activity of itself.
Post by Mark Millard
It does seem to me that having a head/ based
system set up to do the stable/?? builds is
backwards generally under the normal principles
of operation. The other direction seems to be
the general intent.
Even having stable/11 try to build, say,
stable/10 would seem to be backwards on
the general principles if I've understood
right. head/ is not actually essential to
the issue.
===
Mark Millard
markmi at dsl-only.net

Loading...