Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Guido Falsi

On 25/09/23 23:58, Dan Mahoney wrote:




On Sep 25, 2023, at 14:41, Robert Clausecker  wrote:

Am Mon, Sep 25, 2023 at 02:15:19PM -0700 schrieb Edward Sanford Sutton, III:

  Poudriere still causes crashes in my experience depending on hardware,
poudriere configuration, and what you tell it to build; I have to change
defaults to use it and then it is fine. With only 32GB of RAM, if I have it
operate the whole build process in RAM
(USE_TMPFS=all>/usr/local/etc/poudriere) then I have to limit myself to 2
build jobs (PARALLEL_JOBS=2, though I specify it on the poudriere command
line) or I 'may' have issues. Within that I can have multiple jobs per build
(ALLOW_MAKE_JOBS=yes>/usr/local/etc/poudriere,
MAKE_JOBS_NUMBER=4>/usr/local/etc/poudriere.d/make.conf) which gets through
each compile job much faster so no one job is as likely to be running
'alone' holding up other jobs while cores sit idle.


Ports tend to eat more and more storage for their source and dependencies these
days.  I encountered the same issue you had.  A simple fix is to switch to
USE_TMPFS="data localbase" which keeps the source code and objects of the 
package
to be built on disk while placing dependencies into RAM.  This does not actually
reduce performance by much as the biggest spike in disk usage is when 
dependencies
are installed and the distfile is extracted.  This setting helps with the former
while not doing much to the latter.  During the build, compilers infrequently
write small objects to disk, which gets handled very well by the write cache, so
having the WRKDIR on disk doesn't hurt.  The cache also quickly picks up on
frequently needed source files, so there's little penalty in having to read them
from disk every once in a while.


I really, really wish the ports tree supported the option of:

"I am building package X, but it requires dependency A, B, and C, which I will build 
as completely standard, so pretty friggin please, just pkg install them."

So often have I done the dance of "Make...crap, ^c^c^c, pkg install autoconf...Make, 
...dammit... pkg install dialog4portsmakedammit, crap install bison"

pkg, as far as I know, has no concept of tracking the build-dependencies of a 
thing, but I would love the option of pkg --install-all-build-deps-for foo.

"Just run poudriere" is a really crappy option when you just have a single box 
on an AWS t2-tiny install.



There is work in poudriere development to support using binary packages 
for dependencies. [1]


Poudriere already has a -S flag to avoid rebuilding things when a run 
dependency changes. I see there is ongoing work related with this flag, 
but it should be usable most of the time, although it exposes to some of 
the same risks that building manually causes. [2]


DISLAIMER:

Everyone is free to manage his own machines as he sees fit, there is 
really no sanctioned way to do that, and building ports on live machines 
is supported, and I have fixed bugs in the ports I maintain that failed 
to build properly in such an environment, and will keep doing that to 
the best of my abilities.


But I also must state that doing things like that is a way to look for 
unnecessary trouble.


Poudriere is resource hungry, because building software is resource 
hungry and will get even hungrier.


I started computing on a Spectrum 48K and am still baffled by how we got 
to a condition where 48K is not even enough for a simple configuration 
file, but here we are.



[1] 
https://github.com/freebsd/poudriere/commit/a587ae7a3741d56a3991d030a8d08b6e9e619f07


[2] https://github.com/freebsd/poudriere/issues/806

--
Guido Falsi 




Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Guido Falsi

On 26/09/23 00:06, Dave Horsfall wrote:

On Mon, 25 Sep 2023, Guido Falsi wrote:


Anyway building from ports on live machines has always been bad practice
for a lot of reasons.


That's fine if you can afford a spare system just for building...



Again, anyone can do things the way he prefer, but to do things properly 
there are minimum requirements, if you can't get those, you will have to 
accept compromises and the issues that come with those compromises.


What you can't do is expect others to fix your own self imposed issues.

--
Guido Falsi 




Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Guido Falsi

On 26/09/23 08:53, Helge Oldach wrote:

Gareth de Vaux wrote on Mon, 25 Sep 2023 17:06:54 +0200 (CEST):

Hi all, I've just upgraded bind916 which brought half my system down since
it suddenly required a mountain of python packages and rust which needed
around 13GB (and hours) to build - space which I didn't have nor have ever
remotely expected to need for a ports build.

My bind configuration options are basically the defaults:

