gnunet-developers
[Top][All Lists]
Advanced

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

Re: portability patch (was: GNUnet 0.18.0 released)


From: Martin Schanzenbach
Subject: Re: portability patch (was: GNUnet 0.18.0 released)
Date: Wed, 2 Nov 2022 09:19:41 +0000

On 02.11.22 08:28, Nikita Ronja Gillmann wrote:
> Hi,
> 
> 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.
> 

This sounds like a pkgsrc or package manager issue, then.
Why would all files have to be portable in this manner? It even has a
bash shebang so surely the file itself is not malformed.
The package manager has no business telling us what the correct file
format for every file is in the tarball.
I mean that as a matter of principle, not because I am opposed to making
that particular script portable.
This problem is bound to occur in the future for a variety of
(legitimate) reasons.

Br

> On 11/2/22 7:18 AM, Martin Schanzenbach wrote:
> > Hi,
> > 
> > this is a fedora-specific packaging file which does not need to be
> > portable.
> > It only needs to work for fedora.
> > But I will keep that in mind.
> > 
> > Br
> > 
> > On 01.11.22 19:53, Nikita Ronja Gillmann wrote:
> > > Hi,
> > > 
> > > here's a fix to make contrib/packages/fedora/10-dns2gns.sh 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
> > > files.
> > > 
> > > ERROR: [check-portability.awk] => Found test ... == ...:
> > > ERROR: [check-portability.awk] contrib/packages/fedora/10-dns2gns.sh:31:  
> > >      if [ $? == 0 ]; then
> > > 
> > > Explanation:
> > > ===========================================================================
> > > 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.
> > > ===========================================================================
> > > 
> > > checkbashisms:
> > > 
> > > checkbashisms 
> > > /usr/work/wip/gnunet/work/gnunet-0.18.0/contrib/packages/fedora/10-dns2gns.sh
> > > possible bashism in 
> > > /usr/work/wip/gnunet/work/gnunet-0.18.0/contrib/packages/fedora/10-dns2gns.sh
> > >  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:
> > > > 
> > > >      - http://ftpmirror.gnu.org/gnunet/gnunet-0.18.0.tar.gz
> > > >      - http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.18.0.tar.gz
> > > > 
> > > > Note that due to mirror synchronization, not all links might be 
> > > > functional early after the release. For direct access try 
> > > > http://ftp.gnu.org/gnu/gnunet/
> > > > 
> > > > Noteworthy changes in 0.18.0 (since 0.17.6):
> > > > 
> > > >      UTIL: Added enum GNUNET_ErrorCode for better error handling 
> > > > throughout the API.
> > > >      NAMESTORE:
> > > >          - 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:
> > > >            
> > > > https://docs.gnunet.org/developers/subsystems/namestore/namestore.html
> > > >          - Updated the user documentation to reflect the above changes 
> > > > and
> > > >            included various tutorials on zone management:
> > > >            https://docs.gnunet.org/users/gns.html
> > > >          - Updated the REST API and its documentation to reflect the 
> > > > above
> > > >            changes:
> > > >            https://docs.gnunet.org/developers/rest/namestore.html
> > > >      ZONEMASTER: Zonemaster now uses worker threads for record signing.
> > > >      DHT: The specification has been updated to reflect the changes:
> > > >           https://lsd.gnunet.org/lsd0004
> > > >      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
> > > > (https://git.gnunet.org/gnunet.git/tree/ChangeLog) and the bug tracker
> > > > (https://bugs.gnunet.org/changelog_page.php?project_id=13).
> > > > 
> > > > 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
> > > > bugs.gnunet.org which lists about 190 more specific issues.
> > > > 
> > > > Thanks:
> > > > 
> > > > 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]