Bug 242248 - misc/compat11x pkg-descr correction [PATCH], committer love pls!

2021-04-26 Thread Simon Wright

Hi all,

Would any committer with a few spare cycles please look at the
correction to the pkg-descr in compat11x? It's a very minor issue but so
quick to fix :).

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242248

Thanks,

Simon.
___
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


Re: Python update 3.7->3.8

2021-04-26 Thread Rozhuk Ivan
On Mon, 26 Apr 2021 11:55:07 -0400 (EDT)
AN  wrote:

> > After doing all manipulations for rebuild and reinstall with
> > pkg+portmaster some files not affected, I suspect that files after
> > shebang fix:
> >
> > # grep -rsp "python3\.7" /usr/local/
> > Binary file /usr/local/bin/youtube-dl matches
> > /usr/local/bin/gsettings-schema-convert:#!/usr/local/bin/python3.7
> > /usr/local/bin/gtk-builder-convert:#!/usr/local/bin/python3.7
> > /usr/local/bin/event_rpcgen.py:#!/usr/local/bin/python3.7
> > /usr/local/bin/vigra-config:#!/usr/local/bin/python3.7
> > /usr/local/bin/retroarch-cg2glsl:#!/usr/local/bin/python3.7
> > /usr/local/lib/python3.8/site-packages/certifi-2020.12.5-py3.8.egg-info/PKG-INFO:
> >'/usr/local/lib/python3.7/site-packages/certifi/cacert.pem'
> > /usr/local/lib/python3.8/site-packages/certifi-2020.12.5-py3.8.egg-info/PKG-INFO:
> >/usr/local/lib/python3.7/site-packages/certifi/cacert.pem
> > /usr/local/lib/qt5/mkspecs/features/uikit/devices.py:#!/usr/local/bin/python3.7
> > /usr/local/lib/xfce4/xfce4-compose-mail:#!/usr/local/bin/python3.7
> > /usr/local/libexec/dbusmenu-bench:#!/usr/local/bin/python3.7 Binary
> > file /usr/local/man/mandoc.db matches
> > /usr/local/share/claws-mail/eud2gc.py:#!/usr/local/bin/python3.7
> > /usr/local/share/claws-mail/tbird2claws.py:#!/usr/local/bin/python3.7
> > /usr/local/share/claws-mail/vcard2xml.py:#!/usr/local/bin/python3.7
> > /usr/local/share/subversion/backup/hot-backup.py:#!/usr/local/bin/python3.7
> >
> > Is any way to way to fix it by scripts?
> >

This long command hanle files that requires shebang:
portmaster -BvD -y --no-confirm --delete-build-only `grep -rsp "\/python3\.7" 
/usr/local/ | grep -v '/usr/local/man/' | grep -v '/usr/local/lib/python3' | 
sed -e 's|:.*||' -e 's|Binary file ||' -e 's| matches||' | xargs pkg which -oq 
| sort -u`

Also I found that this can be used instead all other commands:
portmaster -BvD -y `pkg query %ro python38`

but if it fail, then no recovery, only start from beginning and redo all work 
again.



> --->  Uninstallation of py27-setuptools-44.0.0 started at: Mon, 26
> Apr 2021 11:49:52 -0400
> --->  Fixing up dependencies before creating a package
> --->  Backing up the old version
> --->  Uninstalling the old version  
> [Reading data from pkg(8) ... - 945 packages found - done]
> --->  Deinstalling 'py27-setuptools-44.0.0'  
> Updating database digests format: 100%
> Checking integrity... done (0 conflicting)
> Deinstallation has been requested for the following 1 packages (of 0
> packages in the universe):
> 
> Installed packages to be REMOVED:
>   py27-setuptools: 44.0.0
> 
> Number of packages to be removed: 1
> 
> The operation will free 4 MiB.
> [1/1] Deinstalling py27-setuptools-44.0.0...
> [1/1] Deleting files for py27-setuptools-44.0.0: 100%
> [Reading data from pkg(8) ... - 944 packages found - done]
> --->  Uninstallation of py27-setuptools-44.0.0 ended at: Mon, 26 Apr
> 2021 11:49:55 -0400 (consumed 00:00:02)
> --->  Installation of devel/py-setuptools started at: Mon, 26 Apr
> 2021 11:49:55 -0400
> --->  Installing the new version via the port
> ===>  Deinstalling for py38-setuptools
> ===>   py38-setuptools not installed, skipping
> ===>  Installing for py38-setuptools-44.0.0_1
> ===>  Checking if py38-setuptools is already installed
> ===>   Registering installation for py38-setuptools-44.0.0_1 as
> automatic Installing py38-setuptools-44.0.0_1...
> pkg-static: py38-setuptools-44.0.0_1 conflicts with
> py37-setuptools-44.0.0 (installs files into the same place).
> Problematic file: /usr/local/bin/easy_install
> *** Error code 1
> 
> Stop.
> make[1]: stopped in /usr/ports/devel/py-setuptools
> *** Error code 1
> 
> Stop.
> make: stopped in /usr/ports/devel/py-setuptools
> ** Command failed [exit code 1]: /usr/bin/script -qa
> /tmp/portupgrade20210426-16971-13n0qvl env UPGRADE_TOOL=portupgrade
> UPGRADE_PORT=py27-setuptools-44.0.0 UPGRADE_PORT_VER=44.0.0 make
> -DINSTALLS_DEPENDS reinstall
> --->  Updating dependency info
> --->  Restoring the old version  
> Installing py27-setuptools-44.0.0...
> Extracting py27-setuptools-44.0.0: 100%
> =
> 

