-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
postgresql16*: new ports #20205
postgresql16*: new ports #20205
Conversation
can we just wait for the official release - any idea on when that will be? |
It will be released some time in the next month or two. I think there have been beta versions in MacPorts before, though, because the portfile had a livecheck regex commented out that only matches pre-release versions. |
I am not sure, not seeing any previous |
It looks like Jyrki went from |
@dgilman @reneeotten Please allow me to test prior to merging. |
Yeah, that would avoid adding a new port and doing the "replaced_by" stuff as just renaming a port cannot be done. Only drawback in that approach is likely that one would need to increase the "epoch" as I think that version "16" would not be considered newer than, for example, "16rc2". But that should be tested to make sure. |
@dgilman @reneeotten To begin with, we need
|
Then, something is broken here:
Let me look into this. |
I think I have found broken code. Let me make a patch and try. |
@dgilman @reneeotten Turned out, it was broken on purpose in postgres/postgres@8ded656 Anyway, this patch fixes the build ( |
The commit message mentions that modern assemblers can emit compatible instructions. Is it possible to blacklist old compilers instead of having to try and carry this patch forever? |
@dgilman The problem here is that even if the comment is accurate (which we cannot be sure of), we have no selection of assemblers for macOS PowerPC. Using the latest GCC won’t help, it does not provide From the looks of things upstream did a wrong thing removing the code. It is possible that the code can be improved and made more concise. Maybe Be sure, I do not want to carry a huge patch forever myself (given that pretty likely I will have to test it and fix with subsequent updates). Solutions – either bring this to attention of upstream that their assumptions were wrong and consequently the move was wrong either, and should be reverted; or rewrite the code to make it more portable along releases. P. S. If you wish, you may add me as a co-maintainer for PowerPC implementation, and I will take care of the patch as long as that is needed – until, hopefully, it is fixed in a better way. |
Before I bothered to check commit history and find the breakage, I have already figured out to replace As can be seen, the instruction takes 3 arguments: https://opensource.apple.com/source/xnu/xnu-792.6.76/osfmk/ppc/commpage/atomic.s.auto.html I suggest we merge what we have for now (just restoring a working upstream code), and later I will see if a) we can make |
For the |
bc31435
to
c23a2f8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In my view, there are two separate port naming strategies that can be employed:
- foo and foo-devel. In this case, foo is the latest stable version, foo-devel is the latest development version, and they intentionally install files to the same locations and conflict with one another and the devel port is a drop-in replacement for the non-devel port. Examples: libpixman, cairo, pango, glib2, graphviz, minivmac.
- bar1, bar2, bar3. In this case, each port provides the latest version of the specified major version of the software, they intentionally install files to different locations and do not conflict with one another. There is also a bar_select port to let you select which version of bar you want to use at the command line with the standard name without having to specify the version number. Examples: clang and llvm, gcc, php, perl5*, python**.
*perl5 is unique in that it does not have a working perl_select port. It predates the existence of port select
so it's not a good model for what should be done today.
**python is unique in that Josh has chosen to use the -devel suffix on development versions of python for which there is not yet any stable version, such as python312-devel today. When the stable version comes around, Josh will copy the python312-devel port to python312, making adjustments along the way, and hopefully leaving the stub python312-devel port marked replaced_by python312
for awhile. This is a lot of extra work that I view as unnecessary for this case, hence the manner in which I handle the php ports, for example php83 today is 8.3.0beta3 and will eventually become 8.3.0 final (with the corresponding necessary epoch increase).
If you wish to use the devel naming scheme for postgresql16, then the suffix must be -devel
not -dev
.
Many of the comments I made below may apply to previous postgresql ports as well. All of the postgresql ports should be kept as similar as possible. This has, to a great degree, not happened with these ports so far, so straightening that out and figuring out which differences between them are intentional and which are not and should be back- or forward-ported to the other ones may be a lot of work.
c23a2f8
to
a0c3e8b
Compare
Done:
User homedir / shell changes: Barring some trick to get around the sandbox that I don't know about, I think the way forward here is to just set the defaults right in postgresql16 and let the fixes trickle out over time. They aren't breaking any fundamental functionality with the port. Backporting changes: TODO:
|
cafb1f7
to
9780997
Compare
@dgilman Re sandboxing, while I do not know whether it is relevant, but we use the following in some ports: macports-ports/science/madness/Portfile Lines 129 to 132 in ffe6352
|
To avoid dealing with all of that, the current version of the port could start with 15. So something like |
58deaa7
to
7f6925a
Compare
I've uncommented the dscl stuff. Not sure what I was running into before but it is now running correctly / offering the correct privs. I think it may have been an issue of the permission popup modal the system does not correctly firing or me accidentally denying it. This PR is good for final review |
7f6925a
to
0a65f5c
Compare
Closes: https://trac.macports.org/ticket/40501 Closes: https://trac.macports.org/ticket/37929 Closes: https://trac.macports.org/ticket/36511 Closes: https://trac.macports.org/ticket/36128 Closes: https://trac.macports.org/ticket/33145 Closes: https://trac.macports.org/ticket/66529 Closes: https://trac.macports.org/ticket/67638 Closes: https://trac.macports.org/ticket/29752 Closes: https://trac.macports.org/ticket/66689 Closes: https://trac.macports.org/ticket/67203 Closes: https://trac.macports.org/ticket/67713 Closes: https://trac.macports.org/ticket/68119 Closes: https://trac.macports.org/ticket/67339
0a65f5c
to
a083239
Compare
The epoch exists for cases like this. It's much better to use the epoch as intended rather than lie to the user about the port's version number. |
Description
The most important change here is that I have changed ownership from @jyrkiwahlstedt and made the port openmaintainer. He has been busy elsewhere for a while and hasn't been on GitHub in some time so I think the change is justified. It is also a new port anyway.
This is a beta release, when the official one comes out I'd rename the port to postgresql16.
Type(s)
Tested on
Have you
port lint --nitpick
?sudo port test
?sudo port -vst install
?