#!/bin/sh # # Copyright (C) 2012 Ryan Houlgate # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # VERSION=1 . ./config # Need to remove an 'option' in the XML file. # It extends for five lines, so we will comment # them out. xmlFileName=workarounds/workarounds.xml.in xmlStringToLookFor=fglrx_xgl_fix xmlSkipLines=4 cat $xmlFileName | while read line; do if (echo $line|grep $xmlStringToLookFor>/dev/null); then echo "" else echo "$line" fi done > $xmlFileName.tmp mv $xmlFileName.tmp $xmlFileName # The C++ code calls methods that appear to be based # on the part of the XML file that we removed. # There is a method that returns a boolean to # indicate whether or not this feature should # be exhibited. I've created a dummy method # that always returns false for that. # It's declared as "extern" in the "*.h" file. # It's defined at the end of the "*.cpp" file. # There is another call to a related method. # I just comment out that call. cppFileName=workarounds/src/workarounds.cpp cppStringToLookFor=optionSetFglrxXglFixNotify cppSkipLines=2 cat $cppFileName | while read line; do if (echo $line|grep $cppStringToLookFor>/dev/null); then echo "/**************** Removing recommendation to use non-free software" echo "$line" count=0 while [ "$count" -lt "$cppSkipLines" ] ; do count=`expr $count + 1`; read line echo "$line" done echo "****************/" else echo "$line" fi done > $cppFileName.tmp mv $cppFileName.tmp $cppFileName # Create declaration of method in the *.h file echo "extern bool optionGetFglrxXglFix();" >> workarounds/src/workarounds.h # Create definition of method in the *.cpp file echo "// Providing dummy method to always return false due to the removal" >> workarounds/src/workarounds.cpp echo "// of non-free software recommendation" >> workarounds/src/workarounds.cpp echo "bool optionGetFglrxXglFix() { return false; }" >> workarounds/src/workarounds.cpp changelog "Remove recomendation to use fglrx (non-free software)" compile