# grep OPTIONS_FILE_SET /var/db/ports/dns_bind916/options
OPTIONS_FILE_SET+=IDN
OPTIONS_FILE_SET+=JSON
OPTIONS_FILE_SET+=LMDB
OPTIONS_FILE_SET+=MANPAGES
OPTIONS_FILE_SET+=TCP_FASTOPEN
OPTIONS_FILE_SET+=GSSAPI_NONE
OPTIONS_FILE_SET+=DLZ_FILESYSTEM

These are the top level dependencies:

# make -C /usr/ports/dns/bind916 build-depends-list
/usr/ports/ports-mgmt/pkg
/usr/ports/textproc/py-sphinx
/usr/ports/devel/pkgconf
/usr/ports/security/openssl
/usr/ports/converters/libiconv
/usr/ports/devel/libuv
/usr/ports/textproc/libxml2
/usr/ports/dns/libidn2
/usr/ports/devel/json-c
/usr/ports/databases/lmdb
/usr/ports/devel/libedit

Does anyone know which option/dependency is causing this? I suspect
MANPAGES -> py-sphinx since it has 'py' but who knows. Which itself would
be crazy that just a manpage would trigger this kind of intense build.



Indeed, it's py-sphinx, requiring py-openssl at some stage, which is in
turn requiring py-cryptography which needs rust.

DEFAULT_VERSIONS+=pycryptography=legacy

in make.conf fixed this BS for me. Beware of the dogs, you might get
bitten by software that requires the new py-cryptography - I did stumble
over py-certbot and py-awscli for example.


py-cryptography was kept at an old version for a long time, for various 
reasons, the new mandatory dependency on rust being the main one.


But that old version does not work with OpenSSL 3, so the update of 
OpenSSL in FreeBSD 14 imposed the update of py-cryptography.


This is the perfect example of why I say:

- there are external pressures we have little power on (keeping an old 
OpenSSL indefinitely is not an option)
- keeping old version of software (to avoid heavy dependencies or 
whatever) is a landmine waiting to go off


The problem showed up now because the landmine of keeping an old version 
of py-cryptography in the tree finally went off.


I'm sure there are more similar landmines waiting to explode under our 
feet in the ports tree.


--
Guido Falsi 




Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Tatsuki Makino
Hello.

It means that rust is so pervasive that rust builds are unavoidable :)
During the build of rust, we can take off and do some light exercise. That is 
to avoid strained back :)

If you are using a combination of poudriere and portmaster and do not want to 
build rust twice, the following spells it out.

sh -c 'pkg version -q -l \< | cut -f 1 -w | xargs -- pkg query %n:%n-%v | while 
IFS=":'\$'{IFS}" read n nv ; do find /usr/local/poudriere/data/packages/ -regex 
"\(^.*/\)*All/'\$'{n}-[^-/]*.pkg" -not -name "'\$'{nv}" ; done'

This allows us to collect the paths of packages that need updating and have 
already been built by poudriere.
Then replace them with pkg delete and pkg add.
If autoremove needs to work effectively, a little more arrangement is required. 
I will omit that :)

Regards.




Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Guido Falsi

On 26/09/23 09:30, Tatsuki Makino wrote:

Hello.

It means that rust is so pervasive that rust builds are unavoidable :)


Actually it's much worse than that. It's not only rust per se.

My poudriere machine rarely can do a build run without rebuilding one or 
more of rust, some version of clang, some version of gcc, 
qt[56]-webengine, py-qt6 (this one does most of the work single threaded 
unluckily). Also it often ends up having to rebuild firefox and 
thinderbird (these two heavily use rust, and get little speed up from 
ccache), libreoffice (this one at least get a very strong speed up 
thanks to ccache) etc.


I do not approve of this, but the world is going in that direction, 
especially for desktop oriented software but not only.


My conclusion is, I have no power to stop this, so I can only adapt, 
with effort, but still less effort than resisting alone for no benefit.


--
Guido Falsi 




Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Alexander Leidinger

Am 2023-09-26 09:44, schrieb Guido Falsi:

My poudriere machine rarely can do a build run without rebuilding one 
or more of rust, some version of clang, some version of gcc, 
qt[56]-webengine, py-qt6 (this one does most of the work single 
threaded unluckily). Also it often ends up having to rebuild firefox 
and thinderbird (these two heavily use rust, and get little speed up 
from ccache), libreoffice (this one at least get a very strong speed up 
thanks to ccache) etc.


ports-mgmt/sccache-overlay is supposed to handle rust with 
poudriere-devel. I haven't tried it yet, but it's on my list to try to 
get the rust build time down.


Bye,
Alexander.