IMHO you miss something.
Only py37 must be affected, but some how you are trying to replace py27.

___
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


Re: Changing daemon user, dir ownership and updating packages

2021-04-26 Thread Dewayne Geraghty
On 26/04/2021 6:03 pm, Stefan Bethke wrote:
> But that still leaves pkg updating the ownership/mode of existing directories 
> as a surprise on updating a package. I think the "right" thing here would be 
> a kind of three-way merge between changes an updated package brings in vs. 
> changes the user has made on their system. 

Sometimes the right thing isn't easy ;)

There are some cases where I explicitly assign ownership and more
restrictive modes to installed ports.  Would "pkg add -I" prevent file
ownership/mode changes or just prevent the execution of installation
scripts... (hint for a flag to prevent file mode/ownership changes on
existing systems)

I suspect Gleb's paradigm of a separate file to explicitly control file
attributes (after upgrades) is reasonable, but this is problematic and
negates the value of a packaging system.
___
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


Re: Python update 3.7->3.8

2021-04-26 Thread AN
Hi:

I am getting the following trying to update ports on 13stable:


On Mon, 26 Apr 2021, Rozhuk Ivan wrote:

> Date: Mon, 26 Apr 2021 16:34:43 +0300
> From: Rozhuk Ivan 
> To: k...@freebsd.org, freebsd-ports@freebsd.org
> Subject: Python update 3.7->3.8
>
> Hi!
>
> After doing all manipulations for rebuild and reinstall with pkg+portmaster
> some files not affected, I suspect that files after shebang fix:
>
> # grep -rsp "python3\.7" /usr/local/
> Binary file /usr/local/bin/youtube-dl matches
> /usr/local/bin/gsettings-schema-convert:#!/usr/local/bin/python3.7
> /usr/local/bin/gtk-builder-convert:#!/usr/local/bin/python3.7
> /usr/local/bin/event_rpcgen.py:#!/usr/local/bin/python3.7
> /usr/local/bin/vigra-config:#!/usr/local/bin/python3.7
> /usr/local/bin/retroarch-cg2glsl:#!/usr/local/bin/python3.7
> /usr/local/lib/python3.8/site-packages/certifi-2020.12.5-py3.8.egg-info/PKG-INFO:
> '/usr/local/lib/python3.7/site-packages/certifi/cacert.pem'
> /usr/local/lib/python3.8/site-packages/certifi-2020.12.5-py3.8.egg-info/PKG-INFO:
> /usr/local/lib/python3.7/site-packages/certifi/cacert.pem
> /usr/local/lib/qt5/mkspecs/features/uikit/devices.py:#!/usr/local/bin/python3.7
> /usr/local/lib/xfce4/xfce4-compose-mail:#!/usr/local/bin/python3.7
> /usr/local/libexec/dbusmenu-bench:#!/usr/local/bin/python3.7
> Binary file /usr/local/man/mandoc.db matches
> /usr/local/share/claws-mail/eud2gc.py:#!/usr/local/bin/python3.7
> /usr/local/share/claws-mail/tbird2claws.py:#!/usr/local/bin/python3.7
> /usr/local/share/claws-mail/vcard2xml.py:#!/usr/local/bin/python3.7
> /usr/local/share/subversion/backup/hot-backup.py:#!/usr/local/bin/python3.7
>
> Is any way to way to fix it by scripts?
>
>
> Also "pkg del -f py37-\*" must be "pkg del -f \*py37-\*": some packages have 
> py37 in middle of name. (scons)
> ___
> freebsd-ports@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-ports
> To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"
>

