Initial import of anaconda-13.42 source
This commit is contained in:
commit
4cecd1324a
56
70-anaconda.rules
Normal file
56
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
COPYING
Normal file
339
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
Makefile.am
Normal file
159
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
Makefile.in
Normal file
1305
Makefile.in
Normal file
File diff suppressed because it is too large
Load Diff
9366
aclocal.m4
vendored
Normal file
9366
aclocal.m4
vendored
Normal file
File diff suppressed because it is too large
Load Diff
5069
anaconda.spec
Normal file
5069
anaconda.spec
Normal file
File diff suppressed because it is too large
Load Diff
5069
anaconda.spec.in
Normal file
5069
anaconda.spec.in
Normal file
File diff suppressed because it is too large
Load Diff
167
anaconda_log.py
Normal file
167
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
backend.py
Normal file
314
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
backend_log.py
Normal file
88
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
baseudev.py
Normal file
92
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
bootdisk/Makefile.am
Normal file
22
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
bootdisk/Makefile.in
Normal file
654
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
bootdisk/i386/Makefile.am
Normal file
25
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
bootdisk/i386/Makefile.in
Normal file
503
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
bootdisk/i386/boot.msg
Normal file
5
bootdisk/i386/boot.msg
Normal file
@ -0,0 +1,5 @@
|
||||
|
||||
splash.lss
|
||||
|
||||
- Press the 01<ENTER>07 key to begin the installation process.
|
||||
|
8
bootdisk/i386/grub.conf
Normal file
8
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
bootdisk/i386/syslinux.cfg
Normal file
33
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
bootdisk/ppc/Makefile.am
Normal file
26
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
bootdisk/ppc/Makefile.in
Normal file
506
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
bootdisk/ppc/bootinfo.txt
Normal file
169
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
bootdisk/ppc/magic
Normal file
81
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
bootdisk/ppc/mapping
Normal file
27
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
bootdisk/ppc/ofboot.b
Normal file
74
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
bootdisk/ppc/yaboot.conf.3264
Normal file
14
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
bootdisk/ppc/yaboot.conf.in
Normal file
8
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
bootdisk/s390x/Makefile.am
Normal file
25
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
bootdisk/s390x/Makefile.in
Normal file
503
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
bootdisk/s390x/generic.ins
Normal file
5
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
bootdisk/s390x/generic.prm
Normal file
1
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
bootdisk/s390x/redhat.exec
Normal file
9
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
bootdisk/x86_64/Makefile.am
Normal file
25
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
bootdisk/x86_64/Makefile.in
Normal file
503
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
bootdisk/x86_64/boot.msg
Normal file
5
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
bootdisk/x86_64/grub.conf
Normal file
8
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
bootdisk/x86_64/syslinux.cfg
Normal file
33
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
bootloader.py
Normal file
241
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
booty/Makefile.am
Normal file
23
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
booty/Makefile.in
Normal file
519
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
booty/__init__.py
Normal file
52
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
booty/alpha.py
Normal file
150
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
booty/bootloaderInfo.py
Normal file
699
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
booty/checkbootloader.py
Normal file
207
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
booty/ia64.py
Normal file
38
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
booty/lilo.py
Normal file
308
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
booty/ppc.py
Normal file
180
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
booty/s390.py
Normal file
178
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
booty/sparc.py
Normal file
128
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
booty/util.py
Normal file
33
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)
|
||||
|
544
booty/x86.py
Normal file
544
booty/x86.py
Normal file
@ -0,0 +1,544 @@
|
||||
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))
|
||||
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
cmdline.py
Normal file
221
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
command-stubs/Makefile.am
Normal file
23
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
command-stubs/Makefile.in
Normal file
517
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
command-stubs/list-harddrives-stub
Executable file
39
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
command-stubs/loadkeys-stub
Executable file
47
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
command-stubs/losetup-stub
Executable file
56
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
command-stubs/mknod-stub
Executable file
58
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
command-stubs/raidstart-stub
Executable file
57
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
command-stubs/raidstop-stub
Executable file
44
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
compssort.py
Normal file
69
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
config.guess
vendored
Executable file
1501
config.guess
vendored
Executable file
File diff suppressed because it is too large
Load Diff
390
config.h.in
Normal file
390
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
config.rpath
Normal file
666
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
config.sub
vendored
Executable file
1705
config.sub
vendored
Executable file
File diff suppressed because it is too large
Load Diff
279
configure.ac
Normal file
279
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
constants.py
Normal file
89
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
depcomp
Executable file
630
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
desktop.py
Normal file
71
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
dispatch.py
Normal file
251
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
docs/Makefile.am
Normal file
29
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
docs/Makefile.in
Normal file
460
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
docs/anaconda-release-notes.txt
Normal file
199
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
docs/api.cfg
Normal file
1237
docs/api.cfg
Normal file
File diff suppressed because it is too large
Load Diff
9
docs/command-line.txt
Normal file
9
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
docs/gettext.txt
Normal file
56
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
docs/install-methods.txt
Normal file
137
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
docs/lvm_sanity_checks.txt
Normal file
13
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
docs/making-screenshots
Normal file
15
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
docs/mediacheck.txt
Normal file
25
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
docs/rescue-mode
Normal file
16
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
docs/threads.txt
Normal file
106
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
errors.py
Normal file
159
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
exception.py
Normal file
133
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
firewall.py
Normal file
93
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
flags.py
Normal file
113
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
fonts/Makefile.am
Normal file
39
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
fonts/Makefile.in
Normal file
516
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
fonts/screenfont-alpha.gz
Normal file
BIN
fonts/screenfont-alpha.gz
Normal file
Binary file not shown.
BIN
fonts/screenfont-i386.gz
Normal file
BIN
fonts/screenfont-i386.gz
Normal file
Binary file not shown.
BIN
fonts/screenfont-ia64.gz
Normal file
BIN
fonts/screenfont-ia64.gz
Normal file
Binary file not shown.
BIN
fonts/screenfont-ppc.gz
Normal file
BIN
fonts/screenfont-ppc.gz
Normal file
Binary file not shown.
BIN
fonts/screenfont-sparc.gz
Normal file
BIN
fonts/screenfont-sparc.gz
Normal file
Binary file not shown.
BIN
fonts/screenfont-x86_64.gz
Normal file
BIN
fonts/screenfont-x86_64.gz
Normal file
Binary file not shown.
11
fonts/updfonts
Executable file
11
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
gptsync/Makefile.am
Normal file
35
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
gptsync/Makefile.in
Normal file
751
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
gptsync/README
Normal file
41
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
gptsync/gptsync.c
Normal file
470
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