--
http://www.Leidinger.net alexan...@leidinger.net: PGP 0x8F31830F9F2772BF
http://www.FreeBSD.orgnetch...@freebsd.org  : PGP 0x8F31830F9F2772BF


signature.asc
Description: OpenPGP digital signature


Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Guido Falsi

On 26/09/23 13:46, Alexander Leidinger wrote:

Am 2023-09-26 09:44, schrieb Guido Falsi:

My poudriere machine rarely can do a build run without rebuilding one 
or more of rust, some version of clang, some version of gcc, 
qt[56]-webengine, py-qt6 (this one does most of the work single 
threaded unluckily). Also it often ends up having to rebuild firefox 
and thinderbird (these two heavily use rust, and get little speed up 
from ccache), libreoffice (this one at least get a very strong speed 
up thanks to ccache) etc.


ports-mgmt/sccache-overlay is supposed to handle rust with 
poudriere-devel. I haven't tried it yet, but it's on my list to try to 
get the rust build time down.




Ah, thank you for the information. I did not notice this existed. I'll 
check on it!


--
Guido Falsi 




Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Kurt Jaeger
Hi!

> Am 2023-09-26 09:44, schrieb Guido Falsi:
> 
> > My poudriere machine rarely can do a build run without rebuilding one
> > or more of rust, some version of clang, some version of gcc,
> > qt[56]-webengine, py-qt6 (this one does most of the work single
> > threaded unluckily). Also it often ends up having to rebuild firefox
> > and thinderbird (these two heavily use rust, and get little speed up
> > from ccache), libreoffice (this one at least get a very strong speed
> > up thanks to ccache) etc.
> 
> ports-mgmt/sccache-overlay is supposed to handle rust with
> poudriere-devel. I haven't tried it yet, but it's on my list to try to get
> the rust build time down.

sccache-overlay upstream is at 0.5.4, the port is at 0.2.15 --
do you know why it diverges that much ?

-- 
p...@freebsd.org +49 171 3101372  Now what ?



Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Tomoaki AOKI
On Tue, 26 Sep 2023 14:03:28 +0200
Guido Falsi  wrote:

> On 26/09/23 13:46, Alexander Leidinger wrote:
> > Am 2023-09-26 09:44, schrieb Guido Falsi:
> > 
> >> My poudriere machine rarely can do a build run without rebuilding one 
> >> or more of rust, some version of clang, some version of gcc, 
> >> qt[56]-webengine, py-qt6 (this one does most of the work single 
> >> threaded unluckily). Also it often ends up having to rebuild firefox 
> >> and thinderbird (these two heavily use rust, and get little speed up 
> >> from ccache), libreoffice (this one at least get a very strong speed 
> >> up thanks to ccache) etc.
> > 
> > ports-mgmt/sccache-overlay is supposed to handle rust with 
> > poudriere-devel. I haven't tried it yet, but it's on my list to try to 
> > get the rust build time down.
> > 
> 
> Ah, thank you for the information. I did not notice this existed. I'll 
> check on it!
> 
> -- 
> Guido Falsi 

IIRC, poudriere pulls it in on its first build for rust, before I've
switched to -devel. Not sure it's actually used or not.

But running rustc itself is very, very, very heavy job. It eats up all
6C12T even if only one rustc "process" is running, watching ps.
Maybe it is multithreaded and attemps to use all core, including HTT
ones, available. hurts severly with UI experience.
This is why I try as much proposals as possible for scheduler.

-- 
Tomoaki AOKI



sccache(-overlay) to speed up rust builds in poudriere (was: Re: dns/bind916 builds rust unexpectedly)

2023-09-26 Thread Alexander Leidinger

Am 2023-09-26 14:06, schrieb Kurt Jaeger:

Hi!


Am 2023-09-26 09:44, schrieb Guido Falsi:

> My poudriere machine rarely can do a build run without rebuilding one
> or more of rust, some version of clang, some version of gcc,
> qt[56]-webengine, py-qt6 (this one does most of the work single
> threaded unluckily). Also it often ends up having to rebuild firefox
> and thinderbird (these two heavily use rust, and get little speed up
> from ccache), libreoffice (this one at least get a very strong speed
> up thanks to ccache) etc.

ports-mgmt/sccache-overlay is supposed to handle rust with
poudriere-devel. I haven't tried it yet, but it's on my list to try to 
get

the rust build time down.


sccache-overlay upstream is at 0.5.4, the port is at 0.2.15 --
do you know why it diverges that much ?