--->  Uninstallation of py27-setuptools-44.0.0 started at: Mon, 26 Apr
2021 11:49:52 -0400
--->  Fixing up dependencies before creating a package
--->  Backing up the old version
--->  Uninstalling the old version
[Reading data from pkg(8) ... - 945 packages found - done]
--->  Deinstalling 'py27-setuptools-44.0.0'
Updating database digests format: 100%
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0
packages in the universe):

Installed packages to be REMOVED:
py27-setuptools: 44.0.0

Number of packages to be removed: 1

The operation will free 4 MiB.
[1/1] Deinstalling py27-setuptools-44.0.0...
[1/1] Deleting files for py27-setuptools-44.0.0: 100%
[Reading data from pkg(8) ... - 944 packages found - done]
--->  Uninstallation of py27-setuptools-44.0.0 ended at: Mon, 26 Apr 2021
11:49:55 -0400 (consumed 00:00:02)
--->  Installation of devel/py-setuptools started at: Mon, 26 Apr 2021
11:49:55 -0400
--->  Installing the new version via the port
===>  Deinstalling for py38-setuptools
===>   py38-setuptools not installed, skipping
===>  Installing for py38-setuptools-44.0.0_1
===>  Checking if py38-setuptools is already installed
===>   Registering installation for py38-setuptools-44.0.0_1 as automatic
Installing py38-setuptools-44.0.0_1...
pkg-static: py38-setuptools-44.0.0_1 conflicts with py37-setuptools-44.0.0
(installs files into the same place).  Problematic file:
/usr/local/bin/easy_install
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/devel/py-setuptools
*** Error code 1

Stop.
make: stopped in /usr/ports/devel/py-setuptools
** Command failed [exit code 1]: /usr/bin/script -qa
/tmp/portupgrade20210426-16971-13n0qvl env UPGRADE_TOOL=portupgrade
UPGRADE_PORT=py27-setuptools-44.0.0 UPGRADE_PORT_VER=44.0.0 make
-DINSTALLS_DEPENDS reinstall
--->  Updating dependency info
--->  Restoring the old version
Installing py27-setuptools-44.0.0...
Extracting py27-setuptools-44.0.0: 100%
=

___
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


Python update 3.7->3.8

2021-04-26 Thread Rozhuk Ivan
Hi!

After doing all manipulations for rebuild and reinstall with pkg+portmaster
some files not affected, I suspect that files after shebang fix:

# grep -rsp "python3\.7" /usr/local/
Binary file /usr/local/bin/youtube-dl matches
/usr/local/bin/gsettings-schema-convert:#!/usr/local/bin/python3.7
/usr/local/bin/gtk-builder-convert:#!/usr/local/bin/python3.7
/usr/local/bin/event_rpcgen.py:#!/usr/local/bin/python3.7
/usr/local/bin/vigra-config:#!/usr/local/bin/python3.7
/usr/local/bin/retroarch-cg2glsl:#!/usr/local/bin/python3.7
/usr/local/lib/python3.8/site-packages/certifi-2020.12.5-py3.8.egg-info/PKG-INFO:
'/usr/local/lib/python3.7/site-packages/certifi/cacert.pem'
/usr/local/lib/python3.8/site-packages/certifi-2020.12.5-py3.8.egg-info/PKG-INFO:
/usr/local/lib/python3.7/site-packages/certifi/cacert.pem
/usr/local/lib/qt5/mkspecs/features/uikit/devices.py:#!/usr/local/bin/python3.7
/usr/local/lib/xfce4/xfce4-compose-mail:#!/usr/local/bin/python3.7
/usr/local/libexec/dbusmenu-bench:#!/usr/local/bin/python3.7
Binary file /usr/local/man/mandoc.db matches
/usr/local/share/claws-mail/eud2gc.py:#!/usr/local/bin/python3.7
/usr/local/share/claws-mail/tbird2claws.py:#!/usr/local/bin/python3.7
/usr/local/share/claws-mail/vcard2xml.py:#!/usr/local/bin/python3.7
/usr/local/share/subversion/backup/hot-backup.py:#!/usr/local/bin/python3.7

Is any way to way to fix it by scripts?


Also "pkg del -f py37-\*" must be "pkg del -f \*py37-\*": some packages have 
py37 in middle of name. (scons)
___
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


FreeBSD Port: ccze-0.2.1_5

2021-04-26 Thread Alex V. Petrov
Stoped work on 13-stable:

ccze: No plugins found. Exiting.

-- 
-
Alex.
___
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


Re: Changing daemon user, dir ownership and updating packages

2021-04-26 Thread Gleb Popov
On Mon, Apr 26, 2021 at 11:03 AM Stefan Bethke  wrote:

