[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: portability patch (was: GNUnet 0.18.0 released)

From: Nikita Ronja Gillmann
Subject: Re: portability patch (was: GNUnet 0.18.0 released)
Date: Wed, 2 Nov 2022 08:28:49 +0100
User-agent: Mozilla/5.0 (X11; NetBSD amd64; rv:78.0) Gecko/20100101 Thunderbird/78.12.0


I think you may not understand the main issue. This is not very pkgsrc specific, very likely for other portable package managers as well, the issue is that the file is distributed. There is no option to uncheck/not fail on a file which fails the tests, as this is run on every matching file in the build directory after unpacking. It's a simple fix, and would mean one less patch to carry around once I get to merge gnunet into pkgsrc proper.

On 11/2/22 7:18 AM, Martin Schanzenbach wrote:

this is a fedora-specific packaging file which does not need to be
It only needs to work for fedora.
But I will keep that in mind.


On 01.11.22 19:53, Nikita Ronja Gillmann wrote:

here's a fix to make contrib/packages/fedora/ portable.
Taken from my pkgsrc package, NetBSD header not removed, feel free to
do so or just take the patch as an info.

I'd suggest to add checkbashisms as part of dev tests to check all .sh

ERROR: [check-portability.awk] => Found test ... == ...:
ERROR: [check-portability.awk] contrib/packages/fedora/       
if [ $? == 0 ]; then

The "test" command, as well as the "[" command, are not required to know
the "==" operator. Only a few implementations like bash and some
versions of ksh support it.

When you run "test foo == foo" on a platform that does not support the
"==" operator, the result will be "false" instead of "true". This can
lead to unexpected behavior.

There are two ways to fix this error message. If the file that contains
the "test ==" is needed for building the package, you should create a
patch for it, replacing the "==" operator with "=". If the file is not
needed, add its name to the CHECK_PORTABILITY_SKIP variable in the
package Makefile.


possible bashism in 
line 31 (should be 'b = a'):
       if [ $? == 0 ]; then

Martin Schanzenbach transcribed 6.2K bytes:
We are pleased to announce the release of GNUnet 0.18.0.
GNUnet is an alternative network stack for building secure, decentralized and
privacy-preserving distributed applications. Our goal is to replace the old
insecure Internet protocol stack. Starting from an application for secure
publication of files, it has grown to include all kinds of basic protocol
components and applications towards the creation of a GNU internet.

This is a new major release. It breaks protocol compatibility with the 0.17.x
versions. Please be aware that Git master is thus henceforth (and has been for a
while) INCOMPATIBLE with the 0.17.x GNUnet network, and interactions between old
and new peers will result in issues. 0.17.x peers will be able to communicate
with Git master or 0.18.x peers, but some services - in particular the DHT -
will not be compatible.
In terms of usability, users should be aware that there are still a number of
known open issues in particular with respect to ease of use, but also some
critical privacy issues especially for mobile users. Also, the nascent network
is tiny and thus unlikely to provide good anonymity or extensive amounts of
interesting information. As a result, the 0.18.0 release is still only suitable
for early adopters with some reasonable pain tolerance.

Download links:


Note that due to mirror synchronization, not all links might be functional 
early after the release. For direct access try

Noteworthy changes in 0.18.0 (since 0.17.6):

     UTIL: Added enum GNUNET_ErrorCode for better error handling throughout the 
         - Moved namecache updates out of namestore and into zonemaster.
           This fixes issues from version 0.17.6 with respect to premature
           namestore monitor update messages and zone propagation. [#7378]
         - Added a new API for bulk imports: GNUNET_NAMESTORE_records_store2.
           The API can be combined with the transactional API in order to
           significantly improve namestore performance for lage zones. For
           postgres databases, storing records is around 20x faster than the old
           API. [#7379]
         - New database setup utility gnunet-namestore-dbtool. Databases can be
           initialized and reset using this new CLI. Currently, database plugins
           still allow to initialize databases automatically as well by setting
           INIT_ON_CONNECT (Default: YES). [#7204]
         - There are new APIs for zone iterations and monitoring which support
           filtering of records using GNUNET_GNSRECORD_Filter. By default,
           maintenance records such as TOMBSTONEs are filtered. [#7193]
         - New zonefile import utility gnunet-namestore-zonefile that for DNS
           zone files. [#7396]
         - Make use of new enum GNUNET_ErrorCode in C and REST API. [#7399]
         - Included handling of orphaned GNS records. Records are orphaned of
           Egos are (accidentally) deleted which makes operations on records
           difficult but at the same time existing records are still published.
           [#7401, #7402]
         - Updated the C API documentation to reflect the above changes:
         - Updated the user documentation to reflect the above changes and
           included various tutorials on zone management:
         - Updated the REST API and its documentation to reflect the above
     ZONEMASTER: Zonemaster now uses worker threads for record signing.
     DHT: The specification has been updated to reflect the changes:

     BUILD: Fix mysql/mariadb detection (again). [#7356]
     PACKAGING: Revamped the RPM package available through Fedora COPR and
                submitted it.

A detailed list of changes can be found in the ChangeLog
( and the bug tracker

Known Issues:

     - There are known major design issues in the TRANSPORT, ATS and CORE
       subsystems which will need to be addressed in the future to achieve
       acceptable usability, performance and security.
     - There are known moderate implementation limitations in CADET that
       negatively impact performance.
     - There are known moderate design issues in FS that also impact usability
       and performance.
     - There are minor implementation limitations in SET that create unnecessary
       attack surface for availability.
     - The RPS subsystem remains experimental.
     - Some high-level tests in the test-suite fail non-deterministically due to
       the low-level TRANSPORT issues.

In addition to this list, you may also want to consult our bug tracker at which lists about 190 more specific issues.


This release was the work of many people. The following people contributed code
and were thus easily identified: Christian Grothoff, Tristan Schwieren,
madmurphy, Willow Liquorice, t3sserakt, TheJackiMonster and Martin Schanzenbach.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]