devel/sccache is maintained by pizzamig@ (CCed) and at v0.5.4, whereas 
the ports-mgmt/sccache-overlay port is maintained by rust@ (CCed). Maybe 
they can shed some light on this...


Bye,
Alexander.

--
http://www.Leidinger.net alexan...@leidinger.net: PGP 0x8F31830F9F2772BF
http://www.FreeBSD.orgnetch...@freebsd.org  : PGP 0x8F31830F9F2772BF


signature.asc
Description: OpenPGP digital signature


Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Jose Quinteiro
On 9/25/23 13:21, George Mitchell wrote:
> On 9/25/23 11:38, Guido Falsi wrote:
>> [...]
>> There is a more general aspect to this. In the rest of the unix world
>> software is now almost universally build using CI systems and
>> buildboxes, people use binary packages almost all the time in linux.
>> Developers don't care to keep low overhead in their builds and with
>> dependency. The ports tree cannot mitigate this external pressure.
>>
>> Anyway building from ports on live machines has always been bad
>> practice for a lot of reasons.
>> [...]
> And yet it mostly works for some of us.  I'd be overjoyed to sign up
> with the program (using packages only) if packages not using CUPS
> (that would run with unassisted lpr) were available, let's say as a
> flavor.  But until then ...   -- George
> 
The sudden appearance of a Rust requirement broke at least some CI systems:
https://github.com/pyca/cryptography/issues/5771#issuecomment-774997087



Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Jose Quinteiro
On 9/26/23 00:17, Guido Falsi wrote:
> On 26/09/23 08:53, Helge Oldach wrote:
>> Gareth de Vaux wrote on Mon, 25 Sep 2023 17:06:54 +0200 (CEST):
>>> Hi all, I've just upgraded bind916 which brought half my system down
>>> since
>>> it suddenly required a mountain of python packages and rust which needed
>>> around 13GB (and hours) to build - space which I didn't have nor have
>>> ever
>>> remotely expected to need for a ports build.
>>>
>>> My bind configuration options are basically the defaults:
>>>
>>> # grep OPTIONS_FILE_SET /var/db/ports/dns_bind916/options
>>> OPTIONS_FILE_SET+=IDN
>>> OPTIONS_FILE_SET+=JSON
>>> OPTIONS_FILE_SET+=LMDB
>>> OPTIONS_FILE_SET+=MANPAGES
>>> OPTIONS_FILE_SET+=TCP_FASTOPEN
>>> OPTIONS_FILE_SET+=GSSAPI_NONE
>>> OPTIONS_FILE_SET+=DLZ_FILESYSTEM
>>>
>>> These are the top level dependencies:
>>>
>>> # make -C /usr/ports/dns/bind916 build-depends-list
>>> /usr/ports/ports-mgmt/pkg
>>> /usr/ports/textproc/py-sphinx
>>> /usr/ports/devel/pkgconf
>>> /usr/ports/security/openssl
>>> /usr/ports/converters/libiconv
>>> /usr/ports/devel/libuv
>>> /usr/ports/textproc/libxml2
>>> /usr/ports/dns/libidn2
>>> /usr/ports/devel/json-c
>>> /usr/ports/databases/lmdb
>>> /usr/ports/devel/libedit
>>>
>>> Does anyone know which option/dependency is causing this? I suspect
>>> MANPAGES -> py-sphinx since it has 'py' but who knows. Which itself
>>> would
>>> be crazy that just a manpage would trigger this kind of intense build.
>>>
>>
>> Indeed, it's py-sphinx, requiring py-openssl at some stage, which is in
>> turn requiring py-cryptography which needs rust.
>>
>> DEFAULT_VERSIONS+=pycryptography=legacy
>>
>> in make.conf fixed this BS for me. Beware of the dogs, you might get
>> bitten by software that requires the new py-cryptography - I did stumble
>> over py-certbot and py-awscli for example.
> 
> py-cryptography was kept at an old version for a long time, for various
> reasons, the new mandatory dependency on rust being the main one.
> 
> But that old version does not work with OpenSSL 3, so the update of
> OpenSSL in FreeBSD 14 imposed the update of py-cryptography.
> 

And yet I remember a proposal that would have prevented this requirement
on one of these lists. Separate base SSL from ports SSL. Force ports to
use ports SSL and prune back base SSL to the bare minimum required for
base. This would have given FreeBSD the freedom to try alternative
things like LibreSSL. It was proposed when the "upgrade" to Openssl 3
delayed the release of 14.