> Am 13.04.2021 um 10:24 schrieb Stefan Bethke :
> >
> > As the maintainer, I've received this bug report:
> > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255009
> >
> > If you'd like to run the daemon under a user different from the default
> git, you also need to change the ownership of the working directories,
> especially /var/*/gitea.
> >
> > The expectation is that upgrading the package will not change the
> ownership of already existing directories. When installing a newer version
> of the package, pkg appears to reset the ownership to those specified in
> the package.
> >
> > The pkg-plist has this:
> > @owner git
> > @group git
> > @dir /var/db/gitea
> > @dir /var/log/gitea
> > @dir /var/run/gitea
> >
> > I believe this to be best practice. Is there a better way to have pkg
> create these dirs if they're missing, but not touch them if they are there
> already?
>
> Adam has suggested a couple of approaches, but what I would really like is
> a common, documented way for ports to handle this situation.
>
> Updating ownership and mode of entries in the rc script automatically
> feels wrong to me, especially if it's a custom one-off for a single port.
> Kinda creating a POLA violation.
>
> I think as a general approach, checking that directories and files that
> the port knows will need to be writable for compatible access rights might
> be the safe choice.
>
> But that still leaves pkg updating the ownership/mode of existing
> directories as a surprise on updating a package. I think the "right" thing
> here would be a kind of three-way merge between changes an updated package
> brings in vs. changes the user has made on their system. That sound
> complicated to get right.
>
>
> Stefan
>
> --
> Stefan BethkeFon +49 151 14070811
>

I believe the general approach is what is called tmpfiles.d in systemd. It
is a startup script that reads configuration files installed by 3rd-party
software and creates file system hierarchies according to them. This is an
example of such configuration file:
https://github.com/Xpra-org/xpra/blob/master/fs/lib/tmpfiles.d/xpra.conf

Maybe we need to grow our own implementation of tmpfiles.d.
___
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


FreeBSD ports you maintain which are out of date

2021-04-26 Thread portscout
Dear port maintainer,

The portscout new distfile checker has detected that one or more of your
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. If any ports have already been updated, you can
safely ignore the entry.

You will not be e-mailed 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
+-+
deskutils/copyq | 4.1.0   | 
fix-mac-sleep
+-+
games/exult | 1.7.0.20210424  | 
snapshot-v1.7.0.20210426
+-+


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!
___
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


Re: Changing daemon user, dir ownership and updating packages

2021-04-26 Thread Stefan Bethke
Am 13.04.2021 um 10:24 schrieb Stefan Bethke :
> 
> As the maintainer, I've received this bug report:
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255009
> 
> If you'd like to run the daemon under a user different from the default git, 
> you also need to change the ownership of the working directories, especially 
> /var/*/gitea.
> 
> The expectation is that upgrading the package will not change the ownership 
> of already existing directories. When installing a newer version of the 
> package, pkg appears to reset the ownership to those specified in the package.
> 
> The pkg-plist has this:
> @owner git
> @group git
> @dir /var/db/gitea
> @dir /var/log/gitea
> @dir /var/run/gitea
> 
> I believe this to be best practice. Is there a better way to have pkg create 
> these dirs if they're missing, but not touch them if they are there already?

Adam has suggested a couple of approaches, but what I would really like is a 
common, documented way for ports to handle this situation.

Updating ownership and mode of entries in the rc script automatically feels 
wrong to me, especially if it's a custom one-off for a single port. Kinda 
creating a POLA violation.

I think as a general approach, checking that directories and files that the 
port knows will need to be writable for compatible access rights might be the 
safe choice.

But that still leaves pkg updating the ownership/mode of existing directories 
as a surprise on updating a package. I think the "right" thing here would be a 
kind of three-way merge between changes an updated package brings in vs. 
changes the user has made on their system. That sound complicated to get right.


Stefan

--
Stefan BethkeFon +49 151 14070811



signature.asc
Description: Message signed with OpenPGP


RE: FreeBSD Port: strongswan-5.9.2_1

2021-04-26 Thread Francois ten Krooden
Hi

I had strongSwan working with a previous version of libressl at a point.
The biggest issue is that libressl started off as a drop in replacement which 
made it easy to get it working.
As more features were added to openssl after libressl forked, it is becomming 
increasingly difficult to treat as a drop in replacement.
I think most of the compile errors is related to ED25519 and ED448 eliptic 
curves, but I don't see a easy way right now of detecting libressl and to not 
compile those parts.

Regards
Francois


