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
dev-lang/erlang-21.1 #9357
dev-lang/erlang-21.1 #9357
Conversation
the "smp" USE flag is no longer available in dev-lang/erlang-21.0.x related PR: gentoo#9357
It's worth clarifying the context explicitly here to avoid leaving this PR go unattended without explanation. This package has no maintainer and has some complexity associated with it. There is little chances that a gentoo developer will do a "drive by" review of this unmaintained package. It means that it either needs a gentoo developer taking over or a proxy maintainer. That boils down to: @stefantalpalaru are you willing to take over the maintenance of this package? It implies adhering to Gentoo's consensus regarding coding style and best practices. Seeing how things go in #9360 , I have the feeling that it's not something that you're willing to do, so I prefer to ask explicitly to avoid wasting everyone's time. |
Yes, of course. How many times do I have to agree to being a proxy maintainer? This must be the fifth time, already.
Seeing how I added the "Proxy Maintainers" project to metadata.xml, it's rather obvious I intend to proxy-maintain the package. What's with all these hostile "feelings"? |
I ask explicitly because from what I read in #9360, it seems that you didn't read https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers#What_it_takes_to_be_a_Proxied_Maintainer before agreeing to become a proxy maintainer. If you tell us that you read and understood this section, then allright, no problem, it means that #9360 will be resolved to everyone satisfaction with you making requested changes so we can then confidently invest time into reviewing this PR here. |
Virgil, this is getting absurd. Grow a pair and close all my pull requests instead of looking for silly excuses.
You people still haven't explained how exactly you merge GitHub pull request. Since I don't see commits that are not from Gentoo developers in the main Git repo, it logically follows that you do not pull and merge external commits, so asking me to squash, mark or otherwise apply your own commit guideline to PR commits is an absurd request - yet another absurd requests from people looking for excuses to reject external contributions... As for your precious time, you seem to have plenty when it comes to arguing with Gentoo users, and none for maintaining Gentoo packages. |
@stefantalpalaru please cut this. I won't tolerate attacking people who are trying to help. This is your last and only warning. |
Nobody wishes to close your pull requests. This package is obviously in need of a maintainer, we welcome help. Conditions for acceptance of that help are clear and you apparently decide that you don't like those conditions. Fine. I think that every gentoo developers involved in your recent PRs has shown good faith. We do, however, protect ourselves from wasting our time because it does seem, from the tone of your messages, that you came here with the intention of being rejected and continue your crusade against gentoo developers saying "look! I was rejected!". Why would we waste time reviewing work from someone who shows no intention of carrying on? If that's what you want to do, being rejected, fine, but you will be the worst off for it because we will have shown good faith. If I haven't mischaracterised your intent, then the "ballsy" thing to do for you would be to close your PRs yourself. |
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.
Please split adding new version from removing old. Also Closes
tag accepts a single argument only, so you need to split it.
dev-lang/erlang/erlang-21.0.4.ebuild
Outdated
emacs? ( virtual/emacs ) | ||
java? ( >=virtual/jdk-1.2:* ) | ||
odbc? ( dev-db/unixODBC ) | ||
sys-libs/ncurses:* |
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.
ncurses:*
is almost certainly wrong as slot :5
does not provide headers to build on. Also, please move unconditional deps before USE conditionals.
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.
done
dev-lang/erlang/erlang-21.0.4.ebuild
Outdated
|
||
RDEPEND=" | ||
emacs? ( virtual/emacs ) | ||
java? ( >=virtual/jdk-1.2:* ) |
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.
Please remove the explicit version here. 1.2
is gone for years now, and I seriously doubt you've actually tested it.
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.
done
dev-lang/erlang/erlang-21.0.4.ebuild
Outdated
$(use_with ssl) \ | ||
$(use_with ssl ssl-rpath "no") \ | ||
$(use_enable ssl dynamic-ssl-lib) \ | ||
$(use_enable systemd) \ | ||
$(use_enable pgo) \ | ||
$(if ! use wxwidgets; then echo "--with-wxdir=/dev/null"; fi) \ |
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.
Use usex
, please.
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.
done
dev-lang/erlang/erlang-21.0.4.ebuild
Outdated
else | ||
dosym "${ERL_LIBDIR}/erts-${ERL_ERTS_VER}/bin/beam" /usr/bin/beam | ||
fi | ||
dosym "${ERL_LIBDIR}/erts-${ERL_ERTS_VER}/bin/beam.smp" /usr/bin/beam.smp |
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.
Use relative symlinks instead of absolute everywhere.
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.
done
Since my commits don't end up in the main tree, feel free to split this PR any way you want when you create your own commits. |
The combined removal+addition makes it impossible to leave comments on ebuild parts not covered by the change. Please fix the pull request, so that I can review it properly. Also, please fix the merge conflicts. |
Done. It was just the trivial matter of merging "master" into this PR branch.
You're asking me to fix GitHub. The PR is now for erlang-21.0.5 because it's been 3 weeks since it was created. |
No, I'm asking you to stop removing the old version. If you can't do that, I don't think there's anything else to do for us here. |
"erlang-21.0.2.ebuild" brought back from "master". Do keep in mind that the more useless versions you have for a package, the harder it is to maintain it. And Michał, you need to start acting like an adult. You lashed out with a Kafkaesque reversal in "I won't tolerate attacking people who are trying to help", continued with a ridiculously aggressive threat - "This is your last and only warning." - and now you stomp your feet like a child instead of clarifying what it is that you need ("If you can't do that, I don't think there's anything else to do for us here." - more dramatic than a primadonna ;-)). I can fix technical issues, but I can't fix your power trips, so keep that in mind the next time you lash out. |
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.
I see 5 commits where there should be one.
dev-lang/erlang/erlang-21.0.5.ebuild
Outdated
# NOTE: If you need symlinks for binaries please tell maintainers or | ||
# open up a bug to let it be created. | ||
|
||
UPSTREAM_V="$(get_version_component_range 1-2)" |
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.
versionator.eclass is deprecated, please switch to eapi7-ver.
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.
done
dev-lang/erlang/erlang-21.0.5.ebuild
Outdated
DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)" | ||
HOMEPAGE="http://www.erlang.org/" | ||
SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz | ||
http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz |
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.
Switch to https, if possible.
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.
done
dev-lang/erlang/erlang-21.0.5.ebuild
Outdated
LICENSE="Apache-2.0" | ||
SLOT="0" | ||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" | ||
|
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.
Remove the unnecessary empty line here to match the standard ebuild template.
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.
done
dev-lang/erlang/erlang-21.0.5.ebuild
Outdated
S="${WORKDIR}/otp-OTP-${PV}" | ||
|
||
PATCHES=( | ||
"${FILESDIR}/18.2.1-wx3.0.patch" |
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.
Again, single tab for indent.
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.
fixed
dev-lang/erlang/erlang-21.0.5.ebuild
Outdated
|
||
# Taken from the upstream build script, build_otp | ||
erlang_create_lib_configure_in() { | ||
local bootstrap_apps="erts lib/asn1 lib/compiler lib/hipelib/ic lib/kernel |
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.
Use a bash array.
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.
done
dev-lang/erlang/erlang-21.0.5.ebuild
Outdated
} | ||
|
||
extract_version() { | ||
sed -n -e "/^$2 = \(.*\)$/s::\1:p" "${S}/$1/vsn.mk" |
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.
||die. Also, would be nice to document the parameters, at least by assigning them to local vars with clear names.
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.
done
dev-lang/erlang/erlang-21.0.5.ebuild
Outdated
emake INSTALL_PREFIX="${ED}" install | ||
|
||
if use doc ; then | ||
local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" "${WORKDIR}"/doc/. "${WORKDIR}"/lib/. "${WORKDIR}"/erts-* ) |
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.
So, with USE=-doc you use automagic file list, with uSE=doc you redefine the whole list. This is just asking for inconsistency. Maybe just call einstalldocs
first, then use dodoc -r
to install extra files manually.
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.
DOCS is now set explicitly with USE="-doc".
dev-lang/erlang/erlang-21.0.5.ebuild
Outdated
local ERL_LIBDIR_REL="$(get_libdir)/erlang" | ||
local ERL_INTERFACE_VER="$(extract_version lib/erl_interface EI_VSN)" | ||
local ERL_ERTS_VER="$(extract_version erts VSN)" | ||
local MY_MANPATH="/usr/share/${PN}/man" |
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.
Again, why do you need this variable?
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.
my_manpath is used twice
dev-lang/erlang/erlang-21.0.5.ebuild
Outdated
# extend MANPATH, so the normal man command can find it | ||
# see bug 189639 | ||
echo "MANPATH=\"${MY_MANPATH}\"" > "${T}/90erlang" || die | ||
doenvd "${T}/90erlang" |
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.
Use newenvd - ...
and input the data via stdin, to avoid temporary file.
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.
done
dev-lang/erlang/erlang-21.0.5.ebuild
Outdated
doenvd "${T}/90erlang" | ||
|
||
if use emacs ; then | ||
pushd "${S}" &>/dev/null || die |
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.
I'm confused. Why wouldn't you be in ${S}
at this point?
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.
fixed
The "smp" USE flag is no longer available in dev-lang/erlang-21.0.x Related PR: gentoo#9357 Authored-by: Ștefan Talpalaru <stefantalpalaru@yahoo.com> Closes: gentoo#9358
c8c40a5
to
9e6e6c1
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.
dependency.badindev 6
dev-lang/erlang/erlang-21.0.9.ebuild: DEPEND: ~arm64(default/linux/arm64/17.0)
['x11-libs/wxGTK:3.0-gtk3[X,opengl]']
dev-lang/erlang/erlang-21.0.9.ebuild: RDEPEND: ~arm64(default/linux/arm64/17.0)
['x11-libs/wxGTK:3.0-gtk3[X,opengl]']
dev-lang/erlang/erlang-21.0.9.ebuild: DEPEND: ~arm64(default/linux/arm64/17.0/desktop/systemd)
['x11-libs/wxGTK:3.0-gtk3[X,opengl]']
dev-lang/erlang/erlang-21.0.9.ebuild: RDEPEND: ~arm64(default/linux/arm64/17.0/desktop/systemd)
['x11-libs/wxGTK:3.0-gtk3[X,opengl]']
dev-lang/erlang/erlang-21.0.9.ebuild: DEPEND: ~arm64(default/linux/arm64/17.0/systemd)
['x11-libs/wxGTK:3.0-gtk3[X,opengl]']
dev-lang/erlang/erlang-21.0.9.ebuild: RDEPEND: ~arm64(default/linux/arm64/17.0/systemd)
['x11-libs/wxGTK:3.0-gtk3[X,opengl]']
Also it fails to build: |
9e6e6c1
to
f6507bd
Compare
wxGTK:3.0-gtk3 is not keyworded on arm64, so we're back to using the GTK+2-based wxGTK (there's probably no technical impediment, since gtk+:3 is available on that platform). You had a problem with wxWidgets detection, which is now fixed by passing "--with-wx-config=${WX_CONFIG}" to ./configure. For your PGO problem, just disable ccache and distcc, as you always do when there's some profiling going on. |
Mask the flag on arm64 profile, and request keywording.
ccache/distcc is a supported Gentoo configuration, and this particular setup is guaranteed-safe. If anything's broken because of it, then it means the package is seriously broken and needs to be fixed. |
I'd rather not go on yet another wild-goose chase.
FEATURES="ccache distcc" works for me, with a local distccd server, so it's probably your setup that's broken. Can you build the erlang-21.0.9 that's in the main tree right now? That one also has PGO enabled, with no way to disable it. |
That's how we do things on Gentoo.
Fails the same. Still, if I can't test it, I can't merge it. |
So it's not 'my system being broken' as you wished it were but a parallel make issue. Fix it. |
I can't be. I have MAKEOPTS="-j9 -l9". |
And I have |
If you always experience the problem and I can never replicate it, it's not random. Do you use some configure cache that's also used outside Gentoo? This is from your log:
and this is from mine:
|
Yes, I use a site cache to speed up the few repeating checks:
|
f6507bd
to
4d5a6ab
Compare
The "smp" USE flag is no longer available in dev-lang/erlang-21.0.x Related PR: gentoo#9357 Closes: gentoo#9358 Authored-by: Ștefan Talpalaru <stefantalpalaru@yahoo.com> Signed-off-by: Ștefan Talpalaru <stefantalpalaru@yahoo.com>
I removed some deprecated configure options, properly (re-)added the "wxwidgets" USE flag - without automagic dependencies, added the "pgo" flag and made some USE flags enabled by default to match upstream's defaults. Most of the ebuild was refactored, after code reviews, with the more significant change being the replacement of two shell functions copied from an upstream build script with a call to a patched version of that script. When the "pgo" USE flag is enabled, distcc and ccache are disabled, to avoid a build failure due to a version mismatch in .gcda files that cannot be explained by different GCC versions. Closes: https://bugs.gentoo.org/653700 Closes: https://bugs.gentoo.org/658656 Authored-by: Ștefan Talpalaru <stefantalpalaru@yahoo.com> Signed-off-by: Ștefan Talpalaru <stefantalpalaru@yahoo.com>
4d5a6ab
to
0733b20
Compare
When the "pgo" USE flag is enabled, distcc and ccache are disabled, to While working on this, I discovered that the "export DISTCC_DISABLE=1" line - found in 13 ebuilds in the main tree - doesn't work at all with the latest distcc and it probably never worked. Looks like someone copied the (working) "export CCACHE_DISABLE=1" line without testing it, then stuck a "try to turn off distcc and ccache for people that have a problem with it" comment :-) |
Pull request CI reportReport generated at: 2018-09-28 17:37 UTC Issues already there before the PR (double-check them): |
I use versioned CC/CXX, so version conflict can't happen in my case. |
The good news is that I identified the problem. The bad news is that we can't do profile-guided optimisations over distcc. The Erlang build system wants to copy .gcda files, making the assumption that it will find them in the same directory and with the same prefix as the corresponding object files (default behaviour when compiling locally). What happens under distcc is that something like this is produced instead during a profiling run: "/tmp/distccd_dfedc28b.gcda" because the original source file was renamed to "/tmp/distccd_dfedc28b.c" remotely. It's possible to manipulate that path, somewhat, but not the filename: https://gcc.gnu.org/onlinedocs/gcc/Cross-profiling.html Further more, it's not possible to pass the .gcda file created by the profiling run to distcc for the second compilation step and without that profile there is no optimisation being done. In gcc-8.2.0 that little problem flies under the radar, but a few days ago they added a specific warning flag for that in the trunk: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86957 So unless you want to make significant changes to distcc and gcc, we have to always disable distcc when we're doing PGO. This applies to all packages with a "pgo" USE flag (except maybe gcc that uses the previously built compiler in its second and third phase, thus skipping distcc). P.S.: that "version mismatch in .gcda files" I was talking about in a previous comment was due to this: https://bugs.gentoo.org/667252 |
This only applies if you're using bad distcc setup where CC/CXX does not contain compiler version. |
"Bad" setup or not, it's the default setup. Anyway, there were more factors leading to that mismatch. |
It built now, I'll merge. |
In the future, distcc will know not to distribute compilations involved in PGO: distcc/distcc#309 |
I removed some deprecated configure options, properly (re-)added the "wxwidgets" USE flag - without automagic dependencies, added the "pgo" flag and made some USE flags enabled by default to match upstream's defaults.
Closes: https://bugs.gentoo.org/658656 and https://bugs.gentoo.org/653700