> This is the perfect example of why I say:
> 
> - there are external pressures we have little power on (keeping an old
> OpenSSL indefinitely is not an option)
> - keeping old version of software (to avoid heavy dependencies or
> whatever) is a landmine waiting to go off
> 
> The problem showed up now because the landmine of keeping an old version
> of py-cryptography in the tree finally went off.
> 
> I'm sure there are more similar landmines waiting to explode under our
> feet in the ports tree.
> 

The problem with bending over backwards to accommodate a project that
treats its users with contempt is that they'll overwhelm you eventually.
I'm willing to bet the Python community is at least an order of
magnitude larger than the FreeBSD community.

The creeping Rustification of open source projects is marginalizing
projects that are already marginal. The brunt of the damage caused by
these capricious changes is borne by communities that are already small.
Those communities have no chance to win if they fight back, but if they
work to adapt to the changes the larger projects are imposing on them
they only accelerate their demise and make hegemony more likely.

The effort would be better spent in either exorcising the dependencies
that are causing breakage, or fork the projects involved. Yes, these are
work too, but there's a slim hope that if enough marginal communities do
this, the large projects will feel back pressure and become more
accommodating. Yes, it's a  small chance.

I know myself well enough in my advanced age to know I have a sometimes
unhealthy instinct to swim against the current. Take the above with a
grain of salt, but I suspect that if you're using FreeBSD we may share
some of the same instinct.

Thanks,
Jose



Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Guido Falsi

On 26/09/23 17:26, Jose Quinteiro wrote:

On 9/25/23 13:21, George Mitchell wrote:

On 9/25/23 11:38, Guido Falsi wrote:

[...]
There is a more general aspect to this. In the rest of the unix world
software is now almost universally build using CI systems and
buildboxes, people use binary packages almost all the time in linux.
Developers don't care to keep low overhead in their builds and with
dependency. The ports tree cannot mitigate this external pressure.

Anyway building from ports on live machines has always been bad
practice for a lot of reasons.
[...]

And yet it mostly works for some of us.  I'd be overjoyed to sign up
with the program (using packages only) if packages not using CUPS
(that would run with unassisted lpr) were available, let's say as a
flavor.  But until then ...   -- George


The sudden appearance of a Rust requirement broke at least some CI systems:
https://github.com/pyca/cryptography/issues/5771#issuecomment-774997087



For the record, the comment you're referencing (and so the breakage) was 
happening two years ago.


We are being quite late at the party...

--
Guido Falsi 




Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Guido Falsi

On 26/09/23 17:44, Jose Quinteiro wrote:

On 9/26/23 00:17, Guido Falsi wrote:

On 26/09/23 08:53, Helge Oldach wrote:

Gareth de Vaux wrote on Mon, 25 Sep 2023 17:06:54 +0200 (CEST):

Hi all, I've just upgraded bind916 which brought half my system down
since
it suddenly required a mountain of python packages and rust which needed
around 13GB (and hours) to build - space which I didn't have nor have
ever
remotely expected to need for a ports build.

My bind configuration options are basically the defaults:

# grep OPTIONS_FILE_SET /var/db/ports/dns_bind916/options
OPTIONS_FILE_SET+=IDN
OPTIONS_FILE_SET+=JSON
OPTIONS_FILE_SET+=LMDB
OPTIONS_FILE_SET+=MANPAGES
OPTIONS_FILE_SET+=TCP_FASTOPEN
OPTIONS_FILE_SET+=GSSAPI_NONE
OPTIONS_FILE_SET+=DLZ_FILESYSTEM

These are the top level dependencies:

# make -C /usr/ports/dns/bind916 build-depends-list
/usr/ports/ports-mgmt/pkg
/usr/ports/textproc/py-sphinx
/usr/ports/devel/pkgconf
/usr/ports/security/openssl
/usr/ports/converters/libiconv
/usr/ports/devel/libuv
/usr/ports/textproc/libxml2
/usr/ports/dns/libidn2
/usr/ports/devel/json-c
/usr/ports/databases/lmdb
/usr/ports/devel/libedit

Does anyone know which option/dependency is causing this? I suspect
MANPAGES -> py-sphinx since it has 'py' but who knows. Which itself
would
be crazy that just a manpage would trigger this kind of intense build.



Indeed, it's py-sphinx, requiring py-openssl at some stage, which is in
turn requiring py-cryptography which needs rust.

DEFAULT_VERSIONS+=pycryptography=legacy

