
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.funtoo.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.funtoo.org/index.php?title=Why_won't_the_package_bypass_the_QA_notice&amp;feed=atom&amp;action=history</id>
		<title>Why won't the package bypass the QA notice - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://www.funtoo.org/index.php?title=Why_won't_the_package_bypass_the_QA_notice&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://www.funtoo.org/index.php?title=Why_won%27t_the_package_bypass_the_QA_notice&amp;action=history"/>
		<updated>2013-05-24T01:36:52Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.20.6</generator>

	<entry>
		<id>http://www.funtoo.org/index.php?title=Why_won%27t_the_package_bypass_the_QA_notice&amp;diff=2226&amp;oldid=prev</id>
		<title>Brantgurga: I fixed a typo.</title>
		<link rel="alternate" type="text/html" href="http://www.funtoo.org/index.php?title=Why_won%27t_the_package_bypass_the_QA_notice&amp;diff=2226&amp;oldid=prev"/>
				<updated>2010-11-07T21:20:18Z</updated>
		
		<summary type="html">&lt;p&gt;I fixed a typo.&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 21:20, 7 November 2010&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;He knew that the &amp;lt;code&amp;gt;stricter&amp;lt;/code&amp;gt; feature of Portage could cause behaviour like this, but despite trying again with &amp;lt;code&amp;gt;FEATURES=&amp;quot;-stricter&amp;quot;&amp;lt;/code&amp;gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/del&gt;ran into the issue again. This is when he brought it to the forum.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;He knew that the &amp;lt;code&amp;gt;stricter&amp;lt;/code&amp;gt; feature of Portage could cause behaviour like this, but despite trying again with &amp;lt;code&amp;gt;FEATURES=&amp;quot;-stricter&amp;quot;&amp;lt;/code&amp;gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;he &lt;/ins&gt;ran into the issue again. This is when he brought it to the forum.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[User:Brantgurga|brantgurga]] took a look and noticed the call stack portion of the output:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[User:Brantgurga|brantgurga]] took a look and noticed the call stack portion of the output:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Brantgurga</name></author>	</entry>

	<entry>
		<id>http://www.funtoo.org/index.php?title=Why_won%27t_the_package_bypass_the_QA_notice&amp;diff=2225&amp;oldid=prev</id>
		<title>Brantgurga: I wrote up about the investigation of jeanfrancis's issue.</title>
		<link rel="alternate" type="text/html" href="http://www.funtoo.org/index.php?title=Why_won%27t_the_package_bypass_the_QA_notice&amp;diff=2225&amp;oldid=prev"/>
				<updated>2010-11-07T21:07:50Z</updated>
		
		<summary type="html">&lt;p&gt;I wrote up about the investigation of jeanfrancis&amp;#039;s issue.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This is an issue encountered by jeanfrancis. He wrote in a [http://forums.funtoo.org/viewtopic.php?id=72 forum topic] that he was having a package abort merging because of a QA warning. The result of his build was this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 * &lt;br /&gt;
 * QA Notice: Package has poor programming practices which may compile&lt;br /&gt;
 *            but will almost certainly crash on 64bit architectures.&lt;br /&gt;
 * &lt;br /&gt;
 * Function `gtk_layout_get_hadjustment' implicitly converted to pointer at testgtk.c:9779&lt;br /&gt;
 * Function `gtk_layout_get_vadjustment' implicitly converted to pointer at testgtk.c:9780&lt;br /&gt;
 * Function `gtk_layout_get_hadjustment' implicitly converted to pointer at testoffscreen.c:65&lt;br /&gt;
 * Function `gtk_layout_get_vadjustment' implicitly converted to pointer at testoffscreen.c:100&lt;br /&gt;
 * &lt;br /&gt;
 *  Please file a bug about this at http://bugs.gentoo.org/&lt;br /&gt;
 *  with the maintaining herd of the package.&lt;br /&gt;
 * &lt;br /&gt;
 * ERROR: x11-libs/gtk+-2.91.2 failed:&lt;br /&gt;
 *   install aborted due to poor programming practices shown above&lt;br /&gt;
 * &lt;br /&gt;
 * Call stack:&lt;br /&gt;
 *   misc-functions.sh, line 817:  Called install_qa_check&lt;br /&gt;
 *   misc-functions.sh, line 492:  Called die&lt;br /&gt;
 * The specific snippet of code:&lt;br /&gt;
 *   				die &amp;quot;install aborted due to&amp;quot; \&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
