forked from postgres/postgres
-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
Tasks for meson use in postgres:
- Missing Features
- libedit support #38 libedit support (easy-medium)
- generate pkg-config files (easy-medium)
- fully implement "native language support" (see https://postgr.es/m/bfcd5353-0fb3-a05c-6f62-164d98c5689d%40enterprisedb.com )
- check vs installcheck (maybe via different test setups?)
- meson: postgres flex wrapper #50
- Not yet built in meson:
- check for other bits and pieces
- ECPG, except for windows
- pl/tcl (medium) #22
- Not tested yet with meson:
- ECPG (medium)
- search for other "manually invoked" tests (easy)
- OS dependent issues
- building against system ldap fails on macos #9 (unknown difficulty)
- rpath on netbsd broken for at least perl, there's also a possibly related issue on suse
- AIX symbol generation needs to be fixed
- windows icon generation (PGAPPICON and PGFILEDESC in makefiles) is implemented only for one or two tools, needs to be generalized
- simplify exports.txt handling, use it in all the required places (e.g. ecpg)
- Installation
- "pkglibdir" logic from src/Makefile.global.in needs to be mirrored to some degree (medium)
- meson: install headers to the same location as autoconf build does #30 (partially done)
- Header install with install_subdir() is error prone (think tempfiles)
- Cleanups:
- Centralize operating-system specific logic. There's too many places querying host_machine.system() right now
- Merge gendef.pl and gendef2.pl back together (medium)
- src/tools/testwrap should be cleaned up made unnecessary (path unclear as of yet)
- src/tools/irlink shouldn't be bash, but python #36 (medium)
- merge top-level of tap and regress test specifications, shouldn't be two separate arrays with the same information at the top #31 (easy-medium, fairly verbose changes)
- Open questions:
- figure out how to deal with PGXS / building out-of-tree extension
- LLVM bitcode generation implementation isn't even close to generalized enough (hard)
- Other Todos:
- meson: write test for pkg-config based extension builds #58 (easy - medium)
- installation.sgml etc need a lot of adjustment
- Write README.md introducing how to build with meson on a number of operating systems #33 (easy)
- sync up configure tests / meson implementation, add missing ones
- Bugs:
- Implement missing options:
- Synchronize option descriptions from configure.ac to meson_options.txt (easy)
- Check which other options we want to have that configure has but meson_options doesn't
- --with-wal-blocksize / XLOG_BLCKSZ (easy) #15
- --with-segsize / RELSEG_SIZE (easy) #16
- --with-pgport (easy) #17
- --enable-tap-tests, currently unconditional, without even checking for it (easy) #18
- meson: Implement missing directory options #61
Testing Tasks
- automated testing of various linux distributions, via docker containers, at least (should be optional cirrus tasks):
- RHEL 7 (easy-medium) #19
- RHEL 8 (easy-medium) #20
- Fedora Rawhide (easy-medium) #21
- Suse (See Adding openSUSE Tumbleweed to meson build #7 )
- Debian on linux arm (supported by cirrus), image exists already (easy)
- automated testing via VMs
- OpenBSD ( openbsd: Build Image pg-vm-images#6 )
- NetBSD ( netbsd: Build Image pg-vm-images#7 )
- automated test against all supported meson versions (easy-medium)
- Add test of meson upstream versions #81 (easy-medium)
- Test a few extensions built via PGXS in CI (easy)
- Automate building a lot of extensions via script (medium)
Improvements to the meson integration that likely aren't critical:
- build dependency files for xsltproc et al for more accurate incremental builds (medium-hard)
Questions:
- Do we need to implement "sqlmansectnum" logic for docs?
- Partial installation support needed? Right now everything will be installed. Likely a problem for things like src/test/modules/dummy_index_am - but those currently need to be installed for tests.
Relevant meson improvements / issues:
- caching for library searches - biggest contributor to configure time now
- Framework dependency extracts -I in addition to framework, leading to endless include recursion mesonbuild/meson#10002 - worked around, but still a trap
- Expose
Environment::get_build_command()
to meson.build mesonbuild/meson#8511 - not critical, but helpful - arm macos libraries rejected due to expecting aarch64, but seeing aarch64e mesonbuild/meson#9493 - worked around, but still a trap
- vs_module_defs should be allowed for executable(). mesonbuild/meson#9254 - would simplify code
- Invalid XML generated in testlog.junit.xml with \x07 in test output mesonbuild/meson#9894 - not critical, but would allow easier to analyze test results
- mtest TAP parser parses fails on Test::More and node-tap subtests mesonbuild/meson#10032 - should fix so that we eventually can rely on tap subtests (once minimum meson version is high enough)
Metadata
Metadata
Assignees
Labels
No labels