in make.conf fixed this BS for me. Beware of the dogs, you might get
bitten by software that requires the new py-cryptography - I did stumble
over py-certbot and py-awscli for example.


py-cryptography was kept at an old version for a long time, for various
reasons, the new mandatory dependency on rust being the main one.

But that old version does not work with OpenSSL 3, so the update of
OpenSSL in FreeBSD 14 imposed the update of py-cryptography.



And yet I remember a proposal that would have prevented this requirement
on one of these lists. Separate base SSL from ports SSL. Force ports to
use ports SSL and prune back base SSL to the bare minimum required for
base. This would have given FreeBSD the freedom to try alternative
things like LibreSSL. It was proposed when the "upgrade" to Openssl 3
delayed the release of 14.



Great idea, we now only need to see the patches to base and ports 
allowing this to happen. Test them, commit them...


14.0 has already been delayed long enough.


This is the perfect example of why I say:

- there are external pressures we have little power on (keeping an old
OpenSSL indefinitely is not an option)
- keeping old version of software (to avoid heavy dependencies or
whatever) is a landmine waiting to go off

The problem showed up now because the landmine of keeping an old version
of py-cryptography in the tree finally went off.

I'm sure there are more similar landmines waiting to explode under our
feet in the ports tree.



The problem with bending over backwards to accommodate a project that
treats its users with contempt is that they'll overwhelm you eventually.
I'm willing to bet the Python community is at least an order of
magnitude larger than the FreeBSD community.


Not sure what project you are talking about. Rust is just s programming 
language.


I am neutral towards rust itself, although slightly annoyed by the time 
it takes to build it (on the other hand rust is not slow at building 
things, but most projects compiled in rust are big ones and would take 
long with any language compiler).


That said what is the alternative?

(shipping old software or custom versions stripped of rust when we do 
not have the manpower to actually maintain forks is not really an option)




The creeping Rustification of open source projects is marginalizing
projects that are already marginal. The brunt of the damage caused by
these capricious changes is borne by communities that are already small.
Those communities have no chance to win if they fight back, but if they
work to adapt to the changes the larger projects are imposing on them
they only accelerate their demise and make hegemony more likely.

The effort would be better spent in either exorcising the dependencies
that are causing breakage, or fork the projects involved. Yes, these are
work too, but there's a slim hope that if enough marginal communities do
this, the large projects will feel back pressure and become more
accommodating. Yes, it's a  small chance.

I know myself well enough in my advanced age to know I have a sometimes
unhealthy instinct to swim against the current. Take the above with a
grain of salt, but I suspect that if you're using FreeBSD we may share
some of the same instinct.



I used to have that kind of instinct when I was much younger. The 
instinct is partly there still, but I have learned to evaluate if I am 
fighting a current I can manage, or a stronger one that will swipe me 
away anyway.


Y

Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Thierry Thomas
Le mar. 26 sept. 23 à  9:44:51 +0200, Guido Falsi 
 écrivait :

> Actually it's much worse than that. It's not only rust per se.
> 
> My poudriere machine rarely can do a build run without rebuilding one or
> more of rust, some version of clang, some version of gcc, qt[56]-webengine,
> py-qt6 (this one does most of the work single threaded unluckily). Also it
> often ends up having to rebuild firefox and thinderbird (these two heavily
> use rust, and get little speed up from ccache), libreoffice (this one at
> least get a very strong speed up thanks to ccache) etc.

This is true, but rust is very heavy, and it seems to be updated quiet
frequently.

Just an idea: maybe it could be possible to repocopy lang/rust to e.g.
lang/rust-devel (we already have rust-nightly), lang/rust being a stable
release, used to compile the depending ports, and rust-devel being used
by rust developers and updated more frequently.

I do not know if these ports would be installed at the same place, with
CONFLICTS_INSTALL, or if would be better to install the -devel port
with some suffix… [r...@freebsd.org added to Cc:]
-- 
Th. Thomas.


signature.asc
Description: PGP signature


Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Tomoaki AOKI
On Tue, 26 Sep 2023 22:03:18 +0200
Thierry Thomas  wrote:

