Thread

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Support falling back to non-preferred readline implementation with meson

  2. Support absolute bindir/libdir in regression tests with meson

  3. Fallback to clang in PATH with meson

  4. Fallback to uuid for ossp-uuid with meson

  5. meson: Add support for detecting ossp-uuid without pkg-config

  1. Building with meson on NixOS/nixpkgs

    Wolfgang Walther <walther@technowledgy.de> — 2024-03-16T11:48:31Z

    To build on NixOS/nixpkgs I came up with a few small patches to 
    meson.build. All of this works fine with Autoconf/Make already.
  2. Re: Building with meson on NixOS/nixpkgs

    Nazir Bilal Yavuz <byavuz81@gmail.com> — 2024-03-18T12:25:58Z

    Hi,
    
    Thank you for the patches!
    
    On Sat, 16 Mar 2024 at 14:48, Wolfgang Walther <walther@technowledgy.de> wrote:
    >
    > To build on NixOS/nixpkgs I came up with a few small patches to
    > meson.build. All of this works fine with Autoconf/Make already.
    
    I do not have NixOS but I confirm that patches cleanly apply to master
    and do pass CI. I have a small feedback:
    
    0001 & 0002: Adding code comments to explain why they have fallback
    could be nice.
    0003: Looks good to me.
    
    -- 
    Regards,
    Nazir Bilal Yavuz
    Microsoft
    
    
    
    
  3. Re: Building with meson on NixOS/nixpkgs

    Alvaro Herrera <alvherre@alvh.no-ip.org> — 2024-03-18T19:03:53Z

    On 2024-Mar-16, Wolfgang Walther wrote:
    
    > The upstream name for the ossp-uuid package / pkg-config file is "uuid". Many
    > distributions change this to be "ossp-uuid" to not conflict with e2fsprogs.
    
    I can confirm that this is true for Debian, at least; the packaging
    rules have this in override_dh_install:
    
        install -D -m 644 debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/uuid.pc \
            debian/libossp-uuid-dev/usr/lib/pkgconfig/ossp-uuid.pc
    
    which matches the fact that Engelschall's official repository has the
    file named simply uuid.pc:
    https://github.com/rse/uuid/blob/master/uuid.pc.in
    
    -- 
    Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/
    
    
    
    
  4. Re: Building with meson on NixOS/nixpkgs

    Wolfgang Walther <walther@technowledgy.de> — 2024-03-21T20:44:16Z

    Nazir Bilal Yavuz:
    > 0001 & 0002: Adding code comments to explain why they have fallback
    > could be nice.
    > 0003: Looks good to me.
    
    Added some comments in the attached.
    
    Best,
    
    Wolfgang
  5. Re: Building with meson on NixOS/nixpkgs

    Wolfgang Walther <walther@technowledgy.de> — 2024-03-29T18:47:54Z

    Wolfgang Walther:
    > To build on NixOS/nixpkgs I came up with a few small patches to 
    > meson.build. All of this works fine with Autoconf/Make already.
    
    In v3, I added another small patch for meson, this one about proper 
    handling of -Dlibedit_preferred when used together with -Dreadline=enabled.
    
    Best,
    
    Wolfgang
  6. Re: Building with meson on NixOS/nixpkgs

    Nazir Bilal Yavuz <byavuz81@gmail.com> — 2024-04-01T10:55:45Z

    Hi,
    
    From your prior reply:
    
    On Thu, 21 Mar 2024 at 23:44, Wolfgang Walther <walther@technowledgy.de> wrote:
    >
    > Nazir Bilal Yavuz:
    > > 0001 & 0002: Adding code comments to explain why they have fallback
    > > could be nice.
    > > 0003: Looks good to me.
    >
    > Added some comments in the attached.
    
    Comments look good, thanks.
    
    On Fri, 29 Mar 2024 at 21:48, <walther@technowledgy.de> wrote:
    >
    > In v3, I added another small patch for meson, this one about proper
    > handling of -Dlibedit_preferred when used together with -Dreadline=enabled.
    
    You are right. I confirm the bug and your proposed patch fixes this.
    
    -- 
    Regards,
    Nazir Bilal Yavuz
    Microsoft
    
    
    
    
  7. Re: Building with meson on NixOS/nixpkgs

    Peter Eisentraut <peter@eisentraut.org> — 2024-04-17T11:49:53Z

    On 29.03.24 19:47, walther@technowledgy.de wrote:
     > -    uuid = dependency('ossp-uuid', required: true)
     > +    # upstream is called "uuid", but many distros change this to 
    "ossp-uuid"
     > +    uuid = dependency('ossp-uuid', 'uuid', required: true)
    
    How would this behave if you have only uuid.pc from e2fsprogs installed 
    but choose -Duuid=ossp?  Then it would pick up uuid.pc here, but fail to 
    compile later?
    
    
    
    
    
  8. Re: Building with meson on NixOS/nixpkgs

    Wolfgang Walther <walther@technowledgy.de> — 2024-04-17T12:02:41Z

    Peter Eisentraut:
    > On 29.03.24 19:47, walther@technowledgy.de wrote:
    >  > -    uuid = dependency('ossp-uuid', required: true)
    >  > +    # upstream is called "uuid", but many distros change this to 
    > "ossp-uuid"
    >  > +    uuid = dependency('ossp-uuid', 'uuid', required: true)
    > 
    > How would this behave if you have only uuid.pc from e2fsprogs installed 
    > but choose -Duuid=ossp?  Then it would pick up uuid.pc here, but fail to 
    > compile later?
    
    It would still fail the meson setup step, because for e2fs we have:
    
    uuidfunc = 'uuid_generate'
    uuidheader = 'uuid/uuid.h'
    
    while for ossp we have:
    
    uuidfunc = 'uuid_export'
    uuidheader = 'uuid.h'
    
    and later we do:
    
    if not cc.has_header_symbol(uuidheader, uuidfunc, args: test_c_args, 
    dependencies: uuid)
         error('uuid library @0@ missing required function 
    @1@'.format(uuidopt, uuidfunc))
    endif
    
    Best,
    
    Wolfgang
    
    
    
    
  9. Re: Building with meson on NixOS/nixpkgs

    Tristan Partin <tristan@neon.tech> — 2024-07-26T20:01:14Z

    Heikki asked me to take a look at this patchset for the commitfest. 
    Looks good to me.
    
    Heikki, just be careful rebasing the first patch. You need to make sure 
    the newly set `required: false` gets carried forward.
    
    -- 
    Tristan Partin
    Neon (https://neon.tech)
    
    
    
    
  10. Re: Building with meson on NixOS/nixpkgs

    Heikki Linnakangas <hlinnaka@iki.fi> — 2024-07-27T11:17:51Z

    On 26/07/2024 23:01, Tristan Partin wrote:
    > Heikki asked me to take a look at this patchset for the commitfest.
    > Looks good to me.
    > 
    > Heikki, just be careful rebasing the first patch. You need to make sure
    > the newly set `required: false` gets carried forward.
    
    Committed and backpatched to v16 and v17. Thanks for the good 
    explanations in the commit messages, Walther!
    
    -- 
    Heikki Linnakangas
    Neon (https://neon.tech)
    
    
    
    
    
  11. Re: Building with meson on NixOS/nixpkgs

    Andres Freund <andres@anarazel.de> — 2024-08-09T16:13:58Z

    Hi,
    
    
    commit 4d8de281b5834c8f5e0be6ae21e884e69dffd4ce
    Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
    Date:   2024-07-27 13:53:11 +0300
    
        Fallback to clang in PATH with meson
    
        Some distributions put clang into a different path than the llvm
        binary path.
    
        For example, this is the case on NixOS / nixpkgs, which failed to find
        clang with meson before this patch.
    
    
    I think this is a bad change unfortunately - this way clang and llvm version
    can mismatch. Yes, we've done it that way for autoconf, but back then LLVM
    broke compatibility far less often.
    
    
    commit a00fae9d43e5adabc56e64a4df6d332062666501
    Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
    Date:   2024-07-27 13:53:08 +0300
    
        Fallback to uuid for ossp-uuid with meson
    
        The upstream name for the ossp-uuid package / pkg-config file is
        "uuid". Many distributions change this to be "ossp-uuid" to not
        conflict with e2fsprogs.
    
        This lookup fails on distributions which don't change this name, for
        example NixOS / nixpkgs. Both "ossp-uuid" and "uuid" are also checked
        in configure.ac.
    
        Author: Wolfgang Walther
        Reviewed-by: Nazir Bilal Yavuz, Alvaro Herrera, Peter Eisentraut
        Reviewed-by: Tristan Partin
        Discussion: https://www.postgresql.org/message-id/ca8f37e1-a2c3-40e2-91f6-59c3d3652ad4@technowledgy.de
        Backpatch: 16-, where meson support was added
    
    I think this is a redundant change with
    
    commit 2416fdb3ee30bdd2810408f93f14d47bff840fea
    Author: Andres Freund <andres@anarazel.de>
    Date:   2024-07-20 13:51:08 -0700
    
        meson: Add support for detecting ossp-uuid without pkg-config
    
        This is necessary as ossp-uuid on windows installs neither a pkg-config nor a
        cmake dependency information. Nor is there another supported uuid
        implementation available on windows.
    
        Reported-by: Dave Page <dpage@pgadmin.org>
        Reviewed-by: Tristan Partin <tristan@partin.io>
        Discussion: https://postgr.es/m/20240709065101.xhc74r3mdg2lmn4w@awork3.anarazel.de
        Backpatch: 16-, where meson support was added
    
    
    Greetings,
    
    Andres Freund
    
    
    
    
  12. Re: Building with meson on NixOS/nixpkgs

    Tristan Partin <tristan@partin.io> — 2024-08-09T16:49:08Z

    On Fri Aug 9, 2024 at 11:14 AM CDT, Andres Freund wrote:
    > Hi,
    >
    >
    > commit 4d8de281b5834c8f5e0be6ae21e884e69dffd4ce
    > Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
    > Date:   2024-07-27 13:53:11 +0300
    >
    >     Fallback to clang in PATH with meson
    >
    >     Some distributions put clang into a different path than the llvm
    >     binary path.
    >
    >     For example, this is the case on NixOS / nixpkgs, which failed to find
    >     clang with meson before this patch.
    >
    >
    > I think this is a bad change unfortunately - this way clang and llvm version
    > can mismatch. Yes, we've done it that way for autoconf, but back then LLVM
    > broke compatibility far less often.
    
    See the attached patch on how we could make this situation better.
    
    > commit a00fae9d43e5adabc56e64a4df6d332062666501
    > Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
    > Date:   2024-07-27 13:53:08 +0300
    >
    >     Fallback to uuid for ossp-uuid with meson
    >
    >     The upstream name for the ossp-uuid package / pkg-config file is
    >     "uuid". Many distributions change this to be "ossp-uuid" to not
    >     conflict with e2fsprogs.
    >
    >     This lookup fails on distributions which don't change this name, for
    >     example NixOS / nixpkgs. Both "ossp-uuid" and "uuid" are also checked
    >     in configure.ac.
    >
    >     Author: Wolfgang Walther
    >     Reviewed-by: Nazir Bilal Yavuz, Alvaro Herrera, Peter Eisentraut
    >     Reviewed-by: Tristan Partin
    >     Discussion: https://www.postgresql.org/message-id/ca8f37e1-a2c3-40e2-91f6-59c3d3652ad4@technowledgy.de
    >     Backpatch: 16-, where meson support was added
    >
    > I think this is a redundant change with
    >
    > commit 2416fdb3ee30bdd2810408f93f14d47bff840fea
    > Author: Andres Freund <andres@anarazel.de>
    > Date:   2024-07-20 13:51:08 -0700
    >
    >     meson: Add support for detecting ossp-uuid without pkg-config
    >
    >     This is necessary as ossp-uuid on windows installs neither a pkg-config nor a
    >     cmake dependency information. Nor is there another supported uuid
    >     implementation available on windows.
    >
    >     Reported-by: Dave Page <dpage@pgadmin.org>
    >     Reviewed-by: Tristan Partin <tristan@partin.io>
    >     Discussion: https://postgr.es/m/20240709065101.xhc74r3mdg2lmn4w@awork3.anarazel.de
    >     Backpatch: 16-, where meson support was added
    
    I'm not sure I would call them redundant. It's cheaper (and better) to 
    do a pkg-config lookup than it is to do the various checks in your 
    patch. I think the two patches are complementary. Yours services Windows 
    plus anywhere else that doesn't have a pkg-config file, while Wolfgang's 
    services distros that install the pkg-config with a different name.
    
    -- 
    Tristan Partin
    https://tristan.partin.io
    
  13. Re: Building with meson on NixOS/nixpkgs

    Wolfgang Walther <walther@technowledgy.de> — 2024-08-17T21:24:43Z

    Tristan Partin:
    > On Fri Aug 9, 2024 at 11:14 AM CDT, Andres Freund wrote:
    > [..]
    >> commit a00fae9d43e5adabc56e64a4df6d332062666501
    >> Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
    >> Date:   2024-07-27 13:53:08 +0300
    >>
    >>     Fallback to uuid for ossp-uuid with meson
    >> [..]
    >>
    >> I think this is a redundant change with
    >>
    >> commit 2416fdb3ee30bdd2810408f93f14d47bff840fea
    >> Author: Andres Freund <andres@anarazel.de>
    >> Date:   2024-07-20 13:51:08 -0700
    >>
    >>     meson: Add support for detecting ossp-uuid without pkg-config
    >> [..]
    > 
    > I'm not sure I would call them redundant. It's cheaper (and better) to 
    > do a pkg-config lookup than it is to do the various checks in your 
    > patch. I think the two patches are complementary. Yours services Windows 
    > plus anywhere else that doesn't have a pkg-config file, while Wolfgang's 
    > services distros that install the pkg-config with a different name.
    
    Agreed.
    
    There is also a small difference in output for meson: When uuid is 
    queried via pkg-config, meson also detects the version, so I get this 
    output:
    
       External libraries
    [..]
         uuid                   : YES 1.6.2
    
    
    Without pkg-config:
    
       External libraries
    [..]
         uuid                   : YES
    
    Best,
    
    Wolfgang
    
    
    
    
  14. Re: Building with meson on NixOS/nixpkgs

    Wolfgang Walther <walther@technowledgy.de> — 2024-08-17T21:43:37Z

    Tristan Partin:
    > On Fri Aug 9, 2024 at 11:14 AM CDT, Andres Freund wrote:
    >> commit 4d8de281b5834c8f5e0be6ae21e884e69dffd4ce
    >> Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
    >> Date:   2024-07-27 13:53:11 +0300
    >>
    >>     Fallback to clang in PATH with meson
    >> [..]
    >>
    >> I think this is a bad change unfortunately - this way clang and llvm 
    >> version
    >> can mismatch. Yes, we've done it that way for autoconf, but back then 
    >> LLVM
    >> broke compatibility far less often.
    > 
    > See the attached patch on how we could make this situation better.
    
    Works great.
    
    With the correct clang on path:
    
    Program clang found: YES 18.1.8 18.1.8 
    (/nix/store/mr1y1rxkx59dr2bci2akmw2zkbbpmc15-clang-wrapper-18.1.8/bin/clang)
    
    With a mismatching version on path:
    
    Program 
    /nix/store/x4gwwwlw2ylv0d9vjmkx3dmlcb7gingd-llvm-18.1.8/bin/clang clang 
    found: NO found 16.0.6 but need: '18.1.8' 
    (/nix/store/r85xsa9z0s04n0y21xhrii47bh74g2a8-clang-wrapper-16.0.6/bin/clang)
    
    Yes, the match is exact, also fails with a newer version:
    
    Program 
    /nix/store/x4gwwwlw2ylv0d9vjmkx3dmlcb7gingd-llvm-18.1.8/bin/clang clang 
    found: NO found 19.1.0 but need: '18.1.8' 
    (/nix/store/rjsfx6sxjpkgd4f9hl9apm0n8dk7jd9w-clang-wrapper-19.1.0-rc2/bin/clang)
    
    +1 for this patch.
    
    Best,
    
    Wolfgang