Merge remote branch 'anaconda/master'
* anaconda/master: Moved Anaconda source to subdirectory Revert "Put ATA and DRI modules to CD initrd" #92 Blacklist aesni-intel module in kernel commandline. #102 Add max_loop=255 parameter to kernel commandline. #101 Created Qubes installclass Use defaultBootFSType for /boot partition Skip software packages selection screen Use disk encryption by default Use 512MB for /boot partition and rest for / partition Put ATA and DRI modules to CD initrd Generate grub.conf properly for Qubes kernel Added XEN support to mk-images.x86. Removed PXE support. Fixed mk-images.efi typo Initial import of anaconda-13.42 source
This commit is contained in:
commit
f55a6c3020
56
anaconda/70-anaconda.rules
Normal file
56
anaconda/70-anaconda.rules
Normal file
@ -0,0 +1,56 @@
|
||||
# If $ANACONDA isn't set in the environment, skip all these rules.
|
||||
ENV{ANACONDA}!="?*", GOTO="anaconda_end"
|
||||
|
||||
ACTION!="add|change", GOTO="anaconda_end"
|
||||
SUBSYSTEM!="block", GOTO="anaconda_end"
|
||||
|
||||
# for device-mapper device we are supposed to only operate on "change" events
|
||||
KERNEL=="dm-*", ACTION=="add", GOTO="anaconda_end"
|
||||
|
||||
ENV{ANACBIN}="/sbin"
|
||||
TEST!="$env{ANACBIN}/dmsetup", ENV{ANACBIN}="/usr/sbin"
|
||||
|
||||
KERNEL=="dm-*", ENV{DM_UDEV_DISABLE_DISK_RULES_FLAG}=="1", GOTO="anaconda_end"
|
||||
KERNEL=="dm-*", ENV{DM_NAME}!="?*", GOTO="anaconda_end"
|
||||
KERNEL=="dm-*", ENV{DM_SUSPENDED}=="1", GOTO="anaconda_end"
|
||||
KERNEL=="dm-*", ENV{DM_SUSPENDED}=="Suspended", GOTO="anaconda_end"
|
||||
|
||||
IMPORT{program}="$env{ANACBIN}/blkid -o udev -p $tempnode"
|
||||
|
||||
LABEL="anaconda_mdraid"
|
||||
KERNEL!="md*", GOTO="anaconda_mdraid_member"
|
||||
|
||||
# container devices have a metadata version of e.g. 'external:ddf' and
|
||||
# never leave state 'inactive'
|
||||
ATTR{md/metadata_version}=="external:[A-Za-z]*", ATTR{md/array_state}=="inactive", GOTO="md_ignore_state"
|
||||
TEST!="md/array_state", GOTO="anaconda_mdraid_member"
|
||||
ATTR{md/array_state}=="|clear|inactive", GOTO="anaconda_mdraid_member"
|
||||
LABEL="md_ignore_state"
|
||||
|
||||
IMPORT{program}="$env{ANACBIN}/mdadm --detail --export $tempnode"
|
||||
ENV{DEVTYPE}=="disk", ENV{MD_NAME}=="?*", SYMLINK+="disk/by-id/md-name-$env{MD_NAME}", OPTIONS+="string_escape=replace"
|
||||
ENV{DEVTYPE}=="disk", ENV{MD_UUID}=="?*", SYMLINK+="disk/by-id/md-uuid-$env{MD_UUID}"
|
||||
ENV{DEVTYPE}=="disk", ENV{MD_DEVNAME}=="?*", SYMLINK+="md/$env{MD_DEVNAME}"
|
||||
ENV{DEVTYPE}=="partition", ENV{MD_NAME}=="?*", SYMLINK+="disk/by-id/md-name-$env{MD_NAME}-part%n", OPTIONS+="string_escape=replace"
|
||||
ENV{DEVTYPE}=="partition", ENV{MD_UUID}=="?*", SYMLINK+="disk/by-id/md-uuid-$env{MD_UUID}-part%n"
|
||||
ENV{DEVTYPE}=="partition", ENV{MD_DEVNAME}=="*[^0-9]", SYMLINK+="md/$env{MD_DEVNAME}%n"
|
||||
ENV{DEVTYPE}=="partition", ENV{MD_DEVNAME}=="*[0-9]", SYMLINK+="md/$env{MD_DEVNAME}p%n"
|
||||
|
||||
OPTIONS+="link_priority=100"
|
||||
OPTIONS+="watch"
|
||||
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
|
||||
ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
|
||||
|
||||
LABEL="anaconda_mdraid_member"
|
||||
# probe raid metadata of mdraid member devices
|
||||
ENV{ID_FS_TYPE}=="linux_raid_member", IMPORT{program}="$env{ANACBIN}/mdadm --examine --export $tempnode"
|
||||
ENV{ID_FS_TYPE}=="isw_raid_member", IMPORT{program}="$env{ANACBIN}/mdadm --examine --export $tempnode"
|
||||
|
||||
# probe metadata of LVM2 physical volumes
|
||||
ENV{ID_FS_TYPE}=="LVM2_member", IMPORT{program}="$env{ANACBIN}/lvm pvs --ignorelockingfailure --units k --nosuffix --nameprefixes --rows --unquoted --noheadings -opv_name,pv_uuid,pv_size,vg_name,vg_uuid,pv_pe_count,pv_pe_alloc_count,pe_start $tempnode"
|
||||
ENV{LVM2_VG_NAME}!="?*", GOTO="anaconda_end"
|
||||
ENV{ID_FS_TYPE}=="LVM2_member", IMPORT{program}="$env{ANACBIN}/lvm vgs --ignorelockingfailure --units k --nosuffix --nameprefixes --rows --unquoted --noheadings -ouuid,size,free,extent_size,extent_count,free_count,pv_count $env{LVM2_VG_NAME}"
|
||||
ENV{ID_FS_TYPE}=="LVM2_member", IMPORT{program}="$env{ANACBIN}/lvm lvs -a --ignorelockingfailure --units k --nosuffix --nameprefixes --rows --unquoted --noheadings -olv_name,lv_uuid,lv_size,lv_attr $env{LVM2_VG_NAME}"
|
||||
|
||||
LABEL="anaconda_end"
|
||||
|
339
anaconda/COPYING
Normal file
339
anaconda/COPYING
Normal file
@ -0,0 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
159
anaconda/Makefile.am
Normal file
159
anaconda/Makefile.am
Normal file
@ -0,0 +1,159 @@
|
||||
# Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
SUBDIRS = isys po loader booty storage textw utils scripts bootdisk \
|
||||
installclasses iw command-stubs ui docs pixmaps tests fonts \
|
||||
gptsync liveinst
|
||||
|
||||
EXTRA_DIST = config.rpath COPYING pychecker-false-positives \
|
||||
pycheckrc-for-anaconda runpychecker.sh lang-table \
|
||||
anaconda.spec.in
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in config.guess config.h.in config.sub \
|
||||
depcomp install-sh ltmain.sh missing ABOUT-NLS \
|
||||
INSTALL aclocal.m4 configure *.pyc py-compile
|
||||
|
||||
CLEANFILES = *~ lang-names anaconda.spec
|
||||
|
||||
MOSTLYCLEANDIRS = m4
|
||||
|
||||
dist_noinst_DATA = $(PACKAGE_NAME).spec
|
||||
|
||||
bin_PROGRAMS = mini-wm
|
||||
dist_sbin_SCRIPTS = anaconda
|
||||
|
||||
mini_wm_CFLAGS = $(X11_CFLAGS) $(XCOMPOSITE_CFLAGS) $(GTK_X11_CFLAGS)
|
||||
mini_wm_LDFLAGS = $(X11_LIBS) $(XCOMPOSITE_LIBS) $(GTK_X11_LIBS)
|
||||
mini_wm_SOURCES = mini-wm.c
|
||||
|
||||
udevdir = /lib/udev/rules.d
|
||||
dist_udev_DATA = 70-anaconda.rules
|
||||
|
||||
langdir = $(libdir)/$(PACKAGE_NAME)
|
||||
lang_DATA = lang-names
|
||||
dist_lang_DATA = lang-table
|
||||
|
||||
pkgpyexecdir = $(libdir)/$(PACKAGE_NAME)
|
||||
pkgpythondir = $(libdir)/$(PACKAGE_NAME)
|
||||
|
||||
pkgpyexec_LTLIBRARIES = xutils.la
|
||||
xutils_la_CFLAGS = $(PYTHON_INCLUDES) $(GDK_CFLAGS) -fno-strict-aliasing
|
||||
xutils_la_LDFLAGS = -module -avoid-version $(PYTHON_LDFLAGS) $(GDK_LDFLAGS)
|
||||
xutils_la_LIBADD = $(PYTHON_LIBS) $(GDK_LIBS)
|
||||
xutils_la_SOURCES = xutils.c
|
||||
|
||||
# anaconda Python code
|
||||
anacondadir = $(libdir)/$(PACKAGE_NAME)
|
||||
anaconda_PYTHON = *.py
|
||||
|
||||
PYCHECKERPATH = isys:textw:iw:installclasses:/usr/share/system-config-date
|
||||
PYCHECKEROPTS = -F pycheckrc-for-anaconda
|
||||
ARCHIVE_TAG = $(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)
|
||||
|
||||
sed_verbose = $(sed_verbose_$(V))
|
||||
sed_verbose_ = $(sed_verbose_$(AM_DEFAULT_VERBOSITY))
|
||||
sed_verbose_0 = @echo " SED "$@;
|
||||
|
||||
$(PACKAGE_NAME).spec: $(PACKAGE_NAME).spec.in
|
||||
$(sed_verbose)sed -e 's/#VERSION#/$(PACKAGE_VERSION)/' < $< > $@
|
||||
|
||||
lang-names: lang-table
|
||||
PYTHONPATH="." $(PYTHON) scripts/getlangnames.py > lang-names
|
||||
|
||||
testiso: install
|
||||
@if [ "$(REPO)" = "" ]; then echo "ERROR: Need a repo to pull packages from!" ; exit 1 ; fi
|
||||
@pushd scripts ; sudo ./buildinstall --version $(PACKAGE_VERSION) --product $(PACKAGE_NAME) --release $(PACKAGE_NAME)-$(PACKAGE_VERSION) --output $(shell pwd)/outiso --updates $(DESTDIR) $(REPO) ; popd ; cp outiso/images/boot.iso ./boot.iso ; sudo rm -rf outiso
|
||||
@echo
|
||||
@echo "Test iso is located at ./boot.iso"
|
||||
|
||||
tag:
|
||||
@git tag -s -a -m "Tag as $(ARCHIVE_TAG)" $(ARCHIVE_TAG)
|
||||
@echo "Tagged as $(ARCHIVE_TAG)"
|
||||
|
||||
scratch:
|
||||
$(MAKE) ARCHIVE_TAG=HEAD dist
|
||||
|
||||
archive:
|
||||
$(MAKE) tag
|
||||
$(MAKE) dist
|
||||
git checkout -- po/$(PACKAGE_NAME).pot
|
||||
( cd po ; for f in *.po ; do git checkout -- $$f 2>/dev/null ; done )
|
||||
|
||||
release: archive
|
||||
|
||||
src: archive
|
||||
@rpmbuild -ts --nodeps $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.bz2 || exit 1
|
||||
@rm -f $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.bz2
|
||||
|
||||
pycheck:
|
||||
PYTHONPATH=$(PYCHECKERPATH) pychecker $(PYCHECKEROPTS) *.py textw/*.py iw/*.py installclasses/*.py storage/*.py | grep -v "__init__() not called"
|
||||
|
||||
pycheck-file:
|
||||
PYTHONPATH=.:$(PYCHECKERPATH) pychecker $(PYCHECKEROPTS) $(CHECK) | grep -v "__init__() not called"
|
||||
|
||||
api:
|
||||
doxygen docs/api.cfg
|
||||
|
||||
rpmlog:
|
||||
@git log --pretty="format:- %s (%ae)" \
|
||||
$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE).. | \
|
||||
sed -e 's/@.*)/)/' | sed -e 's/%/%%/g' | \
|
||||
grep -v -- "- l10n: " | \
|
||||
grep -v -- "- Merge commit "
|
||||
|
||||
bumpver:
|
||||
@LAST=$$(echo $(PACKAGE_VERSION) | grep "\." -o | wc -l) ; \
|
||||
FIELD=$$(($${LAST} + 1)) ; \
|
||||
NEWSUBVER=$$((`echo $(PACKAGE_VERSION) | cut -d . -f $${FIELD}` + 1)) ; \
|
||||
NEWVERSION="`echo $(PACKAGE_VERSION) | cut -d . -f 1-$${LAST}`.$$NEWSUBVER" ; \
|
||||
DATELINE="* `date "+%a %b %d %Y"` `git config user.name` <`git config user.email`> - $$NEWVERSION-1" ; \
|
||||
cl=`grep -n %changelog anaconda.spec.in |cut -d : -f 1` ; \
|
||||
tail --lines=+$$(($$cl + 1)) anaconda.spec.in > speclog ; \
|
||||
make --quiet rpmlog 2>/dev/null | fold -s -w 77 | while read line ; do \
|
||||
if [ ! "$$(echo $$line | cut -c-2)" = "- " ]; then \
|
||||
echo " $$line" ; \
|
||||
else \
|
||||
echo "$$line" ; \
|
||||
fi ; \
|
||||
done > newspeclog ; \
|
||||
(head -n $$cl anaconda.spec.in ; echo "$$DATELINE" ; cat newspeclog ; echo ""; cat speclog) > anaconda.spec.in.new ; \
|
||||
mv anaconda.spec.in.new anaconda.spec.in ; rm -f speclog ; rm -f newspeclog ; \
|
||||
sed -i "s/AC_INIT(\[$(PACKAGE_NAME)\], \[$(PACKAGE_VERSION)\], \[$(PACKAGE_BUGREPORT\])/AC_INIT(\[$(PACKAGE_NAME)\], \[$$NEWVERSION\], \[$(PACKAGE_BUGREPORT\])/" configure.ac
|
||||
$(MAKE) -C po $(PACKAGE_NAME).pot-update
|
||||
|
||||
install-buildrequires:
|
||||
yum install $$(grep BuildRequires: anaconda.spec.in | cut -d ' ' -f 2)
|
||||
|
||||
# Generate an updates.img based on the changed files since the release
|
||||
# was tagged. Updates are copied to ./updates-img and then the image is
|
||||
# created. By default, the updates subdirectory is removed after the
|
||||
# image is made, but if you want to keep it around, run:
|
||||
# make updates.img KEEP=y
|
||||
updates:
|
||||
@opts="-c" ; \
|
||||
keep="$$(echo $(KEEP) | cut -c1 | tr [a-z] [A-Z])" ; \
|
||||
if [ "$${keep}" = "Y" ]; then \
|
||||
opts="$${opts} -k" ; \
|
||||
fi ; \
|
||||
scripts/makeupdates $${opts}
|
||||
|
||||
# DEPRECATED TARGETS:
|
||||
archive-no-tag: dist
|
1305
anaconda/Makefile.in
Normal file
1305
anaconda/Makefile.in
Normal file
File diff suppressed because it is too large
Load Diff
9366
anaconda/aclocal.m4
vendored
Normal file
9366
anaconda/aclocal.m4
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1237
anaconda/anaconda
Executable file
1237
anaconda/anaconda
Executable file
File diff suppressed because it is too large
Load Diff
5069
anaconda/anaconda.spec
Normal file
5069
anaconda/anaconda.spec
Normal file
File diff suppressed because it is too large
Load Diff
5069
anaconda/anaconda.spec.in
Normal file
5069
anaconda/anaconda.spec.in
Normal file
File diff suppressed because it is too large
Load Diff
167
anaconda/anaconda_log.py
Normal file
167
anaconda/anaconda_log.py
Normal file
@ -0,0 +1,167 @@
|
||||
#
|
||||
# anaconda_log.py: Support for logging to multiple destinations with log
|
||||
# levels.
|
||||
#
|
||||
# Copyright (C) 2000, 2001, 2002, 2005 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author(s): Chris Lumens <clumens@redhat.com>
|
||||
# Matt Wilson <msw@redhat.com>
|
||||
# Michael Fulbright <msf@redhat.com>
|
||||
#
|
||||
|
||||
import os
|
||||
import signal
|
||||
import sys
|
||||
import logging
|
||||
from logging.handlers import SysLogHandler, SYSLOG_UDP_PORT
|
||||
import types
|
||||
|
||||
import iutil
|
||||
|
||||
DEFAULT_TTY_LEVEL = logging.INFO
|
||||
ENTRY_FORMAT = "%(asctime)s,%(msecs)03d %(levelname)s %(name)s: %(message)s"
|
||||
TTY_FORMAT = "%(levelname)s %(name)s: %(message)s"
|
||||
STDOUT_FORMAT = "%(asctime)s %(message)s"
|
||||
DATE_FORMAT = "%H:%M:%S"
|
||||
|
||||
MAIN_LOG_FILE = "/tmp/anaconda.log"
|
||||
MAIN_LOG_TTY = "/dev/tty3"
|
||||
PROGRAM_LOG_FILE = "/tmp/program.log"
|
||||
ANACONDA_SYSLOG_FACILITY = SysLogHandler.LOG_LOCAL1
|
||||
|
||||
logLevelMap = {"debug": logging.DEBUG, "info": logging.INFO,
|
||||
"warning": logging.WARNING, "error": logging.ERROR,
|
||||
"critical": logging.CRITICAL}
|
||||
|
||||
# sets autoSetLevel for the given handler
|
||||
def autoSetLevel(handler, value):
|
||||
handler.autoSetLevel = value
|
||||
|
||||
# all handlers of given logger with autoSetLevel == True are set to level
|
||||
def setHandlersLevel(logger, level):
|
||||
map(lambda hdlr: hdlr.setLevel(level),
|
||||
filter (lambda hdlr: hasattr(hdlr, "autoSetLevel") and hdlr.autoSetLevel, logger.handlers))
|
||||
|
||||
class AnacondaSyslogHandler(SysLogHandler):
|
||||
def __init__(self,
|
||||
address=('localhost', SYSLOG_UDP_PORT),
|
||||
facility=SysLogHandler.LOG_USER,
|
||||
tag=''):
|
||||
self.tag = tag
|
||||
SysLogHandler.__init__(self, address, facility)
|
||||
|
||||
def emit(self, record):
|
||||
original_msg = record.msg
|
||||
record.msg = '%s: %s' %(self.tag, original_msg)
|
||||
SysLogHandler.emit(self, record)
|
||||
record.msg = original_msg
|
||||
|
||||
class AnacondaLog:
|
||||
def __init__ (self):
|
||||
self.tty_loglevel = DEFAULT_TTY_LEVEL
|
||||
self.remote_syslog = None
|
||||
# Create the base of the logger hierarcy.
|
||||
logger = logging.getLogger("anaconda")
|
||||
logger.setLevel(logging.DEBUG)
|
||||
self.addFileHandler(MAIN_LOG_FILE, logger,
|
||||
minLevel=logging.DEBUG)
|
||||
self.forwardToSyslog(logger)
|
||||
# Log to tty3.
|
||||
if not iutil.isS390() and os.access(MAIN_LOG_TTY, os.W_OK):
|
||||
self.addFileHandler(MAIN_LOG_TTY, logger,
|
||||
fmtStr=TTY_FORMAT,
|
||||
autoLevel=True)
|
||||
|
||||
# External program output log
|
||||
program_logger = logging.getLogger("program")
|
||||
program_logger.setLevel(logging.DEBUG)
|
||||
self.addFileHandler(PROGRAM_LOG_FILE, program_logger,
|
||||
minLevel=logging.DEBUG)
|
||||
self.forwardToSyslog(program_logger)
|
||||
|
||||
# Create a second logger for just the stuff we want to dup on
|
||||
# stdout. Anything written here will also get passed up to the
|
||||
# parent loggers for processing and possibly be written to the
|
||||
# log.
|
||||
stdoutLogger = logging.getLogger("anaconda.stdout")
|
||||
stdoutLogger.setLevel(logging.INFO)
|
||||
# Add a handler for the duped stuff. No fancy formatting, thanks.
|
||||
self.addFileHandler(sys.stdout, stdoutLogger,
|
||||
fmtStr=STDOUT_FORMAT, minLevel=logging.INFO)
|
||||
|
||||
# Stderr logger
|
||||
stderrLogger = logging.getLogger("anaconda.stderr")
|
||||
stderrLogger.setLevel(logging.INFO)
|
||||
self.addFileHandler(sys.stderr, stderrLogger,
|
||||
fmtStr=STDOUT_FORMAT, minLevel=logging.INFO)
|
||||
|
||||
# Add a simple handler - file or stream, depending on what we're given.
|
||||
def addFileHandler (self, file, addToLogger, minLevel=DEFAULT_TTY_LEVEL,
|
||||
fmtStr=ENTRY_FORMAT,
|
||||
autoLevel=False):
|
||||
if isinstance(file, types.StringTypes):
|
||||
logfileHandler = logging.FileHandler(file)
|
||||
else:
|
||||
logfileHandler = logging.StreamHandler(file)
|
||||
|
||||
logfileHandler.setLevel(minLevel)
|
||||
logfileHandler.setFormatter(logging.Formatter(fmtStr, DATE_FORMAT))
|
||||
autoSetLevel(logfileHandler, autoLevel)
|
||||
addToLogger.addHandler(logfileHandler)
|
||||
|
||||
# Add another logger to the hierarchy. For best results, make sure
|
||||
# name falls under anaconda in the tree.
|
||||
def addLogger (self, name, minLevel=DEFAULT_TTY_LEVEL):
|
||||
newLogger = logging.getLogger(name)
|
||||
newLogger.setLevel(minLevel)
|
||||
|
||||
# Add a handler for remote syslogs.
|
||||
def addSysLogHandler (self, logger, host, port=SYSLOG_UDP_PORT,
|
||||
minLevel=DEFAULT_TTY_LEVEL):
|
||||
fmt = logging.Formatter("%(levelname)-8s %(message)s")
|
||||
syslogHandler = SysLogHandler((host, port))
|
||||
syslogHandler.setLevel(minLevel)
|
||||
syslogHandler.setFormatter(fmt)
|
||||
logger.addHandler(syslogHandler)
|
||||
|
||||
def forwardToSyslog(self, logger):
|
||||
"""Forward everything that goes in the logger to the syslog daemon.
|
||||
"""
|
||||
syslogHandler = AnacondaSyslogHandler(
|
||||
'/dev/log',
|
||||
ANACONDA_SYSLOG_FACILITY,
|
||||
logger.name)
|
||||
syslogHandler.setLevel(logging.DEBUG)
|
||||
logger.addHandler(syslogHandler)
|
||||
|
||||
def updateRemote(self, remote_syslog):
|
||||
"""Updates the location of remote rsyslogd to forward to.
|
||||
|
||||
Requires updating rsyslogd config and sending SIGHUP to the daemon.
|
||||
"""
|
||||
PIDFILE = "/var/run/syslogd.pid"
|
||||
CFGFILE = "/etc/rsyslog.conf"
|
||||
TEMPLATE = "*.* @@%s\n"
|
||||
|
||||
self.remote_syslog = remote_syslog
|
||||
with open(CFGFILE, 'a') as cfgfile:
|
||||
forward_line = TEMPLATE % remote_syslog
|
||||
cfgfile.write(forward_line)
|
||||
with open(PIDFILE, 'r') as pidfile:
|
||||
pid = int(pidfile.read())
|
||||
os.kill(pid, signal.SIGHUP)
|
||||
|
||||
logger = AnacondaLog()
|
314
anaconda/backend.py
Normal file
314
anaconda/backend.py
Normal file
@ -0,0 +1,314 @@
|
||||
#
|
||||
# backend.py: Interface for installation backends
|
||||
#
|
||||
# Copyright (C) 2005, 2006, 2007 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author(s): Paul Nasrat <pnasrat@redhat.com>
|
||||
# Jeremy Katz <katzj@redhat.com>
|
||||
#
|
||||
|
||||
import glob
|
||||
import shutil
|
||||
import iutil
|
||||
import os, sys
|
||||
import logging
|
||||
import backend_log
|
||||
from constants import *
|
||||
|
||||
import isys
|
||||
import kickstart
|
||||
import packages
|
||||
import storage
|
||||
|
||||
from flags import flags
|
||||
log = logging.getLogger("anaconda")
|
||||
|
||||
import gettext
|
||||
_ = lambda x: gettext.ldgettext("anaconda", x)
|
||||
|
||||
class AnacondaBackend:
|
||||
def __init__(self, anaconda):
|
||||
"""Abstract backend class all backends should inherit from this
|
||||
@param instPath: root path for the installation to occur"""
|
||||
self.anaconda = anaconda
|
||||
self.instPath = anaconda.rootPath
|
||||
self.instLog = None
|
||||
self.modeText = ""
|
||||
|
||||
# some backends may not support upgrading
|
||||
self.supportsUpgrades = True
|
||||
self.supportsPackageSelection = False
|
||||
|
||||
# some backends may have a special case for rootfs formatting
|
||||
# FIXME: we should handle this a little more elegantly
|
||||
self.skipFormatRoot = False
|
||||
self.rootFsType = None
|
||||
|
||||
self._loopbackFile = None
|
||||
|
||||
def postAction(self, anaconda):
|
||||
pass
|
||||
|
||||
def doPreSelection(self, intf, id, instPath):
|
||||
pass
|
||||
|
||||
def doPostSelection(self, anaconda):
|
||||
pass
|
||||
|
||||
def doPreInstall(self, anaconda):
|
||||
self.initLog(anaconda.rootPath)
|
||||
|
||||
def copyFirmware(self, anaconda):
|
||||
# Multiple driver disks may be loaded, so we need to glob for all
|
||||
# the firmware files in the common DD firmware directory
|
||||
for f in glob.glob(DD_EXTRACTED+"/lib/firmware/*"):
|
||||
try:
|
||||
shutil.copyfile(f, "%s/lib/firmware/" % anaconda.rootPath)
|
||||
except IOError, e:
|
||||
log.error("Could not copy firmware file %s: %s" % (f, e.strerror))
|
||||
|
||||
def doPostInstall(self, anaconda):
|
||||
has_iscsi_disk = False
|
||||
|
||||
# See if we have an iscsi disk. If we do we rerun mkinitrd, as
|
||||
# the initrd might need iscsi-initiator-utils, and chances are
|
||||
# it was not installed yet the first time mkinitrd was run, as
|
||||
# mkinitrd does not require it.
|
||||
root = anaconda.storage.rootDevice
|
||||
disks = anaconda.storage.devicetree.getDevicesByType("iscsi")
|
||||
for disk in disks:
|
||||
if root.dependsOn(disk):
|
||||
has_iscsi_disk = True
|
||||
break
|
||||
|
||||
#always copy the firmware files from DD
|
||||
self.copyFirmware(anaconda)
|
||||
|
||||
if anaconda.extraModules or has_iscsi_disk:
|
||||
for (n, arch, tag) in self.kernelVersionList(anaconda.rootPath):
|
||||
packages.recreateInitrd(n, anaconda.rootPath)
|
||||
|
||||
#copy RPMS
|
||||
for d in glob.glob(DD_RPMS):
|
||||
shutil.copytree(d, anaconda.rootPath + "/root/" + os.path.basename(d))
|
||||
|
||||
#copy modules and firmware
|
||||
if os.path.exists(DD_EXTRACTED):
|
||||
try:
|
||||
shutil.copytree(DD_EXTRACTED, anaconda.rootPath + "/root/DD")
|
||||
except IOError, e:
|
||||
pass
|
||||
|
||||
storage.writeEscrowPackets(anaconda)
|
||||
sys.stdout.flush()
|
||||
backend_log.log.stop()
|
||||
|
||||
def doInstall(self, anaconda):
|
||||
log.warning("doInstall not implemented for backend!")
|
||||
raise NotImplementedError
|
||||
|
||||
def initLog(self, instPath):
|
||||
if not os.path.isdir(instPath + "/root"):
|
||||
iutil.mkdirChain(instPath + "/root")
|
||||
|
||||
if self.anaconda.upgrade:
|
||||
logname = '/root/upgrade.log'
|
||||
else:
|
||||
logname = '/root/install.log'
|
||||
|
||||
instLogName = instPath + logname
|
||||
try:
|
||||
shutil.rmtree (instLogName)
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
self.instLog = open(instLogName, "w+")
|
||||
|
||||
syslogname = "%s%s.syslog" % (instPath, logname)
|
||||
try:
|
||||
shutil.rmtree (syslogname)
|
||||
except OSError:
|
||||
pass
|
||||
backend_log.log.start(instPath, syslogname)
|
||||
|
||||
if self.anaconda.upgrade:
|
||||
self.modeText = _("Upgrading %s\n")
|
||||
else:
|
||||
self.modeText = _("Installing %s\n")
|
||||
|
||||
def mountInstallImage(self, anaconda, installimg):
|
||||
if self._loopbackFile and os.path.exists(self._loopbackFile):
|
||||
return
|
||||
|
||||
# Copy the install.img to the filesystem and switch loopback devices
|
||||
# to there. Otherwise we won't be able to unmount and swap media.
|
||||
free = anaconda.storage.fsFreeSpace
|
||||
self._loopbackFile = "%s%s/rhinstall-install.img" % (anaconda.rootPath,
|
||||
free[-1][0])
|
||||
try:
|
||||
log.info("transferring install image to install target")
|
||||
win = anaconda.intf.waitWindow(_("Copying File"),
|
||||
_("Transferring install image to hard drive"))
|
||||
shutil.copyfile(installimg, self._loopbackFile)
|
||||
win.pop()
|
||||
except Exception, e:
|
||||
if win:
|
||||
win.pop()
|
||||
|
||||
log.critical("error transferring install.img: %s" %(e,))
|
||||
|
||||
if isinstance(e, IOError) and e.errno == 5:
|
||||
msg = _("An error occurred transferring the install image "
|
||||
"to your hard drive. This is often cause by "
|
||||
"damaged or low quality media.")
|
||||
else:
|
||||
msg = _("An error occurred transferring the install image "
|
||||
"to your hard drive. You are probably out of disk "
|
||||
"space.")
|
||||
|
||||
anaconda.intf.messageWindow(_("Error"), msg)
|
||||
try:
|
||||
os.unlink(self._loopbackFile)
|
||||
except:
|
||||
pass
|
||||
|
||||
return 1
|
||||
|
||||
isys.lochangefd("/dev/loop0", self._loopbackFile)
|
||||
if os.path.ismount("/mnt/stage2"):
|
||||
isys.umount("/mnt/stage2")
|
||||
|
||||
def removeInstallImage(self):
|
||||
if self._loopbackFile:
|
||||
try:
|
||||
os.unlink(self._loopbackFile)
|
||||
except SystemError:
|
||||
pass
|
||||
|
||||
def freetmp(self, anaconda):
|
||||
# installs that don't use /mnt/stage2 hold the install.img on
|
||||
# a tmpfs, free this ram if things are tight.
|
||||
stage2img = "/tmp/install.img"
|
||||
if os.path.exists(stage2img):
|
||||
# free up /tmp for more memory before yum is called,
|
||||
if self.mountInstallImage(anaconda, stage2img):
|
||||
return DISPATCH_BACK
|
||||
try:
|
||||
os.unlink(stage2img)
|
||||
except SystemError:
|
||||
log.info("clearing /tmp failed")
|
||||
return DISPATCH_BACK
|
||||
|
||||
def kernelVersionList(self, rootPath="/"):
|
||||
return []
|
||||
|
||||
def getMinimumSizeMB(self, part):
|
||||
"""Return the minimal size for part in megabytes if we can."""
|
||||
return 0
|
||||
|
||||
def doBackendSetup(self, anaconda):
|
||||
log.warning("doBackendSetup not implemented for backend!")
|
||||
raise NotImplementedError
|
||||
|
||||
def groupExists(self, group):
|
||||
log.warning("groupExists not implemented for backend!")
|
||||
raise NotImplementedError
|
||||
|
||||
def selectGroup(self, group, *args):
|
||||
log.warning("selectGroup not implemented for backend!")
|
||||
raise NotImplementedError
|
||||
|
||||
def deselectGroup(self, group, *args):
|
||||
log.warning("deselectGroup not implemented for backend!")
|
||||
raise NotImplementedError
|
||||
|
||||
def packageExists(self, pkg):
|
||||
log.warning("packageExists not implemented for backend!")
|
||||
raise NotImplementedError
|
||||
|
||||
def selectPackage(self, pkg, *args):
|
||||
log.warning("selectPackage not implemented for backend!")
|
||||
raise NotImplementedError
|
||||
|
||||
def deselectPackage(self, pkg, *args):
|
||||
log.warning("deselectPackage not implemented for backend!")
|
||||
raise NotImplementedError
|
||||
|
||||
def getDefaultGroups(self, anaconda):
|
||||
log.warning("getDefaultGroups not implemented for backend!")
|
||||
raise NotImplementedError
|
||||
|
||||
def resetPackageSelections(self):
|
||||
# we just leave this one unimplemented if it's not needed
|
||||
pass
|
||||
|
||||
# write out the %packages section of anaconda-ks.cfg
|
||||
def writePackagesKS(self, f, anaconda):
|
||||
log.warning("writePackagesKS not implemented for backend!")
|
||||
raise NotImplementedError
|
||||
|
||||
# write out any config files that live on the installed system
|
||||
# (e.g., /etc/yum.repos.d/* files)
|
||||
def writeConfiguration(self):
|
||||
log.warning("writeConfig not implemented for backend!")
|
||||
raise NotImplementedError
|
||||
|
||||
# write out any other kickstart bits the backend requires - no warning
|
||||
# here because this may not be needed
|
||||
def writeKS(self, f):
|
||||
pass
|
||||
|
||||
def getRequiredMedia(self):
|
||||
log.warning("getRequiredMedia not implmented for backend!")
|
||||
raise NotImplementedError
|
||||
|
||||
def complete(self, anaconda):
|
||||
pass
|
||||
|
||||
def doBackendSetup(anaconda):
|
||||
if anaconda.backend.doBackendSetup(anaconda) == DISPATCH_BACK:
|
||||
return DISPATCH_BACK
|
||||
|
||||
if anaconda.upgrade:
|
||||
anaconda.backend.checkSupportedUpgrade(anaconda)
|
||||
iutil.writeRpmPlatform(anaconda.rootPath)
|
||||
|
||||
def doPostSelection(anaconda):
|
||||
return anaconda.backend.doPostSelection(anaconda)
|
||||
|
||||
def doPreInstall(anaconda):
|
||||
anaconda.backend.doPreInstall(anaconda)
|
||||
|
||||
def doPostInstall(anaconda):
|
||||
anaconda.backend.doPostInstall(anaconda)
|
||||
|
||||
def doInstall(anaconda):
|
||||
return anaconda.backend.doInstall(anaconda)
|
||||
|
||||
# does this need to be per-backend? we'll just leave here until it does :)
|
||||
def doBasePackageSelect(anaconda):
|
||||
if anaconda.ksdata:
|
||||
anaconda.backend.resetPackageSelections()
|
||||
kickstart.selectPackages(anaconda)
|
||||
elif anaconda.displayMode != 't':
|
||||
anaconda.backend.resetPackageSelections()
|
||||
anaconda.instClass.setPackageSelection(anaconda)
|
||||
anaconda.instClass.setGroupSelection(anaconda)
|
||||
|
||||
def writeConfiguration(anaconda):
|
||||
log.info("Writing main configuration")
|
||||
anaconda.write()
|
||||
anaconda.backend.writeConfiguration()
|
88
anaconda/backend_log.py
Normal file
88
anaconda/backend_log.py
Normal file
@ -0,0 +1,88 @@
|
||||
# backend_log.py
|
||||
# Logging infrastructure for Anaconda's backend.
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This copyrighted material is made available to anyone wishing to use,
|
||||
# modify, copy, or redistribute it subject to the terms and conditions of
|
||||
# the GNU General Public License v.2, or (at your option) any later version.
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY expressed or implied, including the implied warranties 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 Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA. Any Red Hat trademarks that are incorporated in the
|
||||
# source code or documentation are not subject to the GNU General Public
|
||||
# License and may only be used or replicated with the express permission of
|
||||
# Red Hat, Inc.
|
||||
#
|
||||
# Red Hat Author(s): Ales Kozumplik <akozumpl@redhat.com>
|
||||
#
|
||||
|
||||
import logging
|
||||
import os
|
||||
import signal
|
||||
|
||||
import anaconda_log
|
||||
import iutil
|
||||
|
||||
SYSLOG_PATH = '/sbin/rsyslogd'
|
||||
SYSLOG_PIDFILE = '/var/run/rsyslog_backend.pid'
|
||||
SYSLOG_CFGFILE = '/etc/rsyslog_backend.conf'
|
||||
|
||||
CFG_TEMPLATE = """
|
||||
$ModLoad imuxsock
|
||||
$InputUnixListenSocketHostName sysimage
|
||||
$AddUnixListenSocket %(socket)s
|
||||
+sysimage
|
||||
*.* %(logfile)s;RSYSLOG_TraditionalFileFormat
|
||||
%(remote_syslog)s
|
||||
"""
|
||||
|
||||
global_log = logging.getLogger("anaconda")
|
||||
class BackendSyslog:
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def build_cfg(self, root, log):
|
||||
socket = "%s/dev/log" % (root, )
|
||||
remote_syslog = ''
|
||||
if anaconda_log.logger.remote_syslog:
|
||||
remote_syslog = "*.* @@%s" % (anaconda_log.logger.remote_syslog, )
|
||||
|
||||
cfg = CFG_TEMPLATE % {
|
||||
'socket' : socket,
|
||||
'logfile' : log,
|
||||
'remote_syslog' : remote_syslog
|
||||
}
|
||||
with open(SYSLOG_CFGFILE, 'w') as cfg_file:
|
||||
cfg_file.write(cfg)
|
||||
|
||||
def start(self, root, log):
|
||||
""" Start an rsyslogd instance dedicated for the sysimage.
|
||||
|
||||
Other possibility would be to change configuration and SIGHUP the
|
||||
existing instance, but it could lose some of its internal queues and
|
||||
give us problems with remote logging.
|
||||
"""
|
||||
self.build_cfg(root, log)
|
||||
args = ['-c', '4',
|
||||
'-f', SYSLOG_CFGFILE,
|
||||
'-i', str(SYSLOG_PIDFILE)]
|
||||
status = iutil.execWithRedirect(SYSLOG_PATH, args)
|
||||
if status == 0:
|
||||
global_log.info("Backend logger started.")
|
||||
else:
|
||||
global_log.error("Unable to start backend logger")
|
||||
|
||||
def stop(self):
|
||||
try:
|
||||
with open(SYSLOG_PIDFILE, 'r') as pidfile:
|
||||
pid = int(pidfile.read())
|
||||
os.kill(pid, signal.SIGKILL)
|
||||
except:
|
||||
return
|
||||
global_log.info("Backend logger stopped.")
|
||||
|
||||
log = BackendSyslog()
|
92
anaconda/baseudev.py
Normal file
92
anaconda/baseudev.py
Normal file
@ -0,0 +1,92 @@
|
||||
# udev.py
|
||||
# Python module for querying the udev database for device information.
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This copyrighted material is made available to anyone wishing to use,
|
||||
# modify, copy, or redistribute it subject to the terms and conditions of
|
||||
# the GNU General Public License v.2, or (at your option) any later version.
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY expressed or implied, including the implied warranties 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 Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA. Any Red Hat trademarks that are incorporated in the
|
||||
# source code or documentation are not subject to the GNU General Public
|
||||
# License and may only be used or replicated with the express permission of
|
||||
# Red Hat, Inc.
|
||||
#
|
||||
# Red Hat Author(s): Dave Lehman <dlehman@redhat.com>
|
||||
# Chris Lumens <clumens@redhat.com>
|
||||
#
|
||||
|
||||
import iutil
|
||||
import os
|
||||
|
||||
import pyudev
|
||||
global_udev = pyudev.Udev()
|
||||
|
||||
import logging
|
||||
log = logging.getLogger("storage")
|
||||
|
||||
def udev_enumerate_devices(deviceClass="block"):
|
||||
devices = global_udev.enumerate_devices(subsystem=deviceClass)
|
||||
return [path[4:] for path in devices]
|
||||
|
||||
def udev_get_device(sysfs_path):
|
||||
if not os.path.exists("/sys%s" % sysfs_path):
|
||||
log.debug("%s does not exist" % sysfs_path)
|
||||
return None
|
||||
|
||||
# XXX we remove the /sys part when enumerating devices,
|
||||
# so we have to prepend it when creating the device
|
||||
dev = global_udev.create_device("/sys" + sysfs_path)
|
||||
|
||||
if dev:
|
||||
dev["name"] = dev.sysname
|
||||
dev["sysfs_path"] = sysfs_path
|
||||
|
||||
# now add in the contents of the uevent file since they're handy
|
||||
dev = udev_parse_uevent_file(dev)
|
||||
|
||||
return dev
|
||||
|
||||
def udev_get_devices(deviceClass="block"):
|
||||
udev_settle()
|
||||
entries = []
|
||||
for path in udev_enumerate_devices(deviceClass):
|
||||
entry = udev_get_device(path)
|
||||
if entry:
|
||||
entries.append(entry)
|
||||
return entries
|
||||
|
||||
def udev_parse_uevent_file(dev):
|
||||
path = os.path.normpath("/sys/%s/uevent" % dev['sysfs_path'])
|
||||
if not os.access(path, os.R_OK):
|
||||
return dev
|
||||
|
||||
with open(path) as f:
|
||||
for line in f.readlines():
|
||||
(key, equals, value) = line.strip().partition("=")
|
||||
if not equals:
|
||||
continue
|
||||
|
||||
dev[key] = value
|
||||
|
||||
return dev
|
||||
|
||||
def udev_settle():
|
||||
# wait maximal 300 seconds for udev to be done running blkid, lvm,
|
||||
# mdadm etc. This large timeout is needed when running on machines with
|
||||
# lots of disks, or with slow disks
|
||||
argv = ["settle", "--timeout=300"]
|
||||
|
||||
iutil.execWithRedirect("udevadm", argv, stderr="/dev/null")
|
||||
|
||||
def udev_trigger(subsystem=None, action="add"):
|
||||
argv = ["trigger", "--action=%s" % action]
|
||||
if subsystem:
|
||||
argv.append("--subsystem-match=%s" % subsystem)
|
||||
|
||||
iutil.execWithRedirect("udevadm", argv, stderr="/dev/null")
|
22
anaconda/bootdisk/Makefile.am
Normal file
22
anaconda/bootdisk/Makefile.am
Normal file
@ -0,0 +1,22 @@
|
||||
# bootdisk/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
SUBDIRS = i386 ppc s390x x86_64
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
654
anaconda/bootdisk/Makefile.in
Normal file
654
anaconda/bootdisk/Makefile.in
Normal file
@ -0,0 +1,654 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# bootdisk/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = bootdisk
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/python.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-dvi-recursive install-exec-recursive \
|
||||
install-html-recursive install-info-recursive \
|
||||
install-pdf-recursive install-ps-recursive install-recursive \
|
||||
installcheck-recursive installdirs-recursive pdf-recursive \
|
||||
ps-recursive uninstall-recursive
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
||||
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
||||
distdir
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
am__relativize = \
|
||||
dir0=`pwd`; \
|
||||
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||
sed_rest='s,^[^/]*/*,,'; \
|
||||
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
||||
sed_butlast='s,/*[^/]*$$,,'; \
|
||||
while test -n "$$dir1"; do \
|
||||
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
||||
if test "$$first" != "."; then \
|
||||
if test "$$first" = ".."; then \
|
||||
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
||||
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
||||
else \
|
||||
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
||||
if test "$$first2" = "$$first"; then \
|
||||
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
||||
else \
|
||||
dir2="../$$dir2"; \
|
||||
fi; \
|
||||
dir0="$$dir0"/"$$first"; \
|
||||
fi; \
|
||||
fi; \
|
||||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||
done; \
|
||||
reldir="$$dir2"
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
ARCH = @ARCH@
|
||||
AUDIT_LIBS = @AUDIT_LIBS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BLKID_LIBS = @BLKID_LIBS@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHECKISOMD5_LIBS = @CHECKISOMD5_LIBS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DEVMAPPER_CFLAGS = @DEVMAPPER_CFLAGS@
|
||||
DEVMAPPER_LIBS = @DEVMAPPER_LIBS@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
EXT2FS_LIBS = @EXT2FS_LIBS@
|
||||
FGREP = @FGREP@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
|
||||
GTK_X11_LIBS = @GTK_X11_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
IPV6_CFLAGS = @IPV6_CFLAGS@
|
||||
ISCSI_LIBS = @ISCSI_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@
|
||||
LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@
|
||||
LIBCURL_CFLAGS = @LIBCURL_CFLAGS@
|
||||
LIBCURL_LIBS = @LIBCURL_LIBS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBNL_CFLAGS = @LIBNL_CFLAGS@
|
||||
LIBNL_LIBS = @LIBNL_LIBS@
|
||||
LIBNM_GLIB_CFLAGS = @LIBNM_GLIB_CFLAGS@
|
||||
LIBNM_GLIB_LIBS = @LIBNM_GLIB_LIBS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
NETWORKMANAGER_CFLAGS = @NETWORKMANAGER_CFLAGS@
|
||||
NETWORKMANAGER_LIBS = @NETWORKMANAGER_LIBS@
|
||||
NEWT_LIBS = @NEWT_LIBS@
|
||||
NFS_CFLAGS = @NFS_CFLAGS@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_RELEASE = @PACKAGE_RELEASE@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POSUB = @POSUB@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EMBED_LIBS = @PYTHON_EMBED_LIBS@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
|
||||
PYTHON_LIBS = @PYTHON_LIBS@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
RPM_CFLAGS = @RPM_CFLAGS@
|
||||
RPM_LIBS = @RPM_LIBS@
|
||||
SED = @SED@
|
||||
SELINUX_CFLAGS = @SELINUX_CFLAGS@
|
||||
SELINUX_LIBS = @SELINUX_LIBS@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLANG_LIBS = @SLANG_LIBS@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
X11_CFLAGS = @X11_CFLAGS@
|
||||
X11_LIBS = @X11_LIBS@
|
||||
XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
|
||||
XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
XMKMF = @XMKMF@
|
||||
ZLIB_LIBS = @ZLIB_LIBS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUBDIRS = i386 ppc s390x x86_64
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign bootdisk/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign bootdisk/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
||||
$(am__relativize); \
|
||||
new_distdir=$$reldir; \
|
||||
dir1=$$subdir; dir2="$(top_distdir)"; \
|
||||
$(am__relativize); \
|
||||
new_top_distdir=$$reldir; \
|
||||
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
||||
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
||||
($(am__cd) $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$new_top_distdir" \
|
||||
distdir="$$new_distdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
am__skip_mode_fix=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
|
||||
install-am install-strip tags-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am check check-am clean clean-generic clean-libtool \
|
||||
ctags ctags-recursive distclean distclean-generic \
|
||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
|
||||
uninstall uninstall-am
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
25
anaconda/bootdisk/i386/Makefile.am
Normal file
25
anaconda/bootdisk/i386/Makefile.am
Normal file
@ -0,0 +1,25 @@
|
||||
# bootdisk/i386/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
if IS_I386
|
||||
bootdir = $(libdir)/$(PACKAGE_NAME)-runtime/boot
|
||||
dist_boot_DATA = boot.msg grub.conf syslinux.cfg
|
||||
endif
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
503
anaconda/bootdisk/i386/Makefile.in
Normal file
503
anaconda/bootdisk/i386/Makefile.in
Normal file
@ -0,0 +1,503 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# bootdisk/i386/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = bootdisk/i386
|
||||
DIST_COMMON = $(am__dist_boot_DATA_DIST) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/python.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__dist_boot_DATA_DIST = boot.msg grub.conf syslinux.cfg
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(bootdir)"
|
||||
DATA = $(dist_boot_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
ARCH = @ARCH@
|
||||
AUDIT_LIBS = @AUDIT_LIBS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BLKID_LIBS = @BLKID_LIBS@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHECKISOMD5_LIBS = @CHECKISOMD5_LIBS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DEVMAPPER_CFLAGS = @DEVMAPPER_CFLAGS@
|
||||
DEVMAPPER_LIBS = @DEVMAPPER_LIBS@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
EXT2FS_LIBS = @EXT2FS_LIBS@
|
||||
FGREP = @FGREP@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
|
||||
GTK_X11_LIBS = @GTK_X11_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
IPV6_CFLAGS = @IPV6_CFLAGS@
|
||||
ISCSI_LIBS = @ISCSI_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@
|
||||
LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@
|
||||
LIBCURL_CFLAGS = @LIBCURL_CFLAGS@
|
||||
LIBCURL_LIBS = @LIBCURL_LIBS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBNL_CFLAGS = @LIBNL_CFLAGS@
|
||||
LIBNL_LIBS = @LIBNL_LIBS@
|
||||
LIBNM_GLIB_CFLAGS = @LIBNM_GLIB_CFLAGS@
|
||||
LIBNM_GLIB_LIBS = @LIBNM_GLIB_LIBS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
NETWORKMANAGER_CFLAGS = @NETWORKMANAGER_CFLAGS@
|
||||
NETWORKMANAGER_LIBS = @NETWORKMANAGER_LIBS@
|
||||
NEWT_LIBS = @NEWT_LIBS@
|
||||
NFS_CFLAGS = @NFS_CFLAGS@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_RELEASE = @PACKAGE_RELEASE@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POSUB = @POSUB@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EMBED_LIBS = @PYTHON_EMBED_LIBS@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
|
||||
PYTHON_LIBS = @PYTHON_LIBS@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
RPM_CFLAGS = @RPM_CFLAGS@
|
||||
RPM_LIBS = @RPM_LIBS@
|
||||
SED = @SED@
|
||||
SELINUX_CFLAGS = @SELINUX_CFLAGS@
|
||||
SELINUX_LIBS = @SELINUX_LIBS@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLANG_LIBS = @SLANG_LIBS@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
X11_CFLAGS = @X11_CFLAGS@
|
||||
X11_LIBS = @X11_LIBS@
|
||||
XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
|
||||
XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
XMKMF = @XMKMF@
|
||||
ZLIB_LIBS = @ZLIB_LIBS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
@IS_I386_TRUE@bootdir = $(libdir)/$(PACKAGE_NAME)-runtime/boot
|
||||
@IS_I386_TRUE@dist_boot_DATA = boot.msg grub.conf syslinux.cfg
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign bootdisk/i386/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign bootdisk/i386/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-dist_bootDATA: $(dist_boot_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(bootdir)" || $(MKDIR_P) "$(DESTDIR)$(bootdir)"
|
||||
@list='$(dist_boot_DATA)'; test -n "$(bootdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(bootdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(bootdir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-dist_bootDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(dist_boot_DATA)'; test -n "$(bootdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(bootdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(bootdir)" && rm -f $$files
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(bootdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-dist_bootDATA
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-dist_bootDATA
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-dist_bootDATA install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
uninstall uninstall-am uninstall-dist_bootDATA
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
5
anaconda/bootdisk/i386/boot.msg
Normal file
5
anaconda/bootdisk/i386/boot.msg
Normal file
@ -0,0 +1,5 @@
|
||||
|
||||
splash.lss
|
||||
|
||||
- Press the 01<ENTER>07 key to begin the installation process.
|
||||
|
8
anaconda/bootdisk/i386/grub.conf
Normal file
8
anaconda/bootdisk/i386/grub.conf
Normal file
@ -0,0 +1,8 @@
|
||||
#debug --graphics
|
||||
default=0
|
||||
splashimage=@SPLASHPATH@
|
||||
timeout 5
|
||||
hiddenmenu
|
||||
title @PRODUCT@ @VERSION@
|
||||
kernel @KERNELPATH@
|
||||
initrd @INITRDPATH@
|
33
anaconda/bootdisk/i386/syslinux.cfg
Normal file
33
anaconda/bootdisk/i386/syslinux.cfg
Normal file
@ -0,0 +1,33 @@
|
||||
default linux
|
||||
prompt 1
|
||||
timeout 600
|
||||
|
||||
display boot.msg
|
||||
|
||||
menu background splash.jpg
|
||||
menu title Welcome to @PRODUCT@ @VERSION@!
|
||||
menu color border 0 #ffffffff #00000000
|
||||
menu color sel 7 #ffffffff #ff000000
|
||||
menu color title 0 #ffffffff #00000000
|
||||
menu color tabmsg 0 #ffffffff #00000000
|
||||
menu color unsel 0 #ffffffff #00000000
|
||||
menu color hotsel 0 #ff000000 #ffffffff
|
||||
menu color hotkey 7 #ffffffff #ff000000
|
||||
menu color scrollbar 0 #ffffffff #00000000
|
||||
|
||||
label linux
|
||||
menu label ^Install a new system or upgrade an existing system
|
||||
menu default
|
||||
kernel vmlinuz
|
||||
append initrd=initrd.img
|
||||
label vesa
|
||||
menu label Install system with ^basic video driver
|
||||
kernel vmlinuz
|
||||
append initrd=initrd.img xdriver=vesa nomodeset
|
||||
label rescue
|
||||
menu label ^Rescue installed system
|
||||
kernel vmlinuz
|
||||
append initrd=initrd.img rescue
|
||||
label local
|
||||
menu label Boot from ^local drive
|
||||
localboot 0xffff
|
26
anaconda/bootdisk/ppc/Makefile.am
Normal file
26
anaconda/bootdisk/ppc/Makefile.am
Normal file
@ -0,0 +1,26 @@
|
||||
# bootdisk/ppc/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
if IS_PPC
|
||||
bootdir = $(libdir)/$(PACKAGE_NAME)-runtime/boot
|
||||
dist_boot_DATA = magic ofboot.b yaboot.conf.in bootinfo.txt mapping \
|
||||
yaboot.conf.3264
|
||||
endif
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
506
anaconda/bootdisk/ppc/Makefile.in
Normal file
506
anaconda/bootdisk/ppc/Makefile.in
Normal file
@ -0,0 +1,506 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# bootdisk/ppc/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = bootdisk/ppc
|
||||
DIST_COMMON = $(am__dist_boot_DATA_DIST) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/python.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__dist_boot_DATA_DIST = magic ofboot.b yaboot.conf.in bootinfo.txt \
|
||||
mapping yaboot.conf.3264
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(bootdir)"
|
||||
DATA = $(dist_boot_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
ARCH = @ARCH@
|
||||
AUDIT_LIBS = @AUDIT_LIBS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BLKID_LIBS = @BLKID_LIBS@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHECKISOMD5_LIBS = @CHECKISOMD5_LIBS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DEVMAPPER_CFLAGS = @DEVMAPPER_CFLAGS@
|
||||
DEVMAPPER_LIBS = @DEVMAPPER_LIBS@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
EXT2FS_LIBS = @EXT2FS_LIBS@
|
||||
FGREP = @FGREP@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
|
||||
GTK_X11_LIBS = @GTK_X11_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
IPV6_CFLAGS = @IPV6_CFLAGS@
|
||||
ISCSI_LIBS = @ISCSI_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@
|
||||
LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@
|
||||
LIBCURL_CFLAGS = @LIBCURL_CFLAGS@
|
||||
LIBCURL_LIBS = @LIBCURL_LIBS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBNL_CFLAGS = @LIBNL_CFLAGS@
|
||||
LIBNL_LIBS = @LIBNL_LIBS@
|
||||
LIBNM_GLIB_CFLAGS = @LIBNM_GLIB_CFLAGS@
|
||||
LIBNM_GLIB_LIBS = @LIBNM_GLIB_LIBS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
NETWORKMANAGER_CFLAGS = @NETWORKMANAGER_CFLAGS@
|
||||
NETWORKMANAGER_LIBS = @NETWORKMANAGER_LIBS@
|
||||
NEWT_LIBS = @NEWT_LIBS@
|
||||
NFS_CFLAGS = @NFS_CFLAGS@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_RELEASE = @PACKAGE_RELEASE@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POSUB = @POSUB@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EMBED_LIBS = @PYTHON_EMBED_LIBS@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
|
||||
PYTHON_LIBS = @PYTHON_LIBS@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
RPM_CFLAGS = @RPM_CFLAGS@
|
||||
RPM_LIBS = @RPM_LIBS@
|
||||
SED = @SED@
|
||||
SELINUX_CFLAGS = @SELINUX_CFLAGS@
|
||||
SELINUX_LIBS = @SELINUX_LIBS@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLANG_LIBS = @SLANG_LIBS@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
X11_CFLAGS = @X11_CFLAGS@
|
||||
X11_LIBS = @X11_LIBS@
|
||||
XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
|
||||
XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
XMKMF = @XMKMF@
|
||||
ZLIB_LIBS = @ZLIB_LIBS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
@IS_PPC_TRUE@bootdir = $(libdir)/$(PACKAGE_NAME)-runtime/boot
|
||||
@IS_PPC_TRUE@dist_boot_DATA = magic ofboot.b yaboot.conf.in bootinfo.txt mapping \
|
||||
@IS_PPC_TRUE@ yaboot.conf.3264
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign bootdisk/ppc/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign bootdisk/ppc/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-dist_bootDATA: $(dist_boot_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(bootdir)" || $(MKDIR_P) "$(DESTDIR)$(bootdir)"
|
||||
@list='$(dist_boot_DATA)'; test -n "$(bootdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(bootdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(bootdir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-dist_bootDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(dist_boot_DATA)'; test -n "$(bootdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(bootdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(bootdir)" && rm -f $$files
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(bootdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-dist_bootDATA
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-dist_bootDATA
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-dist_bootDATA install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
uninstall uninstall-am uninstall-dist_bootDATA
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
169
anaconda/bootdisk/ppc/bootinfo.txt
Normal file
169
anaconda/bootdisk/ppc/bootinfo.txt
Normal file
@ -0,0 +1,169 @@
|
||||
<chrp-boot> <description>Linux</description>
|
||||
<os-name>Linux</os-name>
|
||||
<boot-script>boot &device;:\ppc\chrp\yaboot</boot-script>
|
||||
<icon size=64,64 color-space=3,3,2>
|
||||
<bitmap> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||
FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 </bitmap> </icon> </chrp-boot>
|
81
anaconda/bootdisk/ppc/magic
Normal file
81
anaconda/bootdisk/ppc/magic
Normal file
@ -0,0 +1,81 @@
|
||||
#
|
||||
# Example magic file for mkhybrid
|
||||
#
|
||||
# The "message" for the offset MUST be 4 characters for the CREATOR
|
||||
# and 4 characters for the TYPE - white space is optional between them.
|
||||
# Any other characters on this line are ignored. Continuation lines (starting
|
||||
# with '>') are also ignored i.e. only the initial offset lines are used.
|
||||
#
|
||||
# The continuation lines are given here, but they do not need to exist.
|
||||
|
||||
#
|
||||
# James Pearson 20/5/98
|
||||
|
||||
# off type test message
|
||||
|
||||
# GIF
|
||||
0 string GIF8 8BIM GIFf
|
||||
>4 string 7a \b, version 8%s,
|
||||
>4 string 9a \b, version 8%s,
|
||||
>6 leshort >0 %hd x
|
||||
>8 leshort >0 %hd,
|
||||
#>10 byte &0x80 color mapped,
|
||||
#>10 byte&0x07 =0x00 2 colors
|
||||
#>10 byte&0x07 =0x01 4 colors
|
||||
#>10 byte&0x07 =0x02 8 colors
|
||||
#>10 byte&0x07 =0x03 16 colors
|
||||
#>10 byte&0x07 =0x04 32 colors
|
||||
#>10 byte&0x07 =0x05 64 colors
|
||||
#>10 byte&0x07 =0x06 128 colors
|
||||
#>10 byte&0x07 =0x07 256 colors
|
||||
|
||||
# JPEG images
|
||||
#
|
||||
0 ubeshort 0xffd8 8BIM JPEG image data
|
||||
|
||||
# StuffIt
|
||||
#
|
||||
0 string SIT! SIT!SIT!
|
||||
|
||||
# standard unix compress
|
||||
0 string \037\235 LZIV ZIVU
|
||||
>2 byte&0x80 >0 block compressed
|
||||
>2 byte&0x1f x %d bits
|
||||
|
||||
# gzip (GNU zip, not to be confused with Info-ZIP or PKWARE zip archiver)
|
||||
0 string \037\213 GNUz ZIVU gzip compressed data
|
||||
>2 byte <8 \b, reserved method,
|
||||
>2 byte 8 \b, deflated,
|
||||
>3 byte &0x01 ASCII,
|
||||
>3 byte &0x02 continuation,
|
||||
>3 byte &0x04 extra field,
|
||||
>3 byte &0x08 original filename,
|
||||
>3 byte &0x10 comment,
|
||||
>3 byte &0x20 encrypted,
|
||||
>4 ledate x last modified: %s,
|
||||
>8 byte 2 max compression,
|
||||
>8 byte 4 max speed,
|
||||
>9 byte =0x00 os: MS-DOS
|
||||
>9 byte =0x01 os: Amiga
|
||||
>9 byte =0x02 os: VMS
|
||||
>9 byte =0x03 os: Unix
|
||||
>9 byte =0x05 os: Atari
|
||||
>9 byte =0x06 os: OS/2
|
||||
>9 byte =0x07 os: MacOS
|
||||
>9 byte =0x0A os: Tops/20
|
||||
>9 byte =0x0B os: Win/32
|
||||
|
||||
# Postscript
|
||||
0 string %! ASPSTEXT
|
||||
>2 string PS-Adobe- conforming
|
||||
>>11 string >\0 at level %.3s
|
||||
>>>15 string EPS - type %s
|
||||
>>>15 string Query - type %s
|
||||
>>>15 string ExitServer - type %s
|
||||
# Some PCs have the annoying habit of adding a ^D as a document separator
|
||||
0 string \004%! ASPS TEXT PostScript document text
|
||||
>3 string PS-Adobe- conforming
|
||||
>>12 string >\0 at level %.3s
|
||||
>>>16 string EPS - type %s
|
||||
>>>16 string Query - type %s
|
||||
>>>16 string ExitServer - type %s
|
27
anaconda/bootdisk/ppc/mapping
Normal file
27
anaconda/bootdisk/ppc/mapping
Normal file
@ -0,0 +1,27 @@
|
||||
# Example filename mapping file
|
||||
#
|
||||
# yaboot Raw 'UNIX' 'boot' "Bootstrap"
|
||||
# vmlinux Raw 'UNIX' 'boot' "Bootstrap"
|
||||
#
|
||||
# EXTN XLate CREATOR TYPE Comment
|
||||
COPYING Ascii 'ttxt' 'ttro' "Text File"
|
||||
CREDITS Ascii 'ttxt' 'ttro' "Text File"
|
||||
README Ascii 'ttxt' 'ttro' "Text File"
|
||||
RPM-GPG-KEY Ascii 'ttxt' 'ttro' "Text File"
|
||||
RELEASE_NOTES Ascii 'ttxt' 'ttro' "Text File"
|
||||
.b Raw 'chrp' 'tbxi' "Macintosh Toolbox ROM file"
|
||||
.gif Raw '8BIM' 'GIFf' "Gif File"
|
||||
.jpg Raw '8BIM' 'JPEG' "Jpeg File"
|
||||
.tif Raw '8BIM' 'TIFF' "Photoshop TIFF image"
|
||||
.hqx Ascii 'BnHq' 'TEXT' "BinHex file"
|
||||
.doc Raw 'MSWD' 'WDBN' "Word file"
|
||||
.mov Raw 'TVOD' 'MooV' "QuickTime Movie"
|
||||
.html Ascii 'MOSS' 'TEXT' "HTML File"
|
||||
.htm Ascii 'MOSS' 'TEXT' "HTML File"
|
||||
.conf Ascii 'ttxt' 'TEXT' "config file"
|
||||
.txt Ascii 'ttxt' 'TEXT' "Text File"
|
||||
.tbxi Raw 'chrp' 'tbxi' "Macintosh Toolbox ROM file"
|
||||
.sea Raw 'aust' 'APPL' "Self Expanding Archive"
|
||||
.sit Raw 'SIT!' 'SITD' "Stuffit Expander file"
|
||||
* Raw '????' '????' "Unknown"
|
||||
|
74
anaconda/bootdisk/ppc/ofboot.b
Normal file
74
anaconda/bootdisk/ppc/ofboot.b
Normal file
@ -0,0 +1,74 @@
|
||||
<CHRP-BOOT>
|
||||
<COMPATIBLE>
|
||||
MacRISC MacRISC3 MacRISC4
|
||||
</COMPATIBLE>
|
||||
|
||||
<DESCRIPTION>
|
||||
Boot Chooser
|
||||
</DESCRIPTION>
|
||||
|
||||
<BOOT-SCRIPT>
|
||||
" screen" output
|
||||
load-base release-load-area
|
||||
" /cpus/@0" find-package if
|
||||
" 64-bit" rot get-package-property 0= if
|
||||
2drop
|
||||
" boot cd:,\ppc\mac\yaboot conf=cd:,\ppc\ppc64\yaboot.conf" eval
|
||||
else
|
||||
" boot cd:,\ppc\mac\yaboot conf=cd:,\ppc\ppc32\yaboot.conf" eval
|
||||
then
|
||||
then
|
||||
</BOOT-SCRIPT>
|
||||
|
||||
<OS-BADGE-ICONS>
|
||||
1010
|
||||
000000000000F8FEACF6000000000000
|
||||
0000000000F5FFFFFEFEF50000000000
|
||||
00000000002BFAFEFAFCF70000000000
|
||||
0000000000F65D5857812B0000000000
|
||||
0000000000F5350B2F88560000000000
|
||||
0000000000F6335708F8FE0000000000
|
||||
00000000005600F600F5FD8100000000
|
||||
00000000F9F8000000F5FAFFF8000000
|
||||
000000008100F5F50000F6FEFE000000
|
||||
000000F8F700F500F50000FCFFF70000
|
||||
00000088F70000F50000F5FCFF2B0000
|
||||
0000002F582A00F5000008ADE02C0000
|
||||
00090B0A35A62B0000002D3B350A0000
|
||||
000A0A0B0B3BF60000505E0B0A0B0A00
|
||||
002E350B0B2F87FAFCF45F0B2E090000
|
||||
00000007335FF82BF72B575907000000
|
||||
000000000000ACFFFF81000000000000
|
||||
000000000081FFFFFFFF810000000000
|
||||
0000000000FBFFFFFFFFAC0000000000
|
||||
000000000081DFDFDFFFFB0000000000
|
||||
000000000081DD5F83FFFD0000000000
|
||||
000000000081DDDF5EACFF0000000000
|
||||
0000000000FDF981F981FFFF00000000
|
||||
00000000FFACF9F9F981FFFFAC000000
|
||||
00000000FFF98181F9F981FFFF000000
|
||||
000000ACACF981F981F9F9FFFFAC0000
|
||||
000000FFACF9F981F9F981FFFFFB0000
|
||||
00000083DFFBF981F9F95EFFFFFC0000
|
||||
005F5F5FDDFFFBF9F9F983DDDD5F0000
|
||||
005F5F5F5FDD81F9F9E7DF5F5F5F5F00
|
||||
0083DD5F5F83FFFFFFFFDF5F835F0000
|
||||
000000FBDDDFACFBACFBDFDFFB000000
|
||||
000000000000FFFFFFFF000000000000
|
||||
0000000000FFFFFFFFFFFF0000000000
|
||||
0000000000FFFFFFFFFFFF0000000000
|
||||
0000000000FFFFFFFFFFFF0000000000
|
||||
0000000000FFFFFFFFFFFF0000000000
|
||||
0000000000FFFFFFFFFFFF0000000000
|
||||
0000000000FFFFFFFFFFFFFF00000000
|
||||
00000000FFFFFFFFFFFFFFFFFF000000
|
||||
00000000FFFFFFFFFFFFFFFFFF000000
|
||||
000000FFFFFFFFFFFFFFFFFFFFFF0000
|
||||
000000FFFFFFFFFFFFFFFFFFFFFF0000
|
||||
000000FFFFFFFFFFFFFFFFFFFFFF0000
|
||||
00FFFFFFFFFFFFFFFFFFFFFFFFFF0000
|
||||
00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00
|
||||
00FFFFFFFFFFFFFFFFFFFFFFFFFF0000
|
||||
000000FFFFFFFFFFFFFFFFFFFF000000
|
||||
</OS-BADGE-ICONS>
|
||||
</CHRP-BOOT>
|
14
anaconda/bootdisk/ppc/yaboot.conf.3264
Normal file
14
anaconda/bootdisk/ppc/yaboot.conf.3264
Normal file
@ -0,0 +1,14 @@
|
||||
init-message = "\nWelcome to the %PRODUCT% %VERSION% installer!\nUse 'linux32' for 32-bit kernel.\n\n"
|
||||
timeout=6000
|
||||
default=linux
|
||||
|
||||
image=/ppc/ppc64/vmlinuz
|
||||
label=linux64
|
||||
alias=linux
|
||||
initrd=/ppc/ppc64/ramdisk.image.gz
|
||||
read-only
|
||||
|
||||
image=/ppc/ppc32/vmlinuz
|
||||
label=linux32
|
||||
initrd=/ppc/ppc32/ramdisk.image.gz
|
||||
read-only
|
8
anaconda/bootdisk/ppc/yaboot.conf.in
Normal file
8
anaconda/bootdisk/ppc/yaboot.conf.in
Normal file
@ -0,0 +1,8 @@
|
||||
init-message = "\nWelcome to the %BITS%-bit %PRODUCT% %VERSION% installer!\nHit <TAB> for boot options.\n\n"
|
||||
timeout=6000
|
||||
default=linux
|
||||
|
||||
image=/ppc/ppc%BITS%/vmlinuz
|
||||
label=linux
|
||||
initrd=/ppc/ppc%BITS%/ramdisk.image.gz
|
||||
read-only
|
25
anaconda/bootdisk/s390x/Makefile.am
Normal file
25
anaconda/bootdisk/s390x/Makefile.am
Normal file
@ -0,0 +1,25 @@
|
||||
# bootdisk/s390x/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
if IS_S390
|
||||
bootdir = $(libdir)/$(PACKAGE_NAME)-runtime/boot
|
||||
dist_boot_DATA = generic.ins generic.prm redhat.exec
|
||||
endif
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
503
anaconda/bootdisk/s390x/Makefile.in
Normal file
503
anaconda/bootdisk/s390x/Makefile.in
Normal file
@ -0,0 +1,503 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# bootdisk/s390x/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = bootdisk/s390x
|
||||
DIST_COMMON = $(am__dist_boot_DATA_DIST) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/python.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__dist_boot_DATA_DIST = generic.ins generic.prm redhat.exec
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(bootdir)"
|
||||
DATA = $(dist_boot_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
ARCH = @ARCH@
|
||||
AUDIT_LIBS = @AUDIT_LIBS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BLKID_LIBS = @BLKID_LIBS@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHECKISOMD5_LIBS = @CHECKISOMD5_LIBS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DEVMAPPER_CFLAGS = @DEVMAPPER_CFLAGS@
|
||||
DEVMAPPER_LIBS = @DEVMAPPER_LIBS@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
EXT2FS_LIBS = @EXT2FS_LIBS@
|
||||
FGREP = @FGREP@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
|
||||
GTK_X11_LIBS = @GTK_X11_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
IPV6_CFLAGS = @IPV6_CFLAGS@
|
||||
ISCSI_LIBS = @ISCSI_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@
|
||||
LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@
|
||||
LIBCURL_CFLAGS = @LIBCURL_CFLAGS@
|
||||
LIBCURL_LIBS = @LIBCURL_LIBS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBNL_CFLAGS = @LIBNL_CFLAGS@
|
||||
LIBNL_LIBS = @LIBNL_LIBS@
|
||||
LIBNM_GLIB_CFLAGS = @LIBNM_GLIB_CFLAGS@
|
||||
LIBNM_GLIB_LIBS = @LIBNM_GLIB_LIBS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
NETWORKMANAGER_CFLAGS = @NETWORKMANAGER_CFLAGS@
|
||||
NETWORKMANAGER_LIBS = @NETWORKMANAGER_LIBS@
|
||||
NEWT_LIBS = @NEWT_LIBS@
|
||||
NFS_CFLAGS = @NFS_CFLAGS@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_RELEASE = @PACKAGE_RELEASE@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POSUB = @POSUB@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EMBED_LIBS = @PYTHON_EMBED_LIBS@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
|
||||
PYTHON_LIBS = @PYTHON_LIBS@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
RPM_CFLAGS = @RPM_CFLAGS@
|
||||
RPM_LIBS = @RPM_LIBS@
|
||||
SED = @SED@
|
||||
SELINUX_CFLAGS = @SELINUX_CFLAGS@
|
||||
SELINUX_LIBS = @SELINUX_LIBS@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLANG_LIBS = @SLANG_LIBS@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
X11_CFLAGS = @X11_CFLAGS@
|
||||
X11_LIBS = @X11_LIBS@
|
||||
XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
|
||||
XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
XMKMF = @XMKMF@
|
||||
ZLIB_LIBS = @ZLIB_LIBS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
@IS_S390_TRUE@bootdir = $(libdir)/$(PACKAGE_NAME)-runtime/boot
|
||||
@IS_S390_TRUE@dist_boot_DATA = generic.ins generic.prm redhat.exec
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign bootdisk/s390x/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign bootdisk/s390x/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-dist_bootDATA: $(dist_boot_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(bootdir)" || $(MKDIR_P) "$(DESTDIR)$(bootdir)"
|
||||
@list='$(dist_boot_DATA)'; test -n "$(bootdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(bootdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(bootdir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-dist_bootDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(dist_boot_DATA)'; test -n "$(bootdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(bootdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(bootdir)" && rm -f $$files
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(bootdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-dist_bootDATA
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-dist_bootDATA
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-dist_bootDATA install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
uninstall uninstall-am uninstall-dist_bootDATA
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
5
anaconda/bootdisk/s390x/generic.ins
Normal file
5
anaconda/bootdisk/s390x/generic.ins
Normal file
@ -0,0 +1,5 @@
|
||||
* minimal lpar ins file
|
||||
images/kernel.img 0x00000000
|
||||
images/initrd.img 0x02000000
|
||||
images/generic.prm 0x00010480
|
||||
images/initrd.size 0x00010410
|
1
anaconda/bootdisk/s390x/generic.prm
Normal file
1
anaconda/bootdisk/s390x/generic.prm
Normal file
@ -0,0 +1 @@
|
||||
root=/dev/ram0 ro ip=off ramdisk_size=40000 cio_ignore=all,!0.0.0009
|
9
anaconda/bootdisk/s390x/redhat.exec
Normal file
9
anaconda/bootdisk/s390x/redhat.exec
Normal file
@ -0,0 +1,9 @@
|
||||
/* */
|
||||
'CL RDR'
|
||||
'PURGE RDR ALL'
|
||||
'SPOOL PUNCH * RDR'
|
||||
'PUNCH KERNEL IMG A (NOH'
|
||||
'PUNCH GENERIC PRM A (NOH'
|
||||
'PUNCH INITRD IMG A (NOH'
|
||||
'CH RDR ALL KEEP NOHOLD'
|
||||
'I 00C'
|
25
anaconda/bootdisk/x86_64/Makefile.am
Normal file
25
anaconda/bootdisk/x86_64/Makefile.am
Normal file
@ -0,0 +1,25 @@
|
||||
# bootdisk/x86_64/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
if IS_X86_64
|
||||
bootdir = $(libdir)/$(PACKAGE_NAME)-runtime/boot
|
||||
dist_boot_DATA = boot.msg grub.conf syslinux.cfg
|
||||
endif
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
503
anaconda/bootdisk/x86_64/Makefile.in
Normal file
503
anaconda/bootdisk/x86_64/Makefile.in
Normal file
@ -0,0 +1,503 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# bootdisk/x86_64/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = bootdisk/x86_64
|
||||
DIST_COMMON = $(am__dist_boot_DATA_DIST) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/python.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__dist_boot_DATA_DIST = boot.msg grub.conf syslinux.cfg
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(bootdir)"
|
||||
DATA = $(dist_boot_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
ARCH = @ARCH@
|
||||
AUDIT_LIBS = @AUDIT_LIBS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BLKID_LIBS = @BLKID_LIBS@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHECKISOMD5_LIBS = @CHECKISOMD5_LIBS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DEVMAPPER_CFLAGS = @DEVMAPPER_CFLAGS@
|
||||
DEVMAPPER_LIBS = @DEVMAPPER_LIBS@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
EXT2FS_LIBS = @EXT2FS_LIBS@
|
||||
FGREP = @FGREP@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
|
||||
GTK_X11_LIBS = @GTK_X11_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
IPV6_CFLAGS = @IPV6_CFLAGS@
|
||||
ISCSI_LIBS = @ISCSI_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@
|
||||
LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@
|
||||
LIBCURL_CFLAGS = @LIBCURL_CFLAGS@
|
||||
LIBCURL_LIBS = @LIBCURL_LIBS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBNL_CFLAGS = @LIBNL_CFLAGS@
|
||||
LIBNL_LIBS = @LIBNL_LIBS@
|
||||
LIBNM_GLIB_CFLAGS = @LIBNM_GLIB_CFLAGS@
|
||||
LIBNM_GLIB_LIBS = @LIBNM_GLIB_LIBS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
NETWORKMANAGER_CFLAGS = @NETWORKMANAGER_CFLAGS@
|
||||
NETWORKMANAGER_LIBS = @NETWORKMANAGER_LIBS@
|
||||
NEWT_LIBS = @NEWT_LIBS@
|
||||
NFS_CFLAGS = @NFS_CFLAGS@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_RELEASE = @PACKAGE_RELEASE@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POSUB = @POSUB@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EMBED_LIBS = @PYTHON_EMBED_LIBS@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
|
||||
PYTHON_LIBS = @PYTHON_LIBS@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
RPM_CFLAGS = @RPM_CFLAGS@
|
||||
RPM_LIBS = @RPM_LIBS@
|
||||
SED = @SED@
|
||||
SELINUX_CFLAGS = @SELINUX_CFLAGS@
|
||||
SELINUX_LIBS = @SELINUX_LIBS@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLANG_LIBS = @SLANG_LIBS@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
X11_CFLAGS = @X11_CFLAGS@
|
||||
X11_LIBS = @X11_LIBS@
|
||||
XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
|
||||
XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
XMKMF = @XMKMF@
|
||||
ZLIB_LIBS = @ZLIB_LIBS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
@IS_X86_64_TRUE@bootdir = $(libdir)/$(PACKAGE_NAME)-runtime/boot
|
||||
@IS_X86_64_TRUE@dist_boot_DATA = boot.msg grub.conf syslinux.cfg
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign bootdisk/x86_64/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign bootdisk/x86_64/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-dist_bootDATA: $(dist_boot_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(bootdir)" || $(MKDIR_P) "$(DESTDIR)$(bootdir)"
|
||||
@list='$(dist_boot_DATA)'; test -n "$(bootdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(bootdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(bootdir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-dist_bootDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(dist_boot_DATA)'; test -n "$(bootdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(bootdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(bootdir)" && rm -f $$files
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(bootdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-dist_bootDATA
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-dist_bootDATA
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-dist_bootDATA install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
uninstall uninstall-am uninstall-dist_bootDATA
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
5
anaconda/bootdisk/x86_64/boot.msg
Normal file
5
anaconda/bootdisk/x86_64/boot.msg
Normal file
@ -0,0 +1,5 @@
|
||||
|
||||
splash.lss
|
||||
|
||||
- Press the 01<ENTER>07 key to begin the installation process.
|
||||
|
8
anaconda/bootdisk/x86_64/grub.conf
Normal file
8
anaconda/bootdisk/x86_64/grub.conf
Normal file
@ -0,0 +1,8 @@
|
||||
#debug --graphics
|
||||
default=0
|
||||
splashimage=@SPLASHPATH@
|
||||
timeout 5
|
||||
hiddenmenu
|
||||
title @PRODUCT@ @VERSION@
|
||||
kernel @KERNELPATH@
|
||||
initrd @INITRDPATH@
|
33
anaconda/bootdisk/x86_64/syslinux.cfg
Normal file
33
anaconda/bootdisk/x86_64/syslinux.cfg
Normal file
@ -0,0 +1,33 @@
|
||||
default linux
|
||||
prompt 1
|
||||
timeout 600
|
||||
|
||||
display boot.msg
|
||||
|
||||
menu background splash.jpg
|
||||
menu title Welcome to @PRODUCT@ @VERSION@!
|
||||
menu color border 0 #ffffffff #00000000
|
||||
menu color sel 7 #ffffffff #ff000000
|
||||
menu color title 0 #ffffffff #00000000
|
||||
menu color tabmsg 0 #ffffffff #00000000
|
||||
menu color unsel 0 #ffffffff #00000000
|
||||
menu color hotsel 0 #ff000000 #ffffffff
|
||||
menu color hotkey 7 #ffffffff #ff000000
|
||||
menu color scrollbar 0 #ffffffff #00000000
|
||||
|
||||
label linux
|
||||
menu label ^Install a new system or upgrade an existing system
|
||||
menu default
|
||||
kernel vmlinuz
|
||||
append initrd=initrd.img
|
||||
label vesa
|
||||
menu label Install system with ^basic video driver
|
||||
kernel vmlinuz
|
||||
append initrd=initrd.img xdriver=vesa nomodeset
|
||||
label rescue
|
||||
menu label ^Rescue installed system
|
||||
kernel vmlinuz
|
||||
append initrd=initrd.img rescue
|
||||
label local
|
||||
menu label Boot from ^local drive
|
||||
localboot 0xffff
|
241
anaconda/bootloader.py
Normal file
241
anaconda/bootloader.py
Normal file
@ -0,0 +1,241 @@
|
||||
#
|
||||
# bootloader.py: anaconda bootloader shims
|
||||
#
|
||||
# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Red Hat, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author(s): Erik Troan <ewt@redhat.com>
|
||||
# Jeremy Katz <katzj@redhat.com>
|
||||
#
|
||||
|
||||
import isys
|
||||
import parted
|
||||
import os, sys
|
||||
import iutil
|
||||
import string
|
||||
from flags import flags
|
||||
from constants import *
|
||||
from storage.devices import devicePathToName
|
||||
from storage import getReleaseString
|
||||
from booty.util import getDiskPart
|
||||
|
||||
import gettext
|
||||
_ = lambda x: gettext.ldgettext("anaconda", x)
|
||||
|
||||
import logging
|
||||
log = logging.getLogger("anaconda")
|
||||
|
||||
import booty
|
||||
from booty import bootloaderInfo, checkbootloader
|
||||
|
||||
def isEfiSystemPartition(part):
|
||||
if not part.active:
|
||||
return False
|
||||
return (part.disk.type == "gpt" and
|
||||
part.name == "EFI System Partition" and
|
||||
part.getFlag(parted.PARTITION_BOOT) and
|
||||
part.fileSystem.type in ("fat16", "fat32") and
|
||||
isys.readFSLabel(part.getDeviceNodeName()) != "ANACONDA")
|
||||
|
||||
def bootloaderSetupChoices(anaconda):
|
||||
if anaconda.dir == DISPATCH_BACK:
|
||||
rc = anaconda.intf.messageWindow(_("Warning"),
|
||||
_("Filesystems have already been activated. You "
|
||||
"cannot go back past this point.\n\nWould you like to "
|
||||
"continue with the installation?"),
|
||||
type="custom", custom_icon=["error","error"],
|
||||
custom_buttons=[_("_Exit installer"), _("_Continue")])
|
||||
|
||||
if rc == 0:
|
||||
sys.exit(0)
|
||||
return DISPATCH_FORWARD
|
||||
|
||||
if anaconda.ksdata and anaconda.ksdata.bootloader.driveorder:
|
||||
anaconda.bootloader.updateDriveList(anaconda.ksdata.bootloader.driveorder)
|
||||
else:
|
||||
#We want the selected bootloader drive to be preferred
|
||||
pref = anaconda.bootloader.drivelist[:1]
|
||||
anaconda.bootloader.updateDriveList(pref)
|
||||
|
||||
if iutil.isEfi() and not anaconda.bootloader.device:
|
||||
bootPart = None
|
||||
partitions = anaconda.storage.partitions
|
||||
for part in partitions:
|
||||
if part.partedPartition.active and isEfiSystemPartition(part.partedPartition):
|
||||
bootPart = part.name
|
||||
break
|
||||
if bootPart:
|
||||
anaconda.bootloader.setDevice(bootPart)
|
||||
|
||||
# iSeries bootloader on upgrades
|
||||
if iutil.getPPCMachine() == "iSeries" and not anaconda.bootloader.device:
|
||||
bootPart = None
|
||||
partitions = anaconda.storage.partitions
|
||||
for part in partitions:
|
||||
if part.partedPartition.active and \
|
||||
part.partedPartition.getFlag(parted.PARTITION_PREP):
|
||||
bootPart = part.name
|
||||
break
|
||||
if bootPart:
|
||||
anaconda.bootloader.setDevice(bootPart)
|
||||
|
||||
choices = anaconda.platform.bootloaderChoices(anaconda.bootloader)
|
||||
if not choices and iutil.getPPCMachine() != "iSeries":
|
||||
anaconda.dispatch.skipStep("instbootloader")
|
||||
else:
|
||||
anaconda.dispatch.skipStep("instbootloader", skip = 0)
|
||||
|
||||
# FIXME: ...
|
||||
anaconda.bootloader.images.setup(anaconda.storage)
|
||||
|
||||
if anaconda.bootloader.defaultDevice != None and choices:
|
||||
keys = choices.keys()
|
||||
# there are only two possible things that can be in the keys
|
||||
# mbr and boot. boot is ALWAYS present. so if the dev isn't
|
||||
# listed, it was mbr and we should nicely fall back to boot
|
||||
if anaconda.bootloader.defaultDevice not in keys:
|
||||
log.warning("MBR not suitable as boot device; installing to partition")
|
||||
anaconda.bootloader.defaultDevice = "boot"
|
||||
anaconda.bootloader.setDevice(choices[anaconda.bootloader.defaultDevice][0])
|
||||
elif choices and iutil.isMactel() and choices.has_key("boot"): # haccckkkk
|
||||
anaconda.bootloader.setDevice(choices["boot"][0])
|
||||
elif choices and choices.has_key("mbr"):
|
||||
anaconda.bootloader.setDevice(choices["mbr"][0])
|
||||
elif choices and choices.has_key("boot"):
|
||||
anaconda.bootloader.setDevice(choices["boot"][0])
|
||||
|
||||
def fixedMdraidGrubTarget(anaconda, grubTarget):
|
||||
# handle change made in F12 - before F12 mdX used to mean installation
|
||||
# into mbrs of mdX members' disks
|
||||
fixedGrubTarget = grubTarget
|
||||
(product, version) = getReleaseString(anaconda.rootPath)
|
||||
try:
|
||||
if float(version) < 12:
|
||||
stage1Devs = anaconda.bootloader.getPhysicalDevices(grubTarget)
|
||||
fixedGrubTarget = getDiskPart(stage1Devs[0], anaconda.storage)[0]
|
||||
log.info("Mdraid grub upgrade: %s -> %s" % (grubTarget,
|
||||
fixedGrubTarget))
|
||||
except ValueError:
|
||||
log.warning("Can't decide mdraid grub upgrade fix, product: %s, version: %s" % (product, version))
|
||||
|
||||
return fixedGrubTarget
|
||||
|
||||
def writeBootloader(anaconda):
|
||||
def dosync():
|
||||
isys.sync()
|
||||
isys.sync()
|
||||
isys.sync()
|
||||
|
||||
if anaconda.bootloader.defaultDevice == -1:
|
||||
return
|
||||
|
||||
if anaconda.bootloader.doUpgradeOnly:
|
||||
(bootType, theDev) = checkbootloader.getBootloaderTypeAndBoot(anaconda.rootPath, storage=anaconda.storage)
|
||||
|
||||
anaconda.bootloader.doUpgradeonly = 1
|
||||
if bootType == "GRUB":
|
||||
if theDev.startswith('/dev/md'):
|
||||
theDev = fixedMdraidGrubTarget(anaconda,
|
||||
devicePathToName(theDev))
|
||||
anaconda.bootloader.useGrubVal = 1
|
||||
anaconda.bootloader.setDevice(devicePathToName(theDev))
|
||||
else:
|
||||
anaconda.bootloader.doUpgradeOnly = 0
|
||||
|
||||
w = anaconda.intf.waitWindow(_("Bootloader"), _("Installing bootloader."))
|
||||
|
||||
kernelList = []
|
||||
otherList = []
|
||||
# getDefault needs to return a device, but that's too invasive for now.
|
||||
rootDev = anaconda.storage.rootDevice
|
||||
|
||||
if not anaconda.bootloader.images.getDefault():
|
||||
defaultDev = None
|
||||
else:
|
||||
defaultDev = anaconda.storage.devicetree.getDeviceByName(anaconda.bootloader.images.getDefault())
|
||||
|
||||
kernelLabel = None
|
||||
kernelLongLabel = None
|
||||
|
||||
for (dev, (label, longlabel, type)) in anaconda.bootloader.images.getImages().items():
|
||||
if (rootDev is None and kernelLabel is None) or (dev == rootDev.name):
|
||||
kernelLabel = label
|
||||
kernelLongLabel = longlabel
|
||||
elif (not defaultDev and not dev) or (defaultDev and dev == defaultDev.name):
|
||||
otherList = [(label, longlabel, dev)] + otherList
|
||||
else:
|
||||
otherList.append((label, longlabel, dev))
|
||||
|
||||
if kernelLabel is None:
|
||||
log.error("unable to find default image, bailing")
|
||||
w.pop()
|
||||
return
|
||||
|
||||
plainLabelUsed = 0
|
||||
defkern = "kernel"
|
||||
for (version, arch, nick) in \
|
||||
anaconda.backend.kernelVersionList(anaconda.rootPath):
|
||||
if plainLabelUsed:
|
||||
kernelList.append(("%s-%s" %(kernelLabel, nick),
|
||||
"%s-%s" %(kernelLongLabel, nick),
|
||||
version))
|
||||
else:
|
||||
kernelList.append((kernelLabel, kernelLongLabel, version))
|
||||
if nick != "base":
|
||||
defkern = "kernel-%s" %(nick,)
|
||||
plainLabelUsed = 1
|
||||
|
||||
f = open(anaconda.rootPath + "/etc/sysconfig/kernel", "w+")
|
||||
f.write("# UPDATEDEFAULT specifies if new-kernel-pkg should make\n"
|
||||
"# new kernels the default\n")
|
||||
# only update the default if we're setting the default to linux (#156678)
|
||||
if (not defaultDev and not rootDev) or (defaultDev and rootDev.name == defaultDev.name):
|
||||
f.write("UPDATEDEFAULT=yes\n")
|
||||
else:
|
||||
f.write("UPDATEDEFAULT=no\n")
|
||||
f.write("\n")
|
||||
f.write("# DEFAULTKERNEL specifies the default kernel package type\n")
|
||||
f.write("DEFAULTKERNEL=%s\n" %(defkern,))
|
||||
f.close()
|
||||
|
||||
dosync()
|
||||
try:
|
||||
rc = anaconda.bootloader.write(anaconda.rootPath, anaconda.bootloader,
|
||||
kernelList, otherList, defaultDev)
|
||||
w.pop()
|
||||
|
||||
if rc and anaconda.intf:
|
||||
anaconda.intf.messageWindow(_("Warning"),
|
||||
_("There was an error installing the bootloader. "
|
||||
"The system may not be bootable."))
|
||||
except booty.BootyNoKernelWarning:
|
||||
w.pop()
|
||||
if anaconda.intf:
|
||||
anaconda.intf.messageWindow(_("Warning"),
|
||||
_("No kernel packages were installed on the "
|
||||
"system. Bootloader configuration "
|
||||
"will not be changed."))
|
||||
|
||||
dosync()
|
||||
|
||||
def hasWindows(bl):
|
||||
foundWindows = False
|
||||
for (k,v) in bl.images.getImages().iteritems():
|
||||
if v[0].lower() == 'other' and v[2] in bootloaderInfo.dosFilesystems:
|
||||
foundWindows = True
|
||||
break
|
||||
|
||||
return foundWindows
|
23
anaconda/booty/Makefile.am
Normal file
23
anaconda/booty/Makefile.am
Normal file
@ -0,0 +1,23 @@
|
||||
# booty/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
bootydir = $(libdir)/$(PACKAGE_NAME)/booty
|
||||
booty_PYTHON = *.py
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
519
anaconda/booty/Makefile.in
Normal file
519
anaconda/booty/Makefile.in
Normal file
@ -0,0 +1,519 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# booty/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = booty
|
||||
DIST_COMMON = $(booty_PYTHON) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/python.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(bootydir)"
|
||||
py_compile = $(top_srcdir)/py-compile
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
ARCH = @ARCH@
|
||||
AUDIT_LIBS = @AUDIT_LIBS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BLKID_LIBS = @BLKID_LIBS@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHECKISOMD5_LIBS = @CHECKISOMD5_LIBS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DEVMAPPER_CFLAGS = @DEVMAPPER_CFLAGS@
|
||||
DEVMAPPER_LIBS = @DEVMAPPER_LIBS@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
EXT2FS_LIBS = @EXT2FS_LIBS@
|
||||
FGREP = @FGREP@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
|
||||
GTK_X11_LIBS = @GTK_X11_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
IPV6_CFLAGS = @IPV6_CFLAGS@
|
||||
ISCSI_LIBS = @ISCSI_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@
|
||||
LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@
|
||||
LIBCURL_CFLAGS = @LIBCURL_CFLAGS@
|
||||
LIBCURL_LIBS = @LIBCURL_LIBS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBNL_CFLAGS = @LIBNL_CFLAGS@
|
||||
LIBNL_LIBS = @LIBNL_LIBS@
|
||||
LIBNM_GLIB_CFLAGS = @LIBNM_GLIB_CFLAGS@
|
||||
LIBNM_GLIB_LIBS = @LIBNM_GLIB_LIBS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
NETWORKMANAGER_CFLAGS = @NETWORKMANAGER_CFLAGS@
|
||||
NETWORKMANAGER_LIBS = @NETWORKMANAGER_LIBS@
|
||||
NEWT_LIBS = @NEWT_LIBS@
|
||||
NFS_CFLAGS = @NFS_CFLAGS@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_RELEASE = @PACKAGE_RELEASE@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POSUB = @POSUB@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EMBED_LIBS = @PYTHON_EMBED_LIBS@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
|
||||
PYTHON_LIBS = @PYTHON_LIBS@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
RPM_CFLAGS = @RPM_CFLAGS@
|
||||
RPM_LIBS = @RPM_LIBS@
|
||||
SED = @SED@
|
||||
SELINUX_CFLAGS = @SELINUX_CFLAGS@
|
||||
SELINUX_LIBS = @SELINUX_LIBS@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLANG_LIBS = @SLANG_LIBS@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
X11_CFLAGS = @X11_CFLAGS@
|
||||
X11_LIBS = @X11_LIBS@
|
||||
XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
|
||||
XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
XMKMF = @XMKMF@
|
||||
ZLIB_LIBS = @ZLIB_LIBS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
bootydir = $(libdir)/$(PACKAGE_NAME)/booty
|
||||
booty_PYTHON = *.py
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign booty/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign booty/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-bootyPYTHON: $(booty_PYTHON)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(bootydir)" || $(MKDIR_P) "$(DESTDIR)$(bootydir)"
|
||||
@list='$(booty_PYTHON)'; dlist=; list2=; test -n "$(bootydir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \
|
||||
if test -f $$b$$p; then \
|
||||
$(am__strip_dir) \
|
||||
dlist="$$dlist $$f"; \
|
||||
list2="$$list2 $$b$$p"; \
|
||||
else :; fi; \
|
||||
done; \
|
||||
for file in $$list2; do echo $$file; done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(bootydir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(bootydir)" || exit $$?; \
|
||||
done || exit $$?; \
|
||||
if test -n "$$dlist"; then \
|
||||
if test -z "$(DESTDIR)"; then \
|
||||
PYTHON=$(PYTHON) $(py_compile) --basedir "$(bootydir)" $$dlist; \
|
||||
else \
|
||||
PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(bootydir)" $$dlist; \
|
||||
fi; \
|
||||
else :; fi
|
||||
|
||||
uninstall-bootyPYTHON:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(booty_PYTHON)'; test -n "$(bootydir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
filesc=`echo "$$files" | sed 's|$$|c|'`; \
|
||||
fileso=`echo "$$files" | sed 's|$$|o|'`; \
|
||||
echo " ( cd '$(DESTDIR)$(bootydir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(bootydir)" && rm -f $$files || exit $$?; \
|
||||
echo " ( cd '$(DESTDIR)$(bootydir)' && rm -f" $$filesc ")"; \
|
||||
cd "$(DESTDIR)$(bootydir)" && rm -f $$filesc || exit $$?; \
|
||||
echo " ( cd '$(DESTDIR)$(bootydir)' && rm -f" $$fileso ")"; \
|
||||
cd "$(DESTDIR)$(bootydir)" && rm -f $$fileso
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(bootydir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-bootyPYTHON
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-bootyPYTHON
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-bootyPYTHON install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
uninstall uninstall-am uninstall-bootyPYTHON
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
52
anaconda/booty/__init__.py
Normal file
52
anaconda/booty/__init__.py
Normal file
@ -0,0 +1,52 @@
|
||||
#
|
||||
# bootloader.py - generic boot loader handling backend for up2date and anaconda
|
||||
#
|
||||
# Jeremy Katz <katzj@redhat.com>
|
||||
# Adrian Likins <alikins@redhat.com>
|
||||
# Peter Jones <pjones@redhat.com>
|
||||
#
|
||||
# Copyright 2001-2005 Red Hat, Inc.
|
||||
#
|
||||
# This software may be freely redistributed under the terms of the GNU
|
||||
# library public license.
|
||||
#
|
||||
# You should have received a copy of the GNU Library Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
"""Module for manipulation and creation of boot loader configurations"""
|
||||
|
||||
import iutil
|
||||
from bootloaderInfo import *
|
||||
from bootloader import *
|
||||
|
||||
class BootyNoKernelWarning(Exception):
|
||||
def __init__ (self, value=""):
|
||||
self.value = value
|
||||
|
||||
def __str__ (self):
|
||||
return self.value
|
||||
|
||||
# return instance of the appropriate bootloader for our arch
|
||||
def getBootloader(anaconda):
|
||||
"""Get the bootloader info object for your architecture"""
|
||||
if iutil.isX86():
|
||||
import x86
|
||||
return x86.x86BootloaderInfo(anaconda)
|
||||
elif iutil.isIA64():
|
||||
import ia64
|
||||
return ia64.ia64BootloaderInfo(anaconda)
|
||||
elif iutil.isS390():
|
||||
import s390
|
||||
return s390.s390BootloaderInfo(anaconda)
|
||||
elif iutil.isAlpha():
|
||||
import alpha
|
||||
return alpha.alphaBootloaderInfo(anaconda)
|
||||
elif iutil.isPPC():
|
||||
import ppc
|
||||
return ppc.ppcBootloaderInfo(anaconda)
|
||||
elif iutil.isSparc():
|
||||
import sparc
|
||||
return sparc.sparcBootloaderInfo(anaconda)
|
||||
else:
|
||||
return bootloaderInfo(anaconda)
|
150
anaconda/booty/alpha.py
Normal file
150
anaconda/booty/alpha.py
Normal file
@ -0,0 +1,150 @@
|
||||
import os
|
||||
import iutil
|
||||
|
||||
from booty import BootyNoKernelWarning
|
||||
from bootloaderInfo import *
|
||||
from util import getDiskPart
|
||||
|
||||
class alphaBootloaderInfo(bootloaderInfo):
|
||||
def wholeDevice (self, path):
|
||||
(device, foo) = getDiskPart(path, self.storage)
|
||||
return device
|
||||
|
||||
def partitionNum (self, path):
|
||||
# getDiskPart returns part numbers 0-based; we need it one based
|
||||
# *sigh*
|
||||
(foo, partitionNumber) = getDiskPart(path, self.storage)
|
||||
return partitionNumber + 1
|
||||
|
||||
def writeAboot(self, instRoot, bl, kernelList,
|
||||
chainList, defaultDev):
|
||||
rootDevice = self.storage.rootDevice
|
||||
try:
|
||||
bootDevice = self.storage.mountpoints["/boot"]
|
||||
except KeyError:
|
||||
bootDevice = rootDevice
|
||||
|
||||
bootnotroot = bootDevice != rootDevice
|
||||
|
||||
confFile = instRoot + self.configfile
|
||||
|
||||
# If /etc/aboot.conf already exists we rename it
|
||||
# /etc/aboot.conf.rpmsave.
|
||||
if os.path.isfile(confFile):
|
||||
os.rename (confFile, confFile + ".rpmsave")
|
||||
|
||||
# Then we create the necessary files. If the root device isn't
|
||||
# the boot device, we create /boot/etc/ where the aboot.conf
|
||||
# will live, and we create /etc/aboot.conf as a symlink to it.
|
||||
if bootnotroot:
|
||||
# Do we have /boot/etc ? If not, create one
|
||||
if not os.path.isdir (instRoot + '/boot/etc'):
|
||||
os.mkdir(instRoot + '/boot/etc', 0755)
|
||||
|
||||
# We install the symlink (/etc/aboot.conf has already been
|
||||
# renamed in necessary.)
|
||||
os.symlink("../boot" + self.configfile, confFile)
|
||||
|
||||
cfPath = instRoot + "/boot" + self.configfile
|
||||
# Kernel path is set to / because a boot partition will
|
||||
# be a root on its own.
|
||||
kernelPath = '/'
|
||||
# Otherwise, we just need to create /etc/aboot.conf.
|
||||
else:
|
||||
cfPath = confFile
|
||||
kernelPath = self.kernelLocation
|
||||
|
||||
# If we already have an aboot.conf, rename it
|
||||
if os.access (cfPath, os.R_OK):
|
||||
self.perms = os.stat(cfPath)[0] & 0777
|
||||
os.rename(cfPath, cfPath + '.rpmsave')
|
||||
|
||||
# Now we're going to create and populate cfPath.
|
||||
f = open (cfPath, 'w+')
|
||||
f.write ("# aboot default configurations\n")
|
||||
|
||||
if bootnotroot:
|
||||
f.write ("# NOTICE: You have a /boot partition. This means that\n")
|
||||
f.write ("# all kernel paths are relative to /boot/\n")
|
||||
|
||||
# bpn is the boot partition number.
|
||||
bpn = self.partitionNum(bootDevice.path)
|
||||
lines = 0
|
||||
|
||||
# We write entries line using the following format:
|
||||
# <line><bpn><kernel-name> root=<rootdev> [options]
|
||||
# We get all the kernels we need to know about in kernelList.
|
||||
|
||||
for (kernel, tag, version) in kernelList:
|
||||
kernelTag = "-" + version
|
||||
kernelFile = "%svmlinuz%s" %(kernelPath, kernelTag)
|
||||
|
||||
f.write("%d:%d%s" %(lines, bpn, kernelFile))
|
||||
|
||||
# See if we can come up with an initrd argument that exists
|
||||
initrd = self.makeInitrd(kernelTag, instRoot)
|
||||
if initrd:
|
||||
f.write(" initrd=%s%s" %(kernelPath, initrd))
|
||||
|
||||
realroot = rootDevice.fstabSpec
|
||||
f.write(" root=%s" %(realroot,))
|
||||
|
||||
args = self.args.get()
|
||||
if args:
|
||||
f.write(" %s" %(args,))
|
||||
|
||||
f.write("\n")
|
||||
lines = lines + 1
|
||||
|
||||
# We're done writing the file
|
||||
f.close ()
|
||||
del f
|
||||
|
||||
# Now we're ready to write the relevant boot information. wbd
|
||||
# is the whole boot device, bdpn is the boot device partition
|
||||
# number.
|
||||
wbd = self.wholeDevice (bootDevice.path)
|
||||
bdpn = self.partitionNum (bootDevice.path)
|
||||
|
||||
# Calling swriteboot. The first argument is the disk to write
|
||||
# to and the second argument is a path to the bootstrap loader
|
||||
# file.
|
||||
args = [("/dev/%s" % wbd), "/boot/bootlx"]
|
||||
rc = iutil.execWithRedirect ('/sbin/swriteboot', args,
|
||||
root = instRoot,
|
||||
stdout = "/dev/tty5",
|
||||
stderr = "/dev/tty5")
|
||||
if rc:
|
||||
return rc
|
||||
|
||||
# Calling abootconf to configure the installed aboot. The
|
||||
# first argument is the disk to use, the second argument is
|
||||
# the number of the partition on which aboot.conf resides.
|
||||
# It's always the boot partition whether it's / or /boot (with
|
||||
# the mount point being omitted.)
|
||||
args = [("/dev/%s" % wbd), str (bdpn)]
|
||||
rc = iutil.execWithRedirect ('/sbin/abootconf', args,
|
||||
root = instRoot,
|
||||
stdout = "/dev/tty5",
|
||||
stderr = "/dev/tty5")
|
||||
if rc:
|
||||
return rc
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
def write(self, instRoot, bl, kernelList, chainList, defaultDev):
|
||||
if len(kernelList) < 1:
|
||||
raise BootyNoKernelWarning
|
||||
|
||||
return self.writeAboot(instRoot, bl, kernelList,
|
||||
chainList, defaultDev)
|
||||
|
||||
def __init__(self, anaconda):
|
||||
bootloaderInfo.__init__(self, anaconda)
|
||||
self.useGrubVal = 0
|
||||
self._configdir = "/etc"
|
||||
self._configname = "aboot.conf"
|
||||
# self.kernelLocation is already set to what we need.
|
||||
self.password = None
|
||||
self.pure = None
|
699
anaconda/booty/bootloaderInfo.py
Normal file
699
anaconda/booty/bootloaderInfo.py
Normal file
@ -0,0 +1,699 @@
|
||||
#
|
||||
# bootloaderInfo.py - bootloader config object used in creation of new
|
||||
# bootloader configs. Originally from anaconda
|
||||
#
|
||||
# Jeremy Katz <katzj@redhat.com>
|
||||
# Erik Troan <ewt@redhat.com>
|
||||
# Peter Jones <pjones@redhat.com>
|
||||
#
|
||||
# Copyright 2005-2008 Red Hat, Inc.
|
||||
#
|
||||
# This software may be freely redistributed under the terms of the GNU
|
||||
# library public license.
|
||||
#
|
||||
# You should have received a copy of the GNU Library Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
|
||||
import os, sys
|
||||
import crypt
|
||||
import random
|
||||
import shutil
|
||||
import string
|
||||
import struct
|
||||
from copy import copy
|
||||
|
||||
import gettext
|
||||
_ = lambda x: gettext.ldgettext("anaconda", x)
|
||||
N_ = lambda x: x
|
||||
|
||||
from lilo import LiloConfigFile
|
||||
|
||||
from flags import flags
|
||||
import iutil
|
||||
import isys
|
||||
from product import *
|
||||
|
||||
import booty
|
||||
import checkbootloader
|
||||
from util import getDiskPart
|
||||
|
||||
if not iutil.isS390():
|
||||
import block
|
||||
|
||||
dosFilesystems = ('FAT', 'fat16', 'fat32', 'ntfs', 'hpfs')
|
||||
|
||||
def doesDualBoot():
|
||||
if iutil.isX86():
|
||||
return 1
|
||||
return 0
|
||||
|
||||
def checkForBootBlock(device):
|
||||
fd = os.open(device, os.O_RDONLY)
|
||||
buf = os.read(fd, 512)
|
||||
os.close(fd)
|
||||
if len(buf) >= 512 and \
|
||||
struct.unpack("H", buf[0x1fe: 0x200]) == (0xaa55,):
|
||||
return True
|
||||
return False
|
||||
|
||||
# hack and a half
|
||||
# there's no guarantee that data is written to the disk and grub
|
||||
# reads both the filesystem and the disk. suck.
|
||||
def syncDataToDisk(dev, mntpt, instRoot = "/"):
|
||||
isys.sync()
|
||||
isys.sync()
|
||||
isys.sync()
|
||||
|
||||
# and xfs is even more "special" (#117968)
|
||||
if isys.readFSType(dev) == "xfs":
|
||||
iutil.execWithRedirect("/usr/sbin/xfs_freeze",
|
||||
["-f", mntpt],
|
||||
stdout = "/dev/tty5",
|
||||
stderr = "/dev/tty5",
|
||||
root = instRoot)
|
||||
iutil.execWithRedirect("/usr/sbin/xfs_freeze",
|
||||
["-u", mntpt],
|
||||
stdout = "/dev/tty5",
|
||||
stderr = "/dev/tty5",
|
||||
root = instRoot)
|
||||
|
||||
def rootIsDevice(dev):
|
||||
if dev.startswith("LABEL=") or dev.startswith("UUID="):
|
||||
return False
|
||||
return True
|
||||
|
||||
class KernelArguments:
|
||||
|
||||
def getDracutStorageArgs(self, devices):
|
||||
args = []
|
||||
types = {}
|
||||
for device in devices:
|
||||
for d in self.anaconda.storage.devices:
|
||||
if d is not device and not device.dependsOn(d):
|
||||
continue
|
||||
|
||||
s = d.dracutSetupString()
|
||||
types[s.split("=")[0]] = True
|
||||
if s not in args:
|
||||
args.append(s)
|
||||
|
||||
import storage
|
||||
if isinstance(d, storage.devices.NetworkStorageDevice):
|
||||
s = self.anaconda.network.dracutSetupString(d)
|
||||
if s not in args:
|
||||
args.append(s)
|
||||
|
||||
for i in [ [ "rd_LUKS_UUID", "rd_NO_LUKS" ],
|
||||
[ "rd_LVM_LV", "rd_NO_LVM" ],
|
||||
[ "rd_MD_UUID", "rd_NO_MD" ],
|
||||
[ "rd_DM_UUID", "rd_NO_DM" ] ]:
|
||||
if not types.has_key(i[0]):
|
||||
args.append(i[1])
|
||||
|
||||
return args
|
||||
|
||||
def get(self):
|
||||
args = ""
|
||||
bootArgs = []
|
||||
rootDev = self.anaconda.storage.rootDevice
|
||||
neededDevs = [ rootDev ]
|
||||
|
||||
if flags.cmdline.get("fips") == "1":
|
||||
bootDev = self.anaconda.storage.mountpoints.get("/boot", rootDev)
|
||||
bootArgs = [ "boot=%s" % bootDev.fstabSpec ]
|
||||
if bootDev is not rootDev:
|
||||
neededDevs = [ rootDev, bootDev ]
|
||||
|
||||
if self.anaconda.storage.fsset.swapDevices:
|
||||
neededDevs.append(self.anaconda.storage.fsset.swapDevices[0])
|
||||
|
||||
for s in bootArgs + \
|
||||
self.getDracutStorageArgs(neededDevs) + [
|
||||
self.anaconda.instLanguage.dracutSetupString(),
|
||||
self.anaconda.keyboard.dracutSetupString(),
|
||||
self.args,
|
||||
self.appendArgs ]:
|
||||
s = s.strip()
|
||||
if not s:
|
||||
continue
|
||||
if args:
|
||||
args += " "
|
||||
args += s
|
||||
|
||||
return args
|
||||
|
||||
def set(self, args):
|
||||
self.args = args
|
||||
self.appendArgs = ""
|
||||
|
||||
def getNoDracut(self):
|
||||
args = self.args.strip() + " " + self.appendArgs.strip()
|
||||
return args.strip()
|
||||
|
||||
def chandevget(self):
|
||||
return self.cargs
|
||||
|
||||
def chandevset(self, args):
|
||||
self.cargs = args
|
||||
|
||||
def append(self, args):
|
||||
# don't duplicate the addition of an argument (#128492)
|
||||
if self.args.find(args) != -1:
|
||||
return
|
||||
if self.appendArgs.find(args) != -1:
|
||||
return
|
||||
|
||||
if self.appendArgs:
|
||||
self.appendArgs += " "
|
||||
|
||||
self.appendArgs += args
|
||||
|
||||
def __init__(self, anaconda):
|
||||
newArgs = []
|
||||
cfgFilename = "/tmp/install.cfg"
|
||||
|
||||
self.anaconda = anaconda
|
||||
|
||||
if iutil.isS390():
|
||||
self.cargs = []
|
||||
f = open(cfgFilename)
|
||||
for line in f:
|
||||
try:
|
||||
(vname,vparm) = line.split('=', 1)
|
||||
vname = vname.strip()
|
||||
vparm = vparm.replace('"','')
|
||||
vparm = vparm.strip()
|
||||
if vname == "CHANDEV":
|
||||
self.cargs.append(vparm)
|
||||
if vname == "QETHPARM":
|
||||
self.cargs.append(vparm)
|
||||
except Exception, e:
|
||||
pass
|
||||
f.close()
|
||||
|
||||
# look for kernel arguments we know should be preserved and add them
|
||||
ourargs = ["speakup_synth", "apic", "noapic", "apm", "ide", "noht",
|
||||
"acpi", "video", "pci", "nodmraid", "nompath", "nomodeset",
|
||||
"noiswmd"]
|
||||
|
||||
if iutil.isS390():
|
||||
ourargs.append("cio_ignore")
|
||||
|
||||
for arg in ourargs:
|
||||
if not flags.cmdline.has_key(arg):
|
||||
continue
|
||||
|
||||
val = flags.cmdline.get(arg, "")
|
||||
if val:
|
||||
newArgs.append("%s=%s" % (arg, val))
|
||||
else:
|
||||
newArgs.append(arg)
|
||||
|
||||
self.args = " ".join(newArgs)
|
||||
self.appendArgs = ""
|
||||
|
||||
|
||||
class BootImages:
|
||||
"""A collection to keep track of boot images available on the system.
|
||||
Examples would be:
|
||||
('linux', 'Red Hat Linux', 'ext2'),
|
||||
('Other', 'Other', 'fat32'), ...
|
||||
"""
|
||||
def __init__(self):
|
||||
self.default = None
|
||||
self.images = {}
|
||||
|
||||
def getImages(self):
|
||||
"""returns dictionary of (label, longlabel, devtype) pairs
|
||||
indexed by device"""
|
||||
# return a copy so users can modify it w/o affecting us
|
||||
return copy(self.images)
|
||||
|
||||
def setDefault(self, default):
|
||||
# default is a device
|
||||
self.default = default
|
||||
|
||||
def getDefault(self):
|
||||
return self.default
|
||||
|
||||
# Construct a dictionary mapping device names to (OS, product, type)
|
||||
# tuples.
|
||||
def setup(self, storage):
|
||||
devices = {}
|
||||
bootDevs = self.availableBootDevices(storage)
|
||||
|
||||
for (dev, type) in bootDevs:
|
||||
devices[dev.name] = 1
|
||||
|
||||
# These partitions have disappeared
|
||||
for dev in self.images.keys():
|
||||
if not devices.has_key(dev):
|
||||
del self.images[dev]
|
||||
|
||||
# These have appeared
|
||||
for (dev, type) in bootDevs:
|
||||
if not self.images.has_key(dev.name):
|
||||
if type in dosFilesystems and doesDualBoot():
|
||||
self.images[dev.name] = ("Other", "Other", type)
|
||||
elif type in ("hfs", "hfs+") and iutil.getPPCMachine() == "PMac":
|
||||
self.images[dev.name] = ("Other", "Other", type)
|
||||
else:
|
||||
self.images[dev.name] = (None, None, type)
|
||||
|
||||
if not self.images.has_key(self.default):
|
||||
self.default = storage.rootDevice.name
|
||||
(label, longlabel, type) = self.images[self.default]
|
||||
if not label:
|
||||
self.images[self.default] = ("linux", productName, type)
|
||||
|
||||
# Return a list of (storage.Device, string) tuples that are bootable
|
||||
# devices. The string is the type of the device, which is just a string
|
||||
# like "vfat" or "swap" or "lvm".
|
||||
def availableBootDevices(self, storage):
|
||||
import parted
|
||||
retval = []
|
||||
foundDos = False
|
||||
foundAppleBootstrap = False
|
||||
|
||||
for part in [p for p in storage.partitions if p.exists]:
|
||||
# Skip extended, metadata, freespace, etc.
|
||||
if part.partType not in (parted.PARTITION_NORMAL, parted.PARTITION_LOGICAL) or not part.format:
|
||||
continue
|
||||
|
||||
type = part.format.type
|
||||
|
||||
if type in dosFilesystems and not foundDos and doesDualBoot() and \
|
||||
not part.getFlag(parted.PARTITION_DIAG):
|
||||
try:
|
||||
bootable = checkForBootBlock(part.path)
|
||||
retval.append((part, type))
|
||||
foundDos = True
|
||||
except:
|
||||
pass
|
||||
elif type in ["ntfs", "hpfs"] and not foundDos and \
|
||||
doesDualBoot() and not part.getFlag(parted.PARTITION_DIAG):
|
||||
retval.append((part, type))
|
||||
# maybe questionable, but the first ntfs or fat is likely to
|
||||
# be the correct one to boot with XP using ntfs
|
||||
foundDos = True
|
||||
elif type == "appleboot" and iutil.getPPCMachine() == "PMac" and part.bootable:
|
||||
foundAppleBootstrap = True
|
||||
elif type in ["hfs", "hfs+"] and foundAppleBootstrap:
|
||||
# questionable for same reason as above, but on mac this time
|
||||
retval.append((part, type))
|
||||
|
||||
rootDevice = storage.rootDevice
|
||||
|
||||
if not rootDevice or not rootDevice.format:
|
||||
raise ValueError, ("Trying to pick boot devices but do not have a "
|
||||
"sane root partition. Aborting install.")
|
||||
|
||||
retval.append((rootDevice, rootDevice.format.type))
|
||||
retval.sort()
|
||||
return retval
|
||||
|
||||
class bootloaderInfo(object):
|
||||
def getConfigFileName(self):
|
||||
if not self._configname:
|
||||
raise NotImplementedError
|
||||
return self._configname
|
||||
configname = property(getConfigFileName, None, None, \
|
||||
"bootloader config file name")
|
||||
|
||||
def getConfigFileDir(self):
|
||||
if not self._configdir:
|
||||
raise NotImplementedError
|
||||
return self._configdir
|
||||
configdir = property(getConfigFileDir, None, None, \
|
||||
"bootloader config file directory")
|
||||
|
||||
def getConfigFilePath(self):
|
||||
return "%s/%s" % (self.configdir, self.configname)
|
||||
configfile = property(getConfigFilePath, None, None, \
|
||||
"full path and name of the real config file")
|
||||
|
||||
def setUseGrub(self, val):
|
||||
pass
|
||||
|
||||
def useGrub(self):
|
||||
return self.useGrubVal
|
||||
|
||||
def setPassword(self, val, isCrypted = 1):
|
||||
pass
|
||||
|
||||
def getPassword(self):
|
||||
pass
|
||||
|
||||
def getDevice(self):
|
||||
return self.device
|
||||
|
||||
def setDevice(self, device):
|
||||
self.device = device
|
||||
|
||||
(dev, part) = getDiskPart(device, self.storage)
|
||||
if part is None:
|
||||
self.defaultDevice = "mbr"
|
||||
else:
|
||||
self.defaultDevice = "partition"
|
||||
|
||||
def makeInitrd(self, kernelTag, instRoot):
|
||||
initrd = "initrd%s.img" % kernelTag
|
||||
if os.access(instRoot + "/boot/" + initrd, os.R_OK):
|
||||
return initrd
|
||||
|
||||
initrd = "initramfs%s.img" % kernelTag
|
||||
if os.access(instRoot + "/boot/" + initrd, os.R_OK):
|
||||
return initrd
|
||||
|
||||
return None
|
||||
|
||||
def getBootloaderConfig(self, instRoot, bl, kernelList,
|
||||
chainList, defaultDev):
|
||||
images = bl.images.getImages()
|
||||
|
||||
confFile = instRoot + self.configfile
|
||||
|
||||
# on upgrade read in the lilo config file
|
||||
lilo = LiloConfigFile ()
|
||||
self.perms = 0600
|
||||
if os.access (confFile, os.R_OK):
|
||||
self.perms = os.stat(confFile)[0] & 0777
|
||||
lilo.read(confFile)
|
||||
os.rename(confFile, confFile + ".rpmsave")
|
||||
# if it's an absolute symlink, just get it out of our way
|
||||
elif (os.path.islink(confFile) and os.readlink(confFile)[0] == '/'):
|
||||
os.rename(confFile, confFile + ".rpmsave")
|
||||
|
||||
# Remove any invalid entries that are in the file; we probably
|
||||
# just removed those kernels.
|
||||
for label in lilo.listImages():
|
||||
(fsType, sl, path, other) = lilo.getImage(label)
|
||||
if fsType == "other": continue
|
||||
|
||||
if not os.access(instRoot + sl.getPath(), os.R_OK):
|
||||
lilo.delImage(label)
|
||||
|
||||
lilo.addEntry("prompt", replace = 0)
|
||||
lilo.addEntry("timeout", self.timeout or "20", replace = 0)
|
||||
|
||||
rootDev = self.storage.rootDevice
|
||||
|
||||
if rootDev.name == defaultDev.name:
|
||||
lilo.addEntry("default", kernelList[0][0])
|
||||
else:
|
||||
lilo.addEntry("default", chainList[0][0])
|
||||
|
||||
for (label, longlabel, version) in kernelList:
|
||||
kernelTag = "-" + version
|
||||
kernelFile = self.kernelLocation + "vmlinuz" + kernelTag
|
||||
|
||||
try:
|
||||
lilo.delImage(label)
|
||||
except IndexError, msg:
|
||||
pass
|
||||
|
||||
sl = LiloConfigFile(imageType = "image", path = kernelFile)
|
||||
|
||||
initrd = self.makeInitrd(kernelTag, instRoot)
|
||||
|
||||
sl.addEntry("label", label)
|
||||
if initrd:
|
||||
sl.addEntry("initrd", "%s%s" %(self.kernelLocation, initrd))
|
||||
|
||||
sl.addEntry("read-only")
|
||||
|
||||
append = "%s" %(self.args.get(),)
|
||||
realroot = rootDev.fstabSpec
|
||||
if rootIsDevice(realroot):
|
||||
sl.addEntry("root", rootDev.path)
|
||||
else:
|
||||
if len(append) > 0:
|
||||
append = "%s root=%s" %(append,realroot)
|
||||
else:
|
||||
append = "root=%s" %(realroot,)
|
||||
|
||||
if len(append) > 0:
|
||||
sl.addEntry('append', '"%s"' % (append,))
|
||||
|
||||
lilo.addImage (sl)
|
||||
|
||||
for (label, longlabel, device) in chainList:
|
||||
if ((not label) or (label == "")):
|
||||
continue
|
||||
try:
|
||||
(fsType, sl, path, other) = lilo.getImage(label)
|
||||
lilo.delImage(label)
|
||||
except IndexError:
|
||||
sl = LiloConfigFile(imageType = "other",
|
||||
path = "/dev/%s" %(device))
|
||||
sl.addEntry("optional")
|
||||
|
||||
sl.addEntry("label", label)
|
||||
lilo.addImage (sl)
|
||||
|
||||
# Sanity check #1. There could be aliases in sections which conflict
|
||||
# with the new images we just created. If so, erase those aliases
|
||||
imageNames = {}
|
||||
for label in lilo.listImages():
|
||||
imageNames[label] = 1
|
||||
|
||||
for label in lilo.listImages():
|
||||
(fsType, sl, path, other) = lilo.getImage(label)
|
||||
if sl.testEntry('alias'):
|
||||
alias = sl.getEntry('alias')
|
||||
if imageNames.has_key(alias):
|
||||
sl.delEntry('alias')
|
||||
imageNames[alias] = 1
|
||||
|
||||
# Sanity check #2. If single-key is turned on, go through all of
|
||||
# the image names (including aliases) (we just built the list) and
|
||||
# see if single-key will still work.
|
||||
if lilo.testEntry('single-key'):
|
||||
singleKeys = {}
|
||||
turnOff = 0
|
||||
for label in imageNames.keys():
|
||||
l = label[0]
|
||||
if singleKeys.has_key(l):
|
||||
turnOff = 1
|
||||
singleKeys[l] = 1
|
||||
if turnOff:
|
||||
lilo.delEntry('single-key')
|
||||
|
||||
return lilo
|
||||
|
||||
def write(self, instRoot, bl, kernelList, chainList, defaultDev):
|
||||
rc = 0
|
||||
|
||||
if len(kernelList) >= 1:
|
||||
config = self.getBootloaderConfig(instRoot, bl,
|
||||
kernelList, chainList,
|
||||
defaultDev)
|
||||
rc = config.write(instRoot + self.configfile, perms = self.perms)
|
||||
else:
|
||||
raise booty.BootyNoKernelWarning
|
||||
|
||||
return rc
|
||||
|
||||
def getArgList(self):
|
||||
args = []
|
||||
|
||||
if self.defaultDevice is None:
|
||||
args.append("--location=none")
|
||||
return args
|
||||
|
||||
args.append("--location=%s" % (self.defaultDevice,))
|
||||
args.append("--driveorder=%s" % (",".join(self.drivelist)))
|
||||
|
||||
if self.args.getNoDracut():
|
||||
args.append("--append=\"%s\"" %(self.args.getNoDracut()))
|
||||
|
||||
return args
|
||||
|
||||
def writeKS(self, f):
|
||||
f.write("bootloader")
|
||||
for arg in self.getArgList():
|
||||
f.write(" " + arg)
|
||||
f.write("\n")
|
||||
|
||||
def updateDriveList(self, sortedList=[]):
|
||||
# bootloader is unusual in that we only want to look at disks that
|
||||
# have disklabels -- no partitioned md or unpartitioned disks
|
||||
disks = self.storage.disks
|
||||
partitioned = self.storage.partitioned
|
||||
self._drivelist = [d.name for d in disks if d in partitioned]
|
||||
self._drivelist.sort(self.storage.compareDisks)
|
||||
|
||||
# If we're given a sort order, make sure the drives listed in it
|
||||
# are put at the head of the drivelist in that order. All other
|
||||
# drives follow behind in whatever order they're found.
|
||||
if sortedList != []:
|
||||
revSortedList = sortedList
|
||||
revSortedList.reverse()
|
||||
|
||||
for i in revSortedList:
|
||||
try:
|
||||
ele = self._drivelist.pop(self._drivelist.index(i))
|
||||
self._drivelist.insert(0, ele)
|
||||
except:
|
||||
pass
|
||||
|
||||
def _getDriveList(self):
|
||||
if self._drivelist is not None:
|
||||
return self._drivelist
|
||||
self.updateDriveList()
|
||||
return self._drivelist
|
||||
def _setDriveList(self, val):
|
||||
self._drivelist = val
|
||||
drivelist = property(_getDriveList, _setDriveList)
|
||||
|
||||
def __init__(self, anaconda):
|
||||
self.args = KernelArguments(anaconda)
|
||||
self.images = BootImages()
|
||||
self.device = None
|
||||
self.defaultDevice = None # XXX hack, used by kickstart
|
||||
self.useGrubVal = 0 # only used on x86
|
||||
self._configdir = None
|
||||
self._configname = None
|
||||
self.kernelLocation = "/boot/"
|
||||
self.password = None
|
||||
self.pure = None
|
||||
self.above1024 = 0
|
||||
self.timeout = None
|
||||
self.storage = anaconda.storage
|
||||
|
||||
# this has somewhat strange semantics. if 0, act like a normal
|
||||
# "install" case. if 1, update lilo.conf (since grubby won't do that)
|
||||
# and then run lilo or grub only.
|
||||
# XXX THIS IS A HACK. implementation details are only there for x86
|
||||
self.doUpgradeOnly = 0
|
||||
self.kickstart = 0
|
||||
|
||||
self._drivelist = None
|
||||
|
||||
if flags.serial != 0:
|
||||
options = ""
|
||||
device = ""
|
||||
console = flags.cmdline.get("console", "")
|
||||
|
||||
# the options are everything after the comma
|
||||
comma = console.find(",")
|
||||
if comma != -1:
|
||||
options = console[comma:]
|
||||
device = console[:comma]
|
||||
else:
|
||||
device = console
|
||||
|
||||
if not device and iutil.isIA64():
|
||||
self.serialDevice = "ttyS0"
|
||||
self.serialOptions = ""
|
||||
else:
|
||||
self.serialDevice = device
|
||||
# don't keep the comma in the options
|
||||
self.serialOptions = options[1:]
|
||||
|
||||
if self.serialDevice:
|
||||
self.args.append("console=%s%s" %(self.serialDevice, options))
|
||||
self.serial = 1
|
||||
self.timeout = 5
|
||||
else:
|
||||
self.serial = 0
|
||||
self.serialDevice = None
|
||||
self.serialOptions = None
|
||||
|
||||
if flags.virtpconsole is not None:
|
||||
if flags.virtpconsole.startswith("/dev/"):
|
||||
con = flags.virtpconsole[5:]
|
||||
else:
|
||||
con = flags.virtpconsole
|
||||
self.args.append("console=%s" %(con,))
|
||||
|
||||
class efiBootloaderInfo(bootloaderInfo):
|
||||
def getBootloaderName(self):
|
||||
return self._bootloader
|
||||
bootloader = property(getBootloaderName, None, None, \
|
||||
"name of the bootloader to install")
|
||||
|
||||
# XXX wouldn't it be nice to have a real interface to use efibootmgr from?
|
||||
def removeOldEfiEntries(self, instRoot):
|
||||
p = os.pipe()
|
||||
rc = iutil.execWithRedirect('/usr/sbin/efibootmgr', [],
|
||||
root = instRoot, stdout = p[1])
|
||||
os.close(p[1])
|
||||
if rc:
|
||||
return rc
|
||||
|
||||
c = os.read(p[0], 1)
|
||||
buf = c
|
||||
while (c):
|
||||
c = os.read(p[0], 1)
|
||||
buf = buf + c
|
||||
os.close(p[0])
|
||||
lines = string.split(buf, '\n')
|
||||
for line in lines:
|
||||
fields = string.split(line)
|
||||
if len(fields) < 2:
|
||||
continue
|
||||
if string.join(fields[1:], " ") == productName:
|
||||
entry = fields[0][4:8]
|
||||
rc = iutil.execWithRedirect('/usr/sbin/efibootmgr',
|
||||
["-b", entry, "-B"],
|
||||
root = instRoot,
|
||||
stdout="/dev/tty5", stderr="/dev/tty5")
|
||||
if rc:
|
||||
return rc
|
||||
|
||||
return 0
|
||||
|
||||
def addNewEfiEntry(self, instRoot):
|
||||
try:
|
||||
bootdev = self.storage.mountpoints["/boot/efi"].name
|
||||
except:
|
||||
bootdev = "sda1"
|
||||
|
||||
link = "%s%s/%s" % (instRoot, "/etc/", self.configname)
|
||||
if not os.access(link, os.R_OK):
|
||||
os.symlink("../%s" % (self.configfile), link)
|
||||
|
||||
ind = len(bootdev)
|
||||
try:
|
||||
while (bootdev[ind-1] in string.digits):
|
||||
ind = ind - 1
|
||||
except IndexError:
|
||||
ind = len(bootdev) - 1
|
||||
|
||||
bootdisk = bootdev[:ind]
|
||||
bootpart = bootdev[ind:]
|
||||
if (bootdisk.startswith('ida/') or bootdisk.startswith('cciss/') or
|
||||
bootdisk.startswith('rd/') or bootdisk.startswith('sx8/')):
|
||||
bootdisk = bootdisk[:-1]
|
||||
|
||||
argv = [ "/usr/sbin/efibootmgr", "-c" , "-w", "-L",
|
||||
productName, "-d", "/dev/%s" % bootdisk,
|
||||
"-p", bootpart, "-l", "\\EFI\\redhat\\" + self.bootloader ]
|
||||
rc = iutil.execWithRedirect(argv[0], argv[1:], root = instRoot,
|
||||
stdout = "/dev/tty5",
|
||||
stderr = "/dev/tty5")
|
||||
return rc
|
||||
|
||||
def installGrub(self, instRoot, bootDev, grubTarget, grubPath, cfPath):
|
||||
if not iutil.isEfi():
|
||||
raise EnvironmentError
|
||||
rc = self.removeOldEfiEntries(instRoot)
|
||||
if rc:
|
||||
return rc
|
||||
return self.addNewEfiEntry(instRoot)
|
||||
|
||||
def __init__(self, anaconda, initialize = True):
|
||||
if initialize:
|
||||
bootloaderInfo.__init__(self, anaconda)
|
||||
else:
|
||||
self.storage = anaconda.storage
|
||||
|
||||
if iutil.isEfi():
|
||||
self._configdir = "/boot/efi/EFI/redhat"
|
||||
self._configname = "grub.conf"
|
||||
self._bootloader = "grub.efi"
|
||||
self.useGrubVal = 1
|
||||
self.kernelLocation = ""
|
207
anaconda/booty/checkbootloader.py
Normal file
207
anaconda/booty/checkbootloader.py
Normal file
@ -0,0 +1,207 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# Check to see whether it looks like GRUB or LILO is the boot loader
|
||||
# being used on the system.
|
||||
#
|
||||
# Jeremy Katz <katzj@redhat.com>
|
||||
# Peter Jones <pjones@redhat.com>
|
||||
#
|
||||
# Copyright 2001,2005 Red Hat, Inc.
|
||||
#
|
||||
# This software may be freely redistributed under the terms of the GNU
|
||||
# library public license.
|
||||
#
|
||||
# You should have received a copy of the GNU Library Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
import os
|
||||
import string
|
||||
|
||||
from util import getDiskPart
|
||||
import iutil
|
||||
|
||||
grubConfigFile = "/etc/grub.conf"
|
||||
liloConfigFile = "/etc/lilo.conf"
|
||||
yabootConfigFile = "/etc/yaboot.conf"
|
||||
siloConfigFile = "/etc/silo.conf"
|
||||
|
||||
def getRaidDisks(raidDevice, storage, raidLevel=None, stripPart=1):
|
||||
rc = []
|
||||
if raidLevel is not None:
|
||||
try:
|
||||
raidLevel = "raid%d" % (int(raidLevel),)
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
try:
|
||||
f = open("/proc/mdstat", "r")
|
||||
lines = f.readlines()
|
||||
f.close()
|
||||
except:
|
||||
return rc
|
||||
|
||||
for line in lines:
|
||||
fields = string.split(line, ' ')
|
||||
if fields[0] == raidDevice:
|
||||
if raidLevel is not None and fields[3] != raidLevel:
|
||||
continue
|
||||
for field in fields[4:]:
|
||||
if string.find(field, "[") == -1:
|
||||
continue
|
||||
dev = string.split(field, '[')[0]
|
||||
if len(dev) == 0:
|
||||
continue
|
||||
if stripPart:
|
||||
disk = getDiskPart(dev, storage)[0]
|
||||
rc.append(disk)
|
||||
else:
|
||||
rc.append(dev)
|
||||
|
||||
return rc
|
||||
|
||||
|
||||
def getBootBlock(bootDev, instRoot, storage, seekBlocks=0):
|
||||
"""Get the boot block from bootDev. Return a 512 byte string."""
|
||||
block = " " * 512
|
||||
if bootDev is None:
|
||||
return block
|
||||
|
||||
# get the devices in the raid device
|
||||
if bootDev[5:7] == "md":
|
||||
bootDevs = getRaidDisks(bootDev[5:], storage)
|
||||
bootDevs.sort()
|
||||
else:
|
||||
bootDevs = [ bootDev[5:] ]
|
||||
|
||||
# FIXME: this is kind of a hack
|
||||
# look at all of the devs in the raid device until we can read the
|
||||
# boot block for one of them. should do this better at some point
|
||||
# by looking at all of the drives properly
|
||||
for dev in bootDevs:
|
||||
try:
|
||||
fd = os.open("%s/dev/%s" % (instRoot, dev), os.O_RDONLY)
|
||||
if seekBlocks > 0:
|
||||
os.lseek(fd, seekBlocks * 512, 0)
|
||||
block = os.read(fd, 512)
|
||||
os.close(fd)
|
||||
return block
|
||||
except:
|
||||
pass
|
||||
return block
|
||||
|
||||
# takes a line like #boot=/dev/hda and returns /dev/hda
|
||||
# also handles cases like quoted versions and other nonsense
|
||||
def getBootDevString(line):
|
||||
dev = string.split(line, '=')[1]
|
||||
dev = string.strip(dev)
|
||||
dev = string.replace(dev, '"', '')
|
||||
dev = string.replace(dev, "'", "")
|
||||
return dev
|
||||
|
||||
def getBootDevList(line):
|
||||
devs = string.split(line, '=')[1]
|
||||
rets = []
|
||||
for dev in devs:
|
||||
dev = getBootDevString("=%s" % (dev,))
|
||||
rets.append(dev)
|
||||
return string.join(rets)
|
||||
|
||||
def getBootloaderTypeAndBoot(instRoot, storage):
|
||||
haveGrubConf = 1
|
||||
haveLiloConf = 1
|
||||
haveYabootConf = 1
|
||||
haveSiloConf = 1
|
||||
|
||||
bootDev = None
|
||||
|
||||
# make sure they have the config file, otherwise we definitely can't
|
||||
# use that bootloader
|
||||
if not os.access(instRoot + grubConfigFile, os.R_OK):
|
||||
haveGrubConf = 0
|
||||
if not os.access(instRoot + liloConfigFile, os.R_OK):
|
||||
haveLiloConf = 0
|
||||
if not os.access(instRoot + yabootConfigFile, os.R_OK):
|
||||
haveYabootConf = 0
|
||||
if not os.access(instRoot + siloConfigFile, os.R_OK):
|
||||
haveSiloConf = 0
|
||||
|
||||
if haveGrubConf:
|
||||
bootDev = None
|
||||
for (fn, stanza) in [ ("/etc/sysconfig/grub", "boot="),
|
||||
(grubConfigFile, "#boot=") ]:
|
||||
try:
|
||||
f = open(instRoot + fn, "r")
|
||||
except:
|
||||
continue
|
||||
|
||||
# the following bits of code are straight from checkbootloader.py
|
||||
lines = f.readlines()
|
||||
f.close()
|
||||
for line in lines:
|
||||
if line.startswith(stanza):
|
||||
bootDev = getBootDevString(line)
|
||||
break
|
||||
if bootDev is not None:
|
||||
break
|
||||
|
||||
if iutil.isEfi():
|
||||
return ("GRUB", bootDev)
|
||||
|
||||
if bootDev is not None:
|
||||
block = getBootBlock(bootDev, instRoot, storage)
|
||||
# XXX I don't like this, but it's what the maintainer suggested :(
|
||||
if string.find(block, "GRUB") >= 0:
|
||||
return ("GRUB", bootDev)
|
||||
|
||||
if haveLiloConf:
|
||||
f = open(instRoot + liloConfigFile, "r")
|
||||
lines = f.readlines()
|
||||
for line in lines:
|
||||
if line[0:5] == "boot=":
|
||||
bootDev = getBootDevString(line)
|
||||
break
|
||||
|
||||
block = getBootBlock(bootDev, instRoot, storage)
|
||||
# this at least is well-defined
|
||||
if block[6:10] == "LILO":
|
||||
return ("LILO", bootDev)
|
||||
|
||||
if haveYabootConf:
|
||||
f = open(instRoot + yabootConfigFile, "r")
|
||||
lines = f.readlines()
|
||||
for line in lines:
|
||||
if line[0:5] == "boot=":
|
||||
bootDev = getBootDevList(line)
|
||||
|
||||
if bootDev:
|
||||
return ("YABOOT", bootDev)
|
||||
|
||||
if haveSiloConf:
|
||||
bootDev = None
|
||||
# We've never done the /etc/sysconfig/silo thing, but maybe
|
||||
# we should start...
|
||||
for (fn, stanza) in [ ("/etc/sysconfig/silo", "boot="),
|
||||
(grubConfigFile, "#boot=") ]:
|
||||
try:
|
||||
f = open(instRoot + fn, "r")
|
||||
except:
|
||||
continue
|
||||
|
||||
lines = f.readlines()
|
||||
f.close()
|
||||
for line in lines:
|
||||
if line.startswith(stanza):
|
||||
bootDev = getBootDevString(line)
|
||||
break
|
||||
if bootDev is not None:
|
||||
break
|
||||
|
||||
if bootDev is not None:
|
||||
# XXX SILO sucks just like grub.
|
||||
if getDiskPart(bootDev, storage)[1] != 3:
|
||||
block = getBootBlock(bootDev, instRoot, storage, 1)
|
||||
if block[24:28] == "SILO":
|
||||
return ("SILO", bootDev)
|
||||
|
||||
return (None, None)
|
38
anaconda/booty/ia64.py
Normal file
38
anaconda/booty/ia64.py
Normal file
@ -0,0 +1,38 @@
|
||||
from booty import BootyNoKernelWarning
|
||||
from bootloaderInfo import *
|
||||
|
||||
class ia64BootloaderInfo(efiBootloaderInfo):
|
||||
def getBootloaderConfig(self, instRoot, bl, kernelList,
|
||||
chainList, defaultDev):
|
||||
config = bootloaderInfo.getBootloaderConfig(self, instRoot,
|
||||
bl, kernelList, chainList,
|
||||
defaultDev)
|
||||
# altix boxes need relocatable (#120851)
|
||||
config.addEntry("relocatable")
|
||||
|
||||
return config
|
||||
|
||||
def writeLilo(self, instRoot, bl, kernelList,
|
||||
chainList, defaultDev):
|
||||
config = self.getBootloaderConfig(instRoot, bl,
|
||||
kernelList, chainList, defaultDev)
|
||||
return config.write(instRoot + self.configfile, perms = 0755)
|
||||
|
||||
def write(self, instRoot, bl, kernelList, chainList, defaultDev):
|
||||
if len(kernelList) >= 1:
|
||||
rc = self.writeLilo(instRoot, bl, kernelList,
|
||||
chainList, defaultDev)
|
||||
if rc:
|
||||
return rc
|
||||
else:
|
||||
raise BootyNoKernelWarning
|
||||
|
||||
rc = self.removeOldEfiEntries(instRoot)
|
||||
if rc:
|
||||
return rc
|
||||
return self.addNewEfiEntry(instRoot)
|
||||
|
||||
def __init__(self, anaconda):
|
||||
efiBootloaderInfo.__init__(self, anaconda)
|
||||
self._configname = "elilo.conf"
|
||||
self._bootloader = "elilo.efi"
|
308
anaconda/booty/lilo.py
Normal file
308
anaconda/booty/lilo.py
Normal file
@ -0,0 +1,308 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# Module for manipulation of lilo.conf files. Original found
|
||||
# in the anaconda installer
|
||||
# Copyright (c) 1999-2001 Red Hat, Inc. Distributed under GPL.
|
||||
#
|
||||
# Author: Matt Wilson <msw@redhat.com>
|
||||
# Eric Troan <ewt@redhat.com>
|
||||
# Adrian Likins <alikins@redhat.com>
|
||||
"""Module for manipulation of lilo.conf files."""
|
||||
import string
|
||||
import os
|
||||
|
||||
from UserDict import UserDict
|
||||
|
||||
|
||||
class UserDictCase(UserDict):
|
||||
"""A dictionary with case insensitive keys"""
|
||||
def __init__(self, data = {}):
|
||||
UserDict.__init__(self)
|
||||
# if we are passed a dictionary transfer it over...
|
||||
for k in data.keys():
|
||||
kl = string.lower(k)
|
||||
self.data[kl] = data[k]
|
||||
# some methods used to make the class work as a dictionary
|
||||
def __setitem__(self, key, value):
|
||||
key = string.lower(key)
|
||||
self.data[key] = value
|
||||
def __getitem__(self, key):
|
||||
key = string.lower(key)
|
||||
if not self.data.has_key(key):
|
||||
return None
|
||||
return self.data[key]
|
||||
get = __getitem__
|
||||
def __delitem__(self, key):
|
||||
key = string.lower(key)
|
||||
del self.data[key]
|
||||
def has_key(self, key):
|
||||
key = string.lower(key)
|
||||
return self.data.has_key(key)
|
||||
# return this data as a real hash
|
||||
def get_hash(self):
|
||||
return self.data
|
||||
# return the data for marshalling
|
||||
def __getstate__(self):
|
||||
return self.data
|
||||
# we need a setstate because of the __getstate__ presence screws up deepcopy
|
||||
def __setstate__(self, state):
|
||||
self.__init__(state)
|
||||
# get a dictionary out of this instance ({}.update doesn't get instances)
|
||||
def dict(self):
|
||||
return self.data
|
||||
|
||||
class LiloConfigFile:
|
||||
"""class representing a lilo.conf lilo configuration file. Used to
|
||||
manipulate the file directly"""
|
||||
|
||||
def __repr__ (self, tab = 0):
|
||||
s = ""
|
||||
for n in self.order:
|
||||
if (tab):
|
||||
s = s + '\t'
|
||||
if n[0] == '#':
|
||||
s = s + n[1:]
|
||||
else:
|
||||
s = s + n
|
||||
if self.items[n]:
|
||||
s = s + "=" + self.items[n]
|
||||
s = s + '\n'
|
||||
for count in range(len(self.diskRemaps)):
|
||||
s = s + "disk = %s\n" % self.diskRemaps[count][1]
|
||||
s = s + "\tbios = %s\n" % self.biosRemaps[count][1]
|
||||
for cl in self.images:
|
||||
s = s + "\n%s=%s\n" % (cl.imageType, cl.path)
|
||||
s = s + cl.__repr__(1)
|
||||
return s
|
||||
|
||||
def addEntry(self, item, val = None, replace = 1):
|
||||
if not self.items.has_key(item):
|
||||
self.order.append(item)
|
||||
elif not replace:
|
||||
return
|
||||
|
||||
if (val):
|
||||
self.items[item] = str(val)
|
||||
else:
|
||||
self.items[item] = None
|
||||
|
||||
def getEntry(self, item):
|
||||
if self.items.has_key(item):
|
||||
return self.items[item]
|
||||
else:
|
||||
return None
|
||||
|
||||
def delEntry(self, item):
|
||||
newOrder = []
|
||||
for i in self.order:
|
||||
if item != i: newOrder.append(i)
|
||||
self.order = newOrder
|
||||
|
||||
del self.items[item]
|
||||
|
||||
def listEntries(self):
|
||||
foo = self.items
|
||||
return foo
|
||||
|
||||
def testEntry(self, item):
|
||||
if self.items.has_key(item):
|
||||
return 1
|
||||
else:
|
||||
return 0
|
||||
|
||||
def getImage(self, label):
|
||||
for config in self.images:
|
||||
# sanity check
|
||||
if label is None:
|
||||
break
|
||||
if config.getEntry('label'):
|
||||
if string.lower(config.getEntry('label')) == string.lower(label):
|
||||
return (config.imageType, config, config.path, config.other)
|
||||
if config.getEntry('alias'):
|
||||
if string.lower(config.getEntry('alias')) == string.lower(label):
|
||||
return (config.imageType, config, config.path, config.other)
|
||||
|
||||
|
||||
raise IndexError, "unknown image %s" % (label)
|
||||
|
||||
def addImage (self, config,first=None):
|
||||
# make sure the config has a valid label
|
||||
config.getEntry('label')
|
||||
if not config.path or not config.imageType:
|
||||
raise ValueError, "subconfig missing path or image type"
|
||||
|
||||
if first:
|
||||
self.images = [config] + self.images
|
||||
else:
|
||||
self.images.append(config)
|
||||
|
||||
def delImage (self, label):
|
||||
for config in self.images:
|
||||
# sanity check
|
||||
if label is None:
|
||||
break
|
||||
if config.getEntry('label'):
|
||||
if string.lower(config.getEntry('label')) == string.lower(label):
|
||||
self.images.remove (config)
|
||||
return
|
||||
|
||||
raise IndexError, "unknown image %s" % (label,)
|
||||
|
||||
def getDefault (self):
|
||||
default = None
|
||||
try:
|
||||
default = self.getEntry("default")
|
||||
except:
|
||||
pass
|
||||
|
||||
if not default:
|
||||
default = self.listImages()[0]
|
||||
|
||||
theDefault = self.getImage(default)
|
||||
|
||||
return theDefault[1]
|
||||
|
||||
def getDefaultLinux (self):
|
||||
defaultIsOther = None
|
||||
|
||||
# XXX ick... this code badly needs work =\
|
||||
theDefault = self.getDefault()
|
||||
|
||||
if theDefault.other:
|
||||
defaultIsOther = 1
|
||||
|
||||
# if the default is other, look for the first linux image
|
||||
if theDefault.other:
|
||||
for image_label in self.listImages():
|
||||
image = self.getImage(image_label)[1]
|
||||
if not image.other:
|
||||
theDefault = image
|
||||
break
|
||||
|
||||
# if we get here and are *still* an other, then we have no linux
|
||||
# images. ick
|
||||
if theDefault.other:
|
||||
return None
|
||||
else:
|
||||
return theDefault
|
||||
|
||||
def listImages (self):
|
||||
l = []
|
||||
for config in self.images:
|
||||
l.append(config.getEntry('label'))
|
||||
return l
|
||||
|
||||
def listAliases (self):
|
||||
l = []
|
||||
for config in self.images:
|
||||
if config.getEntry('alias'):
|
||||
l.append(config.getEntry('alias'))
|
||||
return l
|
||||
|
||||
def getPath (self):
|
||||
return self.path
|
||||
|
||||
def write(self, file, perms = 0644):
|
||||
f = open(file, "w")
|
||||
f.write(self.__repr__())
|
||||
f.close()
|
||||
os.chmod(file, perms)
|
||||
|
||||
def read (self, file):
|
||||
f = open(file, "r")
|
||||
image = None
|
||||
for l in f.readlines():
|
||||
l = l[:-1]
|
||||
orig = l
|
||||
while (l and (l[0] == ' ' or l[0] == '\t')):
|
||||
l = l[1:]
|
||||
if not l:
|
||||
continue
|
||||
if l[0] == '#' and not image:
|
||||
self.order.append('#' + orig)
|
||||
continue
|
||||
fields = string.split(l, '=', 1)
|
||||
if l[0] == '#' and image:
|
||||
args = ('#' + l,)
|
||||
elif (len(fields) == 2):
|
||||
f0 = string.strip (fields [0])
|
||||
f1 = string.strip (fields [1])
|
||||
if (f0 != "append"):
|
||||
# people are silly and put quotes brokenly in their
|
||||
# lilo.conf but you have to use them for append. ARGH!
|
||||
f1 = string.replace(f1, '"', '')
|
||||
f1 = string.replace(f1, "'", "")
|
||||
if (f0 == "image" or f0 == "other"):
|
||||
if image: self.addImage(image)
|
||||
image = LiloConfigFile(imageType = f0,
|
||||
path = f1)
|
||||
if (f0 == "other"):
|
||||
image.other = 1
|
||||
args = None
|
||||
else:
|
||||
args = (f0, f1)
|
||||
if (f0 == "disk"):
|
||||
self.diskRemaps.append((f0,f1))
|
||||
args = None
|
||||
if (f0 == "bios"):
|
||||
self.biosRemaps.append((f0,f1))
|
||||
args = None
|
||||
|
||||
else:
|
||||
args = (string.strip (l),)
|
||||
|
||||
if (args and image):
|
||||
apply(image.addEntry, args)
|
||||
elif args:
|
||||
apply(self.addEntry, args)
|
||||
|
||||
if image: self.addImage(image)
|
||||
|
||||
f.close()
|
||||
|
||||
def __init__(self, imageType = None, path = None):
|
||||
self.imageType = imageType
|
||||
self.path = path
|
||||
self.order = []
|
||||
self.images = []
|
||||
self.other = None
|
||||
self.items = UserDictCase()
|
||||
self.biosRemaps = []
|
||||
self.diskRemaps = []
|
||||
self.unsupported = []
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
#sys.path.append("")
|
||||
config = LiloConfigFile ()
|
||||
config.read ('/etc/lilo.conf')
|
||||
print config
|
||||
print "image list", config.listImages()
|
||||
config.delImage ('linux')
|
||||
print '----------------------------------'
|
||||
config = LiloConfigFile ()
|
||||
config.read ('/etc/lilo.conf')
|
||||
print config
|
||||
print '----------------------------------'
|
||||
print '----------------------------------'
|
||||
print "list images"
|
||||
print config.listImages()
|
||||
print config.getImage('linux')
|
||||
print "----------------------------------"
|
||||
print "addimage (testlinux)"
|
||||
blip = """
|
||||
read-only
|
||||
blippy-blob=sdfsdf
|
||||
append=\"sdfasdfasdf\"
|
||||
root=/dev/hda6
|
||||
"""
|
||||
sl = LiloConfigFile(imageType = "image", path="/boot/somevmlinuz-2.4.0")
|
||||
sl.addEntry("label", "newkernel")
|
||||
sl.addEntry("initrd", "blipppy")
|
||||
config.addImage(sl)
|
||||
|
||||
print '-------------------------------------'
|
||||
print "writing out /tmp/lilo.conf"
|
||||
print config.write("/tmp/lilo.conf")
|
||||
print config
|
180
anaconda/booty/ppc.py
Normal file
180
anaconda/booty/ppc.py
Normal file
@ -0,0 +1,180 @@
|
||||
import string
|
||||
import os
|
||||
|
||||
from booty import BootyNoKernelWarning
|
||||
from util import getDiskPart
|
||||
from bootloaderInfo import *
|
||||
import iutil
|
||||
|
||||
class ppcBootloaderInfo(bootloaderInfo):
|
||||
def getBootDevs(self, bl):
|
||||
import parted
|
||||
|
||||
retval = []
|
||||
machine = iutil.getPPCMachine()
|
||||
|
||||
if machine == 'pSeries':
|
||||
for dev in self.storage.fsset.devices:
|
||||
if dev.format.type == "prepboot":
|
||||
retval.append(dev.path)
|
||||
elif machine == 'PMac':
|
||||
for dev in self.storage.fsset.devices:
|
||||
if dev.format.type == "hfs" and dev.format.bootable:
|
||||
retval.append(dev.path)
|
||||
|
||||
if len(retval) == 0:
|
||||
# Try to get a boot device; bplan OF understands ext3
|
||||
if machine == 'Pegasos' or machine == 'Efika':
|
||||
try:
|
||||
device = self.storage.mountpoints["/boot"]
|
||||
except KeyError:
|
||||
# Try / if we don't have this we're not going to work
|
||||
device = self.storage.rootDevice
|
||||
|
||||
retval.append(device.path)
|
||||
else:
|
||||
if bl.getDevice():
|
||||
d = bl.getDevice()
|
||||
retval.append(self.storage.devicetree.getDeviceByName(d).path)
|
||||
|
||||
return retval
|
||||
|
||||
def writeYaboot(self, instRoot, bl, kernelList,
|
||||
chainList, defaultDev):
|
||||
|
||||
yabootTarget = string.join(self.getBootDevs(bl))
|
||||
|
||||
try:
|
||||
bootDev = self.storage.mountpoints["/boot"]
|
||||
|
||||
cf = "/boot/etc/yaboot.conf"
|
||||
cfPath = ""
|
||||
if not os.path.isdir(instRoot + "/boot/etc"):
|
||||
os.mkdir(instRoot + "/boot/etc")
|
||||
except KeyError:
|
||||
bootDev = self.storage.rootDevice
|
||||
|
||||
cfPath = "/boot"
|
||||
cf = "/etc/yaboot.conf"
|
||||
|
||||
f = open(instRoot + cf, "w+")
|
||||
|
||||
f.write("# yaboot.conf generated by anaconda\n\n")
|
||||
f.write("boot=%s\n" %(yabootTarget,))
|
||||
f.write("init-message=\"Welcome to %s!\\nHit <TAB> for boot options\"\n\n"
|
||||
% productName)
|
||||
|
||||
f.write("partition=%s\n" % bootDev.partedPartition.number)
|
||||
f.write("timeout=%s\n" % (self.timeout or 80))
|
||||
f.write("install=/usr/lib/yaboot/yaboot\n")
|
||||
f.write("delay=5\n")
|
||||
f.write("enablecdboot\n")
|
||||
f.write("enableofboot\n")
|
||||
f.write("enablenetboot\n")
|
||||
|
||||
yabootProg = "/sbin/mkofboot"
|
||||
if iutil.getPPCMachine() == "PMac":
|
||||
# write out the first hfs/hfs+ partition as being macosx
|
||||
for (label, longlabel, device) in chainList:
|
||||
if ((not label) or (label == "")):
|
||||
continue
|
||||
f.write("macosx=/dev/%s\n" %(device,))
|
||||
break
|
||||
|
||||
f.write("magicboot=/usr/lib/yaboot/ofboot\n")
|
||||
|
||||
elif iutil.getPPCMachine() == "pSeries":
|
||||
f.write("nonvram\n")
|
||||
f.write("fstype=raw\n")
|
||||
|
||||
else: # Default non-destructive case for anything else.
|
||||
f.write("nonvram\n")
|
||||
f.write("mntpoint=/boot/yaboot\n")
|
||||
f.write("usemount\n")
|
||||
if not os.access(instRoot + "/boot/yaboot", os.R_OK):
|
||||
os.mkdir(instRoot + "/boot/yaboot")
|
||||
yabootProg = "/sbin/ybin"
|
||||
|
||||
if self.password:
|
||||
f.write("password=%s\n" %(self.password,))
|
||||
f.write("restricted\n")
|
||||
|
||||
f.write("\n")
|
||||
|
||||
rootDev = self.storage.rootDevice
|
||||
|
||||
for (label, longlabel, version) in kernelList:
|
||||
kernelTag = "-" + version
|
||||
kernelFile = "%s/vmlinuz%s" %(cfPath, kernelTag)
|
||||
|
||||
f.write("image=%s\n" %(kernelFile,))
|
||||
f.write("\tlabel=%s\n" %(label,))
|
||||
f.write("\tread-only\n")
|
||||
|
||||
initrd = self.makeInitrd(kernelTag, instRoot)
|
||||
if initrd:
|
||||
f.write("\tinitrd=%s/%s\n" %(cfPath, initrd))
|
||||
|
||||
append = "%s" %(self.args.get(),)
|
||||
|
||||
realroot = rootDev.fstabSpec
|
||||
if rootIsDevice(realroot):
|
||||
f.write("\troot=%s\n" %(realroot,))
|
||||
else:
|
||||
if len(append) > 0:
|
||||
append = "%s root=%s" %(append,realroot)
|
||||
else:
|
||||
append = "root=%s" %(realroot,)
|
||||
|
||||
if len(append) > 0:
|
||||
f.write("\tappend=\"%s\"\n" %(append,))
|
||||
f.write("\n")
|
||||
|
||||
f.close()
|
||||
os.chmod(instRoot + cf, 0600)
|
||||
|
||||
# FIXME: hack to make sure things are written to disk
|
||||
import isys
|
||||
isys.sync()
|
||||
isys.sync()
|
||||
isys.sync()
|
||||
|
||||
ybinargs = [ yabootProg, "-f", "-C", cf ]
|
||||
|
||||
rc = iutil.execWithRedirect(ybinargs[0],
|
||||
ybinargs[1:],
|
||||
stdout = "/dev/tty5",
|
||||
stderr = "/dev/tty5",
|
||||
root = instRoot)
|
||||
if rc:
|
||||
return rc
|
||||
|
||||
if (not os.access(instRoot + "/etc/yaboot.conf", os.R_OK) and
|
||||
os.access(instRoot + "/boot/etc/yaboot.conf", os.R_OK)):
|
||||
os.symlink("../boot/etc/yaboot.conf",
|
||||
instRoot + "/etc/yaboot.conf")
|
||||
|
||||
return 0
|
||||
|
||||
def setPassword(self, val, isCrypted = 1):
|
||||
# yaboot just handles the password and doesn't care if its crypted
|
||||
# or not
|
||||
self.password = val
|
||||
|
||||
def write(self, instRoot, bl, kernelList, chainList, defaultDev):
|
||||
if len(kernelList) >= 1:
|
||||
rc = self.writeYaboot(instRoot, bl, kernelList,
|
||||
chainList, defaultDev)
|
||||
if rc:
|
||||
return rc
|
||||
else:
|
||||
raise BootyNoKernelWarning
|
||||
|
||||
return 0
|
||||
|
||||
def __init__(self, anaconda):
|
||||
bootloaderInfo.__init__(self, anaconda)
|
||||
self.useYabootVal = 1
|
||||
self.kernelLocation = "/boot"
|
||||
self._configdir = "/etc"
|
||||
self._configname = "yaboot.conf"
|
178
anaconda/booty/s390.py
Normal file
178
anaconda/booty/s390.py
Normal file
@ -0,0 +1,178 @@
|
||||
import os
|
||||
|
||||
from bootloaderInfo import *
|
||||
import iutil
|
||||
|
||||
class s390BootloaderInfo(bootloaderInfo):
|
||||
def getBootloaderConfig(self, instRoot, bl, kernelList,
|
||||
chainList, defaultDev):
|
||||
# on upgrade read in the lilo config file
|
||||
lilo = LiloConfigFile ()
|
||||
self.perms = 0600
|
||||
confFile = instRoot + self.configfile
|
||||
|
||||
if os.access (confFile, os.R_OK):
|
||||
self.perms = os.stat(confFile)[0] & 0777
|
||||
lilo.read(confFile)
|
||||
os.rename(confFile, confFile + ".rpmsave")
|
||||
|
||||
# Remove any invalid entries that are in the file; we probably
|
||||
# just removed those kernels.
|
||||
for label in lilo.listImages():
|
||||
(fsType, sl, path, other) = lilo.getImage(label)
|
||||
if fsType == "other": continue
|
||||
|
||||
if not os.access(instRoot + sl.getPath(), os.R_OK):
|
||||
lilo.delImage(label)
|
||||
|
||||
rootDev = self.storage.rootDevice
|
||||
|
||||
if rootDev.name == defaultDev.name:
|
||||
lilo.addEntry("default", kernelList[0][0])
|
||||
else:
|
||||
lilo.addEntry("default", chainList[0][0])
|
||||
|
||||
for (label, longlabel, version) in kernelList:
|
||||
kernelTag = "-" + version
|
||||
kernelFile = self.kernelLocation + "vmlinuz" + kernelTag
|
||||
|
||||
try:
|
||||
lilo.delImage(label)
|
||||
except IndexError, msg:
|
||||
pass
|
||||
|
||||
sl = LiloConfigFile(imageType = "image", path = kernelFile)
|
||||
|
||||
initrd = self.makeInitrd(kernelTag, instRoot)
|
||||
|
||||
sl.addEntry("label", label)
|
||||
if initrd:
|
||||
sl.addEntry("initrd", "%s%s" %(self.kernelLocation, initrd))
|
||||
|
||||
sl.addEntry("read-only")
|
||||
sl.addEntry("root", rootDev.path)
|
||||
sl.addEntry("ipldevice", rootDev.path[:-1])
|
||||
|
||||
if self.args.get():
|
||||
sl.addEntry('append', '"%s"' % self.args.get())
|
||||
|
||||
lilo.addImage (sl)
|
||||
|
||||
for (label, longlabel, device) in chainList:
|
||||
if ((not label) or (label == "")):
|
||||
continue
|
||||
try:
|
||||
(fsType, sl, path, other) = lilo.getImage(label)
|
||||
lilo.delImage(label)
|
||||
except IndexError:
|
||||
sl = LiloConfigFile(imageType = "other",
|
||||
path = "/dev/%s" %(device))
|
||||
sl.addEntry("optional")
|
||||
|
||||
sl.addEntry("label", label)
|
||||
lilo.addImage (sl)
|
||||
|
||||
# Sanity check #1. There could be aliases in sections which conflict
|
||||
# with the new images we just created. If so, erase those aliases
|
||||
imageNames = {}
|
||||
for label in lilo.listImages():
|
||||
imageNames[label] = 1
|
||||
|
||||
for label in lilo.listImages():
|
||||
(fsType, sl, path, other) = lilo.getImage(label)
|
||||
if sl.testEntry('alias'):
|
||||
alias = sl.getEntry('alias')
|
||||
if imageNames.has_key(alias):
|
||||
sl.delEntry('alias')
|
||||
imageNames[alias] = 1
|
||||
|
||||
# Sanity check #2. If single-key is turned on, go through all of
|
||||
# the image names (including aliases) (we just built the list) and
|
||||
# see if single-key will still work.
|
||||
if lilo.testEntry('single-key'):
|
||||
singleKeys = {}
|
||||
turnOff = 0
|
||||
for label in imageNames.keys():
|
||||
l = label[0]
|
||||
if singleKeys.has_key(l):
|
||||
turnOff = 1
|
||||
singleKeys[l] = 1
|
||||
if turnOff:
|
||||
lilo.delEntry('single-key')
|
||||
|
||||
return lilo
|
||||
|
||||
def writeChandevConf(self, bl, instroot): # S/390 only
|
||||
cf = "/etc/chandev.conf"
|
||||
self.perms = 0644
|
||||
if bl.args.chandevget():
|
||||
fd = os.open(instroot + "/etc/chandev.conf",
|
||||
os.O_WRONLY | os.O_CREAT)
|
||||
os.write(fd, "noauto\n")
|
||||
for cdev in bl.args.chandevget():
|
||||
os.write(fd,'%s\n' % cdev)
|
||||
os.close(fd)
|
||||
return ""
|
||||
|
||||
|
||||
def writeZipl(self, instRoot, bl, kernelList, chainList,
|
||||
defaultDev, justConfigFile):
|
||||
rootDev = self.storage.rootDevice
|
||||
|
||||
cf = '/etc/zipl.conf'
|
||||
self.perms = 0600
|
||||
if os.access (instRoot + cf, os.R_OK):
|
||||
self.perms = os.stat(instRoot + cf)[0] & 0777
|
||||
os.rename(instRoot + cf,
|
||||
instRoot + cf + '.rpmsave')
|
||||
|
||||
f = open(instRoot + cf, "w+")
|
||||
|
||||
f.write('[defaultboot]\n')
|
||||
f.write('default=' + kernelList[0][0] + '\n')
|
||||
f.write('target=%s\n' % (self.kernelLocation))
|
||||
|
||||
cfPath = "/boot/"
|
||||
for (label, longlabel, version) in kernelList:
|
||||
kernelTag = "-" + version
|
||||
kernelFile = "%svmlinuz%s" % (cfPath, kernelTag)
|
||||
|
||||
initrd = self.makeInitrd(kernelTag, instRoot)
|
||||
f.write('[%s]\n' % (label))
|
||||
f.write('\timage=%s\n' % (kernelFile))
|
||||
if initrd:
|
||||
f.write('\tramdisk=%s%s\n' %(self.kernelLocation, initrd))
|
||||
|
||||
realroot = rootDev.fstabSpec
|
||||
f.write('\tparameters="root=%s' %(realroot,))
|
||||
if bl.args.get():
|
||||
f.write(' %s' % (bl.args.get()))
|
||||
f.write('"\n')
|
||||
|
||||
f.close()
|
||||
|
||||
if not justConfigFile:
|
||||
rc = iutil.execWithRedirect("/sbin/zipl", [], root = instRoot,
|
||||
stdout = "/dev/stdout",
|
||||
stderr = "/dev/stderr")
|
||||
if rc:
|
||||
return rc
|
||||
|
||||
return 0
|
||||
|
||||
def write(self, instRoot, bl, kernelList, chainList,
|
||||
defaultDev):
|
||||
rc = self.writeZipl(instRoot, bl, kernelList,
|
||||
chainList, defaultDev,
|
||||
not self.useZiplVal)
|
||||
if rc:
|
||||
return rc
|
||||
|
||||
return self.writeChandevConf(bl, instRoot)
|
||||
|
||||
def __init__(self, anaconda):
|
||||
bootloaderInfo.__init__(self, anaconda)
|
||||
self.useZiplVal = 1 # only used on s390
|
||||
self.kernelLocation = "/boot/"
|
||||
self._configdir = "/etc"
|
||||
self._configname = "zipl.conf"
|
128
anaconda/booty/sparc.py
Normal file
128
anaconda/booty/sparc.py
Normal file
@ -0,0 +1,128 @@
|
||||
import os
|
||||
|
||||
from booty import BootyNoKernelWarning
|
||||
from bootloaderInfo import *
|
||||
|
||||
class sparcBootloaderInfo(bootloaderInfo):
|
||||
def writeSilo(self, instRoot, bl, kernelList,
|
||||
chainList, defaultDev):
|
||||
|
||||
try:
|
||||
bootDev = self.storage.mountpoints["/boot"]
|
||||
|
||||
mf = '/silo.message'
|
||||
cf = "/boot/silo.conf"
|
||||
mfdir = '/boot'
|
||||
cfPath = ""
|
||||
if not os.path.isdir(instRoot + "/boot"):
|
||||
os.mkdir(instRoot + "/boot")
|
||||
except KeyError:
|
||||
bootDev = self.storage.rootDevice
|
||||
|
||||
cf = "/etc/silo.conf"
|
||||
mfdir = '/etc'
|
||||
cfPath = "/boot"
|
||||
|
||||
f = open(instRoot + mfdir + mf, "w+")
|
||||
f.write("Welcome to %s!\nHit <TAB> for boot options\n\n" % productName)
|
||||
f.close()
|
||||
os.chmod(instRoot + mfdir + mf, 0600)
|
||||
|
||||
f = open(instRoot + cf, "w+")
|
||||
f.write("# silo.conf generated by anaconda\n\n")
|
||||
|
||||
f.write("#boot=%s\n" % (bootDev.path,))
|
||||
f.write("message=%s\n" % (mf,))
|
||||
f.write("timeout=%s\n" % (self.timeout or 50))
|
||||
|
||||
(name, partNum) = getDiskPart(bootDev, self.storage)
|
||||
partno = partNum + 1
|
||||
f.write("partition=%s\n" % (partno,))
|
||||
|
||||
if self.password:
|
||||
f.write("password=%s\n" % (self.password,))
|
||||
f.write("restricted\n")
|
||||
|
||||
f.write("default=%s\n" % (kernelList[0][0],))
|
||||
f.write("\n")
|
||||
|
||||
rootDev = self.storage.rootDevice
|
||||
|
||||
for (label, longlabel, version) in kernelList:
|
||||
kernelTag = "-" + version
|
||||
kernelFile = "%s/vmlinuz%s" % (cfPath, kernelTag)
|
||||
|
||||
f.write("image=%s\n" % (kernelFile,))
|
||||
f.write("\tlabel=%s\n" % (label,))
|
||||
f.write("\tread-only\n")
|
||||
|
||||
initrd = self.makeInitrd(kernelTag, instRoot)
|
||||
if initrd:
|
||||
f.write("\tinitrd=%s/%s\n" % (cfPath, initrd))
|
||||
|
||||
append = "%s" % (self.args.get(),)
|
||||
|
||||
realroot = rootDev.fstabSpec
|
||||
if rootIsDevice(realroot):
|
||||
f.write("\troot=%s\n" % (realroot,))
|
||||
else:
|
||||
if len(append) > 0:
|
||||
append = "%s root=%s" % (append, realroot)
|
||||
else:
|
||||
append = "root=%s" % (realroot,)
|
||||
|
||||
if len(append) > 0:
|
||||
f.write("\tappend=\"%s\"\n" % (append,))
|
||||
f.write("\n")
|
||||
|
||||
f.close()
|
||||
os.chmod(instRoot + cf, 0600)
|
||||
|
||||
# FIXME: hack to make sure things are written to disk
|
||||
import isys
|
||||
isys.sync()
|
||||
isys.sync()
|
||||
isys.sync()
|
||||
|
||||
backup = "%s/backup.b" % (cfPath,)
|
||||
sbinargs = ["/sbin/silo", "-f", "-C", cf, "-S", backup]
|
||||
# TODO!!! FIXME!!! XXX!!!
|
||||
# butil is not defined!!! - assume this is in rhpl now?
|
||||
if butil.getSparcMachine() == "sun4u":
|
||||
sbinargs += ["-u"]
|
||||
else:
|
||||
sbinargs += ["-U"]
|
||||
|
||||
rc = iutil.execWithRedirect(sbinargs[0],
|
||||
sbinargs[1:],
|
||||
stdout = "/dev/tty5",
|
||||
stderr = "/dev/tty5",
|
||||
root = instRoot)
|
||||
if rc:
|
||||
return rc
|
||||
|
||||
if (not os.access(instRoot + "/etc/silo.conf", os.R_OK) and
|
||||
os.access(instRoot + "/boot/etc/silo.conf", os.R_OK)):
|
||||
os.symlink("../boot/etc/silo.conf",
|
||||
instRoot + "/etc/silo.conf")
|
||||
|
||||
return 0
|
||||
|
||||
def setPassword(self, val, isCrypted = 1):
|
||||
# silo just handles the password unencrypted
|
||||
self.password = val
|
||||
|
||||
def write(self, instRoot, bl, kernelList, chainList,
|
||||
defaultDev):
|
||||
if len(kernelList) >= 1:
|
||||
return self.writeSilo(instRoot, bl, kernelList, chainList,
|
||||
defaultDev)
|
||||
else:
|
||||
raise BootyNoKernelWarning
|
||||
|
||||
def __init__(self, anaconda):
|
||||
bootloaderInfo.__init__(self, anaconda)
|
||||
self.useSiloVal = 1
|
||||
self.kernelLocation = "/boot"
|
||||
self._configdir = "/etc"
|
||||
self._configname = "silo.conf"
|
33
anaconda/booty/util.py
Normal file
33
anaconda/booty/util.py
Normal file
@ -0,0 +1,33 @@
|
||||
import string
|
||||
from flags import flags
|
||||
|
||||
def getDiskPart(dev, storage):
|
||||
path = storage.devicetree.getDeviceByName(dev).path[5:]
|
||||
cut = len(dev)
|
||||
if dev[-1] in string.digits:
|
||||
if (path.startswith('rd/') or path.startswith('ida/') or
|
||||
path.startswith('cciss/') or path.startswith('sx8/') or
|
||||
path.startswith('mapper/') or path.startswith('mmcblk') or
|
||||
path.startswith('md')):
|
||||
if dev[-2] == 'p':
|
||||
cut = -2
|
||||
elif dev[-3] == 'p' and dev[-2] in string.digits:
|
||||
cut = -3
|
||||
else:
|
||||
if dev[-2] in string.digits:
|
||||
cut = -2
|
||||
else:
|
||||
cut = -1
|
||||
|
||||
name = dev[:cut]
|
||||
|
||||
if cut < 0:
|
||||
part = dev[cut:]
|
||||
if part[0] == 'p':
|
||||
part = part[1:]
|
||||
partNum = int(part) - 1
|
||||
else:
|
||||
partNum = None
|
||||
|
||||
return (name, partNum)
|
||||
|
555
anaconda/booty/x86.py
Normal file
555
anaconda/booty/x86.py
Normal file
@ -0,0 +1,555 @@
|
||||
import os
|
||||
import string
|
||||
|
||||
from booty import BootyNoKernelWarning
|
||||
from util import getDiskPart
|
||||
from bootloaderInfo import *
|
||||
from flags import flags
|
||||
import checkbootloader
|
||||
import iutil
|
||||
|
||||
class x86BootloaderInfo(efiBootloaderInfo):
|
||||
def setPassword(self, val, isCrypted = 1):
|
||||
if not val:
|
||||
self.password = val
|
||||
self.pure = val
|
||||
return
|
||||
|
||||
if isCrypted and self.useGrubVal == 0:
|
||||
self.pure = None
|
||||
return
|
||||
elif isCrypted:
|
||||
self.password = val
|
||||
self.pure = None
|
||||
else:
|
||||
salt = "$1$"
|
||||
saltLen = 8
|
||||
|
||||
saltchars = string.letters + string.digits + './'
|
||||
for i in range(saltLen):
|
||||
salt += random.choice(saltchars)
|
||||
|
||||
self.password = crypt.crypt(val, salt)
|
||||
self.pure = val
|
||||
|
||||
def getPassword (self):
|
||||
return self.pure
|
||||
|
||||
def setUseGrub(self, val):
|
||||
self.useGrubVal = val
|
||||
|
||||
def getPhysicalDevices(self, device):
|
||||
# This finds a list of devices on which the given device name resides.
|
||||
# Accepted values for "device" are raid1 md devices (i.e. "md0"),
|
||||
# physical disks ("hda"), and real partitions on physical disks
|
||||
# ("hda1"). Volume groups/logical volumes are not accepted.
|
||||
dev = self.storage.devicetree.getDeviceByName(device)
|
||||
path = dev.path[5:]
|
||||
|
||||
if device in map (lambda x: x.name, self.storage.lvs + self.storage.vgs):
|
||||
return []
|
||||
|
||||
if path.startswith("mapper/luks-"):
|
||||
return []
|
||||
|
||||
if dev.type == "mdarray":
|
||||
bootable = 0
|
||||
parts = checkbootloader.getRaidDisks(device, self.storage,
|
||||
raidLevel=1, stripPart=0)
|
||||
parts.sort()
|
||||
return parts
|
||||
|
||||
return [device]
|
||||
|
||||
def runGrubInstall(self, instRoot, bootDev, cmds, cfPath):
|
||||
if cfPath == "/":
|
||||
syncDataToDisk(bootDev, "/boot", instRoot)
|
||||
else:
|
||||
syncDataToDisk(bootDev, "/", instRoot)
|
||||
|
||||
# copy the stage files over into /boot
|
||||
rc = iutil.execWithRedirect("/sbin/grub-install",
|
||||
["--just-copy"],
|
||||
stdout = "/dev/tty5", stderr = "/dev/tty5",
|
||||
root = instRoot)
|
||||
if rc:
|
||||
return rc
|
||||
|
||||
# really install the bootloader
|
||||
for cmd in cmds:
|
||||
p = os.pipe()
|
||||
os.write(p[1], cmd + '\n')
|
||||
os.close(p[1])
|
||||
|
||||
# FIXME: hack to try to make sure everything is written
|
||||
# to the disk
|
||||
if cfPath == "/":
|
||||
syncDataToDisk(bootDev, "/boot", instRoot)
|
||||
else:
|
||||
syncDataToDisk(bootDev, "/", instRoot)
|
||||
|
||||
rc = iutil.execWithRedirect('/sbin/grub' ,
|
||||
[ "--batch", "--no-floppy",
|
||||
"--device-map=/boot/grub/device.map" ],
|
||||
stdin = p[0],
|
||||
stdout = "/dev/tty5", stderr = "/dev/tty5",
|
||||
root = instRoot)
|
||||
os.close(p[0])
|
||||
|
||||
if rc:
|
||||
return rc
|
||||
|
||||
def matchingBootTargets(self, stage1Devs, bootDevs):
|
||||
matches = []
|
||||
for stage1Dev in stage1Devs:
|
||||
for mdBootPart in bootDevs:
|
||||
if getDiskPart(stage1Dev, self.storage)[0] == getDiskPart(mdBootPart, self.storage)[0]:
|
||||
matches.append((stage1Dev, mdBootPart))
|
||||
return matches
|
||||
|
||||
def addMemberMbrs(self, matches, bootDevs):
|
||||
updatedMatches = list(matches)
|
||||
bootDevsHavingStage1Dev = [match[1] for match in matches]
|
||||
for mdBootPart in bootDevs:
|
||||
if mdBootPart not in bootDevsHavingStage1Dev:
|
||||
updatedMatches.append((getDiskPart(mdBootPart, self.storage)[0], mdBootPart))
|
||||
return updatedMatches
|
||||
|
||||
def installGrub(self, instRoot, bootDev, grubTarget, grubPath, cfPath):
|
||||
if iutil.isEfi():
|
||||
return efiBootloaderInfo.installGrub(self, instRoot, bootDev, grubTarget,
|
||||
grubPath, cfPath)
|
||||
|
||||
args = "--stage2=/boot/grub/stage2 "
|
||||
|
||||
stage1Devs = self.getPhysicalDevices(grubTarget)
|
||||
bootDevs = self.getPhysicalDevices(bootDev.name)
|
||||
|
||||
installs = [(None,
|
||||
self.grubbyPartitionName(stage1Devs[0]),
|
||||
self.grubbyPartitionName(bootDevs[0]))]
|
||||
|
||||
if bootDev.type == "mdarray":
|
||||
|
||||
matches = self.matchingBootTargets(stage1Devs, bootDevs)
|
||||
|
||||
# If the stage1 target disk contains member of boot raid array (mbr
|
||||
# case) or stage1 target partition is member of boot raid array
|
||||
# (partition case)
|
||||
if matches:
|
||||
# 1) install stage1 on target disk/partiton
|
||||
stage1Dev, mdMemberBootPart = matches[0]
|
||||
installs = [(None,
|
||||
self.grubbyPartitionName(stage1Dev),
|
||||
self.grubbyPartitionName(mdMemberBootPart))]
|
||||
firstMdMemberDiskGrubbyName = self.grubbyDiskName(getDiskPart(mdMemberBootPart, self.storage)[0])
|
||||
|
||||
# 2) and install stage1 on other members' disks/partitions too
|
||||
# NOTES:
|
||||
# - the goal is to be able to boot after a members' disk removal
|
||||
# - so we have to use grub device names as if after removal
|
||||
# (i.e. the same disk name (e.g. (hd0)) for both member disks)
|
||||
# - if member partitions have different numbers only removal of
|
||||
# specific one of members will work because stage2 containing
|
||||
# reference to config file is shared and therefore can contain
|
||||
# only one value
|
||||
|
||||
# if target is mbr, we want to install also to mbr of other
|
||||
# members, so extend the matching list
|
||||
matches = self.addMemberMbrs(matches, bootDevs)
|
||||
for stage1Target, mdMemberBootPart in matches[1:]:
|
||||
# prepare special device mapping corresponding to member removal
|
||||
mdMemberBootDisk = getDiskPart(mdMemberBootPart, self.storage)[0]
|
||||
# It can happen due to ks --driveorder option, but is it ok?
|
||||
if not mdMemberBootDisk in self.drivelist:
|
||||
continue
|
||||
mdRaidDeviceRemap = (firstMdMemberDiskGrubbyName,
|
||||
mdMemberBootDisk)
|
||||
|
||||
stage1TargetGrubbyName = self.grubbyPartitionName(stage1Target)
|
||||
rootPartGrubbyName = self.grubbyPartitionName(mdMemberBootPart)
|
||||
|
||||
# now replace grub disk name part according to special device
|
||||
# mapping
|
||||
old = self.grubbyDiskName(mdMemberBootDisk).strip('() ')
|
||||
new = firstMdMemberDiskGrubbyName.strip('() ')
|
||||
rootPartGrubbyName = rootPartGrubbyName.replace(old, new)
|
||||
stage1TargetGrubbyName = stage1TargetGrubbyName.replace(old, new)
|
||||
|
||||
installs.append((mdRaidDeviceRemap,
|
||||
stage1TargetGrubbyName,
|
||||
rootPartGrubbyName))
|
||||
|
||||
# This is needed for case when /boot member partitions have
|
||||
# different numbers. Shared stage2 can contain only one reference
|
||||
# to grub.conf file, so let's ensure that it is reference to partition
|
||||
# on disk which we will boot from - that is, install grub to
|
||||
# this disk as last so that its reference is not overwritten.
|
||||
installs.reverse()
|
||||
|
||||
cmds = []
|
||||
for mdRaidDeviceRemap, stage1Target, rootPart in installs:
|
||||
if mdRaidDeviceRemap:
|
||||
cmd = "device (%s) /dev/%s\n" % tuple(mdRaidDeviceRemap)
|
||||
else:
|
||||
cmd = ''
|
||||
cmd += "root %s\n" % (rootPart,)
|
||||
cmd += "install %s%s/stage1 d %s %s/stage2 p %s%s/grub.conf" % \
|
||||
(args, grubPath, stage1Target, grubPath, rootPart, grubPath)
|
||||
cmds.append(cmd)
|
||||
return self.runGrubInstall(instRoot, bootDev.name, cmds, cfPath)
|
||||
|
||||
def writeGrub(self, instRoot, bl, kernelList, chainList,
|
||||
defaultDev, upgrade=False):
|
||||
|
||||
rootDev = self.storage.rootDevice
|
||||
grubTarget = bl.getDevice()
|
||||
|
||||
try:
|
||||
bootDev = self.storage.mountpoints["/boot"]
|
||||
grubPath = "/grub"
|
||||
cfPath = "/"
|
||||
except KeyError:
|
||||
bootDev = rootDev
|
||||
grubPath = "/boot/grub"
|
||||
cfPath = "/boot/"
|
||||
|
||||
if not upgrade:
|
||||
self.writeGrubConf(instRoot, bootDev, rootDev, defaultDev, kernelList,
|
||||
chainList, grubTarget, grubPath, cfPath)
|
||||
|
||||
# keep track of which devices are used for the device.map
|
||||
usedDevs = set()
|
||||
usedDevs.update(self.getPhysicalDevices(grubTarget))
|
||||
usedDevs.update(self.getPhysicalDevices(rootDev.name))
|
||||
usedDevs.update(self.getPhysicalDevices(bootDev.name))
|
||||
usedDevs.update([dev for (label, longlabel, dev) in chainList if longlabel])
|
||||
|
||||
if not upgrade:
|
||||
self.writeDeviceMap(instRoot, usedDevs, upgrade)
|
||||
self.writeSysconfig(instRoot, grubTarget, upgrade)
|
||||
|
||||
return self.installGrub(instRoot, bootDev, grubTarget, grubPath, cfPath)
|
||||
|
||||
def writeGrubConf(self, instRoot, bootDev, rootDev, defaultDev, kernelList,
|
||||
chainList, grubTarget, grubPath, cfPath):
|
||||
|
||||
bootDevs = self.getPhysicalDevices(bootDev.name)
|
||||
|
||||
# XXX old config file should be read here for upgrade
|
||||
|
||||
cf = "%s%s" % (instRoot, self.configfile)
|
||||
self.perms = 0600
|
||||
if os.access (cf, os.R_OK):
|
||||
self.perms = os.stat(cf)[0] & 0777
|
||||
os.rename(cf, cf + '.rpmsave')
|
||||
|
||||
f = open(cf, "w+")
|
||||
|
||||
f.write("# grub.conf generated by anaconda\n")
|
||||
f.write("#\n")
|
||||
f.write("# Note that you do not have to rerun grub "
|
||||
"after making changes to this file\n")
|
||||
|
||||
if grubPath == "/grub":
|
||||
f.write("# NOTICE: You have a /boot partition. This means "
|
||||
"that\n")
|
||||
f.write("# all kernel and initrd paths are relative "
|
||||
"to /boot/, eg.\n")
|
||||
else:
|
||||
f.write("# NOTICE: You do not have a /boot partition. "
|
||||
"This means that\n")
|
||||
f.write("# all kernel and initrd paths are relative "
|
||||
"to /, eg.\n")
|
||||
|
||||
f.write('# root %s\n' % self.grubbyPartitionName(bootDevs[0]))
|
||||
f.write("# kernel %svmlinuz-version ro root=%s\n" % (cfPath, rootDev.path))
|
||||
f.write("# initrd %sinitrd-[generic-]version.img\n" % (cfPath))
|
||||
f.write("#boot=/dev/%s\n" % (grubTarget))
|
||||
|
||||
# get the default image to boot... we have to walk and find it
|
||||
# since grub indexes by where it is in the config file
|
||||
if defaultDev.name == rootDev.name:
|
||||
default = 0
|
||||
else:
|
||||
# if the default isn't linux, it's the first thing in the
|
||||
# chain list
|
||||
default = len(kernelList)
|
||||
|
||||
|
||||
f.write('default=%s\n' % (default))
|
||||
|
||||
if self.serial == 1:
|
||||
# Set the global timeout in serial case
|
||||
f.write('timeout=%d\n' % (self.timeout or 5))
|
||||
# grub the 0-based number of the serial console device
|
||||
unit = self.serialDevice[-1]
|
||||
|
||||
# and we want to set the speed too
|
||||
speedend = 0
|
||||
for char in self.serialOptions:
|
||||
if char not in string.digits:
|
||||
break
|
||||
speedend = speedend + 1
|
||||
if speedend != 0:
|
||||
speed = self.serialOptions[:speedend]
|
||||
else:
|
||||
# reasonable default
|
||||
speed = "9600"
|
||||
|
||||
f.write("serial --unit=%s --speed=%s\n" %(unit, speed))
|
||||
f.write("terminal --timeout=%s serial console\n" % (self.timeout or 5))
|
||||
else:
|
||||
# Default to 0 timeout in the non-serial case
|
||||
f.write('timeout=%d\n' % (self.timeout or 0))
|
||||
# we only want splashimage if they're not using a serial console
|
||||
if os.access("%s/boot/grub/splash.xpm.gz" %(instRoot,), os.R_OK):
|
||||
f.write('splashimage=%s%sgrub/splash.xpm.gz\n'
|
||||
% (self.grubbyPartitionName(bootDevs[0]), cfPath))
|
||||
f.write("hiddenmenu\n")
|
||||
|
||||
|
||||
if self.password:
|
||||
f.write('password --md5 %s\n' %(self.password))
|
||||
|
||||
for (label, longlabel, version) in kernelList:
|
||||
kernelTag = "-" + version
|
||||
kernelFile = "%svmlinuz%s" % (cfPath, kernelTag)
|
||||
|
||||
initrd = self.makeInitrd(kernelTag, instRoot)
|
||||
|
||||
f.write('title %s (%s)\n' % (longlabel, version))
|
||||
f.write('\troot %s\n' % self.grubbyPartitionName(bootDevs[0]))
|
||||
|
||||
realroot = " root=%s" % rootDev.fstabSpec
|
||||
|
||||
if version.endswith("xen0") or (version.endswith("xen") and not os.path.exists("/proc/xen")):
|
||||
# hypervisor case
|
||||
sermap = { "ttyS0": "com1", "ttyS1": "com2",
|
||||
"ttyS2": "com3", "ttyS3": "com4" }
|
||||
if self.serial and sermap.has_key(self.serialDevice) and \
|
||||
self.serialOptions:
|
||||
hvs = "%s=%s" %(sermap[self.serialDevice],
|
||||
self.serialOptions)
|
||||
else:
|
||||
hvs = ""
|
||||
if version.endswith("xen0"):
|
||||
hvFile = "%sxen.gz-%s %s" %(cfPath,
|
||||
version.replace("xen0", ""),
|
||||
hvs)
|
||||
else:
|
||||
hvFile = "%sxen.gz-%s %s" %(cfPath,
|
||||
version.replace("xen", ""),
|
||||
hvs)
|
||||
f.write('\tkernel %s\n' %(hvFile,))
|
||||
f.write('\tmodule %s ro%s' %(kernelFile, realroot))
|
||||
if self.args.get():
|
||||
f.write(' %s' % self.args.get())
|
||||
f.write('\n')
|
||||
|
||||
if initrd:
|
||||
f.write('\tmodule %s%s\n' % (cfPath, initrd))
|
||||
elif version.find("xenlinux") >= 0:
|
||||
# Qubes kernel
|
||||
hvFile = "%sxen.gz" %(cfPath)
|
||||
f.write('\tkernel %s\n' %(hvFile,))
|
||||
f.write('\tmodule %s ro%s' %(kernelFile, realroot))
|
||||
if self.args.get():
|
||||
f.write(' %s' % self.args.get())
|
||||
f.write(' max_loop=255 rdblacklist=aesni-intel')
|
||||
f.write('\n')
|
||||
if initrd:
|
||||
f.write('\tmodule %s%s\n' % (cfPath, initrd))
|
||||
else: # normal kernel
|
||||
f.write('\tkernel %s ro%s' % (kernelFile, realroot))
|
||||
if self.args.get():
|
||||
f.write(' %s' % self.args.get())
|
||||
f.write('\n')
|
||||
|
||||
if initrd:
|
||||
f.write('\tinitrd %s%s\n' % (cfPath, initrd))
|
||||
|
||||
for (label, longlabel, device) in chainList:
|
||||
if ((not longlabel) or (longlabel == "")):
|
||||
continue
|
||||
f.write('title %s\n' % (longlabel))
|
||||
f.write('\trootnoverify %s\n' % self.grubbyPartitionName(device))
|
||||
# f.write('\tmakeactive\n')
|
||||
f.write('\tchainloader +1')
|
||||
f.write('\n')
|
||||
|
||||
f.close()
|
||||
|
||||
if not "/efi/" in cf:
|
||||
os.chmod(cf, self.perms)
|
||||
|
||||
try:
|
||||
# make symlink for menu.lst (default config file name)
|
||||
menulst = "%s%s/menu.lst" % (instRoot, self.configdir)
|
||||
if os.access (menulst, os.R_OK):
|
||||
os.rename(menulst, menulst + ".rpmsave")
|
||||
os.symlink("./grub.conf", menulst)
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
# make symlink for /etc/grub.conf (config files belong in /etc)
|
||||
etcgrub = "%s%s" % (instRoot, "/etc/grub.conf")
|
||||
if os.access (etcgrub, os.R_OK):
|
||||
os.rename(etcgrub, etcgrub + ".rpmsave")
|
||||
os.symlink(".." + self.configfile, etcgrub)
|
||||
except:
|
||||
pass
|
||||
|
||||
def writeDeviceMap(self, instRoot, usedDevs, upgrade=False):
|
||||
|
||||
if os.access(instRoot + "/boot/grub/device.map", os.R_OK):
|
||||
# For upgrade, we want also e.g. devs that has been added
|
||||
# to file during install for chainloading.
|
||||
if upgrade:
|
||||
f = open(instRoot + "/boot/grub/device.map", "r")
|
||||
for line in f:
|
||||
if line.startswith('(hd'):
|
||||
(grubdisk, dev) = line.split()[:2]
|
||||
dev = dev[5:]
|
||||
if dev in self.drivelist:
|
||||
usedDevs.add(dev)
|
||||
f.close()
|
||||
os.rename(instRoot + "/boot/grub/device.map",
|
||||
instRoot + "/boot/grub/device.map.rpmsave")
|
||||
|
||||
f = open(instRoot + "/boot/grub/device.map", "w+")
|
||||
f.write("# this device map was generated by anaconda\n")
|
||||
usedDiskDevs = set()
|
||||
for dev in usedDevs:
|
||||
drive = getDiskPart(dev, self.storage)[0]
|
||||
usedDiskDevs.add(drive)
|
||||
devs = list(usedDiskDevs)
|
||||
devs.sort()
|
||||
for drive in devs:
|
||||
# XXX hack city. If they're not the sort of thing that'll
|
||||
# be in the device map, they shouldn't still be in the list.
|
||||
dev = self.storage.devicetree.getDeviceByName(drive)
|
||||
if not dev.type == "mdarray":
|
||||
f.write("(%s) %s\n" % (self.grubbyDiskName(drive), dev.path))
|
||||
f.close()
|
||||
|
||||
def writeSysconfig(self, instRoot, grubTarget, upgrade):
|
||||
sysconf = '/etc/sysconfig/grub'
|
||||
if os.access (instRoot + sysconf, os.R_OK):
|
||||
if upgrade:
|
||||
return
|
||||
self.perms = os.stat(instRoot + sysconf)[0] & 0777
|
||||
os.rename(instRoot + sysconf,
|
||||
instRoot + sysconf + '.rpmsave')
|
||||
# if it's an absolute symlink, just get it out of our way
|
||||
elif (os.path.islink(instRoot + sysconf) and
|
||||
os.readlink(instRoot + sysconf)[0] == '/'):
|
||||
if upgrade:
|
||||
return
|
||||
os.rename(instRoot + sysconf,
|
||||
instRoot + sysconf + '.rpmsave')
|
||||
f = open(instRoot + sysconf, 'w+')
|
||||
f.write("boot=/dev/%s\n" %(grubTarget,))
|
||||
f.write("forcelba=0\n")
|
||||
f.close()
|
||||
|
||||
def grubbyDiskName(self, name):
|
||||
return "hd%d" % self.drivelist.index(name)
|
||||
|
||||
def grubbyPartitionName(self, dev):
|
||||
(name, partNum) = getDiskPart(dev, self.storage)
|
||||
if partNum != None:
|
||||
return "(%s,%d)" % (self.grubbyDiskName(name), partNum)
|
||||
else:
|
||||
return "(%s)" %(self.grubbyDiskName(name))
|
||||
|
||||
|
||||
def getBootloaderConfig(self, instRoot, bl, kernelList,
|
||||
chainList, defaultDev):
|
||||
config = bootloaderInfo.getBootloaderConfig(self, instRoot,
|
||||
bl, kernelList, chainList,
|
||||
defaultDev)
|
||||
|
||||
liloTarget = bl.getDevice()
|
||||
|
||||
config.addEntry("boot", '/dev/' + liloTarget, replace = 0)
|
||||
config.addEntry("map", "/boot/map", replace = 0)
|
||||
config.addEntry("install", "/boot/boot.b", replace = 0)
|
||||
message = "/boot/message"
|
||||
|
||||
if self.pure is not None and not self.useGrubVal:
|
||||
config.addEntry("restricted", replace = 0)
|
||||
config.addEntry("password", self.pure, replace = 0)
|
||||
|
||||
if self.serial == 1:
|
||||
# grab the 0-based number of the serial console device
|
||||
unit = self.serialDevice[-1]
|
||||
# FIXME: we should probably put some options, but lilo
|
||||
# only supports up to 9600 baud so just use the defaults
|
||||
# it's better than nothing :(
|
||||
config.addEntry("serial=%s" %(unit,))
|
||||
else:
|
||||
# message screws up serial console
|
||||
if os.access(instRoot + message, os.R_OK):
|
||||
config.addEntry("message", message, replace = 0)
|
||||
|
||||
if not config.testEntry('lba32'):
|
||||
if bl.above1024 and not iutil.isX86(bits=32):
|
||||
config.addEntry("lba32", replace = 0)
|
||||
|
||||
return config
|
||||
|
||||
def write(self, instRoot, bl, kernelList, chainList,
|
||||
defaultDev):
|
||||
if self.timeout is None and chainList:
|
||||
self.timeout = 5
|
||||
|
||||
# XXX HACK ALERT - see declaration above
|
||||
if self.doUpgradeOnly:
|
||||
if self.useGrubVal:
|
||||
return self.writeGrub(instRoot, bl, kernelList,
|
||||
chainList, defaultDev,
|
||||
upgrade = True)
|
||||
return 0
|
||||
|
||||
if len(kernelList) < 1:
|
||||
raise BootyNoKernelWarning
|
||||
|
||||
rc = self.writeGrub(instRoot, bl, kernelList,
|
||||
chainList, defaultDev,
|
||||
not self.useGrubVal)
|
||||
if rc:
|
||||
return rc
|
||||
|
||||
# XXX move the lilo.conf out of the way if they're using GRUB
|
||||
# so that /sbin/installkernel does a more correct thing
|
||||
if self.useGrubVal and os.access(instRoot + '/etc/lilo.conf', os.R_OK):
|
||||
os.rename(instRoot + "/etc/lilo.conf",
|
||||
instRoot + "/etc/lilo.conf.anaconda")
|
||||
|
||||
return 0
|
||||
|
||||
def getArgList(self):
|
||||
args = bootloaderInfo.getArgList(self)
|
||||
|
||||
if self.password:
|
||||
args.append("--md5pass=%s" %(self.password))
|
||||
|
||||
return args
|
||||
|
||||
def __init__(self, anaconda):
|
||||
bootloaderInfo.__init__(self, anaconda)
|
||||
|
||||
# these have to be set /before/ efiBootloaderInfo.__init__(), or
|
||||
# they'll be overwritten.
|
||||
self._configdir = "/boot/grub"
|
||||
self._configname = "grub.conf"
|
||||
|
||||
efiBootloaderInfo.__init__(self, anaconda, initialize=False)
|
||||
|
||||
# XXX use checkbootloader to determine what to default to
|
||||
self.useGrubVal = 1
|
||||
self.kernelLocation = "/boot/"
|
||||
self.password = None
|
||||
self.pure = None
|
221
anaconda/cmdline.py
Normal file
221
anaconda/cmdline.py
Normal file
@ -0,0 +1,221 @@
|
||||
#
|
||||
# cmdline.py - non-interactive, very very simple frontend to anaconda
|
||||
#
|
||||
# Copyright (C) 2003, 2004, 2005, 2006, 2007 Red Hat, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author(s): Jeremy Katz <katzj@redhat.com
|
||||
#
|
||||
|
||||
import time
|
||||
import signal
|
||||
import parted
|
||||
from constants import *
|
||||
from flags import flags
|
||||
from iutil import strip_markup
|
||||
from installinterfacebase import InstallInterfaceBase
|
||||
|
||||
import gettext
|
||||
_ = lambda x: gettext.ldgettext("anaconda", x)
|
||||
|
||||
import logging
|
||||
log = logging.getLogger("anaconda")
|
||||
|
||||
stepToClasses = { "install" : "setupProgressDisplay" }
|
||||
|
||||
class WaitWindow:
|
||||
def pop(self):
|
||||
pass
|
||||
def refresh(self):
|
||||
pass
|
||||
def __init__(self, title, text):
|
||||
print(text)
|
||||
|
||||
class ProgressWindow:
|
||||
def pop(self):
|
||||
print("")
|
||||
|
||||
def pulse(self):
|
||||
pass
|
||||
|
||||
def set(self, amount):
|
||||
if amount == self.total:
|
||||
print(_("Completed"))
|
||||
|
||||
def refresh(self):
|
||||
pass
|
||||
|
||||
def __init__(self, title, text, total, updpct = 0.05, pulse = False):
|
||||
self.total = total
|
||||
print(text)
|
||||
print(_("In progress"))
|
||||
|
||||
class InstallInterface(InstallInterfaceBase):
|
||||
def __init__(self):
|
||||
InstallInterfaceBase.__init__(self)
|
||||
# signal.signal(signal.SIGINT, signal.SIG_IGN)
|
||||
signal.signal(signal.SIGTSTP, signal.SIG_DFL)
|
||||
self.instProgress = None
|
||||
|
||||
def __del__(self):
|
||||
pass
|
||||
|
||||
def shutdown(self):
|
||||
pass
|
||||
|
||||
def suspend(self):
|
||||
pass
|
||||
|
||||
def resume(self):
|
||||
pass
|
||||
|
||||
def progressWindow(self, title, text, total, updpct = 0.05, pulse = False):
|
||||
return ProgressWindow(title, text, total, updpct, pulse)
|
||||
|
||||
def kickstartErrorWindow(self, text):
|
||||
s = _("The following error was found while parsing the "
|
||||
"kickstart configuration file:\n\n%s") %(text,)
|
||||
print(s)
|
||||
|
||||
while 1:
|
||||
time.sleep(5)
|
||||
|
||||
def messageWindow(self, title, text, type="ok", default = None,
|
||||
custom_icon = None, custom_buttons = []):
|
||||
if type == "ok":
|
||||
print(text)
|
||||
else:
|
||||
print(_("Command line mode requires all choices to be specified in a kickstart configuration file."))
|
||||
print(title)
|
||||
print(text)
|
||||
print(type, custom_buttons)
|
||||
|
||||
# don't exit
|
||||
while 1:
|
||||
time.sleep(5)
|
||||
|
||||
def detailedMessageWindow(self, title, text, longText=None, type="ok",
|
||||
default=None, custom_buttons=None,
|
||||
custom_icon=None):
|
||||
if longText:
|
||||
text += "\n\n%s" % longText
|
||||
|
||||
self.messageWindow(title, text, type=type, default=default,
|
||||
custom_buttons=custom_buttons, custom_icon=custom_icon)
|
||||
|
||||
def passphraseEntryWindow(self, device):
|
||||
print(_("Can't have a question in command line mode!"))
|
||||
print("(passphraseEntryWindow: '%s')" % device)
|
||||
# don't exit
|
||||
while 1:
|
||||
time.sleep(5)
|
||||
|
||||
def getLUKSPassphrase(self, passphrase = "", isglobal = False):
|
||||
print(_("Can't have a question in command line mode!"))
|
||||
print("(getLUKSPassphrase)")
|
||||
# don't exit
|
||||
while 1:
|
||||
time.sleep(5)
|
||||
|
||||
def enableNetwork(self):
|
||||
print(_("Can't have a question in command line mode!"))
|
||||
print("(enableNetwork)")
|
||||
# don't exit
|
||||
while 1:
|
||||
time.sleep(5)
|
||||
|
||||
def resetInitializeDiskQuestion(self):
|
||||
pass
|
||||
|
||||
def questionInitializeDisk(self, path, description, size, details=""):
|
||||
print(_("Can't have a question in command line mode!"))
|
||||
print("(questionInitializeDisk)")
|
||||
# don't exit
|
||||
while 1:
|
||||
time.sleep(5)
|
||||
|
||||
def resetReinitInconsistentLVMQuestion(self):
|
||||
pass
|
||||
|
||||
def questionReinitInconsistentLVM(self, pv_names=None, lv_name=None, vg_name=None):
|
||||
print(_("Can't have a question in command line mode!"))
|
||||
print("(questionReinitInconsistentLVM)")
|
||||
# don't exit
|
||||
while 1:
|
||||
time.sleep(5)
|
||||
|
||||
def mainExceptionWindow(self, shortText, longTextFile):
|
||||
print(shortText)
|
||||
|
||||
def waitWindow(self, title, text):
|
||||
return WaitWindow(title, text)
|
||||
|
||||
def beep(self):
|
||||
pass
|
||||
|
||||
def run(self, anaconda):
|
||||
(step, instance) = anaconda.dispatch.currentStep()
|
||||
while step:
|
||||
if stepToClasses.has_key(step):
|
||||
s = "nextWin = %s" %(stepToClasses[step],)
|
||||
exec s
|
||||
nextWin(instance)
|
||||
else:
|
||||
print("In interactive step %s, can't continue" %(step,))
|
||||
while 1:
|
||||
time.sleep(1)
|
||||
|
||||
anaconda.dispatch.gotoNext()
|
||||
(step, instance) = anaconda.dispatch.currentStep()
|
||||
|
||||
def setInstallProgressClass(self, c):
|
||||
self.instProgress = c
|
||||
|
||||
def setSteps(self, anaconda):
|
||||
pass
|
||||
|
||||
class progressDisplay:
|
||||
def __init__(self):
|
||||
self.pct = 0
|
||||
self.display = ""
|
||||
|
||||
def __del__(self):
|
||||
pass
|
||||
|
||||
def processEvents(self):
|
||||
pass
|
||||
def setShowPercentage(self, val):
|
||||
pass
|
||||
def get_fraction(self):
|
||||
return self.pct
|
||||
def set_fraction(self, pct):
|
||||
self.pct = pct
|
||||
def set_text(self, txt):
|
||||
pass
|
||||
def set_label(self, txt):
|
||||
stripped = strip_markup(txt)
|
||||
if stripped != self.display:
|
||||
self.display = stripped
|
||||
print(self.display)
|
||||
|
||||
def setupProgressDisplay(anaconda):
|
||||
if anaconda.dir == DISPATCH_BACK:
|
||||
anaconda.intf.setInstallProgressClass(None)
|
||||
return DISPATCH_BACK
|
||||
else:
|
||||
anaconda.intf.setInstallProgressClass(progressDisplay())
|
||||
|
||||
return DISPATCH_FORWARD
|
23
anaconda/command-stubs/Makefile.am
Normal file
23
anaconda/command-stubs/Makefile.am
Normal file
@ -0,0 +1,23 @@
|
||||
# command-stubs/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
commandstubsdir = $(libdir)/$(PACKAGE_NAME)
|
||||
dist_commandstubs_SCRIPTS = *-stub
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
517
anaconda/command-stubs/Makefile.in
Normal file
517
anaconda/command-stubs/Makefile.in
Normal file
@ -0,0 +1,517 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# command-stubs/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = command-stubs
|
||||
DIST_COMMON = $(dist_commandstubs_SCRIPTS) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/python.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(commandstubsdir)"
|
||||
SCRIPTS = $(dist_commandstubs_SCRIPTS)
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
ARCH = @ARCH@
|
||||
AUDIT_LIBS = @AUDIT_LIBS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BLKID_LIBS = @BLKID_LIBS@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHECKISOMD5_LIBS = @CHECKISOMD5_LIBS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DEVMAPPER_CFLAGS = @DEVMAPPER_CFLAGS@
|
||||
DEVMAPPER_LIBS = @DEVMAPPER_LIBS@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
EXT2FS_LIBS = @EXT2FS_LIBS@
|
||||
FGREP = @FGREP@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
|
||||
GTK_X11_LIBS = @GTK_X11_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
IPV6_CFLAGS = @IPV6_CFLAGS@
|
||||
ISCSI_LIBS = @ISCSI_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@
|
||||
LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@
|
||||
LIBCURL_CFLAGS = @LIBCURL_CFLAGS@
|
||||
LIBCURL_LIBS = @LIBCURL_LIBS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBNL_CFLAGS = @LIBNL_CFLAGS@
|
||||
LIBNL_LIBS = @LIBNL_LIBS@
|
||||
LIBNM_GLIB_CFLAGS = @LIBNM_GLIB_CFLAGS@
|
||||
LIBNM_GLIB_LIBS = @LIBNM_GLIB_LIBS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
NETWORKMANAGER_CFLAGS = @NETWORKMANAGER_CFLAGS@
|
||||
NETWORKMANAGER_LIBS = @NETWORKMANAGER_LIBS@
|
||||
NEWT_LIBS = @NEWT_LIBS@
|
||||
NFS_CFLAGS = @NFS_CFLAGS@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_RELEASE = @PACKAGE_RELEASE@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POSUB = @POSUB@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EMBED_LIBS = @PYTHON_EMBED_LIBS@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
|
||||
PYTHON_LIBS = @PYTHON_LIBS@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
RPM_CFLAGS = @RPM_CFLAGS@
|
||||
RPM_LIBS = @RPM_LIBS@
|
||||
SED = @SED@
|
||||
SELINUX_CFLAGS = @SELINUX_CFLAGS@
|
||||
SELINUX_LIBS = @SELINUX_LIBS@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLANG_LIBS = @SLANG_LIBS@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
X11_CFLAGS = @X11_CFLAGS@
|
||||
X11_LIBS = @X11_LIBS@
|
||||
XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
|
||||
XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
XMKMF = @XMKMF@
|
||||
ZLIB_LIBS = @ZLIB_LIBS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
commandstubsdir = $(libdir)/$(PACKAGE_NAME)
|
||||
dist_commandstubs_SCRIPTS = *-stub
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign command-stubs/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign command-stubs/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
install-dist_commandstubsSCRIPTS: $(dist_commandstubs_SCRIPTS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(commandstubsdir)" || $(MKDIR_P) "$(DESTDIR)$(commandstubsdir)"
|
||||
@list='$(dist_commandstubs_SCRIPTS)'; test -n "$(commandstubsdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
|
||||
done | \
|
||||
sed -e 'p;s,.*/,,;n' \
|
||||
-e 'h;s|.*|.|' \
|
||||
-e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
|
||||
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
|
||||
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||
if ($$2 == $$4) { files[d] = files[d] " " $$1; \
|
||||
if (++n[d] == $(am__install_max)) { \
|
||||
print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
|
||||
else { print "f", d "/" $$4, $$1 } } \
|
||||
END { for (d in files) print "f", d, files[d] }' | \
|
||||
while read type dir files; do \
|
||||
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(commandstubsdir)$$dir'"; \
|
||||
$(INSTALL_SCRIPT) $$files "$(DESTDIR)$(commandstubsdir)$$dir" || exit $$?; \
|
||||
} \
|
||||
; done
|
||||
|
||||
uninstall-dist_commandstubsSCRIPTS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(dist_commandstubs_SCRIPTS)'; test -n "$(commandstubsdir)" || exit 0; \
|
||||
files=`for p in $$list; do echo "$$p"; done | \
|
||||
sed -e 's,.*/,,;$(transform)'`; \
|
||||
test -n "$$list" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(commandstubsdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(commandstubsdir)" && rm -f $$files
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(SCRIPTS)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(commandstubsdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-dist_commandstubsSCRIPTS
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-dist_commandstubsSCRIPTS
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-dist_commandstubsSCRIPTS \
|
||||
install-dvi install-dvi-am install-exec install-exec-am \
|
||||
install-html install-html-am install-info install-info-am \
|
||||
install-man install-pdf install-pdf-am install-ps \
|
||||
install-ps-am install-strip installcheck installcheck-am \
|
||||
installdirs maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
|
||||
ps ps-am uninstall uninstall-am \
|
||||
uninstall-dist_commandstubsSCRIPTS
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
39
anaconda/command-stubs/list-harddrives-stub
Executable file
39
anaconda/command-stubs/list-harddrives-stub
Executable file
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# scan system for harddrives and output device name/size
|
||||
#
|
||||
# Copyright (C) 2007, 2009 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import sys
|
||||
import parted
|
||||
|
||||
def main(argv):
|
||||
lst = set()
|
||||
|
||||
for dev in filter(lambda d: d.type != parted.DEVICE_DM, parted.getAllDevices()):
|
||||
disk = parted.Disk(dev)
|
||||
|
||||
for part in disk.partitions:
|
||||
lst.add("%s %s" % (part.path, int(part.getSize())))
|
||||
|
||||
lst = list(lst)
|
||||
lst.sort()
|
||||
for entry in lst:
|
||||
print entry
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(sys.argv)
|
47
anaconda/command-stubs/loadkeys-stub
Executable file
47
anaconda/command-stubs/loadkeys-stub
Executable file
@ -0,0 +1,47 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# loadkeys-stub
|
||||
#
|
||||
# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
# for testing
|
||||
if (os.path.exists('isys')):
|
||||
sys.path.append('isys')
|
||||
|
||||
sys.path.append('/usr/lib/anaconda')
|
||||
|
||||
import isys
|
||||
|
||||
def usage():
|
||||
print "usage: %s keymap" %(sys.argv[0],)
|
||||
sys.exit(1)
|
||||
|
||||
def main():
|
||||
if len(sys.argv) != 2:
|
||||
usage()
|
||||
|
||||
try:
|
||||
isys.loadKeymap(sys.argv[1])
|
||||
except SystemError:
|
||||
pass
|
||||
sys.exit(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
56
anaconda/command-stubs/losetup-stub
Executable file
56
anaconda/command-stubs/losetup-stub
Executable file
@ -0,0 +1,56 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# losetup-stub
|
||||
#
|
||||
# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
# for testing
|
||||
if (os.path.exists('isys')):
|
||||
sys.path.append('isys')
|
||||
|
||||
sys.path.append('/usr/lib/anaconda')
|
||||
|
||||
import isys
|
||||
from sys import argv
|
||||
|
||||
def usage():
|
||||
print "usage: losetup [-d] /dev/loopN [image]"
|
||||
sys.exit(1)
|
||||
|
||||
if len(argv) < 3:
|
||||
usage()
|
||||
|
||||
if argv[1] == "-d" and len(argv[2]) > 4 and argv[2][-5:-1] == "loop":
|
||||
try:
|
||||
isys.unlosetup(argv[2])
|
||||
except SystemError, (errno, msg):
|
||||
print msg
|
||||
sys.exit (1)
|
||||
sys.exit(0)
|
||||
|
||||
if len(argv[1]) > 4 and argv[1][-5:-1] == "loop":
|
||||
try:
|
||||
isys.losetup(argv[1], argv[2])
|
||||
except SystemError, (errno, msg):
|
||||
print msg
|
||||
sys.exit (1)
|
||||
sys.exit(0)
|
||||
|
||||
usage()
|
58
anaconda/command-stubs/mknod-stub
Executable file
58
anaconda/command-stubs/mknod-stub
Executable file
@ -0,0 +1,58 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# mknod-stub
|
||||
#
|
||||
# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import sys, os
|
||||
sys.path.append('/usr/lib/anaconda')
|
||||
import isys
|
||||
import string
|
||||
import stat
|
||||
import os
|
||||
|
||||
def usage():
|
||||
sys.stderr.write("Usage: %s <path> [b|c] <major> <minor>\n" %(sys.argv[0],))
|
||||
sys.exit(1)
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 2:
|
||||
usage()
|
||||
|
||||
if (sys.argv[1] == '-h') or (sys.argv[1] == '--help'):
|
||||
usage()
|
||||
|
||||
path = sys.argv[1]
|
||||
|
||||
if len(sys.argv) < 5:
|
||||
usage()
|
||||
|
||||
if (sys.argv[2] == 'b'):
|
||||
type = stat.S_IFBLK
|
||||
elif (sys.argv[2] == 'c'):
|
||||
type = stat.S_IFCHR
|
||||
else:
|
||||
usage()
|
||||
|
||||
major = int(sys.argv[3])
|
||||
minor = int(sys.argv[4])
|
||||
path = sys.argv[1]
|
||||
|
||||
os.mknod(path, 0644 | type, os.makedev(major, minor))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
57
anaconda/command-stubs/raidstart-stub
Executable file
57
anaconda/command-stubs/raidstart-stub
Executable file
@ -0,0 +1,57 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# raidstart-stub
|
||||
#
|
||||
# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
# for testing
|
||||
if (os.path.exists('rpmmodule')):
|
||||
sys.path.append('rpmmodule')
|
||||
sys.path.append('libfdisk')
|
||||
sys.path.append('balkan')
|
||||
sys.path.append('gnome-map')
|
||||
sys.path.append('isys')
|
||||
|
||||
sys.path.append('/usr/lib/anaconda')
|
||||
|
||||
import anaconda_log
|
||||
import fsset
|
||||
import raid
|
||||
import isys
|
||||
from sys import argv
|
||||
|
||||
if len(argv) != 2 or argv[1][:7] != "/dev/md":
|
||||
print "usage: raidstart /dev/md[minornum]"
|
||||
sys.exit(1)
|
||||
|
||||
targMinor = int(argv[1][7:])
|
||||
|
||||
drives = isys.hardDriveDict().keys()
|
||||
drives.sort (isys.compareDrives)
|
||||
|
||||
raidDevices = raid.scanForRaid(drives)
|
||||
for (minor, devices, level, totalDisks) in raidDevices:
|
||||
if targMinor == minor:
|
||||
devName = "md%d" % (minor,)
|
||||
isys.raidstart(devName, devices[0])
|
||||
sys.exit(0)
|
||||
|
||||
print "could not find devices associated with raid device md%d" % targMinor
|
||||
sys.exit(1)
|
44
anaconda/command-stubs/raidstop-stub
Executable file
44
anaconda/command-stubs/raidstop-stub
Executable file
@ -0,0 +1,44 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# raidstop-stub
|
||||
#
|
||||
# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
# for testing
|
||||
if (os.path.exists('rpmmodule')):
|
||||
sys.path.append('rpmmodule')
|
||||
sys.path.append('libfdisk')
|
||||
sys.path.append('balkan')
|
||||
sys.path.append('gnome-map')
|
||||
sys.path.append('isys')
|
||||
|
||||
sys.path.append('/usr/lib/anaconda')
|
||||
|
||||
import anaconda_log
|
||||
import fsset
|
||||
import raid
|
||||
import isys
|
||||
from sys import argv
|
||||
|
||||
if len(argv) != 2 or argv[1][:7] != "/dev/md":
|
||||
print "usage: raidstop /dev/md[minornum]"
|
||||
sys.exit(1)
|
||||
|
||||
isys.raidstop(argv[1][5:])
|
69
anaconda/compssort.py
Normal file
69
anaconda/compssort.py
Normal file
@ -0,0 +1,69 @@
|
||||
#
|
||||
# compssort.py
|
||||
#
|
||||
# Copyright (C) 2005, 2006, 2007 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import os
|
||||
|
||||
import gettext
|
||||
_ = lambda x: gettext.ldgettext("anaconda", x)
|
||||
|
||||
def _getDefaultLangs():
|
||||
languages = []
|
||||
for envar in ('LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG'):
|
||||
val = os.environ.get(envar)
|
||||
if val:
|
||||
languages = val.split(':')
|
||||
break
|
||||
if 'C' not in languages:
|
||||
languages.append('C')
|
||||
|
||||
# now normalize and expand the languages
|
||||
nelangs = []
|
||||
for lang in languages:
|
||||
for nelang in gettext._expand_lang(lang):
|
||||
if nelang not in nelangs:
|
||||
nelangs.append(nelang)
|
||||
return nelangs
|
||||
|
||||
# kind of lame caching of translations so we don't always have
|
||||
# to do all the looping
|
||||
strs = {}
|
||||
def xmltrans(base, thedict):
|
||||
if strs.has_key(base):
|
||||
return strs[base]
|
||||
|
||||
langs = _getDefaultLangs()
|
||||
for l in langs:
|
||||
if thedict.has_key(l):
|
||||
strs[base] = thedict[l]
|
||||
return strs[base]
|
||||
strs[base] = base
|
||||
return base
|
||||
|
||||
def ui_comps_sort(one, two):
|
||||
if one.display_order > two.display_order:
|
||||
return 1
|
||||
elif one.display_order < two.display_order:
|
||||
return -1
|
||||
elif xmltrans(one.name, one.translated_name) > \
|
||||
xmltrans(two.name, two.translated_name):
|
||||
return 1
|
||||
elif xmltrans(one.name, one.translated_name) < \
|
||||
xmltrans(two.name, two.translated_name):
|
||||
return -1
|
||||
return 0
|
1501
anaconda/config.guess
vendored
Executable file
1501
anaconda/config.guess
vendored
Executable file
File diff suppressed because it is too large
Load Diff
390
anaconda/config.h.in
Normal file
390
anaconda/config.h.in
Normal file
@ -0,0 +1,390 @@
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Date of anaconda build */
|
||||
#undef BUILD_DATE
|
||||
|
||||
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
|
||||
systems. This function is required for `alloca.c' support on those systems.
|
||||
*/
|
||||
#undef CRAY_STACKSEG_END
|
||||
|
||||
/* Define to 1 if using `alloca.c'. */
|
||||
#undef C_ALLOCA
|
||||
|
||||
/* Define to 1 if translation of program messages to the user's native
|
||||
language is requested. */
|
||||
#undef ENABLE_NLS
|
||||
|
||||
/* Define to 1 if you have `alloca', as a function or macro. */
|
||||
#undef HAVE_ALLOCA
|
||||
|
||||
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
||||
*/
|
||||
#undef HAVE_ALLOCA_H
|
||||
|
||||
/* Define to 1 if you have the <argz.h> header file. */
|
||||
#undef HAVE_ARGZ_H
|
||||
|
||||
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||
#undef HAVE_ARPA_INET_H
|
||||
|
||||
/* Define to 1 if you have the <arpa/nameser.h> header file. */
|
||||
#undef HAVE_ARPA_NAMESER_H
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
|
||||
CoreFoundation framework. */
|
||||
#undef HAVE_CFLOCALECOPYCURRENT
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
|
||||
the CoreFoundation framework. */
|
||||
#undef HAVE_CFPREFERENCESCOPYAPPVALUE
|
||||
|
||||
/* Define to 1 if your system has a working `chown' function. */
|
||||
#undef HAVE_CHOWN
|
||||
|
||||
/* Define if the GNU dcgettext() function is already present or preinstalled.
|
||||
*/
|
||||
#undef HAVE_DCGETTEXT
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
/* Define to 1 if you have the `dup2' function. */
|
||||
#undef HAVE_DUP2
|
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#undef HAVE_FCNTL_H
|
||||
|
||||
/* Define to 1 if you have the `fdatasync' function. */
|
||||
#undef HAVE_FDATASYNC
|
||||
|
||||
/* Define to 1 if you have the `fork' function. */
|
||||
#undef HAVE_FORK
|
||||
|
||||
/* Define to 1 if you have the `ftruncate' function. */
|
||||
#undef HAVE_FTRUNCATE
|
||||
|
||||
/* Define to 1 if you have the `getcwd' function. */
|
||||
#undef HAVE_GETCWD
|
||||
|
||||
/* Define to 1 if you have the `gethostbyname' function. */
|
||||
#undef HAVE_GETHOSTBYNAME
|
||||
|
||||
/* Define to 1 if you have the `getpagesize' function. */
|
||||
#undef HAVE_GETPAGESIZE
|
||||
|
||||
/* Define if the GNU gettext() function is already present or preinstalled. */
|
||||
#undef HAVE_GETTEXT
|
||||
|
||||
/* Define to 1 if you have the `gettimeofday' function. */
|
||||
#undef HAVE_GETTIMEOFDAY
|
||||
|
||||
/* Define if you have the iconv() function and it works. */
|
||||
#undef HAVE_ICONV
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the `lchown' function. */
|
||||
#undef HAVE_LCHOWN
|
||||
|
||||
/* Define to 1 if you have the <libintl.h> header file. */
|
||||
#undef HAVE_LIBINTL_H
|
||||
|
||||
/* Define to 1 if you have the `selinux' library (-lselinux). */
|
||||
#undef HAVE_LIBSELINUX
|
||||
|
||||
/* Define to 1 if you have the <limits.h> header file. */
|
||||
#undef HAVE_LIMITS_H
|
||||
|
||||
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
|
||||
to 0 otherwise. */
|
||||
#undef HAVE_MALLOC
|
||||
|
||||
/* Define to 1 if you have the <malloc.h> header file. */
|
||||
#undef HAVE_MALLOC_H
|
||||
|
||||
/* Define to 1 if you have the `memmove' function. */
|
||||
#undef HAVE_MEMMOVE
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the `memset' function. */
|
||||
#undef HAVE_MEMSET
|
||||
|
||||
/* Define to 1 if you have the `mkdir' function. */
|
||||
#undef HAVE_MKDIR
|
||||
|
||||
/* Define to 1 if you have the `mkfifo' function. */
|
||||
#undef HAVE_MKFIFO
|
||||
|
||||
/* Define to 1 if you have a working `mmap' system call. */
|
||||
#undef HAVE_MMAP
|
||||
|
||||
/* Define to 1 if you have the `munmap' function. */
|
||||
#undef HAVE_MUNMAP
|
||||
|
||||
/* Define to 1 if you have the <netdb.h> header file. */
|
||||
#undef HAVE_NETDB_H
|
||||
|
||||
/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||
#undef HAVE_NETINET_IN_H
|
||||
|
||||
/* Define to 1 if your system has a GNU libc compatible `realloc' function,
|
||||
and to 0 otherwise. */
|
||||
#undef HAVE_REALLOC
|
||||
|
||||
/* Define to 1 if you have the `realpath' function. */
|
||||
#undef HAVE_REALPATH
|
||||
|
||||
/* Define to 1 if you have the <resolv.h> header file. */
|
||||
#undef HAVE_RESOLV_H
|
||||
|
||||
/* Define to 1 if you have the `select' function. */
|
||||
#undef HAVE_SELECT
|
||||
|
||||
/* Define to 1 if you have the `setenv' function. */
|
||||
#undef HAVE_SETENV
|
||||
|
||||
/* Define to 1 if you have the `sethostname' function. */
|
||||
#undef HAVE_SETHOSTNAME
|
||||
|
||||
/* Define to 1 if you have the `socket' function. */
|
||||
#undef HAVE_SOCKET
|
||||
|
||||
/* Define to 1 if you have the <stddef.h> header file. */
|
||||
#undef HAVE_STDDEF_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the `strcasecmp' function. */
|
||||
#undef HAVE_STRCASECMP
|
||||
|
||||
/* Define to 1 if you have the `strchr' function. */
|
||||
#undef HAVE_STRCHR
|
||||
|
||||
/* Define to 1 if you have the `strcspn' function. */
|
||||
#undef HAVE_STRCSPN
|
||||
|
||||
/* Define to 1 if you have the `strdup' function. */
|
||||
#undef HAVE_STRDUP
|
||||
|
||||
/* Define to 1 if you have the `strerror' function. */
|
||||
#undef HAVE_STRERROR
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the `strncasecmp' function. */
|
||||
#undef HAVE_STRNCASECMP
|
||||
|
||||
/* Define to 1 if you have the `strndup' function. */
|
||||
#undef HAVE_STRNDUP
|
||||
|
||||
/* Define to 1 if you have the `strrchr' function. */
|
||||
#undef HAVE_STRRCHR
|
||||
|
||||
/* Define to 1 if you have the `strstr' function. */
|
||||
#undef HAVE_STRSTR
|
||||
|
||||
/* Define to 1 if you have the `strtol' function. */
|
||||
#undef HAVE_STRTOL
|
||||
|
||||
/* Define to 1 if you have the `strtoul' function. */
|
||||
#undef HAVE_STRTOUL
|
||||
|
||||
/* Define to 1 if `st_rdev' is a member of `struct stat'. */
|
||||
#undef HAVE_STRUCT_STAT_ST_RDEV
|
||||
|
||||
/* Define to 1 if you have the `strverscmp' function. */
|
||||
#undef HAVE_STRVERSCMP
|
||||
|
||||
/* Define to 1 if you have the <syslog.h> header file. */
|
||||
#undef HAVE_SYSLOG_H
|
||||
|
||||
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||
#undef HAVE_SYS_IOCTL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/mount.h> header file. */
|
||||
#undef HAVE_SYS_MOUNT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||
#undef HAVE_SYS_PARAM_H
|
||||
|
||||
/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||
#undef HAVE_SYS_SOCKET_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#undef HAVE_SYS_TIME_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <sys/vfs.h> header file. */
|
||||
#undef HAVE_SYS_VFS_H
|
||||
|
||||
/* Define to 1 if you have the <termios.h> header file. */
|
||||
#undef HAVE_TERMIOS_H
|
||||
|
||||
/* Define to 1 if you have the `uname' function. */
|
||||
#undef HAVE_UNAME
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to 1 if you have the `utime' function. */
|
||||
#undef HAVE_UTIME
|
||||
|
||||
/* Define to 1 if you have the <utime.h> header file. */
|
||||
#undef HAVE_UTIME_H
|
||||
|
||||
/* Define to 1 if you have the `vfork' function. */
|
||||
#undef HAVE_VFORK
|
||||
|
||||
/* Define to 1 if you have the <vfork.h> header file. */
|
||||
#undef HAVE_VFORK_H
|
||||
|
||||
/* Define to 1 if you have the <wchar.h> header file. */
|
||||
#undef HAVE_WCHAR_H
|
||||
|
||||
/* Define to 1 if you have the `wcwidth' function. */
|
||||
#undef HAVE_WCWIDTH
|
||||
|
||||
/* Define to 1 if `fork' works. */
|
||||
#undef HAVE_WORKING_FORK
|
||||
|
||||
/* Define to 1 if `vfork' works. */
|
||||
#undef HAVE_WORKING_VFORK
|
||||
|
||||
/* Define to 1 if `lstat' dereferences a symlink specified with a trailing
|
||||
slash. */
|
||||
#undef LSTAT_FOLLOWS_SLASHED_SYMLINK
|
||||
|
||||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
#undef LT_OBJDIR
|
||||
|
||||
/* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.
|
||||
*/
|
||||
#undef MAJOR_IN_MKDEV
|
||||
|
||||
/* Define to 1 if `major', `minor', and `makedev' are declared in
|
||||
<sysmacros.h>. */
|
||||
#undef MAJOR_IN_SYSMACROS
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* If using the C implementation of alloca, define if you know the
|
||||
direction of stack growth for your system; otherwise it will be
|
||||
automatically deduced at runtime.
|
||||
STACK_DIRECTION > 0 => grows toward higher addresses
|
||||
STACK_DIRECTION < 0 => grows toward lower addresses
|
||||
STACK_DIRECTION = 0 => direction of growth unknown */
|
||||
#undef STACK_DIRECTION
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
|
||||
<pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
|
||||
#define below would cause a syntax error. */
|
||||
#undef _UINT32_T
|
||||
|
||||
/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
|
||||
<pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
|
||||
#define below would cause a syntax error. */
|
||||
#undef _UINT64_T
|
||||
|
||||
/* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>,
|
||||
<pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
|
||||
#define below would cause a syntax error. */
|
||||
#undef _UINT8_T
|
||||
|
||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
#undef gid_t
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
#undef inline
|
||||
#endif
|
||||
|
||||
/* Define to the type of a signed integer type of width exactly 32 bits if
|
||||
such a type exists and the standard includes do not define it. */
|
||||
#undef int32_t
|
||||
|
||||
/* Define to rpl_malloc if the replacement function should be used. */
|
||||
#undef malloc
|
||||
|
||||
/* Define to `int' if <sys/types.h> does not define. */
|
||||
#undef mode_t
|
||||
|
||||
/* Define to `long int' if <sys/types.h> does not define. */
|
||||
#undef off_t
|
||||
|
||||
/* Define to `int' if <sys/types.h> does not define. */
|
||||
#undef pid_t
|
||||
|
||||
/* Define to rpl_realloc if the replacement function should be used. */
|
||||
#undef realloc
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
||||
|
||||
/* Define to `int' if <sys/types.h> does not define. */
|
||||
#undef ssize_t
|
||||
|
||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
#undef uid_t
|
||||
|
||||
/* Define to the type of an unsigned integer type of width exactly 16 bits if
|
||||
such a type exists and the standard includes do not define it. */
|
||||
#undef uint16_t
|
||||
|
||||
/* Define to the type of an unsigned integer type of width exactly 32 bits if
|
||||
such a type exists and the standard includes do not define it. */
|
||||
#undef uint32_t
|
||||
|
||||
/* Define to the type of an unsigned integer type of width exactly 64 bits if
|
||||
such a type exists and the standard includes do not define it. */
|
||||
#undef uint64_t
|
||||
|
||||
/* Define to the type of an unsigned integer type of width exactly 8 bits if
|
||||
such a type exists and the standard includes do not define it. */
|
||||
#undef uint8_t
|
||||
|
||||
/* Define as `fork' if `vfork' does not work. */
|
||||
#undef vfork
|
666
anaconda/config.rpath
Normal file
666
anaconda/config.rpath
Normal file
@ -0,0 +1,666 @@
|
||||
#! /bin/sh
|
||||
# Output a system dependent set of variables, describing how to set the
|
||||
# run time search path of shared libraries in an executable.
|
||||
#
|
||||
# Copyright 1996-2007 Free Software Foundation, Inc.
|
||||
# Taken from GNU libtool, 2001
|
||||
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
|
||||
#
|
||||
# This file is free software; the Free Software Foundation gives
|
||||
# unlimited permission to copy and/or distribute it, with or without
|
||||
# modifications, as long as this notice is preserved.
|
||||
#
|
||||
# The first argument passed to this file is the canonical host specification,
|
||||
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
|
||||
# or
|
||||
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
|
||||
# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
|
||||
# should be set by the caller.
|
||||
#
|
||||
# The set of defined variables is at the end of this script.
|
||||
|
||||
# Known limitations:
|
||||
# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
|
||||
# than 256 bytes, otherwise the compiler driver will dump core. The only
|
||||
# known workaround is to choose shorter directory names for the build
|
||||
# directory and/or the installation directory.
|
||||
|
||||
# All known linkers require a `.a' archive for static linking (except MSVC,
|
||||
# which needs '.lib').
|
||||
libext=a
|
||||
shrext=.so
|
||||
|
||||
host="$1"
|
||||
host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
|
||||
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
|
||||
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
|
||||
|
||||
# Code taken from libtool.m4's _LT_CC_BASENAME.
|
||||
|
||||
for cc_temp in $CC""; do
|
||||
case $cc_temp in
|
||||
compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
|
||||
distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
|
||||
\-*) ;;
|
||||
*) break;;
|
||||
esac
|
||||
done
|
||||
cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
|
||||
|
||||
# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
|
||||
|
||||
wl=
|
||||
if test "$GCC" = yes; then
|
||||
wl='-Wl,'
|
||||
else
|
||||
case "$host_os" in
|
||||
aix*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
darwin*)
|
||||
case $cc_basename in
|
||||
xlc*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
mingw* | cygwin* | pw32* | os2*)
|
||||
;;
|
||||
hpux9* | hpux10* | hpux11*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
irix5* | irix6* | nonstopux*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
newsos6)
|
||||
;;
|
||||
linux* | k*bsd*-gnu)
|
||||
case $cc_basename in
|
||||
icc* | ecc*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
pgcc | pgf77 | pgf90)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
ccc*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
como)
|
||||
wl='-lopt='
|
||||
;;
|
||||
*)
|
||||
case `$CC -V 2>&1 | sed 5q` in
|
||||
*Sun\ C*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
osf3* | osf4* | osf5*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
rdos*)
|
||||
;;
|
||||
solaris*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
sunos4*)
|
||||
wl='-Qoption ld '
|
||||
;;
|
||||
sysv4 | sysv4.2uw2* | sysv4.3*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
sysv4*MP*)
|
||||
;;
|
||||
sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
unicos*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
uts4*)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
|
||||
|
||||
hardcode_libdir_flag_spec=
|
||||
hardcode_libdir_separator=
|
||||
hardcode_direct=no
|
||||
hardcode_minus_L=no
|
||||
|
||||
case "$host_os" in
|
||||
cygwin* | mingw* | pw32*)
|
||||
# FIXME: the MSVC++ port hasn't been tested in a loooong time
|
||||
# When not using gcc, we currently assume that we are using
|
||||
# Microsoft Visual C++.
|
||||
if test "$GCC" != yes; then
|
||||
with_gnu_ld=no
|
||||
fi
|
||||
;;
|
||||
interix*)
|
||||
# we just hope/assume this is gcc and not c89 (= MSVC++)
|
||||
with_gnu_ld=yes
|
||||
;;
|
||||
openbsd*)
|
||||
with_gnu_ld=no
|
||||
;;
|
||||
esac
|
||||
|
||||
ld_shlibs=yes
|
||||
if test "$with_gnu_ld" = yes; then
|
||||
# Set some defaults for GNU ld with shared library support. These
|
||||
# are reset later if shared libraries are not supported. Putting them
|
||||
# here allows them to be overridden if necessary.
|
||||
# Unlike libtool, we use -rpath here, not --rpath, since the documented
|
||||
# option of GNU ld is called -rpath, not --rpath.
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
case "$host_os" in
|
||||
aix3* | aix4* | aix5*)
|
||||
# On AIX/PPC, the GNU linker is very broken
|
||||
if test "$host_cpu" != ia64; then
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
amigaos*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
# Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
|
||||
# that the semantics of dynamic libraries on AmigaOS, at least up
|
||||
# to version 4, is to share data among multiple programs linked
|
||||
# with the same dynamic library. Since this doesn't match the
|
||||
# behavior of shared libraries on other platforms, we cannot use
|
||||
# them.
|
||||
ld_shlibs=no
|
||||
;;
|
||||
beos*)
|
||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
cygwin* | mingw* | pw32*)
|
||||
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
||||
# no search path for DLLs.
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
interix[3-9]*)
|
||||
hardcode_direct=no
|
||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
||||
;;
|
||||
gnu* | linux* | k*bsd*-gnu)
|
||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
netbsd*)
|
||||
;;
|
||||
solaris*)
|
||||
if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
|
||||
ld_shlibs=no
|
||||
elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
|
||||
case `$LD -v 2>&1` in
|
||||
*\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
*)
|
||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
sunos4*)
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
*)
|
||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if test "$ld_shlibs" = no; then
|
||||
hardcode_libdir_flag_spec=
|
||||
fi
|
||||
else
|
||||
case "$host_os" in
|
||||
aix3*)
|
||||
# Note: this linker hardcodes the directories in LIBPATH if there
|
||||
# are no directories specified by -L.
|
||||
hardcode_minus_L=yes
|
||||
if test "$GCC" = yes; then
|
||||
# Neither direct hardcoding nor static linking is supported with a
|
||||
# broken collect2.
|
||||
hardcode_direct=unsupported
|
||||
fi
|
||||
;;
|
||||
aix4* | aix5*)
|
||||
if test "$host_cpu" = ia64; then
|
||||
# On IA64, the linker does run time linking by default, so we don't
|
||||
# have to do anything special.
|
||||
aix_use_runtimelinking=no
|
||||
else
|
||||
aix_use_runtimelinking=no
|
||||
# Test if we are trying to use run time linking or normal
|
||||
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
|
||||
# need to do runtime linking.
|
||||
case $host_os in aix4.[23]|aix4.[23].*|aix5*)
|
||||
for ld_flag in $LDFLAGS; do
|
||||
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
|
||||
aix_use_runtimelinking=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
hardcode_direct=yes
|
||||
hardcode_libdir_separator=':'
|
||||
if test "$GCC" = yes; then
|
||||
case $host_os in aix4.[012]|aix4.[012].*)
|
||||
collect2name=`${CC} -print-prog-name=collect2`
|
||||
if test -f "$collect2name" && \
|
||||
strings "$collect2name" | grep resolve_lib_name >/dev/null
|
||||
then
|
||||
# We have reworked collect2
|
||||
:
|
||||
else
|
||||
# We have old collect2
|
||||
hardcode_direct=unsupported
|
||||
hardcode_minus_L=yes
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_libdir_separator=
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
# Begin _LT_AC_SYS_LIBPATH_AIX.
|
||||
echo 'int main () { return 0; }' > conftest.c
|
||||
${CC} ${LDFLAGS} conftest.c -o conftest
|
||||
aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
|
||||
}'`
|
||||
if test -z "$aix_libpath"; then
|
||||
aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
|
||||
}'`
|
||||
fi
|
||||
if test -z "$aix_libpath"; then
|
||||
aix_libpath="/usr/lib:/lib"
|
||||
fi
|
||||
rm -f conftest.c conftest
|
||||
# End _LT_AC_SYS_LIBPATH_AIX.
|
||||
if test "$aix_use_runtimelinking" = yes; then
|
||||
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
|
||||
else
|
||||
if test "$host_cpu" = ia64; then
|
||||
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
|
||||
else
|
||||
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
amigaos*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
# see comment about different semantics on the GNU ld section
|
||||
ld_shlibs=no
|
||||
;;
|
||||
bsdi[45]*)
|
||||
;;
|
||||
cygwin* | mingw* | pw32*)
|
||||
# When not using gcc, we currently assume that we are using
|
||||
# Microsoft Visual C++.
|
||||
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
||||
# no search path for DLLs.
|
||||
hardcode_libdir_flag_spec=' '
|
||||
libext=lib
|
||||
;;
|
||||
darwin* | rhapsody*)
|
||||
hardcode_direct=no
|
||||
if test "$GCC" = yes ; then
|
||||
:
|
||||
else
|
||||
case $cc_basename in
|
||||
xlc*)
|
||||
;;
|
||||
*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
dgux*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
;;
|
||||
freebsd1*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
freebsd2.2*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
freebsd2*)
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
freebsd* | dragonfly*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
hpux9*)
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
hardcode_direct=yes
|
||||
# hardcode_minus_L: Not really in the search PATH,
|
||||
# but as the default location of the library.
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
hpux10*)
|
||||
if test "$with_gnu_ld" = no; then
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
hardcode_direct=yes
|
||||
# hardcode_minus_L: Not really in the search PATH,
|
||||
# but as the default location of the library.
|
||||
hardcode_minus_L=yes
|
||||
fi
|
||||
;;
|
||||
hpux11*)
|
||||
if test "$with_gnu_ld" = no; then
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
case $host_cpu in
|
||||
hppa*64*|ia64*)
|
||||
hardcode_direct=no
|
||||
;;
|
||||
*)
|
||||
hardcode_direct=yes
|
||||
# hardcode_minus_L: Not really in the search PATH,
|
||||
# but as the default location of the library.
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
irix5* | irix6* | nonstopux*)
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
netbsd*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
newsos6)
|
||||
hardcode_direct=yes
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
openbsd*)
|
||||
if test -f /usr/libexec/ld.so; then
|
||||
hardcode_direct=yes
|
||||
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
|
||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
||||
else
|
||||
case "$host_os" in
|
||||
openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
;;
|
||||
*)
|
||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
os2*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
osf3*)
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
osf4* | osf5*)
|
||||
if test "$GCC" = yes; then
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
else
|
||||
# Both cc and cxx compiler support -rpath directly
|
||||
hardcode_libdir_flag_spec='-rpath $libdir'
|
||||
fi
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
solaris*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
;;
|
||||
sunos4*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
sysv4)
|
||||
case $host_vendor in
|
||||
sni)
|
||||
hardcode_direct=yes # is this really true???
|
||||
;;
|
||||
siemens)
|
||||
hardcode_direct=no
|
||||
;;
|
||||
motorola)
|
||||
hardcode_direct=no #Motorola manual says yes, but my tests say they lie
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
sysv4.3*)
|
||||
;;
|
||||
sysv4*MP*)
|
||||
if test -d /usr/nec; then
|
||||
ld_shlibs=yes
|
||||
fi
|
||||
;;
|
||||
sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
|
||||
;;
|
||||
sysv5* | sco3.2v5* | sco5v6*)
|
||||
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
|
||||
hardcode_libdir_separator=':'
|
||||
;;
|
||||
uts4*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
;;
|
||||
*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Check dynamic linker characteristics
|
||||
# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
|
||||
# Unlike libtool.m4, here we don't care about _all_ names of the library, but
|
||||
# only about the one the linker finds when passed -lNAME. This is the last
|
||||
# element of library_names_spec in libtool.m4, or possibly two of them if the
|
||||
# linker has special search rules.
|
||||
library_names_spec= # the last element of library_names_spec in libtool.m4
|
||||
libname_spec='lib$name'
|
||||
case "$host_os" in
|
||||
aix3*)
|
||||
library_names_spec='$libname.a'
|
||||
;;
|
||||
aix4* | aix5*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
amigaos*)
|
||||
library_names_spec='$libname.a'
|
||||
;;
|
||||
beos*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
bsdi[45]*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
cygwin* | mingw* | pw32*)
|
||||
shrext=.dll
|
||||
library_names_spec='$libname.dll.a $libname.lib'
|
||||
;;
|
||||
darwin* | rhapsody*)
|
||||
shrext=.dylib
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
dgux*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
freebsd1*)
|
||||
;;
|
||||
freebsd* | dragonfly*)
|
||||
case "$host_os" in
|
||||
freebsd[123]*)
|
||||
library_names_spec='$libname$shrext$versuffix' ;;
|
||||
*)
|
||||
library_names_spec='$libname$shrext' ;;
|
||||
esac
|
||||
;;
|
||||
gnu*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
hpux9* | hpux10* | hpux11*)
|
||||
case $host_cpu in
|
||||
ia64*)
|
||||
shrext=.so
|
||||
;;
|
||||
hppa*64*)
|
||||
shrext=.sl
|
||||
;;
|
||||
*)
|
||||
shrext=.sl
|
||||
;;
|
||||
esac
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
interix[3-9]*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
irix5* | irix6* | nonstopux*)
|
||||
library_names_spec='$libname$shrext'
|
||||
case "$host_os" in
|
||||
irix5* | nonstopux*)
|
||||
libsuff= shlibsuff=
|
||||
;;
|
||||
*)
|
||||
case $LD in
|
||||
*-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
|
||||
*-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
|
||||
*-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
|
||||
*) libsuff= shlibsuff= ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
linux*oldld* | linux*aout* | linux*coff*)
|
||||
;;
|
||||
linux* | k*bsd*-gnu)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
knetbsd*-gnu)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
netbsd*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
newsos6)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
nto-qnx*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
openbsd*)
|
||||
library_names_spec='$libname$shrext$versuffix'
|
||||
;;
|
||||
os2*)
|
||||
libname_spec='$name'
|
||||
shrext=.dll
|
||||
library_names_spec='$libname.a'
|
||||
;;
|
||||
osf3* | osf4* | osf5*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
rdos*)
|
||||
;;
|
||||
solaris*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
sunos4*)
|
||||
library_names_spec='$libname$shrext$versuffix'
|
||||
;;
|
||||
sysv4 | sysv4.3*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
sysv4*MP*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
uts4*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
esac
|
||||
|
||||
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
|
||||
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
|
||||
escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
|
||||
LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
|
||||
|
||||
# How to pass a linker flag through the compiler.
|
||||
wl="$escaped_wl"
|
||||
|
||||
# Static library suffix (normally "a").
|
||||
libext="$libext"
|
||||
|
||||
# Shared library suffix (normally "so").
|
||||
shlibext="$shlibext"
|
||||
|
||||
# Format of library name prefix.
|
||||
libname_spec="$escaped_libname_spec"
|
||||
|
||||
# Library names that the linker finds when passed -lNAME.
|
||||
library_names_spec="$escaped_library_names_spec"
|
||||
|
||||
# Flag to hardcode \$libdir into a binary during linking.
|
||||
# This must work even if \$libdir does not exist.
|
||||
hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
|
||||
|
||||
# Whether we need a single -rpath flag with a separated argument.
|
||||
hardcode_libdir_separator="$hardcode_libdir_separator"
|
||||
|
||||
# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
|
||||
# resulting binary.
|
||||
hardcode_direct="$hardcode_direct"
|
||||
|
||||
# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
|
||||
# resulting binary.
|
||||
hardcode_minus_L="$hardcode_minus_L"
|
||||
|
||||
EOF
|
1705
anaconda/config.sub
vendored
Executable file
1705
anaconda/config.sub
vendored
Executable file
File diff suppressed because it is too large
Load Diff
18958
anaconda/configure
vendored
Executable file
18958
anaconda/configure
vendored
Executable file
File diff suppressed because it is too large
Load Diff
279
anaconda/configure.ac
Normal file
279
anaconda/configure.ac
Normal file
@ -0,0 +1,279 @@
|
||||
# configure.ac for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
m4_define(python_required_version, 2.5)
|
||||
|
||||
AC_PREREQ([2.63])
|
||||
AC_INIT([anaconda], [13.42], [anaconda-devel-list@redhat.com])
|
||||
AM_INIT_AUTOMAKE([foreign no-dist-gzip dist-bzip2])
|
||||
|
||||
AC_CONFIG_SRCDIR([loader/loader.c])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
AC_DEFINE_UNQUOTED([BUILD_DATE], ["`date +%m%d%Y`"], [Date of anaconda build])
|
||||
AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_AWK
|
||||
AC_PROG_GREP
|
||||
AC_PROG_CC
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_LN_S
|
||||
AC_PROG_MAKE_SET
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
AM_GNU_GETTEXT([external])
|
||||
|
||||
# Checks for libraries.
|
||||
AC_CHECK_LIB([X11], [XGetWindowAttributes],
|
||||
[AC_SUBST(X11_LIBS, [-lX11])],
|
||||
[AC_MSG_FAILURE([*** libX11 not usable.])])
|
||||
|
||||
AC_CHECK_LIB([audit], [audit_open],
|
||||
[AC_SUBST(AUDIT_LIBS, [-laudit])],
|
||||
[AC_MSG_FAILURE([*** libaudit not usable.])])
|
||||
|
||||
AC_CHECK_LIB([blkid], [blkid_get_cache],
|
||||
[AC_SUBST(BLKID_LIBS, [-lblkid])],
|
||||
[AC_MSG_FAILURE([*** libblkid not usable.])])
|
||||
|
||||
AC_CHECK_LIB([checkisomd5], [mediaCheckFile],
|
||||
[AC_SUBST(CHECKISOMD5_LIBS, [-lcheckisomd5])],
|
||||
[AC_MSG_FAILURE([*** libcheckisomd5 not usable.])])
|
||||
|
||||
AC_CHECK_LIB([ext2fs], [ext2fs_initialize],
|
||||
[AC_SUBST(EXT2FS_LIBS, [-lext2fs])],
|
||||
[AC_MSG_FAILURE([*** libext2fs not usable.])])
|
||||
|
||||
AC_CHECK_LIB([iscsi], [libiscsi_get_firmware_network_config],
|
||||
[AC_SUBST(ISCSI_LIBS, [-liscsi])],
|
||||
[AC_MSG_FAILURE([*** libiscsi not usable.])])
|
||||
|
||||
AC_CHECK_LIB([newt], [newtInit],
|
||||
[AC_SUBST(NEWT_LIBS, [-lnewt])],
|
||||
[AC_MSG_FAILURE([*** libnewt not usable.])])
|
||||
|
||||
AC_CHECK_LIB([slang], [SLang_get_int_size],
|
||||
[AC_SUBST(SLANG_LIBS, [-lslang])],
|
||||
[AC_MSG_FAILURE([*** libslang not usable.])])
|
||||
|
||||
AC_CHECK_LIB([z], [zlibVersion],
|
||||
[AC_SUBST(ZLIB_LIBS, [-lz])],
|
||||
[AC_MSG_FAILURE([*** libz not usable.])])
|
||||
|
||||
# Checks for header files.
|
||||
AC_PATH_X
|
||||
AC_FUNC_ALLOCA
|
||||
AC_HEADER_RESOLV
|
||||
AC_HEADER_MAJOR
|
||||
AC_CHECK_HEADERS([argz.h arpa/inet.h fcntl.h inttypes.h libintl.h limits.h \
|
||||
malloc.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h \
|
||||
string.h strings.h sys/ioctl.h sys/mount.h sys/param.h \
|
||||
sys/socket.h sys/time.h sys/vfs.h syslog.h termios.h \
|
||||
unistd.h utime.h wchar.h],
|
||||
[],
|
||||
[AC_MSG_FAILURE([*** Header file $ac_header not found.])],
|
||||
[])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_TYPE_UID_T
|
||||
AC_C_INLINE
|
||||
AC_TYPE_INT32_T
|
||||
AC_TYPE_MODE_T
|
||||
AC_TYPE_OFF_T
|
||||
AC_TYPE_PID_T
|
||||
AC_TYPE_SIZE_T
|
||||
AC_TYPE_SSIZE_T
|
||||
AC_CHECK_MEMBERS([struct stat.st_rdev])
|
||||
AC_TYPE_UINT16_T
|
||||
AC_TYPE_UINT32_T
|
||||
AC_TYPE_UINT64_T
|
||||
AC_TYPE_UINT8_T
|
||||
|
||||
# Checks for library functions.
|
||||
AC_FUNC_CHOWN
|
||||
AC_FUNC_ERROR_AT_LINE
|
||||
AC_FUNC_FORK
|
||||
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
|
||||
AC_FUNC_MALLOC
|
||||
AC_FUNC_MMAP
|
||||
AC_FUNC_REALLOC
|
||||
AC_CHECK_FUNCS([dup2 fdatasync ftruncate getcwd gethostbyname gettimeofday \
|
||||
lchown memmove memset mkdir mkfifo munmap realpath select \
|
||||
setenv sethostname socket strcasecmp strchr strcspn strdup \
|
||||
strerror strncasecmp strndup strrchr strstr strtol strtoul \
|
||||
strverscmp uname utime wcwidth],
|
||||
[],
|
||||
[AC_MSG_FAILURE([*** Required function $ac_func not found.])])
|
||||
|
||||
AM_PATH_PYTHON(python_required_version)
|
||||
AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers or library)])
|
||||
|
||||
# Check for libraries we need that provide pkg-config scripts
|
||||
PKG_PROG_PKG_CONFIG([0.23])
|
||||
PKG_CHECK_MODULES([X11], [x11 >= 1.3])
|
||||
PKG_CHECK_MODULES([XCOMPOSITE], [xcomposite >= 0.4.1])
|
||||
PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.16.1])
|
||||
PKG_CHECK_MODULES([GTK_X11], [gtk+-x11-2.0 >= 2.16.1])
|
||||
PKG_CHECK_MODULES([GDK], [gdk-2.0 >= 2.16.1])
|
||||
PKG_CHECK_MODULES([NETWORKMANAGER], [NetworkManager >= 0.7.1])
|
||||
PKG_CHECK_MODULES([LIBNL], [libnl-1 >= 1.0])
|
||||
PKG_CHECK_MODULES([LIBNM_GLIB], [libnm-glib >= 0.7.1 libnm-util >= 0.7.1])
|
||||
PKG_CHECK_MODULES([DEVMAPPER], [devmapper >= 1.02.17])
|
||||
PKG_CHECK_MODULES([LIBCURL], [libcurl >= 7.19.5])
|
||||
PKG_CHECK_MODULES([RPM], [rpm >= 4.8.0])
|
||||
PKG_CHECK_MODULES([LIBARCHIVE], [libarchive >= 2.7.902a])
|
||||
|
||||
# Set $RPM_OPT_FLAGS if we don't have it
|
||||
if test -z $RPM_OPT_FLAGS ; then
|
||||
CFLAGS="$CFLAGS -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions"
|
||||
else
|
||||
CFLAGS="$CFLAGS $RPM_OPT_FLAGS"
|
||||
fi
|
||||
|
||||
# SELinux support can be enabled or disabled
|
||||
AC_ARG_ENABLE(selinux,
|
||||
AC_HELP_STRING([--enable-selinux],
|
||||
[enable SELinux support (default is yes)]),
|
||||
[selinux=$enableval],
|
||||
[selinux=yes])
|
||||
if test x$selinux = xyes ; then
|
||||
AC_CHECK_LIB([selinux], [matchpathcon], [],
|
||||
[AC_MSG_FAILURE([*** libselinux not usable.])])
|
||||
AC_CHECK_LIB([selinux], [lsetfilecon], [],
|
||||
[AC_MSG_FAILURE([*** libselinux not usable.])])
|
||||
|
||||
selinux_libs="-lselinux -laudit"
|
||||
AC_SUBST(SELINUX_CFLAGS, [-DUSESELINUX=1])
|
||||
AC_SUBST(SELINUX_LIBS, [$selinux_libs])
|
||||
fi
|
||||
|
||||
# NFS support can, in theory, be enabled or disabled
|
||||
AC_ARG_ENABLE(nfs,
|
||||
AC_HELP_STRING([--enable-nfs],
|
||||
[enable NFS support (default is yes)]),
|
||||
[nfs=$enableval],
|
||||
[nfs=yes])
|
||||
if test x$selinux = xyes ; then
|
||||
AC_SUBST(NFS_CFLAGS, [-DHAVE_NFS])
|
||||
fi
|
||||
|
||||
# IPv6 support can be enabled or disabled
|
||||
AC_ARG_ENABLE(ipv6,
|
||||
AC_HELP_STRING([--enable-ipv6],
|
||||
[enable IPv6 support (default is yes)]),
|
||||
[ipv6=$enableval],
|
||||
[ipv6=yes])
|
||||
if test x$ipv6 = xyes ; then
|
||||
AC_SUBST(IPV6_CFLAGS, [-DENABLE_IPV6])
|
||||
fi
|
||||
|
||||
# Add remaining compiler flags we want to use
|
||||
CFLAGS="$CFLAGS -Wall -Werror -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
|
||||
|
||||
# Filter CFLAGS (remove duplicate flags)
|
||||
cflags_filter() {
|
||||
have=
|
||||
first=1
|
||||
for flag in $* ; do
|
||||
if test -z "`echo $have | grep -- $flag`" ; then
|
||||
if test x$first == x1 ; then
|
||||
first=2
|
||||
else
|
||||
echo -n " "
|
||||
fi
|
||||
echo -n $flag
|
||||
have="$have $flag"
|
||||
fi
|
||||
done
|
||||
}
|
||||
CFLAGS="`cflags_filter $CFLAGS`"
|
||||
|
||||
# Unset $(LIBS) because different programs and libraries will have different
|
||||
# lists of libraries to link with, we don't want everything linking against
|
||||
# all libraries we checked for.
|
||||
LIBS=
|
||||
|
||||
# Get the release number from the spec file
|
||||
rel="`awk '/Release:/ { split($2, r, "%"); print r[[1]] }' anaconda.spec.in`"
|
||||
AC_SUBST(PACKAGE_RELEASE, [$rel])
|
||||
|
||||
# Set $(ARCH) and arch-related tests
|
||||
s_arch="`uname -m | sed -e s/i.86/i386/ -e s/sparc.*/sparc/ -e s/ppc.*/ppc/`"
|
||||
AC_SUBST(ARCH, [$s_arch])
|
||||
|
||||
AM_CONDITIONAL(IS_FONT_ARCH,
|
||||
[test x$s_arch != xs390 && test x$s_arch != xs390x])
|
||||
|
||||
AM_CONDITIONAL(IS_LIVEINST_ARCH,
|
||||
[test x$s_arch == xppc || test x$s_arch == xi386 || test x$s_arch == xx86_64])
|
||||
|
||||
AM_CONDITIONAL(IS_GPTSYNC_ARCH,
|
||||
[test x$s_arch == xi386 || test x$s_arch == xx86_64])
|
||||
|
||||
AM_CONDITIONAL(IS_KEYMAPS_OVERRIDE_ARCH,
|
||||
[test x$s_arch == xi386 || test x$s_arch == xppc || test x$s_arch == xx86_64])
|
||||
|
||||
AM_CONDITIONAL(IS_I386,
|
||||
[test x$s_arch == xi386])
|
||||
|
||||
AM_CONDITIONAL(IS_PPC,
|
||||
[test x$s_arch == xppc])
|
||||
|
||||
AM_CONDITIONAL(IS_S390,
|
||||
[test x$s_arch == xs390 || test x$s_arch == xs390x])
|
||||
|
||||
AM_CONDITIONAL(IS_X86_64,
|
||||
[test x$s_arch == xx86_64])
|
||||
|
||||
AM_CONDITIONAL(IS_SPARC,
|
||||
[test x$s_arch == xsparc || test x$s_arch == xsparc64])
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
bootdisk/Makefile
|
||||
bootdisk/i386/Makefile
|
||||
bootdisk/ppc/Makefile
|
||||
bootdisk/s390x/Makefile
|
||||
bootdisk/x86_64/Makefile
|
||||
booty/Makefile
|
||||
command-stubs/Makefile
|
||||
docs/Makefile
|
||||
fonts/Makefile
|
||||
gptsync/Makefile
|
||||
installclasses/Makefile
|
||||
isys/Makefile
|
||||
iw/Makefile
|
||||
liveinst/Makefile
|
||||
liveinst/console.apps/Makefile
|
||||
liveinst/pam.d/Makefile
|
||||
loader/Makefile
|
||||
pixmaps/Makefile
|
||||
po/Makefile.in
|
||||
scripts/Makefile
|
||||
storage/Makefile
|
||||
storage/devicelibs/Makefile
|
||||
storage/formats/Makefile
|
||||
tests/Makefile
|
||||
tests/storage/Makefile
|
||||
tests/storage/devicelibs/Makefile
|
||||
textw/Makefile
|
||||
ui/Makefile
|
||||
utils/Makefile])
|
||||
AC_OUTPUT
|
89
anaconda/constants.py
Normal file
89
anaconda/constants.py
Normal file
@ -0,0 +1,89 @@
|
||||
#
|
||||
# constants.py: anaconda constants
|
||||
#
|
||||
# Copyright (C) 2001 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author(s): Erik Troan <ewt@redhat.com>
|
||||
#
|
||||
|
||||
import gettext
|
||||
_ = lambda x: gettext.ldgettext("anaconda", x)
|
||||
N_ = lambda x: x
|
||||
|
||||
BETANAG = 0
|
||||
|
||||
SELINUX_DEFAULT = 1
|
||||
|
||||
DISPATCH_BACK = -1
|
||||
DISPATCH_FORWARD = 1
|
||||
DISPATCH_NOOP = None
|
||||
|
||||
EXN_OK = 0
|
||||
EXN_DEBUG = 1
|
||||
EXN_SAVE = 2
|
||||
EXN_CANCEL = 3
|
||||
|
||||
# different types of partition requests
|
||||
# REQUEST_PREEXIST is a placeholder for a pre-existing partition on the system
|
||||
# REQUEST_NEW is a request for a partition which will be automatically
|
||||
# created based on various constraints on size, drive, etc
|
||||
# REQUEST_RAID is a request for a raid device
|
||||
# REQUEST_PROTECTED is a preexisting partition which can't change
|
||||
# (harddrive install, harddrive with the isos on it)
|
||||
#
|
||||
REQUEST_PREEXIST = 1
|
||||
REQUEST_NEW = 2
|
||||
REQUEST_RAID = 4
|
||||
REQUEST_PROTECTED = 8
|
||||
REQUEST_VG = 16 # volume group
|
||||
REQUEST_LV = 32 # logical volume
|
||||
|
||||
# XXX this is made up and used by the size spinner; should just be set with
|
||||
# a callback
|
||||
MAX_PART_SIZE = 1024*1024*1024
|
||||
|
||||
# install key related constants
|
||||
SKIP_KEY = -50
|
||||
|
||||
# pull in kickstart constants as well
|
||||
from pykickstart.constants import *
|
||||
|
||||
# common string needs to be easy to change
|
||||
import product
|
||||
productName = product.productName
|
||||
productVersion = product.productVersion
|
||||
productArch = product.productArch
|
||||
productPath = product.productPath
|
||||
bugzillaUrl = product.bugUrl
|
||||
|
||||
lvmErrorOutput = "/tmp/lvmout"
|
||||
|
||||
exceptionText = _("An unhandled exception has occurred. This "
|
||||
"is most likely a bug. Please save a copy of "
|
||||
"the detailed exception and file a bug report")
|
||||
if not bugzillaUrl:
|
||||
# this string will be combined with "An unhandled exception"...
|
||||
# the leading space is not a typo.
|
||||
exceptionText += _(" with the provider of this software.")
|
||||
else:
|
||||
# this string will be combined with "An unhandled exception"...
|
||||
# the leading space is not a typo.
|
||||
exceptionText += _(" against anaconda at %s") %(bugzillaUrl,)
|
||||
|
||||
# DriverDisc Paths
|
||||
DD_EXTRACTED = "/tmp/DD"
|
||||
DD_RPMS = "/tmp/DD-*"
|
||||
|
630
anaconda/depcomp
Executable file
630
anaconda/depcomp
Executable file
@ -0,0 +1,630 @@
|
||||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
|
||||
# Software Foundation, Inc.
|
||||
|
||||
# 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, 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, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||
as side-effects.
|
||||
|
||||
Environment variables:
|
||||
depmode Dependency tracking mode.
|
||||
source Source file read by `PROGRAMS ARGS'.
|
||||
object Object file output by `PROGRAMS ARGS'.
|
||||
DEPDIR directory where to store dependencies.
|
||||
depfile Dependency file to output.
|
||||
tmpdepfile Temporary file to use when outputing dependencies.
|
||||
libtool Whether libtool is used (yes/no).
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "depcomp $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||
depfile=${depfile-`echo "$object" |
|
||||
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||
|
||||
rm -f "$tmpdepfile"
|
||||
|
||||
# Some modes work just like other modes, but use different flags. We
|
||||
# parameterize here, but still list the modes in the big case below,
|
||||
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||
# here, because this file can only contain one case statement.
|
||||
if test "$depmode" = hp; then
|
||||
# HP compiler uses -M and no extra arg.
|
||||
gccflag=-M
|
||||
depmode=gcc
|
||||
fi
|
||||
|
||||
if test "$depmode" = dashXmstdout; then
|
||||
# This is just like dashmstdout with a different argument.
|
||||
dashmflag=-xM
|
||||
depmode=dashmstdout
|
||||
fi
|
||||
|
||||
cygpath_u="cygpath -u -f -"
|
||||
if test "$depmode" = msvcmsys; then
|
||||
# This is just like msvisualcpp but w/o cygpath translation.
|
||||
# Just convert the backslash-escaped backslashes to single forward
|
||||
# slashes to satisfy depend.m4
|
||||
cygpath_u="sed s,\\\\\\\\,/,g"
|
||||
depmode=msvisualcpp
|
||||
fi
|
||||
|
||||
case "$depmode" in
|
||||
gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||
## the command line argument order; so add the flags where they
|
||||
## appear in depend2.am. Note that the slowdown incurred here
|
||||
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||
*) set fnord "$@" "$arg" ;;
|
||||
esac
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
done
|
||||
"$@"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
mv "$tmpdepfile" "$depfile"
|
||||
;;
|
||||
|
||||
gcc)
|
||||
## There are various ways to get dependency output from gcc. Here's
|
||||
## why we pick this rather obscure method:
|
||||
## - Don't want to use -MD because we'd like the dependencies to end
|
||||
## up in a subdir. Having to rename by hand is ugly.
|
||||
## (We might end up doing this anyway to support other compilers.)
|
||||
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||
## -MM, not -M (despite what the docs say).
|
||||
## - Using -M directly means running the compiler twice (even worse
|
||||
## than renaming).
|
||||
if test -z "$gccflag"; then
|
||||
gccflag=-MD,
|
||||
fi
|
||||
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||
## The second -e expression handles DOS-style file names with drive letters.
|
||||
sed -e 's/^[^:]*: / /' \
|
||||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||
## This next piece of magic avoids the `deleted header file' problem.
|
||||
## The problem is that when a header file which appears in a .P file
|
||||
## is deleted, the dependency causes make to die (because there is
|
||||
## typically no way to rebuild the header). We avoid this by adding
|
||||
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||
## this for us directly.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" |
|
||||
## Some versions of gcc put a space before the `:'. On the theory
|
||||
## that the space means something, we add a space to the output as
|
||||
## well.
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
sgi)
|
||||
if test "$libtool" = yes; then
|
||||
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||
else
|
||||
"$@" -MDupdate "$tmpdepfile"
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
|
||||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||
echo "$object : \\" > "$depfile"
|
||||
|
||||
# Clip off the initial element (the dependent). Don't try to be
|
||||
# clever and replace this with sed code, as IRIX sed won't handle
|
||||
# lines with more than a fixed number of characters (4096 in
|
||||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||
# dependency line.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||
tr '
|
||||
' ' ' >> "$depfile"
|
||||
echo >> "$depfile"
|
||||
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
aix)
|
||||
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||
# in a .u file. In older versions, this file always lives in the
|
||||
# current directory. Also, the AIX compiler puts `$object:' at the
|
||||
# start of each line; $object doesn't have directory information.
|
||||
# Version 6 uses the directory in both cases.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$base.u
|
||||
tmpdepfile3=$dir.libs/$base.u
|
||||
"$@" -Wc,-M
|
||||
else
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$dir$base.u
|
||||
tmpdepfile3=$dir$base.u
|
||||
"$@" -M
|
||||
fi
|
||||
stat=$?
|
||||
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
# Each line is of the form `foo.o: dependent.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
icc)
|
||||
# Intel's C compiler understands `-MD -MF file'. However on
|
||||
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
|
||||
# ICC 7.0 will fill foo.d with something like
|
||||
# foo.o: sub/foo.c
|
||||
# foo.o: sub/foo.h
|
||||
# which is wrong. We want:
|
||||
# sub/foo.o: sub/foo.c
|
||||
# sub/foo.o: sub/foo.h
|
||||
# sub/foo.c:
|
||||
# sub/foo.h:
|
||||
# ICC 7.1 will output
|
||||
# foo.o: sub/foo.c sub/foo.h
|
||||
# and will wrap long lines using \ :
|
||||
# foo.o: sub/foo.c ... \
|
||||
# sub/foo.h ... \
|
||||
# ...
|
||||
|
||||
"$@" -MD -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
# Each line is of the form `foo.o: dependent.h',
|
||||
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
# correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
|
||||
sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp2)
|
||||
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||
# compilers, which have integrated preprocessors. The correct option
|
||||
# to use with these is +Maked; it writes dependencies to a file named
|
||||
# 'foo.d', which lands next to the object file, wherever that
|
||||
# happens to be.
|
||||
# Much of this is similar to the tru64 case; see comments there.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir.libs/$base.d
|
||||
"$@" -Wc,+Maked
|
||||
else
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
"$@" +Maked
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||
# Add `dependent.h:' lines.
|
||||
sed -ne '2,${
|
||||
s/^ *//
|
||||
s/ \\*$//
|
||||
s/$/:/
|
||||
p
|
||||
}' "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||
;;
|
||||
|
||||
tru64)
|
||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||
# dependencies in `foo.d' instead, so we check for that too.
|
||||
# Subdirectories are respected.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
|
||||
if test "$libtool" = yes; then
|
||||
# With Tru64 cc, shared objects can also be used to make a
|
||||
# static library. This mechanism is used in libtool 1.4 series to
|
||||
# handle both shared and static libraries in a single compilation.
|
||||
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
|
||||
#
|
||||
# With libtool 1.5 this exception was removed, and libtool now
|
||||
# generates 2 separate objects for the 2 libraries. These two
|
||||
# compilations output dependencies in $dir.libs/$base.o.d and
|
||||
# in $dir$base.o.d. We have to check for both files, because
|
||||
# one of the two compilations can be disabled. We should prefer
|
||||
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||
# the former would cause a distcleancheck panic.
|
||||
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
|
||||
tmpdepfile2=$dir$base.o.d # libtool 1.5
|
||||
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
|
||||
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||
"$@" -Wc,-MD
|
||||
else
|
||||
tmpdepfile1=$dir$base.o.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
tmpdepfile3=$dir$base.d
|
||||
tmpdepfile4=$dir$base.d
|
||||
"$@" -MD
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
#nosideeffect)
|
||||
# This comment above is used by automake to tell side-effect
|
||||
# dependency tracking mechanisms from slower ones.
|
||||
|
||||
dashmstdout)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout, regardless of -o.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
test -z "$dashmflag" && dashmflag=-M
|
||||
# Require at least two characters before searching for `:'
|
||||
# in the target name. This is to cope with DOS-style filenames:
|
||||
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
|
||||
"$@" $dashmflag |
|
||||
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
dashXmstdout)
|
||||
# This case only exists to satisfy depend.m4. It is never actually
|
||||
# run, as this mode is specially recognized in the preamble.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
makedepend)
|
||||
"$@" || exit $?
|
||||
# Remove any Libtool call
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
# X makedepend
|
||||
shift
|
||||
cleared=no eat=no
|
||||
for arg
|
||||
do
|
||||
case $cleared in
|
||||
no)
|
||||
set ""; shift
|
||||
cleared=yes ;;
|
||||
esac
|
||||
if test $eat = yes; then
|
||||
eat=no
|
||||
continue
|
||||
fi
|
||||
case "$arg" in
|
||||
-D*|-I*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
# Strip any option that makedepend may not understand. Remove
|
||||
# the object too, otherwise makedepend will parse it as a source file.
|
||||
-arch)
|
||||
eat=yes ;;
|
||||
-*|$object)
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
esac
|
||||
done
|
||||
obj_suffix=`echo "$object" | sed 's/^.*\././'`
|
||||
touch "$tmpdepfile"
|
||||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||
' | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||
;;
|
||||
|
||||
cpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
"$@" -E |
|
||||
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||
sed '$ s: \\$::' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
cat < "$tmpdepfile" >> "$depfile"
|
||||
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvisualcpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case "$arg" in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||
set fnord "$@"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
"$@" -E 2>/dev/null |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||
echo " " >> "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvcmsys)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
none)
|
||||
exec "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown depmode $depmode" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
71
anaconda/desktop.py
Normal file
71
anaconda/desktop.py
Normal file
@ -0,0 +1,71 @@
|
||||
#
|
||||
# desktop.py - install data for default desktop and run level
|
||||
#
|
||||
# Copyright (C) 2001, 2002 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author(s): Matt Wilson <msw@redhat.com>
|
||||
#
|
||||
|
||||
import string
|
||||
from simpleconfig import SimpleConfigFile
|
||||
|
||||
import logging
|
||||
log = logging.getLogger("anaconda")
|
||||
|
||||
class Desktop (SimpleConfigFile):
|
||||
#
|
||||
# This class represents the default desktop to run and the default runlevel
|
||||
# to start in
|
||||
#
|
||||
def setDefaultRunLevel(self, runlevel):
|
||||
if str(runlevel) != "3" and str(runlevel) != "5":
|
||||
raise RuntimeError, "Desktop::setDefaultRunLevel() - Must specify runlevel as 3 or 5!"
|
||||
self.runlevel = runlevel
|
||||
|
||||
def getDefaultRunLevel(self):
|
||||
return self.runlevel
|
||||
|
||||
def setDefaultDesktop(self, desktop):
|
||||
self.info["DESKTOP"] = desktop
|
||||
|
||||
def getDefaultDesktop(self):
|
||||
return self.get("DESKTOP")
|
||||
|
||||
def __init__ (self):
|
||||
SimpleConfigFile.__init__ (self)
|
||||
self.runlevel = 3
|
||||
|
||||
def write (self, instPath):
|
||||
try:
|
||||
inittab = open (instPath + '/etc/inittab', 'r')
|
||||
except IOError:
|
||||
log.warning ("there is no inittab, bad things will happen!")
|
||||
return
|
||||
lines = inittab.readlines ()
|
||||
inittab.close ()
|
||||
inittab = open (instPath + '/etc/inittab', 'w')
|
||||
for line in lines:
|
||||
if len (line) > 3 and line[:3] == "id:":
|
||||
fields = string.split (line, ':')
|
||||
fields[1] = str (self.runlevel)
|
||||
line = string.join (fields, ':')
|
||||
inittab.write (line)
|
||||
inittab.close ()
|
||||
|
||||
if self.getDefaultDesktop():
|
||||
f = open(instPath + "/etc/sysconfig/desktop", "w")
|
||||
f.write(str (self))
|
||||
f.close()
|
251
anaconda/dispatch.py
Normal file
251
anaconda/dispatch.py
Normal file
@ -0,0 +1,251 @@
|
||||
#
|
||||
# dispatch.py: install/upgrade master flow control
|
||||
#
|
||||
# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Red Hat, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author(s): Erik Troan <ewt@redhat.com>
|
||||
#
|
||||
|
||||
import string
|
||||
from types import *
|
||||
from constants import *
|
||||
from packages import writeKSConfiguration, turnOnFilesystems
|
||||
from packages import doPostAction
|
||||
from packages import copyAnacondaLogs
|
||||
from packages import firstbootConfiguration
|
||||
from packages import betaNagScreen
|
||||
from packages import setupTimezone
|
||||
from packages import setFileCons
|
||||
from storage import storageInitialize
|
||||
from storage import storageComplete
|
||||
from storage.partitioning import doAutoPartition
|
||||
from bootloader import writeBootloader, bootloaderSetupChoices
|
||||
from flags import flags
|
||||
from upgrade import upgradeMountFilesystems
|
||||
from upgrade import upgradeSwapSuggestion, upgradeMigrateFind
|
||||
from upgrade import findRootParts, queryUpgradeContinue
|
||||
from installmethod import doMethodComplete
|
||||
from kickstart import runPostScripts
|
||||
|
||||
from backend import doPostSelection, doBackendSetup, doBasePackageSelect
|
||||
from backend import doPreInstall, doPostInstall, doInstall
|
||||
from backend import writeConfiguration
|
||||
|
||||
from packages import doReIPL
|
||||
|
||||
import logging
|
||||
log = logging.getLogger("anaconda")
|
||||
|
||||
# These are all of the install steps, in order. Note that upgrade and
|
||||
# install steps are the same thing! Upgrades skip install steps, while
|
||||
# installs skip upgrade steps.
|
||||
|
||||
#
|
||||
# items are one of
|
||||
#
|
||||
# ( name )
|
||||
# ( name, Function )
|
||||
#
|
||||
# in the second case, the function is called directly from the dispatcher
|
||||
|
||||
# All install steps take the anaconda object as their sole argument. This
|
||||
# gets passed in when we call the function.
|
||||
installSteps = [
|
||||
("welcome", ),
|
||||
("language", ),
|
||||
("keyboard", ),
|
||||
("betanag", betaNagScreen, ),
|
||||
("filtertype", ),
|
||||
("filter", ),
|
||||
("storageinit", storageInitialize, ),
|
||||
("findrootparts", findRootParts, ),
|
||||
("findinstall", ),
|
||||
("network", ),
|
||||
("timezone", ),
|
||||
("accounts", ),
|
||||
("setuptime", setupTimezone, ),
|
||||
("parttype", ),
|
||||
("cleardiskssel", ),
|
||||
("autopartitionexecute", doAutoPartition, ),
|
||||
("partition", ),
|
||||
("upgrademount", upgradeMountFilesystems, ),
|
||||
("upgradecontinue", queryUpgradeContinue, ),
|
||||
("upgradeswapsuggestion", upgradeSwapSuggestion, ),
|
||||
("addswap", ),
|
||||
("upgrademigfind", upgradeMigrateFind, ),
|
||||
("upgrademigratefs", ),
|
||||
("storagedone", storageComplete, ),
|
||||
("enablefilesystems", turnOnFilesystems, ),
|
||||
("upgbootloader", ),
|
||||
("bootloadersetup", bootloaderSetupChoices, ),
|
||||
("bootloader", ),
|
||||
("reposetup", doBackendSetup, ),
|
||||
("tasksel", ),
|
||||
("basepkgsel", doBasePackageSelect, ),
|
||||
("group-selection", ),
|
||||
("postselection", doPostSelection, ),
|
||||
("reipl", doReIPL, ),
|
||||
("install", ),
|
||||
("preinstallconfig", doPreInstall, ),
|
||||
("installpackages", doInstall, ),
|
||||
("postinstallconfig", doPostInstall, ),
|
||||
("writeconfig", writeConfiguration, ),
|
||||
("firstboot", firstbootConfiguration, ),
|
||||
("instbootloader", writeBootloader, ),
|
||||
("writeksconfig", writeKSConfiguration, ),
|
||||
("setfilecon", setFileCons, ),
|
||||
("copylogs", copyAnacondaLogs, ),
|
||||
("methodcomplete", doMethodComplete, ),
|
||||
("postscripts", runPostScripts, ),
|
||||
("dopostaction", doPostAction, ),
|
||||
("complete", ),
|
||||
]
|
||||
|
||||
class Dispatcher(object):
|
||||
|
||||
def gotoPrev(self):
|
||||
self._setDir(DISPATCH_BACK)
|
||||
self.moveStep()
|
||||
|
||||
def gotoNext(self):
|
||||
self._setDir(DISPATCH_FORWARD)
|
||||
self.moveStep()
|
||||
|
||||
def canGoBack(self):
|
||||
# begin with the step before this one. If all steps are skipped,
|
||||
# we can not go backwards from this screen
|
||||
i = self.step - 1
|
||||
while i >= self.firstStep:
|
||||
if not self.stepIsDirect(i) and not self.skipSteps.has_key(installSteps[i][0]):
|
||||
return True
|
||||
i = i - 1
|
||||
return False
|
||||
|
||||
def setStepList(self, *steps):
|
||||
# only remove non-permanently skipped steps from our skip list
|
||||
for step, state in self.skipSteps.items():
|
||||
if state == 1:
|
||||
del self.skipSteps[step]
|
||||
|
||||
stepExists = {}
|
||||
for step in installSteps:
|
||||
name = step[0]
|
||||
if not name in steps:
|
||||
self.skipSteps[name] = 1
|
||||
|
||||
stepExists[name] = 1
|
||||
|
||||
for name in steps:
|
||||
if not stepExists.has_key(name):
|
||||
#XXX: hack for yum support
|
||||
#raise KeyError, ("step %s does not exist" % name)
|
||||
log.warning("step %s does not exist", name)
|
||||
|
||||
def stepInSkipList(self, step):
|
||||
if type(step) == type(1):
|
||||
step = installSteps[step][0]
|
||||
return self.skipSteps.has_key(step)
|
||||
|
||||
def skipStep(self, stepToSkip, skip = 1, permanent = 0):
|
||||
for step in installSteps:
|
||||
name = step[0]
|
||||
if name == stepToSkip:
|
||||
if skip:
|
||||
if permanent:
|
||||
self.skipSteps[name] = 2
|
||||
elif not self.skipSteps.has_key(name):
|
||||
self.skipSteps[name] = 1
|
||||
elif self.skipSteps.has_key(name):
|
||||
# if marked as permanent then dont change
|
||||
if self.skipSteps[name] != 2:
|
||||
del self.skipSteps[name]
|
||||
return
|
||||
|
||||
#raise KeyError, ("unknown step %s" % stepToSkip)
|
||||
log.warning("step %s does not exist", name)
|
||||
|
||||
def stepIsDirect(self, step):
|
||||
"""Takes a step number"""
|
||||
if len(installSteps[step]) == 2:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def moveStep(self):
|
||||
if self.step == None:
|
||||
self.step = self.firstStep
|
||||
else:
|
||||
log.info("leaving (%d) step %s" %(self._getDir(), installSteps[self.step][0]))
|
||||
self.step = self.step + self._getDir()
|
||||
|
||||
if self.step >= len(installSteps):
|
||||
return None
|
||||
|
||||
while self.step >= self.firstStep and self.step < len(installSteps) \
|
||||
and (self.stepInSkipList(self.step) or self.stepIsDirect(self.step)):
|
||||
|
||||
if self.stepIsDirect(self.step) and not self.stepInSkipList(self.step):
|
||||
(stepName, stepFunc) = installSteps[self.step]
|
||||
log.info("moving (%d) to step %s" %(self._getDir(), stepName))
|
||||
log.debug("%s is a direct step" %(stepName,))
|
||||
rc = stepFunc(self.anaconda)
|
||||
if rc in [DISPATCH_BACK, DISPATCH_FORWARD]:
|
||||
self._setDir(rc)
|
||||
log.info("leaving (%d) step %s" %(self._getDir(), stepName))
|
||||
# if anything else, leave self.dir alone
|
||||
|
||||
self.step = self.step + self._getDir()
|
||||
if self.step == len(installSteps):
|
||||
return None
|
||||
|
||||
if (self.step < 0):
|
||||
# pick the first step not in the skip list
|
||||
self.step = 0
|
||||
while self.skipSteps.has_key(installSteps[self.step][0]):
|
||||
self.step = self.step + 1
|
||||
elif self.step >= len(installSteps):
|
||||
self.step = len(installSteps) - 1
|
||||
while self.skipSteps.has_key(installSteps[self.step][0]):
|
||||
self.step = self.step - 1
|
||||
log.info("moving (%d) to step %s" %(self._getDir(), installSteps[self.step][0]))
|
||||
|
||||
def currentStep(self):
|
||||
if self.step == None:
|
||||
self.gotoNext()
|
||||
elif self.step >= len(installSteps):
|
||||
return (None, None)
|
||||
|
||||
stepInfo = installSteps[self.step]
|
||||
step = stepInfo[0]
|
||||
|
||||
return (step, self.anaconda)
|
||||
|
||||
def __init__(self, anaconda):
|
||||
self.anaconda = anaconda
|
||||
self.anaconda.dir = DISPATCH_FORWARD
|
||||
self.step = None
|
||||
self.skipSteps = {}
|
||||
|
||||
self.firstStep = 0
|
||||
|
||||
def _getDir(self):
|
||||
return self.anaconda.dir
|
||||
|
||||
def _setDir(self, dir):
|
||||
self.anaconda.dir = dir
|
||||
|
||||
dir = property(_getDir,_setDir)
|
29
anaconda/docs/Makefile.am
Normal file
29
anaconda/docs/Makefile.am
Normal file
@ -0,0 +1,29 @@
|
||||
# docs/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
EXTRA_DIST = install-methods.txt mediacheck.txt anaconda-release-notes.txt \
|
||||
lvm_sanity_checks.txt rescue-mode api.cfg making-screenshots \
|
||||
threads.txt command-line.txt gettext.txt
|
||||
|
||||
CLEANFILES = api *.xml
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in command-line.txt
|
||||
|
||||
command-line.txt:
|
||||
curl -4 -A "anaconda-build" -o command-line.txt "http://fedoraproject.org/w/index.php?title=Anaconda_Boot_Options&action=raw"
|
460
anaconda/docs/Makefile.in
Normal file
460
anaconda/docs/Makefile.in
Normal file
@ -0,0 +1,460 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# docs/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = docs
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/python.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
ARCH = @ARCH@
|
||||
AUDIT_LIBS = @AUDIT_LIBS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BLKID_LIBS = @BLKID_LIBS@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHECKISOMD5_LIBS = @CHECKISOMD5_LIBS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DEVMAPPER_CFLAGS = @DEVMAPPER_CFLAGS@
|
||||
DEVMAPPER_LIBS = @DEVMAPPER_LIBS@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
EXT2FS_LIBS = @EXT2FS_LIBS@
|
||||
FGREP = @FGREP@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
|
||||
GTK_X11_LIBS = @GTK_X11_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
IPV6_CFLAGS = @IPV6_CFLAGS@
|
||||
ISCSI_LIBS = @ISCSI_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@
|
||||
LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@
|
||||
LIBCURL_CFLAGS = @LIBCURL_CFLAGS@
|
||||
LIBCURL_LIBS = @LIBCURL_LIBS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBNL_CFLAGS = @LIBNL_CFLAGS@
|
||||
LIBNL_LIBS = @LIBNL_LIBS@
|
||||
LIBNM_GLIB_CFLAGS = @LIBNM_GLIB_CFLAGS@
|
||||
LIBNM_GLIB_LIBS = @LIBNM_GLIB_LIBS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
NETWORKMANAGER_CFLAGS = @NETWORKMANAGER_CFLAGS@
|
||||
NETWORKMANAGER_LIBS = @NETWORKMANAGER_LIBS@
|
||||
NEWT_LIBS = @NEWT_LIBS@
|
||||
NFS_CFLAGS = @NFS_CFLAGS@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_RELEASE = @PACKAGE_RELEASE@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POSUB = @POSUB@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EMBED_LIBS = @PYTHON_EMBED_LIBS@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
|
||||
PYTHON_LIBS = @PYTHON_LIBS@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
RPM_CFLAGS = @RPM_CFLAGS@
|
||||
RPM_LIBS = @RPM_LIBS@
|
||||
SED = @SED@
|
||||
SELINUX_CFLAGS = @SELINUX_CFLAGS@
|
||||
SELINUX_LIBS = @SELINUX_LIBS@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLANG_LIBS = @SLANG_LIBS@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
X11_CFLAGS = @X11_CFLAGS@
|
||||
X11_LIBS = @X11_LIBS@
|
||||
XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
|
||||
XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
XMKMF = @XMKMF@
|
||||
ZLIB_LIBS = @ZLIB_LIBS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
EXTRA_DIST = install-methods.txt mediacheck.txt anaconda-release-notes.txt \
|
||||
lvm_sanity_checks.txt rescue-mode api.cfg making-screenshots \
|
||||
threads.txt command-line.txt gettext.txt
|
||||
|
||||
CLEANFILES = api *.xml
|
||||
MAINTAINERCLEANFILES = Makefile.in command-line.txt
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign docs/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign docs/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile
|
||||
installdirs:
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-dvi install-dvi-am \
|
||||
install-exec install-exec-am install-html install-html-am \
|
||||
install-info install-info-am install-man install-pdf \
|
||||
install-pdf-am install-ps install-ps-am install-strip \
|
||||
installcheck installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
|
||||
|
||||
|
||||
command-line.txt:
|
||||
curl -4 -A "anaconda-build" -o command-line.txt "http://fedoraproject.org/w/index.php?title=Anaconda_Boot_Options&action=raw"
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
199
anaconda/docs/anaconda-release-notes.txt
Normal file
199
anaconda/docs/anaconda-release-notes.txt
Normal file
@ -0,0 +1,199 @@
|
||||
Anaconda Release Notes
|
||||
----------------------
|
||||
|
||||
Last update: Mar 26 2002
|
||||
|
||||
|
||||
Contents
|
||||
|
||||
- Overview
|
||||
- Install mechanism summary
|
||||
- Patching/updating installer
|
||||
- Invocation options
|
||||
- Troubleshooting
|
||||
- More info
|
||||
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
Anaconda is the name of the install program used by Red Hat Linux.
|
||||
It is python-based with some custom modules written in C. Being
|
||||
written in a scripting language makes development quicker, and it is
|
||||
easier to distribute updates in a non-binary form. The anaconda
|
||||
installer works on a wide variety of Linux-based computing
|
||||
architectures (ia32, Itanium, Alpha, S/390, PowerPC), and is designed to make
|
||||
it easy to add platforms.
|
||||
|
||||
The first stage of the installer is a loader program written in C.
|
||||
This program is responsible for loading all the kernel modules
|
||||
required to mount the second stage of the installer, which has a
|
||||
fairly complete Linux runtime environment. The loader is designed to
|
||||
be small to fit within the constraints of bootable media (floppies are
|
||||
small by modern standards). Once the loader has mounted the second
|
||||
stage image, the python installer is started up, and optionally, a
|
||||
graphical X Windows based environment.
|
||||
|
||||
The loader can install from local media (harddrive or CDROM), or
|
||||
from a network source, via FTP, HTTP, or NFS. The installer can pull
|
||||
updates for bugs or features via several sources as well. Finally, the
|
||||
installer has an auto-install mechanism called kickstart that allows
|
||||
installs to be scripted. The script can even be pulls from an HTTP
|
||||
source that can create kickstart configurations dynamically based on
|
||||
the machine which is requesting the script. This allows endless
|
||||
possibilities in automating large sets of servers.
|
||||
|
||||
This document's purpose is to go over technical details that will
|
||||
make using and customizing the installer, and the distribution, much
|
||||
easier. The anaconda installer arguably is one of the most flexible
|
||||
and powerful installers available, and hopefully this document will
|
||||
allow users to take advantage of this potential.
|
||||
|
||||
Install Mechanism Summary
|
||||
-------------------------
|
||||
|
||||
The document 'install-methods.txt', which is distributed with the
|
||||
anaconda package, goes over the various ways the installer can be
|
||||
used. Essentially, the installer needs to access the contents of the
|
||||
CD images distributed with the product. The installer can either work
|
||||
with the CD images one at a time, or else from a single directory (the
|
||||
install 'tree') which has the contents of all the CD images copied
|
||||
into it. The later is useful if you are customizing the packages in
|
||||
the distribution. The first stage of the installation process (the
|
||||
'loader') is responsible for getting the system to the point it can
|
||||
access the installation source, whether CD image or installation tree based.
|
||||
|
||||
For CDROM-based installs the loader detects the presence of a CD in a
|
||||
drive in the system with a distribution on it and jumps straight to the
|
||||
second stage. For other interactive (non-kickstart) installation methods the
|
||||
user is prompted for the installation source. For kickstart-based installs
|
||||
the installation source is specified in the kickstart file, and the user is
|
||||
not required to be present unless necessary information is missing from the
|
||||
kickstart script.
|
||||
|
||||
For NFS-based installs the installer mounts the directory specified
|
||||
and looks for a set of ISO images, or an installation tree. If
|
||||
present then a filesystem image is loopback-mounted and the second
|
||||
stage installer is run from this image. For FTP and HTTP installs a
|
||||
smaller (no graphical install options) second stage image is
|
||||
downloaded into memory, mounted, and the second stage installer run
|
||||
from this. On harddrive based installs a similar small second stage
|
||||
image is put into memory and the second stage installer run from it.
|
||||
This is necessary because for partitioning to suceed the installer can
|
||||
not have partitions on the harddrive mounted in order for the kernel
|
||||
to be able to acknowledge partition table changes.
|
||||
|
||||
The bootable installation images are as follow:
|
||||
|
||||
boot.img - boot image containing kernel modules for installing
|
||||
on most systems from a CDROM or harddrive.
|
||||
|
||||
bootnet.img - boot iamge containing kernel modules for
|
||||
installing on most systems from a network source.
|
||||
|
||||
pcmcia.img - boot image for installing on PCMCIA based systems
|
||||
from a local or network source.
|
||||
Requires pcmciadd.img driver disk.
|
||||
|
||||
The supplemental driver disk images are:
|
||||
|
||||
drvblock.img - block device drivers (for example, SCSI controllers).
|
||||
|
||||
drvnet.img - extra network device drivers.
|
||||
|
||||
oldcdrom.img - device drivers for non-SCSI, non-ATAPI cdroms.
|
||||
|
||||
|
||||
Patching The Installer
|
||||
----------------------
|
||||
|
||||
At times there are bugfixes or feature enhancements available for
|
||||
the installer. These are typically replacement python source files
|
||||
which override the versions distributed with the release. Python has
|
||||
a mechanism similar to the command line shell search path for
|
||||
executables. The installer can be updated by putting patched files in
|
||||
a location earlier in the search path Python uses to find modules.
|
||||
The 'install-methods.txt' document describes all the various ways the
|
||||
installer can be told where to find the updating source files.
|
||||
Typcially this is done from an 'update disk', which is a floppy with
|
||||
an ext2 filesytem on it. The updated python source files are put in
|
||||
the main directory of the floppy. The installer is invoked with an
|
||||
'updates' option from the boot command line, and the user is prompted
|
||||
to insert the update disk. The files are copied off into a ramdisk
|
||||
location which Python has been instructed to look at first of modules.
|
||||
If one is customizing the distribution and the installer then installing
|
||||
over NFS is the fastest way to work.
|
||||
|
||||
The installer will also use an 'updates.img' file to get patched
|
||||
source files. This is particularly useful for FTP and HTTP based installs.
|
||||
When the second stage image is retrieved from the server, a download of
|
||||
the updates.img is also attempted. This file must be an ext2 filesystem image.
|
||||
It is mounted loopback, then the contents are copied to the ramdisk location
|
||||
that Python is setup to look at for module updates. This update image will
|
||||
also work with all the other installation mechanisms, although the exact
|
||||
location where it is expected does vary. The 'install-methods.txt' file
|
||||
has the details on this.
|
||||
|
||||
Invocation Options
|
||||
------------------
|
||||
The documentation file 'command-line.txt' has a quick summary of all the
|
||||
command line options anaconda accepts.
|
||||
|
||||
Troubleshooting
|
||||
---------------
|
||||
|
||||
- Cannot get graphical installer working
|
||||
|
||||
On some video hardware (laptops in particular) the graphical
|
||||
installer will not work. The installer attempts to run at
|
||||
800x600, and some hardware does not work in this mode, or the
|
||||
output looks poor when scaled to this mode. This can be worked
|
||||
around by specifying the 'vga=xxx' option on the command line when
|
||||
booting the installer. Here 'xxx' is the VESA mode number for the
|
||||
video mode which will work on your hardware, and can be one of the
|
||||
following:
|
||||
|
||||
|
||||
| 640x480 800x600 1024x768 1280x1024 <-Resolution
|
||||
----+-------------------------------------
|
||||
256 | 769 771 773 775
|
||||
32k | 784 787 790 793
|
||||
64k | 785 788 791 794
|
||||
16M | 786 789 792 795
|
||||
^
|
||||
|
|
||||
Number of colors
|
||||
|
||||
Find the row with the number of colors and the column with the resolution
|
||||
and then use the number at the intersection. For example, to run at
|
||||
1024x768 with 64k colors, use 'vga=791'
|
||||
|
||||
Alternately, you can specify "resolution=<mode>", where mode is:
|
||||
|
||||
640x480
|
||||
800x600
|
||||
1024x768
|
||||
1152x864
|
||||
1280x1024
|
||||
1400x1050
|
||||
1600x1200
|
||||
|
||||
and the installer will start up in graphical mode in the resolution
|
||||
specified.
|
||||
|
||||
|
||||
|
||||
More Info
|
||||
---------
|
||||
|
||||
For more info, goto the kickstart-list and anaconda-devel mailing lists
|
||||
hosted by Red Hat. You can find these at:
|
||||
|
||||
|
||||
anaconda-devel-list -
|
||||
https://listman.redhat.com/mailman/listinfo/anaconda-devel-list
|
||||
|
||||
kickstart-list -
|
||||
https://listman.redhat.com/mailman/listinfo/kickstart-list
|
||||
|
||||
<end of document>
|
1237
anaconda/docs/api.cfg
Normal file
1237
anaconda/docs/api.cfg
Normal file
File diff suppressed because it is too large
Load Diff
9
anaconda/docs/command-line.txt
Normal file
9
anaconda/docs/command-line.txt
Normal file
@ -0,0 +1,9 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
|
||||
<html><head>
|
||||
<title>301 Moved Permanently</title>
|
||||
</head><body>
|
||||
<h1>Moved Permanently</h1>
|
||||
<p>The document has moved <a href="https://fedoraproject.org/w/index.php?title=Anaconda_Boot_Options&action=raw">here</a>.</p>
|
||||
<hr>
|
||||
<address>Apache/2.2.3 (Red Hat) Server at fedoraproject.org Port 80</address>
|
||||
</body></html>
|
56
anaconda/docs/gettext.txt
Normal file
56
anaconda/docs/gettext.txt
Normal file
@ -0,0 +1,56 @@
|
||||
gettext, i18n, and the po/ subdirectory
|
||||
05-Jun-2009
|
||||
David Cantrell <dcantrell@redhat.com>
|
||||
---------------------------------------
|
||||
|
||||
I have attempted to clean up our po/ subdirectory and bring it in to
|
||||
conformance with GNU gettext tools as well as hook it in to GNU autoconf and
|
||||
GNU automake. The gettext software has templates set up for this already,
|
||||
so I'm just using those.
|
||||
|
||||
From time to time, we may have to update our gettext template files and or
|
||||
expand or reduce the information in the files. How do you know what files
|
||||
do what? Here's an explanation:
|
||||
|
||||
m4/gettext.m4
|
||||
m4/iconv.m4
|
||||
m4/lib-ld.m4
|
||||
m4/lib-link.m4
|
||||
m4/lib-prefix.m4
|
||||
m4/nls.m4
|
||||
m4/po.m4
|
||||
m4/progtest.m4
|
||||
po/Makefile.in.in
|
||||
po/Rules-quot
|
||||
po/boldquot.sed
|
||||
po/en@boldquot.header
|
||||
po/en@quot.header
|
||||
po/insert-header.sin
|
||||
po/quot.sed
|
||||
po/remove-potcdate.sin
|
||||
|
||||
These files are copied in when 'gettextize' is run on the source
|
||||
project. When we need to update to a newer minimum version of
|
||||
gettext, these files will be replaced. In general, we should never
|
||||
need to touch these files.
|
||||
|
||||
po/Makevars
|
||||
|
||||
Should be updated when we update gettext files with a new gettextize
|
||||
run. A file called po/Makevars.template will appear and we can move
|
||||
over our values to the new file and commit it. We do not need to
|
||||
change this file on a regular basis.
|
||||
|
||||
po/POTFILES.in
|
||||
|
||||
This file contains a listing of all source files in the project that
|
||||
have translatable strings.
|
||||
|
||||
po/LINGUAS
|
||||
|
||||
Space-delimited list of languages available. If a new language is
|
||||
added, it should be added to this file.
|
||||
|
||||
po/*.po
|
||||
|
||||
Actual translated strings, as maintained by the translation team(s).
|
137
anaconda/docs/install-methods.txt
Normal file
137
anaconda/docs/install-methods.txt
Normal file
@ -0,0 +1,137 @@
|
||||
11-07-2006
|
||||
----------
|
||||
|
||||
Contents
|
||||
--------
|
||||
|
||||
1) Description of install methods
|
||||
2) Extra notes on install methods
|
||||
|
||||
1)Description of Anaconda Install Methods (and ways of updating it)
|
||||
-------------------------------------------------------------------
|
||||
|
||||
Notes:
|
||||
------------
|
||||
|
||||
- "fully exploded tree" - this is a tree which in the root has every
|
||||
directory with .rpm files from every CD image merged into one directory
|
||||
with the same name.
|
||||
(So everything from cd's Client directories goes to Client directory and
|
||||
likewise for Server, VT, Workstation ... dirs)
|
||||
|
||||
- "ISO" - the ISO image for a CD image.
|
||||
|
||||
- "anaconda updates" - patches for anaconda to fix bugs/etc.
|
||||
|
||||
- "anaconda updates=[http://url|ftp://url]" - patches for anaconda to fix
|
||||
bugs/etc. that can be downloaded from the specified remote location.
|
||||
The image is the same format as an updates.img as specified below.
|
||||
|
||||
- all paths without a leading '/' are relative to directory specified
|
||||
to installer containing install source.
|
||||
|
||||
- 'updates.img' is a ext2 filesystem containing the updated python
|
||||
sources and modules for anaconda.
|
||||
|
||||
Current Installation Methods:
|
||||
-----------------------------
|
||||
|
||||
- CDROM / DVD
|
||||
-------------
|
||||
|
||||
Summary:
|
||||
This is pretty self-explanatory. Mounts the disc and installs packages,
|
||||
prompts user to switch discs when the next disc is required.
|
||||
|
||||
Update Options:
|
||||
- floppy or USB key drive.
|
||||
- 'updates.img' file in 'images/' directory of disc #1 image.
|
||||
- remote updates.img downloaded via FTP or HTTP.
|
||||
|
||||
- NFS (from a fully exploded tree)
|
||||
----------------------------------
|
||||
|
||||
Summary:
|
||||
Mounts directory from NFS server.
|
||||
|
||||
Update Options:
|
||||
- floppy or USB key drive.
|
||||
- 'updates.img' file in 'images/' directory.
|
||||
- remote updates.img downloaded via FTP or HTTP.
|
||||
|
||||
- NFS (from a directory of ISOs)
|
||||
--------------------------------
|
||||
|
||||
Summary:
|
||||
Loopback mounts ISO images from NFS server.
|
||||
|
||||
Update Options:
|
||||
- floppy or USB key drive.
|
||||
- 'updates.img' file in 'images/' directory.
|
||||
- remote updates.img downloaded via FTP or HTTP.
|
||||
|
||||
- FTP/HTTP (from a fully exploded tree)
|
||||
---------------------------------------
|
||||
|
||||
Summary:
|
||||
Pulls files from tree via FTP or HTTP.
|
||||
|
||||
Update Options:
|
||||
- floppy or USB key drive.
|
||||
- 'updates.img' file in 'images/' directory.
|
||||
- remote updates.img downloaded via FTP or HTTP.
|
||||
|
||||
- FTP/HTTP (from a directory of loopback-mounted ISOs)
|
||||
------------------------------------------------------
|
||||
|
||||
Summary:
|
||||
Pulls files from tree via FTP or HTTP. Looks in 'disc1/' directory
|
||||
to contain files from disc #1, 'disc2/' for disc #2, etc. These can be
|
||||
created on the server by loopback mounting the ISO images into these
|
||||
directories under the directory made available to ftp.
|
||||
|
||||
Update Options:
|
||||
- floppy or USB key drive.
|
||||
- 'updates.img' file in 'images/' directory in ISO image for disc #1.
|
||||
- remote updates.img downloaded via FTP or HTTP.
|
||||
|
||||
Hard Drive from ISOs
|
||||
--------------------
|
||||
|
||||
Summary:
|
||||
Similar to NFS ISO-based method - loopback mounts ISOs in directory
|
||||
specified by user. The ISOs must be on an ext2 or vfat partition,
|
||||
not a logical volume.
|
||||
|
||||
Update Options:
|
||||
- floppy or USB key drive.
|
||||
- 'updates.img' file in 'images/' directory of ISO image for CD #1.
|
||||
- remote updates.img downloaded via FTP or HTTP.
|
||||
|
||||
|
||||
2)Extra Notes:
|
||||
--------------
|
||||
|
||||
By default NFS, harddrive, and CDROM/DVD-based installs are graphical,
|
||||
unless the 'text' option is passed on the boot command line.
|
||||
|
||||
FTP and HTTP are text-based, unless 'graphical' is passed on the command
|
||||
line. For a graphical FTP or HTTP install to occur, one of the following
|
||||
must be true:
|
||||
|
||||
- the file 'RedHat/base/stage2.img' must exist on the install server. In
|
||||
this case this file is downloaded int RAM, taking about 64MB to store.
|
||||
It is recommended to only use this option on machines with more than
|
||||
192MB of RAM.
|
||||
|
||||
or:
|
||||
|
||||
- the rescue CD is in the CD drive, in which case the stage2.img file
|
||||
will be mounted from the rescue CD. The packages will still be
|
||||
downloaded from the FTP/HTTP server. No additional memory is required
|
||||
because the second stage of the installer is mounted from the CD.
|
||||
|
||||
You can also specify 'graphical' or 'text' as kickstart directives in
|
||||
the kickstart config file you use, and this has the same affect as if you
|
||||
put the directive on the boot command line.
|
||||
|
13
anaconda/docs/lvm_sanity_checks.txt
Normal file
13
anaconda/docs/lvm_sanity_checks.txt
Normal file
@ -0,0 +1,13 @@
|
||||
Updated June 11, 2002
|
||||
---------------------
|
||||
|
||||
Current list of things we check for (good for regression testing):
|
||||
|
||||
- That selected PE is smaller than any PV in VG.
|
||||
- That size requests for LV are a multiple of the PE.
|
||||
- That maximum LV for a given PE is bigger than any currently defined LV in VG.
|
||||
- That if you change the PE, all the reclamped LV will fit in VG.
|
||||
- That VG_name+LV_name is unique for all VG.
|
||||
- That mount points are used only once.
|
||||
- Give warning if more than 10% of a PV is lost because of the PE selected.
|
||||
- That the bootable partition is not a LV.
|
15
anaconda/docs/making-screenshots
Normal file
15
anaconda/docs/making-screenshots
Normal file
@ -0,0 +1,15 @@
|
||||
How to make screenshots:
|
||||
|
||||
|
||||
This will only currently work for graphical installs.
|
||||
|
||||
During a graphical installation, you can now press SHIFT-Print Screen
|
||||
and a screenshot of the current installation screen will be taken.
|
||||
|
||||
These are stored in the following directory:
|
||||
|
||||
/root/anaconda-screenshots/
|
||||
|
||||
The screenshots can be accessed once the newly-installed system is rebooted.
|
||||
|
||||
|
25
anaconda/docs/mediacheck.txt
Normal file
25
anaconda/docs/mediacheck.txt
Normal file
@ -0,0 +1,25 @@
|
||||
Mediacheck documentation
|
||||
October, 2008
|
||||
|
||||
|
||||
Mediacheck is a tool we use to test the integrity of ISO images. The
|
||||
ISO9660 specification allows for a 512 byte region which is for
|
||||
application use. We use it to store a checksum of the ISO image. Of
|
||||
couse putting the checksum into this region will change the checksum
|
||||
of the final ISO image, so when we verify the checksum later we have
|
||||
to fill in this 512 region with the original contents before the
|
||||
implantation. It is set to all ASCII 32 decimal spaces.
|
||||
|
||||
If you have a set of ISO images you can implant the checksum data with
|
||||
this command:
|
||||
|
||||
implantmd5iso <isoname>
|
||||
|
||||
NOTE: You cannot re-implant an ISO once its been implanted.
|
||||
|
||||
To check a ISO image you can use this command line:
|
||||
|
||||
checkisomd5 <isoname>
|
||||
|
||||
The tools are in the isomd5sum package.
|
||||
|
16
anaconda/docs/rescue-mode
Normal file
16
anaconda/docs/rescue-mode
Normal file
@ -0,0 +1,16 @@
|
||||
Rescue mode
|
||||
-----------
|
||||
|
||||
1/4/1999 Michael Fulbright
|
||||
|
||||
Rescue mode is implemented via a bootable CDROM currently. The user
|
||||
specifies 'linux rescue' at the syslinux prompt when the CDROM boots.
|
||||
Then the kernel and an initial ramdisk is loaded. The installer is
|
||||
run and the user is dropped into bash.
|
||||
|
||||
The upd-instroot script in the anaconda/ source toplevel directory
|
||||
is responsible for creating the instimage which is used as the
|
||||
root for the rescue environment. It is located in /mnt/cdrom/Redhat/instimage
|
||||
when the CDROM is mounted under /mnt/cdrom.
|
||||
|
||||
|
106
anaconda/docs/threads.txt
Normal file
106
anaconda/docs/threads.txt
Normal file
@ -0,0 +1,106 @@
|
||||
Threads in anaconda? No!
|
||||
David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
Threads make a lot of people run screaming. That's entirely
|
||||
understandable because thread concurrency can be a pain. In this short
|
||||
document, I want to explain why threads are in anaconda and how to work
|
||||
with them in the code.
|
||||
|
||||
MISCONCEPTIONS
|
||||
|
||||
Just to make sure everyone is on the same page, threads are similar to
|
||||
processes. The big advantage we get is easier shared data structures.
|
||||
Threads can communicate over more methods than just signals. But,
|
||||
multithreaded does not mean that we are taking every operation out to
|
||||
a separate thread.
|
||||
|
||||
ANACONDA THREADS
|
||||
|
||||
The idea for anaconda threads is to simplify life for things that can
|
||||
or need to run parallel to other operations. So we will reserve the
|
||||
use of threads for tasks that fit in to this category well (the logging
|
||||
system, for instance) and keep the bulk of the installer in the main
|
||||
thread.
|
||||
|
||||
THREADS AND PYTHON
|
||||
|
||||
Python has a nice model for threading. Threads in Python extend the
|
||||
threading.Thread class. So an easy way to identify something that will
|
||||
run or can be run as a thread is seeing a class definition like this:
|
||||
|
||||
class SomeClass(threading.Thread):
|
||||
|
||||
You still have your __init__ method for the constructor, but threads
|
||||
also have a run() method and a join() method (there are others, but
|
||||
I will just discuss these).
|
||||
|
||||
The run() method is called when you start the thread. This is where
|
||||
you want to do the work. Normally this happens in the class
|
||||
constructor, but in threads we need that separated out to a different
|
||||
method.
|
||||
|
||||
The join() method is to block execution of other threads. Whatever you
|
||||
put in the join() method will run and other threads will be blocked
|
||||
while it runs. Now, this method is only run when you call it explicitly
|
||||
from another thread, so think of it as similar to waitpid().
|
||||
|
||||
Python has the thread and threading modules. Use threading as it's
|
||||
built on top of thread and provides a threading system similar to the
|
||||
POSIX thread model.
|
||||
|
||||
More information:
|
||||
http://docs.python.org/lib/module-threading.html
|
||||
|
||||
THREAD NAMES
|
||||
|
||||
Threads have names in Python. They are automatically assigned or you
|
||||
can specify the name. For anaconda it probably makes more sense to
|
||||
name our threads since we won't be launching more than one for the
|
||||
same task.
|
||||
|
||||
The convention I'm using is: NameThr
|
||||
For example: RelNotesThr
|
||||
|
||||
The name is arbitrary, but we should probably have some sort of
|
||||
consistency.
|
||||
|
||||
PYGTK AND THREADS
|
||||
|
||||
GTK+ presents the biggest challenge for threads, but it's not
|
||||
impossible. We will be allowing GTK+ calls from any thread, so we
|
||||
have to call threads_init() in gui.py as the first thing:
|
||||
|
||||
gtk.gdk.threads_init()
|
||||
|
||||
After this, you can use Python threads as you normally would. When
|
||||
you call gtk.main(), you need to call it like this:
|
||||
|
||||
gtk.threads_enter()
|
||||
gtk.main()
|
||||
gtk.threads_leave()
|
||||
|
||||
Calls to PyGTK methods or fiddling with GTK objects...all that has to
|
||||
be wrapped in threads_enter/threads_leave calls. The suggested syntax
|
||||
is:
|
||||
|
||||
gtk.threads_enter()
|
||||
try:
|
||||
# do stuff
|
||||
finally:
|
||||
gtk.threads_leave()
|
||||
|
||||
Suggested reading:
|
||||
|
||||
http://www.async.com.br/faq/pygtk/index.py?req=show&file=faq20.006.htp
|
||||
http://developer.gnome.org/doc/API/2.0/gdk/gdk-Threads.html
|
||||
|
||||
|
||||
I will try to expand this document as I move through more threading code.
|
||||
Email me if you have any questions.
|
||||
|
||||
--
|
||||
David Cantrell
|
||||
<dcantrell@redhat.com>
|
159
anaconda/errors.py
Normal file
159
anaconda/errors.py
Normal file
@ -0,0 +1,159 @@
|
||||
#
|
||||
# errors.py: exception classes used throughout anaconda
|
||||
#
|
||||
# Copyright (C) 2002, 2007, 2008 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author(s): Peter Jones <pjones@redhat.com>
|
||||
# Chris Lumens <clumens@redhat.com>
|
||||
# Matt Wilson <msw@redhat.com>
|
||||
# Jeremy Katz <katzj@redhat.com>
|
||||
# Mike Fulbright <msf@redhat.com>
|
||||
#
|
||||
|
||||
import string
|
||||
import os
|
||||
from constants import lvmErrorOutput
|
||||
|
||||
# Exceptions for use in lvm operations.
|
||||
|
||||
class LvmError(Exception):
|
||||
"""An error occurred with lvm."""
|
||||
def __init__(self, command, name=None):
|
||||
self.command = command
|
||||
self.name = name
|
||||
self.log = self.getLvmOutput()
|
||||
|
||||
def getLvmOutput(self):
|
||||
if not os.access(lvmErrorOutput, os.R_OK):
|
||||
return ""
|
||||
f = open(lvmErrorOutput, "r")
|
||||
lines = reduce(lambda x,y: x + [string.strip(y),], f.readlines(), [])
|
||||
lines = string.join(reduce(lambda x,y: x + [" %s" % (y,)], \
|
||||
lines, []), "\n")
|
||||
return lines
|
||||
|
||||
def __str__(self):
|
||||
s = ""
|
||||
if not self.name is None:
|
||||
s = " for device %s" % (self.name,)
|
||||
return "%s failed%s\nLog:\n%s" % (self.command, s, self.log)
|
||||
|
||||
class LVCreateError(LvmError):
|
||||
def __init__(self, vgname, lvname, size):
|
||||
self.vgname = vgname
|
||||
self.lvname = lvname
|
||||
self.size = size
|
||||
self.log = self.getLvmOutput()
|
||||
|
||||
def __str__(self):
|
||||
return "lvcreate of %d Megabyte lv \"%s\" on vg \"%s\" failed\n" \
|
||||
"Log:\n%s" % ( \
|
||||
self.size, self.lvname, self.vgname, self.log)
|
||||
|
||||
class LVRemoveError(LvmError):
|
||||
def __init__(self, vgname, lvname):
|
||||
self.vgname = vgname
|
||||
self.lvname = lvname
|
||||
self.log = self.getLvmOutput()
|
||||
|
||||
def __str__(self):
|
||||
return "lvremove of lv \"%s\" from vg \"%s\" failed\nLog:\n%s" % ( \
|
||||
self.lvname, self.vgname, self.log)
|
||||
|
||||
class LVResizeError(LvmError):
|
||||
def __init__(self, vgname, lvname):
|
||||
self.vgname = vgname
|
||||
self.lvname = lvname
|
||||
self.log = self.getLvmOutput()
|
||||
|
||||
def __str__(self):
|
||||
return "lvresize of lv \"%s\" from vg \"%s\" failed\nLog:\n%s" % ( \
|
||||
self.lvname, self.vgname, self.log)
|
||||
|
||||
class VGCreateError(LvmError):
|
||||
def __init__(self, vgname, PESize, nodes):
|
||||
self.vgname = vgname
|
||||
self.PESize = PESize
|
||||
self.nodes = nodes
|
||||
self.log = self.getLvmOutput()
|
||||
|
||||
def __str__(self):
|
||||
nodes = string.join(self.nodes, ' ')
|
||||
return "vgcreate failed creating vg \"%s\" (PESize=%dkB) on PVs: %s\n" \
|
||||
"Log:\n%s" % ( \
|
||||
self.vgname, self.PESize, nodes, self.log)
|
||||
|
||||
class VGRemoveError(LvmError):
|
||||
def __init__(self, vgname):
|
||||
self.vgname = vgname
|
||||
self.log = self.getLvmOutput()
|
||||
|
||||
def __str__(self):
|
||||
return "vgremove of vg \"%s\" failed\nLog:\n%s" % ( \
|
||||
self.vgname, self.log)
|
||||
|
||||
class PVRemoveError(LvmError):
|
||||
def __init__(self, pvname):
|
||||
self.pvname = pvname
|
||||
self.log = self.getLvmOutput()
|
||||
|
||||
def __str__(self):
|
||||
return "pvremove of pv \"%s\" failed\nLog:\n%s" % ( \
|
||||
self.pvname, self.log)
|
||||
|
||||
class PVCreateError(LvmError):
|
||||
def __init__(self, pvname):
|
||||
self.pvname = pvname
|
||||
self.log = self.getLvmOutput()
|
||||
|
||||
def __str__(self):
|
||||
return "pvcreate of pv \"%s\" failed\nLog:\n%s" % ( \
|
||||
self.pvname, self.log)
|
||||
|
||||
# Exceptions for use in partitioning.
|
||||
|
||||
class PartitioningError(Exception):
|
||||
"""A critical error which must be resolved to continue the installation."""
|
||||
def __init__(self, message=""):
|
||||
self.message = str(message)
|
||||
|
||||
def __str__ (self):
|
||||
return self.message
|
||||
|
||||
class PartitioningWarning(Exception):
|
||||
"""A warning which may be ignored and still complete the installation."""
|
||||
def __init__(self, message=""):
|
||||
self.message = str(message)
|
||||
|
||||
def __str__ (self):
|
||||
return self.message
|
||||
|
||||
class LabelError(Exception):
|
||||
"""The device could not be labeled."""
|
||||
def __init__(self, message=""):
|
||||
self.message = str(message)
|
||||
|
||||
def __str__(self):
|
||||
return self.message
|
||||
|
||||
# Exceptions for use in package selection.
|
||||
|
||||
class NoSuchGroup(Exception):
|
||||
def __init__ (self, value):
|
||||
self.value = value
|
||||
|
||||
def __str__ (self):
|
||||
return self.value
|
133
anaconda/exception.py
Normal file
133
anaconda/exception.py
Normal file
@ -0,0 +1,133 @@
|
||||
#
|
||||
# exception.py - general exception formatting and saving
|
||||
#
|
||||
# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Red Hat, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author(s): Matt Wilson <msw@redhat.com>
|
||||
# Erik Troan <ewt@redhat.com>
|
||||
# Chris Lumens <clumens@redhat.com>
|
||||
#
|
||||
from meh.handler import *
|
||||
from meh.dump import *
|
||||
import isys
|
||||
import sys
|
||||
import os
|
||||
import shutil
|
||||
import signal
|
||||
from flags import flags
|
||||
import kickstart
|
||||
|
||||
import logging
|
||||
log = logging.getLogger("anaconda")
|
||||
|
||||
class AnacondaExceptionHandler(ExceptionHandler):
|
||||
def postWriteHook(self, (ty, value, tb), anaconda):
|
||||
# See if /mnt/sysimage is present and put exception there as well
|
||||
if os.access("/mnt/sysimage/root", os.X_OK):
|
||||
try:
|
||||
dest = "/mnt/sysimage/root/%s" % os.path.basename(self.exnFile)
|
||||
shutil.copyfile(self.exnFile, dest)
|
||||
except:
|
||||
log.error("Failed to copy %s to /mnt/sysimage/root" % self.exnFile)
|
||||
pass
|
||||
|
||||
# run kickstart traceback scripts (if necessary)
|
||||
try:
|
||||
if anaconda.ksdata:
|
||||
kickstart.runTracebackScripts(anaconda)
|
||||
except:
|
||||
pass
|
||||
|
||||
def runDebug(self, (ty, value, tb)):
|
||||
# vtActivate does not work on certain ppc64 machines, so just skip
|
||||
# that and continue with the rest of the debugger setup.
|
||||
try:
|
||||
isys.vtActivate(1)
|
||||
except SystemError:
|
||||
pass
|
||||
|
||||
self.intf.__del__ ()
|
||||
|
||||
pidfl = "/tmp/vncshell.pid"
|
||||
if os.path.exists(pidfl) and os.path.isfile(pidfl):
|
||||
pf = open(pidfl, "r")
|
||||
for pid in pf.readlines():
|
||||
if not int(pid) == os.getpid():
|
||||
os.kill(int(pid), signal.SIGKILL)
|
||||
pf.close()
|
||||
|
||||
os.open("/dev/console", os.O_RDWR) # reclaim stdin
|
||||
os.dup2(0, 1) # reclaim stdout
|
||||
os.dup2(0, 2) # reclaim stderr
|
||||
# ^
|
||||
# |
|
||||
# +------ dup2 is magic, I tells ya!
|
||||
|
||||
# bring back the echo
|
||||
import termios
|
||||
si = sys.stdin.fileno()
|
||||
attr = termios.tcgetattr(si)
|
||||
attr[3] = attr[3] & termios.ECHO
|
||||
termios.tcsetattr(si, termios.TCSADRAIN, attr)
|
||||
|
||||
print("\nEntering debugger...")
|
||||
import pdb
|
||||
pdb.post_mortem (tb)
|
||||
os.kill(os.getpid(), signal.SIGKILL)
|
||||
|
||||
def initExceptionHandling(anaconda):
|
||||
fileList = [ "/tmp/anaconda.log", "/tmp/lvmout", "/tmp/resize.out",
|
||||
"/tmp/program.log", "/tmp/storage.log", "/tmp/yum.log",
|
||||
anaconda.rootPath + "/root/install.log",
|
||||
anaconda.rootPath + "/root/upgrade.log", "/proc/cmdline" ]
|
||||
if flags.livecdInstall:
|
||||
fileList.extend(["/var/log/dmesg"])
|
||||
else:
|
||||
fileList.extend(["/tmp/syslog"])
|
||||
|
||||
conf = Config(programName="anaconda",
|
||||
programVersion=isys.getAnacondaVersion(),
|
||||
bugFiler=anaconda.instClass.bugFiler,
|
||||
attrSkipList=[ "backend.ayum",
|
||||
"backend.dlpkgs",
|
||||
"accounts",
|
||||
"bootloader.password",
|
||||
"comps",
|
||||
"dispatch",
|
||||
"hdList",
|
||||
"ksdata",
|
||||
"instLanguage.font",
|
||||
"instLanguage.kbd",
|
||||
"instLanguage.info",
|
||||
"instLanguage.localeInfo",
|
||||
"instLanguage.nativeLangNames",
|
||||
"instLanguage.tz",
|
||||
"keyboard._mods._modelDict",
|
||||
"keyboard.modelDict",
|
||||
"storage.encryptionPassphrase",
|
||||
"users.rootPassword",
|
||||
"tmpData",
|
||||
"intf.icw.buff",
|
||||
"intf.icw.currentWindow.storage.encryptionPassphrase",
|
||||
"intf.icw.stockButtons",
|
||||
],
|
||||
localSkipList=[ "passphrase", "password" ],
|
||||
fileList=fileList)
|
||||
handler = AnacondaExceptionHandler(conf, anaconda.intf, ReverseExceptionDump)
|
||||
handler.install(anaconda)
|
||||
|
||||
return conf
|
93
anaconda/firewall.py
Normal file
93
anaconda/firewall.py
Normal file
@ -0,0 +1,93 @@
|
||||
#
|
||||
# firewall.py - firewall install data and installation
|
||||
#
|
||||
# Copyright (C) 2004 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author(s): Bill Nottingham <notting@redhat.com>
|
||||
# Jeremy Katz <katzj@redhat.com>
|
||||
#
|
||||
|
||||
import iutil
|
||||
import os.path
|
||||
from flags import flags
|
||||
from constants import *
|
||||
|
||||
import gettext
|
||||
_ = lambda x: gettext.ldgettext("anaconda", x)
|
||||
|
||||
import logging
|
||||
log = logging.getLogger("anaconda")
|
||||
|
||||
class Firewall:
|
||||
def __init__ (self):
|
||||
self.enabled = 1
|
||||
self.trustdevs = []
|
||||
self.portlist = []
|
||||
self.servicelist = []
|
||||
|
||||
def writeKS(self, f):
|
||||
f.write("firewall")
|
||||
|
||||
if self.enabled:
|
||||
for arg in self.getArgList():
|
||||
f.write(" " + arg)
|
||||
else:
|
||||
f.write(" --disabled")
|
||||
|
||||
f.write("\n")
|
||||
|
||||
def getArgList(self):
|
||||
args = []
|
||||
|
||||
if not self.enabled:
|
||||
args.append("--disabled")
|
||||
return args
|
||||
|
||||
if not "ssh" in self.servicelist and not "22:tcp" in self.portlist:
|
||||
args += ["--service=ssh"]
|
||||
|
||||
for dev in self.trustdevs:
|
||||
args = args + [ "--trust=%s" %(dev,) ]
|
||||
|
||||
for port in self.portlist:
|
||||
args = args + [ "--port=%s" %(port,) ]
|
||||
|
||||
for service in self.servicelist:
|
||||
args = args + [ "--service=%s" % (service,) ]
|
||||
|
||||
return args
|
||||
|
||||
def write (self, instPath):
|
||||
args = [ "--quiet", "--nostart", "-f" ] + self.getArgList()
|
||||
|
||||
try:
|
||||
if not os.path.exists("%s/etc/sysconfig/iptables" %(instPath,)):
|
||||
iutil.execWithRedirect("/usr/sbin/lokkit", args,
|
||||
root=instPath, stdout="/dev/null",
|
||||
stderr="/dev/null")
|
||||
else:
|
||||
log.error("would have run %s", args)
|
||||
except RuntimeError, msg:
|
||||
log.error ("lokkit run failed: %s", msg)
|
||||
except OSError as e:
|
||||
log.error ("lokkit run failed: %s", e.strerror)
|
||||
else:
|
||||
f = open(instPath +
|
||||
'/etc/sysconfig/system-config-firewall', 'w')
|
||||
f.write("# system-config-firewall config written out by anaconda\n\n")
|
||||
for arg in args[3:]:
|
||||
f.write("%s\n" %(arg,))
|
||||
f.close()
|
113
anaconda/flags.py
Normal file
113
anaconda/flags.py
Normal file
@ -0,0 +1,113 @@
|
||||
#
|
||||
# flags.py: global anaconda flags
|
||||
#
|
||||
# Copyright (C) 2001 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import os
|
||||
import shlex
|
||||
from constants import *
|
||||
|
||||
# A lot of effort, but it only allows a limited set of flags to be referenced
|
||||
class Flags:
|
||||
|
||||
def __getattr__(self, attr):
|
||||
if self.__dict__['flags'].has_key(attr):
|
||||
return self.__dict__['flags'][attr]
|
||||
|
||||
raise AttributeError, attr
|
||||
|
||||
def __setattr__(self, attr, val):
|
||||
if self.__dict__['flags'].has_key(attr):
|
||||
self.__dict__['flags'][attr] = val
|
||||
else:
|
||||
raise AttributeError, attr
|
||||
|
||||
def get(self, attr, val=None):
|
||||
if self.__dict__['flags'].has_key(attr):
|
||||
return self.__dict__['flags'][attr]
|
||||
else:
|
||||
return val
|
||||
|
||||
def createCmdlineDict(self):
|
||||
cmdlineDict = {}
|
||||
cmdline = open("/proc/cmdline", "r").read().strip()
|
||||
|
||||
# if the BOOT_IMAGE contains a space, pxelinux will strip one of the
|
||||
# quotes leaving one at the end that shlex doesn't know what to do
|
||||
# with
|
||||
if cmdline.find("BOOT_IMAGE=") and cmdline.endswith('"'):
|
||||
cmdline = cmdline.replace("BOOT_IMAGE=", "BOOT_IMAGE=\"")
|
||||
|
||||
lst = shlex.split(cmdline)
|
||||
|
||||
for i in lst:
|
||||
try:
|
||||
(key, val) = i.split("=", 1)
|
||||
except:
|
||||
key = i
|
||||
val = None
|
||||
|
||||
cmdlineDict[key] = val
|
||||
|
||||
return cmdlineDict
|
||||
|
||||
def __init__(self):
|
||||
self.__dict__['flags'] = {}
|
||||
self.__dict__['flags']['test'] = 0
|
||||
self.__dict__['flags']['livecdInstall'] = 0
|
||||
self.__dict__['flags']['dlabel'] = 0
|
||||
self.__dict__['flags']['ibft'] = 1
|
||||
self.__dict__['flags']['iscsi'] = 0
|
||||
self.__dict__['flags']['serial'] = 0
|
||||
self.__dict__['flags']['autostep'] = 0
|
||||
self.__dict__['flags']['autoscreenshot'] = 0
|
||||
self.__dict__['flags']['usevnc'] = 0
|
||||
self.__dict__['flags']['vncquestion'] = True
|
||||
self.__dict__['flags']['mpath'] = 1
|
||||
self.__dict__['flags']['dmraid'] = 1
|
||||
self.__dict__['flags']['selinux'] = SELINUX_DEFAULT
|
||||
self.__dict__['flags']['debug'] = 0
|
||||
self.__dict__['flags']['targetarch'] = None
|
||||
self.__dict__['flags']['cmdline'] = self.createCmdlineDict()
|
||||
self.__dict__['flags']['useIPv4'] = True
|
||||
self.__dict__['flags']['useIPv6'] = True
|
||||
self.__dict__['flags']['sshd'] = 1
|
||||
# for non-physical consoles like some ppc and sgi altix,
|
||||
# we need to preserve the console device and not try to
|
||||
# do things like bogl on them. this preserves what that
|
||||
# device is
|
||||
self.__dict__['flags']['virtpconsole'] = None
|
||||
|
||||
for x in ['selinux','sshd']:
|
||||
if self.__dict__['flags']['cmdline'].has_key(x):
|
||||
if self.__dict__['flags']['cmdline'][x]:
|
||||
self.__dict__['flags'][x] = 1
|
||||
else:
|
||||
self.__dict__['flags'][x] = 0
|
||||
|
||||
if self.__dict__['flags']['cmdline'].has_key("debug"):
|
||||
self.__dict__['flags']['debug'] = self.__dict__['flags']['cmdline']['debug']
|
||||
|
||||
if self.__dict__['flags']['cmdline'].has_key("rpmarch"):
|
||||
self.__dict__['flags']['targetarch'] = self.__dict__['flags']['cmdline']['rpmarch']
|
||||
|
||||
if not os.path.exists("/selinux/load"):
|
||||
self.__dict__['flags']['selinux'] = 0
|
||||
|
||||
|
||||
global flags
|
||||
flags = Flags()
|
39
anaconda/fonts/Makefile.am
Normal file
39
anaconda/fonts/Makefile.am
Normal file
@ -0,0 +1,39 @@
|
||||
# fonts/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
if IS_FONT_ARCH
|
||||
fontsdir = $(libdir)/$(PACKAGE_NAME)-runtime
|
||||
dist_fonts_DATA = screenfont-$(ARCH).gz
|
||||
endif
|
||||
|
||||
EXTRA_DIST = screenfont-*.gz updfonts
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
i386:
|
||||
./updfonts i386
|
||||
|
||||
alpha:
|
||||
./updfonts alpha
|
||||
|
||||
sparc:
|
||||
./updfonts sparc
|
||||
|
||||
ia64:
|
||||
./updfonts ia64
|
516
anaconda/fonts/Makefile.in
Normal file
516
anaconda/fonts/Makefile.in
Normal file
@ -0,0 +1,516 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# fonts/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = fonts
|
||||
DIST_COMMON = $(am__dist_fonts_DATA_DIST) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/python.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__dist_fonts_DATA_DIST = screenfont-$(ARCH).gz
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(fontsdir)"
|
||||
DATA = $(dist_fonts_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
ARCH = @ARCH@
|
||||
AUDIT_LIBS = @AUDIT_LIBS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BLKID_LIBS = @BLKID_LIBS@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHECKISOMD5_LIBS = @CHECKISOMD5_LIBS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DEVMAPPER_CFLAGS = @DEVMAPPER_CFLAGS@
|
||||
DEVMAPPER_LIBS = @DEVMAPPER_LIBS@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
EXT2FS_LIBS = @EXT2FS_LIBS@
|
||||
FGREP = @FGREP@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
|
||||
GTK_X11_LIBS = @GTK_X11_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
IPV6_CFLAGS = @IPV6_CFLAGS@
|
||||
ISCSI_LIBS = @ISCSI_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@
|
||||
LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@
|
||||
LIBCURL_CFLAGS = @LIBCURL_CFLAGS@
|
||||
LIBCURL_LIBS = @LIBCURL_LIBS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBNL_CFLAGS = @LIBNL_CFLAGS@
|
||||
LIBNL_LIBS = @LIBNL_LIBS@
|
||||
LIBNM_GLIB_CFLAGS = @LIBNM_GLIB_CFLAGS@
|
||||
LIBNM_GLIB_LIBS = @LIBNM_GLIB_LIBS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
NETWORKMANAGER_CFLAGS = @NETWORKMANAGER_CFLAGS@
|
||||
NETWORKMANAGER_LIBS = @NETWORKMANAGER_LIBS@
|
||||
NEWT_LIBS = @NEWT_LIBS@
|
||||
NFS_CFLAGS = @NFS_CFLAGS@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_RELEASE = @PACKAGE_RELEASE@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POSUB = @POSUB@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EMBED_LIBS = @PYTHON_EMBED_LIBS@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
|
||||
PYTHON_LIBS = @PYTHON_LIBS@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
RPM_CFLAGS = @RPM_CFLAGS@
|
||||
RPM_LIBS = @RPM_LIBS@
|
||||
SED = @SED@
|
||||
SELINUX_CFLAGS = @SELINUX_CFLAGS@
|
||||
SELINUX_LIBS = @SELINUX_LIBS@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLANG_LIBS = @SLANG_LIBS@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
X11_CFLAGS = @X11_CFLAGS@
|
||||
X11_LIBS = @X11_LIBS@
|
||||
XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
|
||||
XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
XMKMF = @XMKMF@
|
||||
ZLIB_LIBS = @ZLIB_LIBS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
@IS_FONT_ARCH_TRUE@fontsdir = $(libdir)/$(PACKAGE_NAME)-runtime
|
||||
@IS_FONT_ARCH_TRUE@dist_fonts_DATA = screenfont-$(ARCH).gz
|
||||
EXTRA_DIST = screenfont-*.gz updfonts
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fonts/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign fonts/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-dist_fontsDATA: $(dist_fonts_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(fontsdir)" || $(MKDIR_P) "$(DESTDIR)$(fontsdir)"
|
||||
@list='$(dist_fonts_DATA)'; test -n "$(fontsdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(fontsdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(fontsdir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-dist_fontsDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(dist_fonts_DATA)'; test -n "$(fontsdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(fontsdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(fontsdir)" && rm -f $$files
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(fontsdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-dist_fontsDATA
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-dist_fontsDATA
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-dist_fontsDATA \
|
||||
install-dvi install-dvi-am install-exec install-exec-am \
|
||||
install-html install-html-am install-info install-info-am \
|
||||
install-man install-pdf install-pdf-am install-ps \
|
||||
install-ps-am install-strip installcheck installcheck-am \
|
||||
installdirs maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
|
||||
ps ps-am uninstall uninstall-am uninstall-dist_fontsDATA
|
||||
|
||||
|
||||
i386:
|
||||
./updfonts i386
|
||||
|
||||
alpha:
|
||||
./updfonts alpha
|
||||
|
||||
sparc:
|
||||
./updfonts sparc
|
||||
|
||||
ia64:
|
||||
./updfonts ia64
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
BIN
anaconda/fonts/screenfont-alpha.gz
Normal file
BIN
anaconda/fonts/screenfont-alpha.gz
Normal file
Binary file not shown.
BIN
anaconda/fonts/screenfont-i386.gz
Normal file
BIN
anaconda/fonts/screenfont-i386.gz
Normal file
Binary file not shown.
BIN
anaconda/fonts/screenfont-ia64.gz
Normal file
BIN
anaconda/fonts/screenfont-ia64.gz
Normal file
Binary file not shown.
BIN
anaconda/fonts/screenfont-ppc.gz
Normal file
BIN
anaconda/fonts/screenfont-ppc.gz
Normal file
Binary file not shown.
BIN
anaconda/fonts/screenfont-sparc.gz
Normal file
BIN
anaconda/fonts/screenfont-sparc.gz
Normal file
Binary file not shown.
BIN
anaconda/fonts/screenfont-x86_64.gz
Normal file
BIN
anaconda/fonts/screenfont-x86_64.gz
Normal file
Binary file not shown.
11
anaconda/fonts/updfonts
Executable file
11
anaconda/fonts/updfonts
Executable file
@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
ARCH=$1
|
||||
if [ -z "$ARCH" ]; then
|
||||
echo "usage: $0 <arch>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
setfont latarcyrheb-sun16
|
||||
../utils/snarffont > screenfont-$ARCH
|
||||
gzip -9 -f screenfont-$ARCH
|
35
anaconda/gptsync/Makefile.am
Normal file
35
anaconda/gptsync/Makefile.am
Normal file
@ -0,0 +1,35 @@
|
||||
# gptsync/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
COMMON_SRCS = lib.c os_unix.c
|
||||
noinst_HEADERS = gptsync.h syslinux_mbr.h
|
||||
|
||||
if IS_GPTSYNC_ARCH
|
||||
sbin_PROGRAMS = gptsync showpart
|
||||
|
||||
gptsync_CFLAGS = -DPROGNAME=gptsync
|
||||
gptsync_SOURCES = gptsync.c $(COMMON_SRCS)
|
||||
|
||||
showpart_CFLAGS = -DPROGNAME=showpart
|
||||
showpart_SOURCES = showpart.c $(COMMON_SRCS)
|
||||
endif
|
||||
|
||||
EXTRA_DIST = README
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
751
anaconda/gptsync/Makefile.in
Normal file
751
anaconda/gptsync/Makefile.in
Normal file
@ -0,0 +1,751 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# gptsync/Makefile.am for anaconda
|
||||
#
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author: David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
@IS_GPTSYNC_ARCH_TRUE@sbin_PROGRAMS = gptsync$(EXEEXT) \
|
||||
@IS_GPTSYNC_ARCH_TRUE@ showpart$(EXEEXT)
|
||||
subdir = gptsync
|
||||
DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/python.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(sbindir)"
|
||||
PROGRAMS = $(sbin_PROGRAMS)
|
||||
am__gptsync_SOURCES_DIST = gptsync.c lib.c os_unix.c
|
||||
am__objects_1 = gptsync-lib.$(OBJEXT) gptsync-os_unix.$(OBJEXT)
|
||||
@IS_GPTSYNC_ARCH_TRUE@am_gptsync_OBJECTS = gptsync-gptsync.$(OBJEXT) \
|
||||
@IS_GPTSYNC_ARCH_TRUE@ $(am__objects_1)
|
||||
gptsync_OBJECTS = $(am_gptsync_OBJECTS)
|
||||
gptsync_LDADD = $(LDADD)
|
||||
AM_V_lt = $(am__v_lt_$(V))
|
||||
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_lt_0 = --silent
|
||||
gptsync_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(gptsync_CFLAGS) \
|
||||
$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
am__showpart_SOURCES_DIST = showpart.c lib.c os_unix.c
|
||||
am__objects_2 = showpart-lib.$(OBJEXT) showpart-os_unix.$(OBJEXT)
|
||||
@IS_GPTSYNC_ARCH_TRUE@am_showpart_OBJECTS = \
|
||||
@IS_GPTSYNC_ARCH_TRUE@ showpart-showpart.$(OBJEXT) \
|
||||
@IS_GPTSYNC_ARCH_TRUE@ $(am__objects_2)
|
||||
showpart_OBJECTS = $(am_showpart_OBJECTS)
|
||||
showpart_LDADD = $(LDADD)
|
||||
showpart_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(showpart_CFLAGS) \
|
||||
$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__mv = mv -f
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
|
||||
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
|
||||
$(AM_CFLAGS) $(CFLAGS)
|
||||
AM_V_CC = $(am__v_CC_$(V))
|
||||
am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_CC_0 = @echo " CC " $@;
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
AM_V_CCLD = $(am__v_CCLD_$(V))
|
||||
am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_CCLD_0 = @echo " CCLD " $@;
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
SOURCES = $(gptsync_SOURCES) $(showpart_SOURCES)
|
||||
DIST_SOURCES = $(am__gptsync_SOURCES_DIST) \
|
||||
$(am__showpart_SOURCES_DIST)
|
||||
HEADERS = $(noinst_HEADERS)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
ARCH = @ARCH@
|
||||
AUDIT_LIBS = @AUDIT_LIBS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BLKID_LIBS = @BLKID_LIBS@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHECKISOMD5_LIBS = @CHECKISOMD5_LIBS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DEVMAPPER_CFLAGS = @DEVMAPPER_CFLAGS@
|
||||
DEVMAPPER_LIBS = @DEVMAPPER_LIBS@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
EXT2FS_LIBS = @EXT2FS_LIBS@
|
||||
FGREP = @FGREP@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
|
||||
GTK_X11_LIBS = @GTK_X11_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
IPV6_CFLAGS = @IPV6_CFLAGS@
|
||||
ISCSI_LIBS = @ISCSI_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@
|
||||
LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@
|
||||
LIBCURL_CFLAGS = @LIBCURL_CFLAGS@
|
||||
LIBCURL_LIBS = @LIBCURL_LIBS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBNL_CFLAGS = @LIBNL_CFLAGS@
|
||||
LIBNL_LIBS = @LIBNL_LIBS@
|
||||
LIBNM_GLIB_CFLAGS = @LIBNM_GLIB_CFLAGS@
|
||||
LIBNM_GLIB_LIBS = @LIBNM_GLIB_LIBS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
NETWORKMANAGER_CFLAGS = @NETWORKMANAGER_CFLAGS@
|
||||
NETWORKMANAGER_LIBS = @NETWORKMANAGER_LIBS@
|
||||
NEWT_LIBS = @NEWT_LIBS@
|
||||
NFS_CFLAGS = @NFS_CFLAGS@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_RELEASE = @PACKAGE_RELEASE@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POSUB = @POSUB@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EMBED_LIBS = @PYTHON_EMBED_LIBS@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
|
||||
PYTHON_LIBS = @PYTHON_LIBS@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
RPM_CFLAGS = @RPM_CFLAGS@
|
||||
RPM_LIBS = @RPM_LIBS@
|
||||
SED = @SED@
|
||||
SELINUX_CFLAGS = @SELINUX_CFLAGS@
|
||||
SELINUX_LIBS = @SELINUX_LIBS@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLANG_LIBS = @SLANG_LIBS@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
X11_CFLAGS = @X11_CFLAGS@
|
||||
X11_LIBS = @X11_LIBS@
|
||||
XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
|
||||
XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
XMKMF = @XMKMF@
|
||||
ZLIB_LIBS = @ZLIB_LIBS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
COMMON_SRCS = lib.c os_unix.c
|
||||
noinst_HEADERS = gptsync.h syslinux_mbr.h
|
||||
@IS_GPTSYNC_ARCH_TRUE@gptsync_CFLAGS = -DPROGNAME=gptsync
|
||||
@IS_GPTSYNC_ARCH_TRUE@gptsync_SOURCES = gptsync.c $(COMMON_SRCS)
|
||||
@IS_GPTSYNC_ARCH_TRUE@showpart_CFLAGS = -DPROGNAME=showpart
|
||||
@IS_GPTSYNC_ARCH_TRUE@showpart_SOURCES = showpart.c $(COMMON_SRCS)
|
||||
EXTRA_DIST = README
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .lo .o .obj
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign gptsync/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign gptsync/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
install-sbinPROGRAMS: $(sbin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
|
||||
@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed 's/$(EXEEXT)$$//' | \
|
||||
while read p p1; do if test -f $$p || test -f $$p1; \
|
||||
then echo "$$p"; echo "$$p"; else :; fi; \
|
||||
done | \
|
||||
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
|
||||
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
|
||||
sed 'N;N;N;s,\n, ,g' | \
|
||||
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
|
||||
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||
if ($$2 == $$4) files[d] = files[d] " " $$1; \
|
||||
else { print "f", $$3 "/" $$4, $$1; } } \
|
||||
END { for (d in files) print "f", d, files[d] }' | \
|
||||
while read type dir files; do \
|
||||
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \
|
||||
} \
|
||||
; done
|
||||
|
||||
uninstall-sbinPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
|
||||
files=`for p in $$list; do echo "$$p"; done | \
|
||||
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
|
||||
-e 's/$$/$(EXEEXT)/' `; \
|
||||
test -n "$$list" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(sbindir)" && rm -f $$files
|
||||
|
||||
clean-sbinPROGRAMS:
|
||||
@list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list || exit $$?; \
|
||||
test -n "$(EXEEXT)" || exit 0; \
|
||||
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list
|
||||
gptsync$(EXEEXT): $(gptsync_OBJECTS) $(gptsync_DEPENDENCIES)
|
||||
@rm -f gptsync$(EXEEXT)
|
||||
$(AM_V_CCLD)$(gptsync_LINK) $(gptsync_OBJECTS) $(gptsync_LDADD) $(LIBS)
|
||||
showpart$(EXEEXT): $(showpart_OBJECTS) $(showpart_DEPENDENCIES)
|
||||
@rm -f showpart$(EXEEXT)
|
||||
$(AM_V_CCLD)$(showpart_LINK) $(showpart_OBJECTS) $(showpart_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gptsync-gptsync.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gptsync-lib.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gptsync-os_unix.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/showpart-lib.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/showpart-os_unix.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/showpart-showpart.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
gptsync-gptsync.o: gptsync.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gptsync_CFLAGS) $(CFLAGS) -MT gptsync-gptsync.o -MD -MP -MF $(DEPDIR)/gptsync-gptsync.Tpo -c -o gptsync-gptsync.o `test -f 'gptsync.c' || echo '$(srcdir)/'`gptsync.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gptsync-gptsync.Tpo $(DEPDIR)/gptsync-gptsync.Po
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gptsync.c' object='gptsync-gptsync.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gptsync_CFLAGS) $(CFLAGS) -c -o gptsync-gptsync.o `test -f 'gptsync.c' || echo '$(srcdir)/'`gptsync.c
|
||||
|
||||
gptsync-gptsync.obj: gptsync.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gptsync_CFLAGS) $(CFLAGS) -MT gptsync-gptsync.obj -MD -MP -MF $(DEPDIR)/gptsync-gptsync.Tpo -c -o gptsync-gptsync.obj `if test -f 'gptsync.c'; then $(CYGPATH_W) 'gptsync.c'; else $(CYGPATH_W) '$(srcdir)/gptsync.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gptsync-gptsync.Tpo $(DEPDIR)/gptsync-gptsync.Po
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gptsync.c' object='gptsync-gptsync.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gptsync_CFLAGS) $(CFLAGS) -c -o gptsync-gptsync.obj `if test -f 'gptsync.c'; then $(CYGPATH_W) 'gptsync.c'; else $(CYGPATH_W) '$(srcdir)/gptsync.c'; fi`
|
||||
|
||||
gptsync-lib.o: lib.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gptsync_CFLAGS) $(CFLAGS) -MT gptsync-lib.o -MD -MP -MF $(DEPDIR)/gptsync-lib.Tpo -c -o gptsync-lib.o `test -f 'lib.c' || echo '$(srcdir)/'`lib.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gptsync-lib.Tpo $(DEPDIR)/gptsync-lib.Po
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib.c' object='gptsync-lib.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gptsync_CFLAGS) $(CFLAGS) -c -o gptsync-lib.o `test -f 'lib.c' || echo '$(srcdir)/'`lib.c
|
||||
|
||||
gptsync-lib.obj: lib.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gptsync_CFLAGS) $(CFLAGS) -MT gptsync-lib.obj -MD -MP -MF $(DEPDIR)/gptsync-lib.Tpo -c -o gptsync-lib.obj `if test -f 'lib.c'; then $(CYGPATH_W) 'lib.c'; else $(CYGPATH_W) '$(srcdir)/lib.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gptsync-lib.Tpo $(DEPDIR)/gptsync-lib.Po
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib.c' object='gptsync-lib.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gptsync_CFLAGS) $(CFLAGS) -c -o gptsync-lib.obj `if test -f 'lib.c'; then $(CYGPATH_W) 'lib.c'; else $(CYGPATH_W) '$(srcdir)/lib.c'; fi`
|
||||
|
||||
gptsync-os_unix.o: os_unix.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gptsync_CFLAGS) $(CFLAGS) -MT gptsync-os_unix.o -MD -MP -MF $(DEPDIR)/gptsync-os_unix.Tpo -c -o gptsync-os_unix.o `test -f 'os_unix.c' || echo '$(srcdir)/'`os_unix.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gptsync-os_unix.Tpo $(DEPDIR)/gptsync-os_unix.Po
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='os_unix.c' object='gptsync-os_unix.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gptsync_CFLAGS) $(CFLAGS) -c -o gptsync-os_unix.o `test -f 'os_unix.c' || echo '$(srcdir)/'`os_unix.c
|
||||
|
||||
gptsync-os_unix.obj: os_unix.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gptsync_CFLAGS) $(CFLAGS) -MT gptsync-os_unix.obj -MD -MP -MF $(DEPDIR)/gptsync-os_unix.Tpo -c -o gptsync-os_unix.obj `if test -f 'os_unix.c'; then $(CYGPATH_W) 'os_unix.c'; else $(CYGPATH_W) '$(srcdir)/os_unix.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gptsync-os_unix.Tpo $(DEPDIR)/gptsync-os_unix.Po
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='os_unix.c' object='gptsync-os_unix.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gptsync_CFLAGS) $(CFLAGS) -c -o gptsync-os_unix.obj `if test -f 'os_unix.c'; then $(CYGPATH_W) 'os_unix.c'; else $(CYGPATH_W) '$(srcdir)/os_unix.c'; fi`
|
||||
|
||||
showpart-showpart.o: showpart.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(showpart_CFLAGS) $(CFLAGS) -MT showpart-showpart.o -MD -MP -MF $(DEPDIR)/showpart-showpart.Tpo -c -o showpart-showpart.o `test -f 'showpart.c' || echo '$(srcdir)/'`showpart.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/showpart-showpart.Tpo $(DEPDIR)/showpart-showpart.Po
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='showpart.c' object='showpart-showpart.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(showpart_CFLAGS) $(CFLAGS) -c -o showpart-showpart.o `test -f 'showpart.c' || echo '$(srcdir)/'`showpart.c
|
||||
|
||||
showpart-showpart.obj: showpart.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(showpart_CFLAGS) $(CFLAGS) -MT showpart-showpart.obj -MD -MP -MF $(DEPDIR)/showpart-showpart.Tpo -c -o showpart-showpart.obj `if test -f 'showpart.c'; then $(CYGPATH_W) 'showpart.c'; else $(CYGPATH_W) '$(srcdir)/showpart.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/showpart-showpart.Tpo $(DEPDIR)/showpart-showpart.Po
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='showpart.c' object='showpart-showpart.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(showpart_CFLAGS) $(CFLAGS) -c -o showpart-showpart.obj `if test -f 'showpart.c'; then $(CYGPATH_W) 'showpart.c'; else $(CYGPATH_W) '$(srcdir)/showpart.c'; fi`
|
||||
|
||||
showpart-lib.o: lib.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(showpart_CFLAGS) $(CFLAGS) -MT showpart-lib.o -MD -MP -MF $(DEPDIR)/showpart-lib.Tpo -c -o showpart-lib.o `test -f 'lib.c' || echo '$(srcdir)/'`lib.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/showpart-lib.Tpo $(DEPDIR)/showpart-lib.Po
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib.c' object='showpart-lib.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(showpart_CFLAGS) $(CFLAGS) -c -o showpart-lib.o `test -f 'lib.c' || echo '$(srcdir)/'`lib.c
|
||||
|
||||
showpart-lib.obj: lib.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(showpart_CFLAGS) $(CFLAGS) -MT showpart-lib.obj -MD -MP -MF $(DEPDIR)/showpart-lib.Tpo -c -o showpart-lib.obj `if test -f 'lib.c'; then $(CYGPATH_W) 'lib.c'; else $(CYGPATH_W) '$(srcdir)/lib.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/showpart-lib.Tpo $(DEPDIR)/showpart-lib.Po
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib.c' object='showpart-lib.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(showpart_CFLAGS) $(CFLAGS) -c -o showpart-lib.obj `if test -f 'lib.c'; then $(CYGPATH_W) 'lib.c'; else $(CYGPATH_W) '$(srcdir)/lib.c'; fi`
|
||||
|
||||
showpart-os_unix.o: os_unix.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(showpart_CFLAGS) $(CFLAGS) -MT showpart-os_unix.o -MD -MP -MF $(DEPDIR)/showpart-os_unix.Tpo -c -o showpart-os_unix.o `test -f 'os_unix.c' || echo '$(srcdir)/'`os_unix.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/showpart-os_unix.Tpo $(DEPDIR)/showpart-os_unix.Po
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='os_unix.c' object='showpart-os_unix.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(showpart_CFLAGS) $(CFLAGS) -c -o showpart-os_unix.o `test -f 'os_unix.c' || echo '$(srcdir)/'`os_unix.c
|
||||
|
||||
showpart-os_unix.obj: os_unix.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(showpart_CFLAGS) $(CFLAGS) -MT showpart-os_unix.obj -MD -MP -MF $(DEPDIR)/showpart-os_unix.Tpo -c -o showpart-os_unix.obj `if test -f 'os_unix.c'; then $(CYGPATH_W) 'os_unix.c'; else $(CYGPATH_W) '$(srcdir)/os_unix.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/showpart-os_unix.Tpo $(DEPDIR)/showpart-os_unix.Po
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='os_unix.c' object='showpart-os_unix.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(showpart_CFLAGS) $(CFLAGS) -c -o showpart-os_unix.obj `if test -f 'os_unix.c'; then $(CYGPATH_W) 'os_unix.c'; else $(CYGPATH_W) '$(srcdir)/os_unix.c'; fi`
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(PROGRAMS) $(HEADERS)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(sbindir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool clean-sbinPROGRAMS \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am: install-sbinPROGRAMS
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-sbinPROGRAMS
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-libtool clean-sbinPROGRAMS ctags distclean \
|
||||
distclean-compile distclean-generic distclean-libtool \
|
||||
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-sbinPROGRAMS install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags uninstall uninstall-am uninstall-sbinPROGRAMS
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
41
anaconda/gptsync/README
Normal file
41
anaconda/gptsync/README
Normal file
@ -0,0 +1,41 @@
|
||||
gptsync is from refit (refit.sf.net). It has been modified to
|
||||
1) Not prompt if you want to copy
|
||||
2) Default to Linux native (0x83) instead of fat32 partition id
|
||||
|
||||
The original license follows.
|
||||
|
||||
|
||||
rEFIt License
|
||||
===============
|
||||
|
||||
Copyright (c) 2006-2007 Christoph Pfisterer
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
* Neither the name of Christoph Pfisterer nor the names of the
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
470
anaconda/gptsync/gptsync.c
Normal file
470
anaconda/gptsync/gptsync.c
Normal file
@ -0,0 +1,470 @@
|
||||
/*
|
||||
* gptsync/gptsync.c
|
||||
* Platform-independent code for syncing GPT and MBR
|
||||
*
|
||||
* Copyright (c) 2006-2007 Christoph Pfisterer
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* * Neither the name of Christoph Pfisterer nor the names of the
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "gptsync.h"
|
||||
|
||||
#include "syslinux_mbr.h"
|
||||
|
||||
//
|
||||
// MBR functions
|
||||
//
|
||||
|
||||
static UINTN check_mbr(VOID)
|
||||
{
|
||||
UINTN i, k;
|
||||
|
||||
// check each entry
|
||||
for (i = 0; i < mbr_part_count; i++) {
|
||||
// check for overlap
|
||||
for (k = 0; k < mbr_part_count; k++) {
|
||||
if (k != i && !(mbr_parts[i].start_lba > mbr_parts[k].end_lba || mbr_parts[k].start_lba > mbr_parts[i].end_lba)) {
|
||||
Print(L"Status: MBR partition table is invalid, partitions overlap.\n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
// check for extended partitions
|
||||
if (mbr_parts[i].mbr_type == 0x05 || mbr_parts[i].mbr_type == 0x0f || mbr_parts[i].mbr_type == 0x85) {
|
||||
Print(L"Status: Extended partition found in MBR table, will not touch this disk.\n",
|
||||
gpt_parts[i].gpt_parttype->name);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static UINTN write_mbr(VOID)
|
||||
{
|
||||
UINTN status;
|
||||
UINTN i, k;
|
||||
UINT8 active;
|
||||
UINT64 lba;
|
||||
MBR_PARTITION_INFO *table;
|
||||
BOOLEAN have_bootcode;
|
||||
|
||||
Print(L"\nWriting new MBR...\n");
|
||||
|
||||
// read MBR data
|
||||
status = read_sector(0, sector);
|
||||
if (status != 0)
|
||||
return status;
|
||||
|
||||
// write partition table
|
||||
*((UINT16 *)(sector + 510)) = 0xaa55;
|
||||
|
||||
table = (MBR_PARTITION_INFO *)(sector + 446);
|
||||
active = 0x80;
|
||||
for (i = 0; i < 4; i++) {
|
||||
for (k = 0; k < new_mbr_part_count; k++) {
|
||||
if (new_mbr_parts[k].index == i)
|
||||
break;
|
||||
}
|
||||
if (k >= new_mbr_part_count) {
|
||||
// unused entry
|
||||
table[i].flags = 0;
|
||||
table[i].start_chs[0] = 0;
|
||||
table[i].start_chs[1] = 0;
|
||||
table[i].start_chs[2] = 0;
|
||||
table[i].type = 0;
|
||||
table[i].end_chs[0] = 0;
|
||||
table[i].end_chs[1] = 0;
|
||||
table[i].end_chs[2] = 0;
|
||||
table[i].start_lba = 0;
|
||||
table[i].size = 0;
|
||||
} else {
|
||||
if (new_mbr_parts[k].active) {
|
||||
table[i].flags = active;
|
||||
active = 0x00;
|
||||
} else
|
||||
table[i].flags = 0x00;
|
||||
table[i].start_chs[0] = 0xfe;
|
||||
table[i].start_chs[1] = 0xff;
|
||||
table[i].start_chs[2] = 0xff;
|
||||
table[i].type = new_mbr_parts[k].mbr_type;
|
||||
table[i].end_chs[0] = 0xfe;
|
||||
table[i].end_chs[1] = 0xff;
|
||||
table[i].end_chs[2] = 0xff;
|
||||
|
||||
lba = new_mbr_parts[k].start_lba;
|
||||
if (lba > 0xffffffffULL) {
|
||||
Print(L"Warning: Partition %d starts beyond 2 TiB limit\n", i+1);
|
||||
lba = 0xffffffffULL;
|
||||
}
|
||||
table[i].start_lba = (UINT32)lba;
|
||||
|
||||
lba = new_mbr_parts[k].end_lba + 1 - new_mbr_parts[k].start_lba;
|
||||
if (lba > 0xffffffffULL) {
|
||||
Print(L"Warning: Partition %d extends beyond 2 TiB limit\n", i+1);
|
||||
lba = 0xffffffffULL;
|
||||
}
|
||||
table[i].size = (UINT32)lba;
|
||||
}
|
||||
}
|
||||
|
||||
// add boot code if necessary
|
||||
have_bootcode = FALSE;
|
||||
for (i = 0; i < MBR_BOOTCODE_SIZE; i++) {
|
||||
if (sector[i] != 0) {
|
||||
have_bootcode = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!have_bootcode) {
|
||||
// no boot code found in the MBR, add the syslinux MBR code
|
||||
SetMem(sector, 0, MBR_BOOTCODE_SIZE);
|
||||
CopyMem(sector, syslinux_mbr, SYSLINUX_MBR_SIZE);
|
||||
}
|
||||
|
||||
// write MBR data
|
||||
status = write_sector(0, sector);
|
||||
if (status != 0)
|
||||
return status;
|
||||
|
||||
Print(L"MBR updated successfully!\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//
|
||||
// GPT functions
|
||||
//
|
||||
|
||||
static UINTN check_gpt(VOID)
|
||||
{
|
||||
UINTN i, k;
|
||||
BOOLEAN found_data_parts;
|
||||
|
||||
if (gpt_part_count == 0) {
|
||||
Print(L"Status: No GPT partition table, no need to sync.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
// check each entry
|
||||
found_data_parts = FALSE;
|
||||
for (i = 0; i < gpt_part_count; i++) {
|
||||
// check sanity
|
||||
if (gpt_parts[i].end_lba < gpt_parts[i].start_lba) {
|
||||
Print(L"Status: GPT partition table is invalid.\n");
|
||||
return 1;
|
||||
}
|
||||
// check for overlap
|
||||
for (k = 0; k < gpt_part_count; k++) {
|
||||
if (k != i && !(gpt_parts[i].start_lba > gpt_parts[k].end_lba || gpt_parts[k].start_lba > gpt_parts[i].end_lba)) {
|
||||
Print(L"Status: GPT partition table is invalid, partitions overlap.\n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
// check for partitions kind
|
||||
if (gpt_parts[i].gpt_parttype->kind == GPT_KIND_FATAL) {
|
||||
Print(L"Status: GPT partition of type '%s' found, will not touch this disk.\n",
|
||||
gpt_parts[i].gpt_parttype->name);
|
||||
return 1;
|
||||
}
|
||||
if (gpt_parts[i].gpt_parttype->kind == GPT_KIND_DATA ||
|
||||
gpt_parts[i].gpt_parttype->kind == GPT_KIND_BASIC_DATA)
|
||||
found_data_parts = TRUE;
|
||||
}
|
||||
|
||||
if (!found_data_parts) {
|
||||
Print(L"Status: GPT partition table has no data partitions, no need to sync.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//
|
||||
// compare GPT and MBR tables
|
||||
//
|
||||
|
||||
#define ACTION_NONE (0)
|
||||
#define ACTION_NOP (1)
|
||||
#define ACTION_REWRITE (2)
|
||||
|
||||
static UINTN analyze(VOID)
|
||||
{
|
||||
UINTN action;
|
||||
UINTN i, k, iter, count_active, detected_parttype;
|
||||
CHARN *fsname;
|
||||
UINT64 min_start_lba;
|
||||
UINTN status;
|
||||
BOOLEAN have_esp;
|
||||
|
||||
new_mbr_part_count = 0;
|
||||
|
||||
// determine correct MBR types for GPT partitions
|
||||
if (gpt_part_count == 0) {
|
||||
Print(L"Status: No GPT partitions defined, nothing to sync.\n");
|
||||
return 0;
|
||||
}
|
||||
have_esp = FALSE;
|
||||
for (i = 0; i < gpt_part_count; i++) {
|
||||
gpt_parts[i].mbr_type = gpt_parts[i].gpt_parttype->mbr_type;
|
||||
if (gpt_parts[i].gpt_parttype->kind == GPT_KIND_BASIC_DATA) {
|
||||
// Basic Data: need to look at data in the partition
|
||||
status = detect_mbrtype_fs(gpt_parts[i].start_lba, &detected_parttype, &fsname);
|
||||
if (detected_parttype)
|
||||
gpt_parts[i].mbr_type = detected_parttype;
|
||||
else
|
||||
gpt_parts[i].mbr_type = 0x0b; // fallback: FAT32
|
||||
} else if (gpt_parts[i].mbr_type == 0xef) {
|
||||
// EFI System Partition: GNU parted can put this on any partition,
|
||||
// need to detect file systems
|
||||
status = detect_mbrtype_fs(gpt_parts[i].start_lba, &detected_parttype, &fsname);
|
||||
if (!have_esp && (detected_parttype == 0x01 || detected_parttype == 0x0e || detected_parttype == 0x0c))
|
||||
; // seems to be a legitimate ESP, don't change
|
||||
else if (detected_parttype)
|
||||
gpt_parts[i].mbr_type = detected_parttype;
|
||||
else if (have_esp) // make sure there's no more than one ESP per disk
|
||||
gpt_parts[i].mbr_type = 0x83; // fallback: Linux
|
||||
}
|
||||
// NOTE: mbr_type may still be 0 if content detection fails for exotic GPT types or file systems
|
||||
|
||||
if (gpt_parts[i].mbr_type == 0xef)
|
||||
have_esp = TRUE;
|
||||
}
|
||||
|
||||
// check for common scenarios
|
||||
action = ACTION_NONE;
|
||||
if (mbr_part_count == 0) {
|
||||
// current MBR is empty
|
||||
action = ACTION_REWRITE;
|
||||
} else if (mbr_part_count == 1 && mbr_parts[0].mbr_type == 0xee) {
|
||||
// MBR has just the EFI Protective partition (i.e. untouched)
|
||||
action = ACTION_REWRITE;
|
||||
}
|
||||
if (action == ACTION_NONE && mbr_part_count > 0) {
|
||||
if (mbr_parts[0].mbr_type == 0xee &&
|
||||
gpt_parts[0].mbr_type == 0xef &&
|
||||
mbr_parts[0].start_lba == 1 &&
|
||||
mbr_parts[0].end_lba == gpt_parts[0].end_lba) {
|
||||
// The Apple Way, "EFI Protective" covering the tables and the ESP
|
||||
action = ACTION_NOP;
|
||||
if ((mbr_part_count != gpt_part_count && gpt_part_count <= 4) ||
|
||||
(mbr_part_count != 4 && gpt_part_count > 4)) {
|
||||
// number of partitions has changed
|
||||
action = ACTION_REWRITE;
|
||||
} else {
|
||||
// check partition ranges and types
|
||||
for (i = 1; i < mbr_part_count; i++) {
|
||||
if (mbr_parts[i].start_lba != gpt_parts[i].start_lba ||
|
||||
mbr_parts[i].end_lba != gpt_parts[i].end_lba ||
|
||||
(gpt_parts[i].mbr_type && mbr_parts[i].mbr_type != gpt_parts[i].mbr_type))
|
||||
// position or type has changed
|
||||
action = ACTION_REWRITE;
|
||||
}
|
||||
}
|
||||
// check number of active partitions
|
||||
count_active = 0;
|
||||
for (i = 0; i < mbr_part_count; i++)
|
||||
if (mbr_parts[i].active)
|
||||
count_active++;
|
||||
if (count_active!= 1)
|
||||
action = ACTION_REWRITE;
|
||||
}
|
||||
}
|
||||
if (action == ACTION_NONE && mbr_part_count > 0 && mbr_parts[0].mbr_type == 0xef) {
|
||||
// The XOM Way, all partitions mirrored 1:1
|
||||
action = ACTION_REWRITE;
|
||||
// check partition ranges and types
|
||||
for (i = 0; i < mbr_part_count; i++) {
|
||||
if (mbr_parts[i].start_lba != gpt_parts[i].start_lba ||
|
||||
mbr_parts[i].end_lba != gpt_parts[i].end_lba ||
|
||||
(gpt_parts[i].mbr_type && mbr_parts[i].mbr_type != gpt_parts[i].mbr_type))
|
||||
// position or type has changed -> better don't touch
|
||||
action = ACTION_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
if (action == ACTION_NOP) {
|
||||
Print(L"Status: Tables are synchronized, no need to sync.\n");
|
||||
return 0;
|
||||
} else if (action == ACTION_REWRITE) {
|
||||
Print(L"Status: MBR table must be updated.\n");
|
||||
} else {
|
||||
Print(L"Status: Analysis inconclusive, will not touch this disk.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
// generate the new table
|
||||
|
||||
// first entry: EFI Protective
|
||||
new_mbr_parts[0].index = 0;
|
||||
new_mbr_parts[0].start_lba = 1;
|
||||
new_mbr_parts[0].mbr_type = 0xee;
|
||||
new_mbr_part_count = 1;
|
||||
|
||||
if (gpt_parts[0].mbr_type == 0xef) {
|
||||
new_mbr_parts[0].end_lba = gpt_parts[0].end_lba;
|
||||
i = 1;
|
||||
} else {
|
||||
min_start_lba = gpt_parts[0].start_lba;
|
||||
for (k = 0; k < gpt_part_count; k++) {
|
||||
if (min_start_lba > gpt_parts[k].start_lba)
|
||||
min_start_lba = gpt_parts[k].start_lba;
|
||||
}
|
||||
new_mbr_parts[0].end_lba = min_start_lba - 1;
|
||||
i = 0;
|
||||
}
|
||||
|
||||
// add other GPT partitions until the table is full
|
||||
// TODO: in the future, prioritize partitions by kind
|
||||
for (; i < gpt_part_count && new_mbr_part_count < 4; i++) {
|
||||
new_mbr_parts[new_mbr_part_count].index = new_mbr_part_count;
|
||||
new_mbr_parts[new_mbr_part_count].start_lba = gpt_parts[i].start_lba;
|
||||
new_mbr_parts[new_mbr_part_count].end_lba = gpt_parts[i].end_lba;
|
||||
new_mbr_parts[new_mbr_part_count].mbr_type = gpt_parts[i].mbr_type;
|
||||
new_mbr_parts[new_mbr_part_count].active = FALSE;
|
||||
|
||||
// find matching partition in the old MBR table
|
||||
for (k = 0; k < mbr_part_count; k++) {
|
||||
if (mbr_parts[k].start_lba == gpt_parts[i].start_lba) {
|
||||
// keep type if not detected
|
||||
if (new_mbr_parts[new_mbr_part_count].mbr_type == 0)
|
||||
new_mbr_parts[new_mbr_part_count].mbr_type = mbr_parts[k].mbr_type;
|
||||
// keep active flag
|
||||
new_mbr_parts[new_mbr_part_count].active = mbr_parts[k].active;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (new_mbr_parts[new_mbr_part_count].mbr_type == 0)
|
||||
// final fallback: set to a (hopefully) unused type
|
||||
new_mbr_parts[new_mbr_part_count].mbr_type = 0xc0;
|
||||
|
||||
new_mbr_part_count++;
|
||||
}
|
||||
|
||||
// make sure there's exactly one active partition
|
||||
for (iter = 0; iter < 3; iter++) {
|
||||
// check
|
||||
count_active = 0;
|
||||
for (i = 0; i < new_mbr_part_count; i++)
|
||||
if (new_mbr_parts[i].active)
|
||||
count_active++;
|
||||
if (count_active == 1)
|
||||
break;
|
||||
|
||||
// set active on the first matching partition
|
||||
if (count_active == 0) {
|
||||
for (i = 0; i < new_mbr_part_count; i++) {
|
||||
if ((iter >= 0 && (new_mbr_parts[i].mbr_type == 0x07 || // NTFS
|
||||
new_mbr_parts[i].mbr_type == 0x0b || // FAT32
|
||||
new_mbr_parts[i].mbr_type == 0x0c)) || // FAT32 (LBA)
|
||||
(iter >= 1 && (new_mbr_parts[i].mbr_type == 0x83)) || // Linux
|
||||
(iter >= 2 && i > 0)) {
|
||||
new_mbr_parts[i].active = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (count_active > 1 && iter == 0) {
|
||||
// too many active partitions, try deactivating the ESP / EFI Protective entry
|
||||
if ((new_mbr_parts[0].mbr_type == 0xee || new_mbr_parts[0].mbr_type == 0xef) &&
|
||||
new_mbr_parts[0].active) {
|
||||
new_mbr_parts[0].active = FALSE;
|
||||
}
|
||||
} else if (count_active > 1 && iter > 0) {
|
||||
// too many active partitions, deactivate all but the first one
|
||||
count_active = 0;
|
||||
for (i = 0; i < new_mbr_part_count; i++)
|
||||
if (new_mbr_parts[i].active) {
|
||||
if (count_active > 0)
|
||||
new_mbr_parts[i].active = FALSE;
|
||||
count_active++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// dump table
|
||||
Print(L"\nProposed new MBR partition table:\n");
|
||||
Print(L" # A Start LBA End LBA Type\n");
|
||||
for (i = 0; i < new_mbr_part_count; i++) {
|
||||
Print(L" %d %s %12lld %12lld %02x %s\n",
|
||||
new_mbr_parts[i].index + 1,
|
||||
new_mbr_parts[i].active ? STR("*") : STR(" "),
|
||||
new_mbr_parts[i].start_lba,
|
||||
new_mbr_parts[i].end_lba,
|
||||
new_mbr_parts[i].mbr_type,
|
||||
mbr_parttype_name(new_mbr_parts[i].mbr_type));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//
|
||||
// sync algorithm entry point
|
||||
//
|
||||
|
||||
UINTN gptsync(VOID)
|
||||
{
|
||||
UINTN status = 0;
|
||||
UINTN status_gpt, status_mbr;
|
||||
// BOOLEAN proceed = FALSE;
|
||||
|
||||
// get full information from disk
|
||||
status_gpt = read_gpt();
|
||||
status_mbr = read_mbr();
|
||||
if (status_gpt != 0 || status_mbr != 0)
|
||||
return (status_gpt || status_mbr);
|
||||
|
||||
// cross-check current situation
|
||||
Print(L"\n");
|
||||
status = check_gpt(); // check GPT for consistency
|
||||
if (status != 0)
|
||||
return status;
|
||||
status = check_mbr(); // check MBR for consistency
|
||||
if (status != 0)
|
||||
return status;
|
||||
status = analyze(); // analyze the situation & compose new MBR table
|
||||
if (status != 0)
|
||||
return status;
|
||||
if (new_mbr_part_count == 0)
|
||||
return status;
|
||||
|
||||
// offer user the choice what to do
|
||||
// status = input_boolean(STR("\nMay I update the MBR as printed above? [y/N] "), &proceed);
|
||||
// if (status != 0 || proceed != TRUE)
|
||||
// return status;
|
||||
|
||||
// adjust the MBR and write it back
|
||||
status = write_mbr();
|
||||
if (status != 0)
|
||||
return status;
|
||||
|
||||
return status;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user