> Le mar. 26 sept. 23 à  9:44:51 +0200, Guido Falsi 
>  écrivait :
> 
> > Actually it's much worse than that. It's not only rust per se.
> > 
> > My poudriere machine rarely can do a build run without rebuilding one or
> > more of rust, some version of clang, some version of gcc, qt[56]-webengine,
> > py-qt6 (this one does most of the work single threaded unluckily). Also it
> > often ends up having to rebuild firefox and thinderbird (these two heavily
> > use rust, and get little speed up from ccache), libreoffice (this one at
> > least get a very strong speed up thanks to ccache) etc.
> 
> This is true, but rust is very heavy, and it seems to be updated quiet
> frequently.
> 
> Just an idea: maybe it could be possible to repocopy lang/rust to e.g.
> lang/rust-devel (we already have rust-nightly), lang/rust being a stable
> release, used to compile the depending ports, and rust-devel being used
> by rust developers and updated more frequently.
> 
> I do not know if these ports would be installed at the same place, with
> CONFLICTS_INSTALL, or if would be better to install the -devel port
> with some suffix? [r...@freebsd.org added to Cc:]
> -- 
> Th. Thomas.

There is lang/rust-nightly [1] [2], which may be the -devel version.
IIRC, this is not so frequently updated. currently, the latest update
was to 1.72.0.20230612 at Jun.20, 2023, while lang/rust 1.72.0 landed
at Sep.08, 2023.

The problem, I think, is that all BUILD_DEPEND'ed ports are basically
bumped when lang/rust is updated.

I'm not at all a rust developer nor porter, but if possible, files
causing the rebuild (would be statically linked files like crt0.o in C)
would be better splitted into individual port(s) and updated only when
its source code is updated (and, if applicable, the behaviour of
resulting binary is ACTUALLY changed WITH BACKWARD-INCOMPATIBLE WAY by
rust code generator or optimizer) and all rust[-nightly] consumers
LIB_DEPEND to them.


[1] https://cgit.freebsd.org/ports/tree/lang/rust-nightly

[2] https://www.freshports.org/lang/rust-nightly/

-- 
Tomoaki AOKI



Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Dave Horsfall
On Mon, 25 Sep 2023, Roger Marquis wrote:

> Or $5/mo for a Digitalocean VM.

They host spammers, so I cannot use them (the Boulder Pledge etc); there 
are probably other VMs around, should I feel the need.


On Tue, 26 Sep 2023, Guido Falsi wrote:

> > That's fine if you can afford a spare system just for building...
> 
> Again, anyone can do things the way he prefer, but to do things properly 
> there are minimum requirements, if you can't get those, you will have to 
> accept compromises and the issues that come with those compromises.
> 
> What you can't do is expect others to fix your own self imposed issues.

That was an observation, not a complaint; are you always this narky?  No 
wonder I'm starting to favour the Mac...

-- Dave



Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Mike Andrews

On 9/25/23 9:24 PM, Roger Marquis wrote:


Or $5/mo for a Digitalocean VM.



They dropped FreeBSD support last year.  (And simultaneously raised 
their prices.)






Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Patrick M. Hausen
Hi all,

> Am 27.09.2023 um 00:41 schrieb Mike Andrews :
> 
> On 9/25/23 9:24 PM, Roger Marquis wrote:
> 
>> Or $5/mo for a Digitalocean VM.
> 
> 
> They dropped FreeBSD support last year.  (And simultaneously raised their 
> prices.)

That's why I am on Vultr, now.

Kind regards,
Patrick

Re: dns/bind916 builds rust unexpectedly

2023-09-26 Thread Jose Quinteiro
On 9/26/23 09:14, Guido Falsi wrote:
(snip)
>>
>> And yet I remember a proposal that would have prevented this requirement
>> on one of these lists. Separate base SSL from ports SSL. Force ports to
>> use ports SSL and prune back base SSL to the bare minimum required for
>> base. This would have given FreeBSD the freedom to try alternative
>> things like LibreSSL. It was proposed when the "upgrade" to Openssl 3
>> delayed the release of 14.
> 
> Great idea, we now only need to see the patches to base and ports
> allowing this to happen. Test them, commit them...
> 
This was not my idea, it was presented by a member of the Core Team.(1)

> 14.0 has already been delayed long enough.
> 
I do not question the decision to "upgrade" OpenSSL instead. I have put
in neither the time nor the effort to have an educated opinion on this.

>>
>>> This is the perfect example of why I say:
>>>
>>> - there are external pressures we have little power on (keeping an old
>>> OpenSSL indefinitely is not an option)
>>> - keeping old version of software (to avoid heavy dependencies or
>>> whatever) is a landmine waiting to go off
>>>
>>> The problem showed up now because the landmine of keeping an old version
>>> of py-cryptography in the tree finally went off.
>>>
>>> I'm sure there are more similar landmines waiting to explode under our
>>> feet in the ports tree.
>>>
>>
>> The problem with bending over backwards to accommodate a project that
>> treats its users with contempt is that they'll overwhelm you eventually.
>> I'm willing to bet the Python community is at least an order of
>> magnitude larger than the FreeBSD community.
>>
> 
> Not sure what project you are talking about. Rust is just s programming
> language.
> 
I beg to differ. It's a large runtime that changes quickly, a package
manager and build tool that create enormous binaries from even tiny
pieces of code, and the answer to all your problems, according to some.