He knew that the &amp;lt;code&amp;gt;stricter&amp;lt;/code&amp;gt; feature of Portage could cause behaviour like this, but despite trying again with &amp;lt;code&amp;gt;FEATURES=&amp;quot;-stricter&amp;quot;&amp;lt;/code&amp;gt;, the ran into the issue again. This is when he brought it to the forum.&lt;br /&gt;
&lt;br /&gt;
[[User:Brantgurga|brantgurga]] took a look and noticed the call stack portion of the output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 * Call stack:&lt;br /&gt;
 *   misc-functions.sh, line 817:  Called install_qa_check&lt;br /&gt;
 *   misc-functions.sh, line 492:  Called die&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
He found &amp;lt;code&amp;gt;misc-functions.sh&amp;lt;/code&amp;gt; on his system by calling &amp;lt;code&amp;gt;locate misc-functions.sh&amp;lt;/code&amp;gt;. With that file open, he searched for the &amp;lt;code&amp;gt;install_qa_check&amp;lt;/code&amp;gt; function and then searched for the die messages within it and found this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                if [[ ${abort} == &amp;quot;yes&amp;quot; ]] ; then&lt;br /&gt;
                        if [[ $gentoo_bug = yes || $always_overflow = yes ]] ; $&lt;br /&gt;
                                die &amp;quot;install aborted due to&amp;quot; \&lt;br /&gt;
                                        &amp;quot;poor programming practices shown above&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It was clear from this that the &amp;lt;code&amp;gt;abort&amp;lt;/code&amp;gt; variable was getting set to &amp;lt;code&amp;gt;&amp;quot;yes&amp;quot;&amp;lt;/code&amp;gt; as were one of &amp;lt;code&amp;gt;gentoo_bug&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;always_overflow&amp;lt;/code&amp;gt;. He skimmed the preceding code and found this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                        # In the future this will be a forced &amp;quot;die&amp;quot;. In preparation,&lt;br /&gt;
                        # increase the log level from &amp;quot;qa&amp;quot; to &amp;quot;eerror&amp;quot; so that people&lt;br /&gt;
                        # are aware this is a problem that must be fixed asap.&lt;br /&gt;
&lt;br /&gt;
                        # just warn on 32bit hosts but bail on 64bit hosts&lt;br /&gt;
                        case ${CHOST} in&lt;br /&gt;
                                alpha*|hppa64*|ia64*|powerpc64*|mips64*|sparc64*|sparcv9*|x86_64*) gentoo_bug=yes ;;&lt;br /&gt;
                        esac&lt;br /&gt;
&lt;br /&gt;
                        abort=yes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because jeanfrancis was on a 64-bit machine, &amp;lt;code&amp;gt;gentoo_bug&amp;lt;/code&amp;gt; was getting set to &amp;lt;code&amp;gt;&amp;quot;yes&amp;quot;&amp;lt;/code&amp;gt;. Shortly after, it was clear that &amp;lt;code&amp;gt;abort&amp;lt;/code&amp;gt; was getting set to &amp;lt;code&amp;gt;&amp;quot;yes&amp;quot;&amp;lt;/code&amp;gt; as well.&lt;br /&gt;
&lt;br /&gt;
It seems that this had been changed to a forced die without updating the comment. The reasoning is that the QA check caught warnings about a pointer being assigned to an int. This happens to accidentally work on 32-bit machines where pointers and ints are both 32-bit. However, on 64-bit machines, the pointer is 64-bit and the int is 32-bit. This causes the pointer to truncate and very likely cause a crash.&lt;br /&gt;
&lt;br /&gt;
With that investigation, jeanfrancis worked around the issue by creating a patch for the missing declarations and editing the ebuild to apply his patch.&lt;br /&gt;
&lt;br /&gt;
[[Category:Investigations]]&lt;/div&gt;</summary>
		<author><name>Brantgurga</name></author>	</entry>

	</feed>