[gentoo-dev] last rites: dev-python/pry
# Tim Harder radher...@gentoo.org (25 Oct 2014) # Upstream migrated to nose for testing instead of their own framework. # Masked for removal in 30 days. dev-python/pry pgpjRV0rQHQab.pgp Description: PGP signature
[gentoo-dev] last rites: dev-util/cmockery
# Tim Harder radher...@gentoo.org (25 Oct 2014) # Deprecated project, devwlopment continues in dev-util/cmocka. # Masked for removal in 30 days. dev-util/cmockery pgpFbqYtjXuY2.pgp Description: PGP signature
Re: [gentoo-dev] Re: RFC: News item regarding c++98 vs c++11
On 10/24/14 7:29 PM, Anthony G. Basile wrote: So I don't have to keep email the entire item to the list, how about just adding it as follows: Nor is c++11 code compiled with gcc-4.7 ABI-compatible with c++11 compiled with 4.8, and vice versa. An example can be see in ref. [2] Ref. [2] https://bugs.gentoo.org/show_bug.cgi?id=513386 I think this could still be clearer about the user/sysadmin perspective more than a developer perspective, i.e. present this more like both gcc-4.7 and 4.8 installed with 4.7 being active than not ABI-compatible with C++11 compiled with 4.8. Here's my suggested draft: -%- CUT HERE -%- GCC 4.7 introduced the new experimental 2011 ISO C++ standard [1]. Users that wish to try enabling C++11 globally (e.g. using CXXFLAGS) should exercise caution because it is not ABI-compatible with C++98. Packages which are self-contained or do not link against any libraries written in C++ are not affected. Note that some packages like www-client/chromium and net-libs/webkit-gtk among others are already using C++11 features. Even having different versions of gcc installed simultaneously might lead to problems, especially if the active version of gcc is older. Please see [2] for example known bug with webkit-gtk. It is recommended to set the latest installed version of gcc as active; some packages may work when an older version is selected, but GCC upstream provides no guarantees of C++11 ABI stability for code compiled with gcc-4.x and 4.y for any x != y [3]. Ref. [1] http://www.stroustrup.com/C++11FAQ.html [2] https://bugs.gentoo.org/show_bug.cgi?id=513386 [3] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61758 -%- CUT HERE -%- Paweł signature.asc Description: OpenPGP digital signature
Re: [gentoo-dev] status of bugs blocking gcc-4.8.3
On 24/10/14 19:12, Anthony G. Basile wrote: bug 513386 - net-libs/webkit-gtk-2.4.3 - ./.libs/libwebkitgtk-3.0.so: undefined reference to `_ZNSt6chrono12steady_clock3nowEv@GLIBCXX_3.4.17' - This is a problem. It relates to abi mismatching with libstdc++. The ABI mismatch is due the library not being versioned properly as usual? The bug details how you can hit it in gentoo. Martin von Gagern pushed the issue upstream and pretty much got the answer we're on our own So we'll have to deal with this as we go forward. Seehttps://gcc.gnu.org/bugzilla/show_bug.cgi?id=61758 Not sure if the llvm C++ runtime might help here or it is any better than the one provided by gnu, but might be a good time to gather volunteers to provide a mean to use clang as main compiler out of box. Being on your own is not an answer I like to hear. Nor the whole approach to the discussion. lu
Re: [gentoo-dev] status of bugs blocking gcc-4.8.3
Not sure if the llvm C++ runtime might help here or it is any better than the one provided by gnu, but might be a good time to gather volunteers to provide a mean to use clang as main compiler out of box. libc++ makes stricter ABI guarantees [1]. But from personal experience I would not consider it a replacement for libstdc++ in the near future. I have set up some lxc containers with clang/libc++ with promising results (and I plan to keep up testing with it once in a while). Best, Matthias [1] http://clang-developers.42468.n3.nabble.com/libc-ABI-stability-td2976682.html
Re: [gentoo-dev] status of bugs blocking gcc-4.8.3
On 25/10/14 13:09, Matthias Maier wrote: Not sure if the llvm C++ runtime might help here or it is any better than the one provided by gnu, but might be a good time to gather volunteers to provide a mean to use clang as main compiler out of box. libc++ makes stricter ABI guarantees [1]. But from personal experience I would not consider it a replacement for libstdc++ in the near future. Probably we could join forces with FreeBSD to help pushing fixes to applications upstream. I have set up some lxc containers with clang/libc++ with promising results (and I plan to keep up testing with it once in a while). Could you please blog or add some notes to the wiki about it? lu
[gentoo-dev] Last rites: net-print/foomatic-filters-ppds
-BEGIN PGP SIGNED MESSAGE- Hash: SHA512 # Deprecated by upstream, Debian removed it in 2010. # Contents of this package moved to foomatic-db{,-engine,-ppds} # and cups-filters. # Masking for removal in 30 days. net-print/foomatic-filters-ppds -BEGIN PGP SIGNATURE- Version: GnuPG v2.0 iQJ8BAEBCgBmBQJUS8tYXxSAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ4MDA1RERERkM0ODM2QkE4MEY3NzY0N0M1 OEZCQTM2QzhEOUQ2MzVDAAoJEFj7o2yNnWNcKWQP/3NOhheSMwswhk3pO7p98juW s78boQxlhUUB56O9Wd0pLEXwz8KLdwEf5plJiDCTQ1ulxs+SNNMJoR0/rCCr3a6+ h7v2rKsjoLhglRmxKFQJRg4akd8ZShLsP74wMXWQ6kPri8H97V70KWdBGMuQV9Zd 71Kr/LcD9Qvl1+OSm7/qg43dPX9LWQa3yhLlUGnsKVD9juzFedDhquL6O+HRIS7S Ekjop5xkTsw/o5C6GBXabSPasp9Rw9p+0/BqSQJpo+yxsetbyv7eRMUnKfXnwqOu 6Q4SxZdsPBchkRjcoD1ClpwlHZF56fmlgBODDI5G6hi2a/RkYgP9nsqYDbB+LSLg 4Ko/BSEiFLkad94398oBf53dcxbhBaXb8K9/CI/9hpSOdbXSZuyKl22k7TDQ6Hxw 6VJo/gazDMMeU2oZTO/LSj9BTC7limh0hhkKhxvk8pGggMfkf2ilciXgVlrEaz4T XwYR/Qt2VnIZl+kn8VAR8F0dLQ9scBRfB7n1Jb8QTNT5IdvbpMz6EyLtCu0DKgfQ 4LS2JVPkiAWE/AwPy/mFzuJXHM4ySLtgLXmfz1MRupDkcmpHaQD2WdT4oQ+vcFNq uY6yWI/uFg4XTDvpuPPu+nDctTCBW7GDeGvmMVt4q7VnHKCKcoR7I0t+HrOyxWV1 rcQs4ExZzzG8Ry1sXlOk =hpf9 -END PGP SIGNATURE-
[gentoo-portage-dev] [PATCH 2/3] install-qa-check.d/05double-D: Write to log and improve consistency.
Present the list of offending files newline-delimitered for consistency with other checks. --- bin/install-qa-check.d/05double-D | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/install-qa-check.d/05double-D b/bin/install-qa-check.d/05double-D index 1634afd..84fcc89 100644 --- a/bin/install-qa-check.d/05double-D +++ b/bin/install-qa-check.d/05double-D @@ -2,9 +2,10 @@ DD_check() { if [[ -d ${D%/}${D} ]] ; then + eqawarn QA Notice: files installed in \${D}/\${D}: local -i INSTALLTOD=0 while read -r -d $'\0' i ; do - eqawarn QA Notice: /${i##${D%/}${D}} installed in \${D}/\${D} + eqawarnlog double-d /${i##${D%/}${D}} ((INSTALLTOD++)) done (find ${D%/}${D} -print0) die Aborting due to QA concerns: ${INSTALLTOD} files installed in ${D%/}${D} -- 2.0.4
[gentoo-portage-dev] [PATCH 1/3] bin/misc-functions.sh: Introduce eqalog and eqawarnlog functions.
These functions are to be used for creating a log of QA violations in a machine-readable format. Stored in ${T]/qa.log, the log consists of one entry per line in the following format: violation-tag data For example: deprecated-directory /usr/man deprecated-directory /usr/info world-writable /var/db/foo/bar --- bin/misc-functions.sh | 16 1 file changed, 16 insertions(+) diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh index cc652a9..78da589 100755 --- a/bin/misc-functions.sh +++ b/bin/misc-functions.sh @@ -162,6 +162,22 @@ prepcompress() { return 0 } +eqalog() { + local tag=$1 x + shift + for x in $@ ; do + echo ${tag} ${x} ${T}/qa.log + done +} + +eqawarnlog() { + eqalog $@ + shift + for x in $@ ; do + eqawarn $x + done +} + install_qa_check() { local f i qa_var x if ! ___eapi_has_prefix_variables; then -- 2.0.4
[gentoo-portage-dev] [PATCH 3/3] install-qa-check.d/90world-writable: Write log and general cleanup.
Use eqawarn instead of __vecho for visibility. Present the list of offending files newline-delimitered for consistency with other checks. --- bin/install-qa-check.d/90world-writable | 28 +--- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/bin/install-qa-check.d/90world-writable b/bin/install-qa-check.d/90world-writable index 771027e..ff186c5 100644 --- a/bin/install-qa-check.d/90world-writable +++ b/bin/install-qa-check.d/90world-writable @@ -2,21 +2,35 @@ world_writable_check() { # Now we look for all world writable files. - local unsafe_files=$(find ${ED} -type f -perm -2 | sed -e s:^${ED}:- :) + local unsafe_files=$(find ${ED} -type f -perm -2 | sed -e s:^${ED}:/:) + local OLDIFS x + + OLDIFS=$IFS + IFS=$'\n' + if [[ -n ${unsafe_files} ]] ; then - __vecho QA Security Notice: world writable file(s): - __vecho ${unsafe_files} - __vecho - This may or may not be a security problem, most of the time it is one. - __vecho - Please double check that $PF really needs a world writeable bit and file bugs accordingly. - sleep 1 + eqawarn QA Security Notice: world writable file(s): + + for x in $unsafe_files ; do + eqawarnlog world-writable $x + done + + eqawarn This may or may not be a security problem, most of the time it is one. + eqawarn Please double check that $PF really needs a world writeable bit and file bugs accordingly. + eqawarn fi local unsafe_files=$(find ${ED} -type f '(' -perm -2002 -o -perm -4002 ')' | sed -e s:^${ED}:/:) if [[ -n ${unsafe_files} ]] ; then eqawarn QA Notice: Unsafe files detected (set*id and world writable) - eqawarn ${unsafe_files} + + for x in $unsafe_files ; do + eqawarnlog world-writable-setid $x + done die Unsafe files found in \${D}. Portage will not install them. fi + + IFS=OLDIFS } world_writable_check -- 2.0.4
Re: [gentoo-portage-dev] [PATCH 1/3] bin/misc-functions.sh: Introduce eqalog and eqawarnlog functions.
On 10/25/2014 09:15 AM, Michael Palimaka wrote: +eqalog() { + local tag=$1 x + shift + for x in $@ ; do + echo ${tag} ${x} ${T}/qa.log + done +} Your patches look good to me, except that I think eqalog should escape any \n characters that might be embedded in the arguments. We might use something like this to escape all but the last \n character: echo ${tag} ${x}| (escape= ; while read -r ; do echo -n ${escape}${REPLY} ; escape=\\n; done ; echo ) ${T}/qa.log Here's a test case showing that it works: $ echo -e foo\nbar\nbaz| (escape= ; while read -r ; do echo -n ${escape}${REPLY} ; escape=\\n; done ; echo ) foo\nbar\nbaz -- Thanks, Zac
Re: [gentoo-portage-dev] [PATCH 1/3] bin/misc-functions.sh: Introduce eqalog and eqawarnlog functions.
On 10/25/2014 09:15 AM, Michael Palimaka wrote: +eqalog() { + local tag=$1 x + shift + for x in $@ ; do + echo ${tag} ${x} ${T}/qa.log + done +} + +eqawarnlog() { + eqalog $@ + shift + for x in $@ ; do + eqawarn $x + done +} + These functions are internals, so they need to be prefixed with __ like __eqalog and __eqawarnlog. -- Thanks, Zac
Re: [gentoo-portage-dev] [PATCH 1/3] bin/misc-functions.sh: Introduce eqalog and eqawarnlog functions.
On 10/25/2014 12:53 PM, Zac Medico wrote: On 10/25/2014 09:15 AM, Michael Palimaka wrote: +eqalog() { +local tag=$1 x +shift +for x in $@ ; do +echo ${tag} ${x} ${T}/qa.log +done +} + +eqawarnlog() { +eqalog $@ +shift +for x in $@ ; do +eqawarn $x +done +} + These functions are internals, so they need to be prefixed with __ like __eqalog and __eqawarnlog. Also, please unset them inside bin/save-ebuild-env.sh. -- Thanks, Zac
Re: [gentoo-portage-dev] [PATCH 1/3] bin/misc-functions.sh: Introduce eqalog and eqawarnlog functions.
On 10/25/2014 12:54 PM, Zac Medico wrote: On 10/25/2014 12:53 PM, Zac Medico wrote: On 10/25/2014 09:15 AM, Michael Palimaka wrote: +eqalog() { + local tag=$1 x + shift + for x in $@ ; do + echo ${tag} ${x} ${T}/qa.log + done +} + +eqawarnlog() { + eqalog $@ + shift + for x in $@ ; do + eqawarn $x + done +} + These functions are internals, so they need to be prefixed with __ like __eqalog and __eqawarnlog. Also, please unset them inside bin/save-ebuild-env.sh. Actually, these suggestions are optional, since the environment from misc-functions.sh is never saved. However, if you wanted to move them to isolated-functions.sh, then these suggestions are mandatory. -- Thanks, Zac
[gentoo-portage-dev] Re: [PATCH 1/3] bin/misc-functions.sh: Introduce eqalog and eqawarnlog functions.
On 26/10/14 07:00, Zac Medico wrote: On 10/25/2014 12:54 PM, Zac Medico wrote: On 10/25/2014 12:53 PM, Zac Medico wrote: On 10/25/2014 09:15 AM, Michael Palimaka wrote: +eqalog() { + local tag=$1 x + shift + for x in $@ ; do + echo ${tag} ${x} ${T}/qa.log + done +} + +eqawarnlog() { + eqalog $@ + shift + for x in $@ ; do + eqawarn $x + done +} + These functions are internals, so they need to be prefixed with __ like __eqalog and __eqawarnlog. Also, please unset them inside bin/save-ebuild-env.sh. Actually, these suggestions are optional, since the environment from misc-functions.sh is never saved. However, if you wanted to move them to isolated-functions.sh, then these suggestions are mandatory. Is it better to move them to isolated-functions and implement the above changes then? I only put it in misc-functions since it's near install_qa_check and I'm not too familiar with the file layout. :-)
[gentoo-portage-dev] Re: [PATCH 1/3] bin/misc-functions.sh: Introduce eqalog and eqawarnlog functions.
On 10/25/2014 01:13 PM, Michael Palimaka wrote: On 26/10/14 07:00, Zac Medico wrote: These functions are internals, so they need to be prefixed with __ like __eqalog and __eqawarnlog. Also, please unset them inside bin/save-ebuild-env.sh. Actually, these suggestions are optional, since the environment from misc-functions.sh is never saved. However, if you wanted to move them to isolated-functions.sh, then these suggestions are mandatory. Is it better to move them to isolated-functions and implement the above changes then? I only put it in misc-functions since it's near install_qa_check and I'm not too familiar with the file layout. :-) Yes, I think so, since eventually you'll probably want to call them elsewhere. -- Thanks, Zac
Re: [gentoo-portage-dev] [PATCH 1/3] bin/misc-functions.sh: Introduce eqalog and eqawarnlog functions.
Dnia 2014-10-25, o godz. 12:42:14 Zac Medico zmed...@gentoo.org napisał(a): On 10/25/2014 09:15 AM, Michael Palimaka wrote: +eqalog() { + local tag=$1 x + shift + for x in $@ ; do + echo ${tag} ${x} ${T}/qa.log + done +} Your patches look good to me, except that I think eqalog should escape any \n characters that might be embedded in the arguments. Why? That sounds like some unsafe fancy feature only one person would use. Embedding newlines in bash is trivial, why make them implicit with a lot of added complexity? -- Best regards, Michał Górny signature.asc Description: PGP signature
Re: [gentoo-portage-dev] [PATCH 1/3] bin/misc-functions.sh: Introduce eqalog and eqawarnlog functions.
Dnia 2014-10-25, o godz. 12:53:15 Zac Medico zmed...@gentoo.org napisał(a): On 10/25/2014 09:15 AM, Michael Palimaka wrote: +eqalog() { + local tag=$1 x + shift + for x in $@ ; do + echo ${tag} ${x} ${T}/qa.log + done +} + +eqawarnlog() { + eqalog $@ + shift + for x in $@ ; do + eqawarn $x + done +} + These functions are internals, so they need to be prefixed with __ like __eqalog and __eqawarnlog. eqawarnlog shouldn't be internal since we support adding QA checks in repositories. In fact, I am planning to move some Gentoo-specific QA checks out of portage code. -- Best regards, Michał Górny signature.asc Description: PGP signature
Re: [gentoo-portage-dev] [PATCH 1/3] bin/misc-functions.sh: Introduce eqalog and eqawarnlog functions.
On 10/25/2014 01:25 PM, Michał Górny wrote: Dnia 2014-10-25, o godz. 12:42:14 Zac Medico zmed...@gentoo.org napisał(a): On 10/25/2014 09:15 AM, Michael Palimaka wrote: +eqalog() { + local tag=$1 x + shift + for x in $@ ; do + echo ${tag} ${x} ${T}/qa.log + done +} Your patches look good to me, except that I think eqalog should escape any \n characters that might be embedded in the arguments. Why? That sounds like some unsafe fancy feature only one person would use. Embedding newlines in bash is trivial, why make them implicit with a lot of added complexity? Because the caller should not be concerned about the qa.log file format. The fact that it's delimited by newlines is an implementation detail that the caller need know nothing about. Escaping the new lines is really not all that complex. All of the elog functions have similar handling for newlines. -- Thanks, Zac
Re: [gentoo-portage-dev] [PATCH 1/3] bin/misc-functions.sh: Introduce eqalog and eqawarnlog functions.
On 10/25/2014 01:26 PM, Michał Górny wrote: Dnia 2014-10-25, o godz. 12:53:15 Zac Medico zmed...@gentoo.org napisał(a): On 10/25/2014 09:15 AM, Michael Palimaka wrote: +eqalog() { + local tag=$1 x + shift + for x in $@ ; do + echo ${tag} ${x} ${T}/qa.log + done +} + +eqawarnlog() { + eqalog $@ + shift + for x in $@ ; do + eqawarn $x + done +} + These functions are internals, so they need to be prefixed with __ like __eqalog and __eqawarnlog. eqawarnlog shouldn't be internal since we support adding QA checks in repositories. In fact, I am planning to move some Gentoo-specific QA checks out of portage code. It's a PMS thing. If it's not in PMS and the package manager provides it, it's supposed to be prefixed. -- Thanks, Zac
Re: [gentoo-portage-dev] [PATCH 1/3] bin/misc-functions.sh: Introduce eqalog and eqawarnlog functions.
Dnia 2014-10-25, o godz. 13:28:54 Zac Medico zmed...@gentoo.org napisał(a): On 10/25/2014 01:25 PM, Michał Górny wrote: Dnia 2014-10-25, o godz. 12:42:14 Zac Medico zmed...@gentoo.org napisał(a): On 10/25/2014 09:15 AM, Michael Palimaka wrote: +eqalog() { + local tag=$1 x + shift + for x in $@ ; do + echo ${tag} ${x} ${T}/qa.log + done +} Your patches look good to me, except that I think eqalog should escape any \n characters that might be embedded in the arguments. Why? That sounds like some unsafe fancy feature only one person would use. Embedding newlines in bash is trivial, why make them implicit with a lot of added complexity? Because the caller should not be concerned about the qa.log file format. The fact that it's delimited by newlines is an implementation detail that the caller need know nothing about. Escaping the new lines is really not all that complex. All of the elog functions have similar handling for newlines. Oh, you mean converting from newlines to \n escapes? I thought the opposite way, sorry then. -- Best regards, Michał Górny signature.asc Description: PGP signature
Re: [gentoo-portage-dev] [PATCH 1/3] bin/misc-functions.sh: Introduce eqalog and eqawarnlog functions.
On 10/25/2014 01:41 PM, Michał Górny wrote: Dnia 2014-10-25, o godz. 13:28:54 Zac Medico zmed...@gentoo.org napisał(a): On 10/25/2014 01:25 PM, Michał Górny wrote: Dnia 2014-10-25, o godz. 12:42:14 Zac Medico zmed...@gentoo.org napisał(a): On 10/25/2014 09:15 AM, Michael Palimaka wrote: +eqalog() { + local tag=$1 x + shift + for x in $@ ; do + echo ${tag} ${x} ${T}/qa.log + done +} Your patches look good to me, except that I think eqalog should escape any \n characters that might be embedded in the arguments. Why? That sounds like some unsafe fancy feature only one person would use. Embedding newlines in bash is trivial, why make them implicit with a lot of added complexity? Because the caller should not be concerned about the qa.log file format. The fact that it's delimited by newlines is an implementation detail that the caller need know nothing about. Escaping the new lines is really not all that complex. All of the elog functions have similar handling for newlines. Oh, you mean converting from newlines to \n escapes? I thought the opposite way, sorry then. Right, that's what my sample code does. -- Thanks, Zac
[gentoo-portage-dev] [PATCH] bin/bashrc-functions.sh: remove portageq function
Since commit 0cc4c1ac21a2ea94cfb1f6ff4b461a9e349d47df, $PORTAGE_BIN_PATH/portageq no longer exists, which breaks the portageq shell function inside bashrc-functions.sh. Note that $PORTAGE_BIN_PATH/ebuild-helpers/portageq is in $PATH, so we can simply remove the redundant function. Fixes: 0cc4c1a (Install Portage using setup.py) X-Gento-Bug: 524964 X-Gentoo-URL: https://bugs.gentoo.org/show_bug.cgi?id=524964 --- bin/bashrc-functions.sh | 7 +-- 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/bin/bashrc-functions.sh b/bin/bashrc-functions.sh index 503b172..cc02546 100644 --- a/bin/bashrc-functions.sh +++ b/bin/bashrc-functions.sh @@ -1,12 +1,7 @@ #!/bin/bash -# Copyright 1999-2013 Gentoo Foundation +# Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -portageq() { - PYTHONPATH=${PORTAGE_PYTHONPATH:-${PORTAGE_PYM_PATH}}\ - ${PORTAGE_PYTHON:-/usr/bin/python} ${PORTAGE_BIN_PATH}/portageq $@ -} - register_die_hook() { local x for x in $* ; do -- 2.0.4