In any case, I was talking about py-cryptography in particular, and
Python in general.

> I am neutral towards rust itself, although slightly annoyed by the time
> it takes to build it (on the other hand rust is not slow at building
> things, but most projects compiled in rust are big ones and would take
> long with any language compiler).
> 
I was neutral until it started consuming more and more time and
resources on my Poudriere builds, and until I tried to write a simple
program to query a Mysql database. I'm also wary of the fact that it
appears to have tied us to the FreeBSD 11 ABI forever(2).

> That said what is the alternative?
> 
Why do I need an alternative?

>> The creeping Rustification of open source projects is marginalizing
>> projects that are already marginal. The brunt of the damage caused by
>> these capricious changes is borne by communities that are already small.
>> Those communities have no chance to win if they fight back, but if they
>> work to adapt to the changes the larger projects are imposing on them
>> they only accelerate their demise and make hegemony more likely.
>>
>> The effort would be better spent in either exorcising the dependencies
>> that are causing breakage, or fork the projects involved. Yes, these are
>> work too, but there's a slim hope that if enough marginal communities do
>> this, the large projects will feel back pressure and become more
>> accommodating. Yes, it's a  small chance.
>>
>> I know myself well enough in my advanced age to know I have a sometimes
>> unhealthy instinct to swim against the current. Take the above with a
>> grain of salt, but I suspect that if you're using FreeBSD we may share
>> some of the same instinct.
> 
> I used to have that kind of instinct when I was much younger. The
> instinct is partly there still, but I have learned to evaluate if I am
> fighting a current I can manage, or a stronger one that will swipe me
> away anyway.
> 
> You say we "bend" to rustification, but the way you suggest means ports
> should bend to anti rustification, by removing features causing rust
> dependencies, pinning software to old versions, and so on. This would
> make the ports tree less useful for a lot of users. We would end up with
> old packages. Not something we can force on all the user base.
> 
> On the other hand you suggest forking projects, but we barely have
> manpower to keep the ports updated as is. Let alone actually develop the
> ported software.
> 
> Anyway forking can be done outside of the ports tree. Nothing stops you
> from forking, say, librsvg and keep your fork updated and at feature
> parity with the rust version.
> 
> If this is your battle you can fight it outside of the ports tree.
> 
I never suggested doing this in the ports tree? The only change I
mentioned was to base, and that was not my idea as I pointed out above.

> 
> I'd add that the "ports" tree is just that "ports" not the place for
> forking or original development; we port what outside projects deliver
> with as little judgment as possible, for the 

Unmaintained FreeBSD ports which are out of date

2023-09-26 Thread portscout
Dear port maintainers,

The portscout new distfile checker has detected that one or more
unmaintained ports appears to be out of date. Please take the opportunity
to check each of the ports listed below, and if possible and appropriate,
submit/commit an update. Please consider also adopting this port.
If any ports have already been updated, you can safely ignore the entry.

An e-mail will not be sent again for any of the port/version combinations
below.

Full details can be found at the following URL:
http://portscout.freebsd.org/po...@freebsd.org.html


Port| Current version | New version
+-+
cad/ifcopenshell| 0.6.0   | 
blenderbim-230927
+-+
devel/py-archinfo   | 9.0.5405| v9.2.70
+-+
devel/py-cle| 9.0.5405| v9.2.70
+-+
games/retroarch | 1.10.3  | v1.16.0.1
+-+
math/py-claripy | 9.0.5405| v9.2.70
+-+
security/py-angr| 9.0.5405| v9.2.70
+-+
security/py-pyvex   | 9.0.5405| v9.2.70
+-+
sysutils/rshim-user-space   | 2.0.9   | rshim-2.0.11
+-+
www/p5-RT-Extension-RepeatTicket| 1.11| 2.02
+-+
www/py-aiostream| 0.4.5   | 0.5.0
+-+


If any of the above results are invalid, please check the following page
for details on how to improve portscout's detection and selection of
distfiles on a per-port basis:

http://portscout.freebsd.org/info/portscout-portconfig.txt

Reported by:portscout!