From: Franco Fichtner [fra...@lastsummer.de]
Sent: Sunday, April 25, 2021 8:57 PM
To: Gena Gulchin
Cc: strongswan; po...@freebsd.org
Subject: Re: FreeBSD Port: strongswan-5.9.2_1

Hi,

Strongswan authors have no interest in supporting LibreSSL and patching it in 
the code #ifdef maze is really difficult since it checks OpenSSL version 
numbers which for LibreSSL looks like the most modern OpenSSL Release.


Cheers,
Franco

> On 25. Apr 2021, at 20:41, Gena Gulchin  wrote:
>
> Good morning!
>
> I’m having problems building strongSwan 5.9.2 IPSec on FreeBSD 13 and 
> LibreSSL 3.2.5
>
> Contents of my /etc/make.conf:
> OPENSSL_PORT=   security/libressl
> DEFAULT_VERSIONS+=ssl=libressl
>
>
> I have searched the internet for solution and tried applying various patches 
> but to no avail.
>
> Much appreciate your help on this matter!
>
> Below is the build log
>
>
> (apologies for the long paste):
>
> 8<
> --- openssl_rng.lo ---
> openssl_rng.c:61:20: warning: passing 'char *' to parameter of type 'unsigned 
> char *' converts between pointers to integer types with different sign 
> [-Wpointer-sign]
>return RAND_bytes((char*)buffer, bytes) == 1;
>  ^
> /usr/local/include/openssl/rand.h:93:32: note: passing argument to parameter 
> 'buf' here
> int  RAND_bytes(unsigned char *buf, int num);
>   ^
> 1 warning generated.
> --- openssl_ed_private_key.lo ---
> openssl_ed_private_key.c:89:6: warning: implicit declaration of function 
> 'EVP_DigestSign' is invalid in C99 [-Wimplicit-function-declaration]
>if (EVP_DigestSign(ctx, NULL, >len, data.ptr, data.len) <= 
> 0)
>^
> openssl_ed_private_key.c:135:7: warning: implicit declaration of function 
> 'EVP_PKEY_get_raw_public_key' is invalid in C99 
> [-Wimplicit-function-declaration]
>if (!EVP_PKEY_get_raw_public_key(this->key, NULL, ))
> ^
> --- openssl_xof.lo ---
> openssl_xof.c:82:7: warning: implicit declaration of function 
> 'EVP_DigestFinalXOF' is invalid in C99 [-Wimplicit-function-declaration]
>if (EVP_DigestFinalXOF(this->ctx, data.ptr, data.len) == 1)
>^
> --- openssl_rsa_private_key.lo ---
> openssl_rsa_private_key.c:318:52: warning: passing 'char *' to parameter of 
> type 'unsigned char *' converts between pointers to integer types with 
> different sign [-Wpointer-sign]
>len = RSA_private_decrypt(crypto.len, crypto.ptr, decrypted,
>  ^
> /usr/local/include/openssl/rsa.h:339:20: note: passing argument to parameter 
> 'to' here
>unsigned char *to, RSA *rsa, int padding);
>   ^
> openssl_rsa_private_key.c:326:24: warning: passing 'char *' to parameter of 
> type 'u_char *' (aka 'unsigned char *') converts between pointers to integer 
> types with different sign [-Wpointer-sign]
>*plain = chunk_create(decrypted, len);
>  ^
> ../../../../src/libstrongswan/utils/chunk.h:57:44: note: passing argument to 
> parameter 'ptr' here
> static inline chunk_t chunk_create(u_char *ptr, size_t len)
>   ^
> --- openssl_xof.lo ---
> openssl_xof.c:140:9: warning: implicit declaration of function 'EVP_shake128' 
> is invalid in C99 [-Wimplicit-function-declaration]
>md = EVP_shake128();
> ^
> openssl_xof.c:140:7: warning: incompatible integer to pointer conversion 
> assigning to 'const EVP_MD *' (aka 'const struct env_md_st *') from 'int' 
> [-Wint-conversion]
>md = EVP_shake128();
>   ^ ~~
> openssl_xof.c:143:9: warning: implicit declaration of function 'EVP_shake256' 
> is invalid in C99 [-Wimplicit-function-declaration]
>md = EVP_shake256();
> ^
> openssl_xof.c:143:7: warning: incompatible integer to pointer conversion 
> assigning to 'const EVP_MD *' (aka 'const struct env_md_st *') from 'int' 
> [-Wint-conversion]
> --- openssl_ec_diffie_hellman.lo ---
> openssl_ec_diffie_hellman.c:216:3: warning: implicit declaration of function 
> 'EVP_PKEY_set1_tls_encodedpoint' is invalid in C99 
> [-Wimplicit-function-declaration]
> --- openssl_xof.lo