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