Merge branch 'master' of git.qubes-os.org:/var/lib/qubes/git/marmarek/installer

This commit is contained in:
Joanna Rutkowska 2012-07-16 19:39:08 +02:00
commit 9f86c6309c
13 changed files with 110 additions and 14 deletions

View File

@ -24,6 +24,7 @@ RPMBUILD_DEFINES := --define "_rpmdir rpm/" --define "_sourcedir $(TOP)/rpm/SOUR
spec_version = $(shell sed -n '/^Version:/s/.*:[ \t]\+//p' $(1))
package = $(shell \
mkdir -p rpm/SOURCES; \
cd rpm/SOURCES; \
rm -f $(1)-$(2)*; \
ln -s ../../$(1) $(1)-$(2); \
@ -98,7 +99,8 @@ iso:
cp rpm_verify /usr/local/bin/
ln -sf `pwd` /tmp/qubes-installer
revisor --cli --config=conf/qubes-install.conf --model=qubes-x86_64 --install-dvd
rpm_verify build/work/revisor-install/R1-*/qubes-x86_64/x86_64/os/Packages/*.rpm
isohybrid build/ISO/qubes-x86_64/iso/*.iso
rpm_verify build/work/revisor-install/R?-*/qubes-x86_64/x86_64/os/Packages/*.rpm
clean:
rm -fr rpm/SOURCES/*.bz2

View File

@ -1113,10 +1113,13 @@ if __name__ == "__main__":
doStartupX11Actions(opts.runres)
xserver_pid = proc.pid
except (OSError, RuntimeError):
stdoutLog.warning(" X startup failed, falling back to text mode")
anaconda.displayMode = 't'
graphical_failed = 1
stdoutLog.warning(" X startup failed, aborting installation")
time.sleep(2)
sys.exit(1)
#stdoutLog.warning(" X startup failed, falling back to text mode")
#anaconda.displayMode = 't'
#graphical_failed = 1
#time.sleep(2)
finally:
signal.signal(signal.SIGUSR1, old_sigusr1)
signal.signal(signal.SIGCHLD, old_sigchld)

View File

@ -4,7 +4,7 @@
Summary: Graphical system installer
Name: anaconda
Version: 13.42
Release: 2%{?dist}
Release: 4%{?dist}
Epoch: 1000
License: GPLv2+
Group: Applications/System

View File

@ -188,7 +188,7 @@ class AnacondaBackend:
return 1
isys.lochangefd("/dev/loop0", self._loopbackFile)
if os.path.ismount("/mnt/stage2"):
if os.path.ismount("/mnt/stage2") and not anaconda.methodstr.find("/mnt/stage2") >= 0:
isys.umount("/mnt/stage2")
def removeInstallImage(self):

View File

@ -1232,9 +1232,75 @@ static char *doLoaderMain(struct loaderData_s *loaderData,
* That will also then bypass any method selection UI in loader.
*/
if (!FL_ASKMETHOD(flags)) {
url = findAnacondaCD("/mnt/stage2");
int stage2ok = 0;
// marmarek hack for USB install
if (loaderData->method == METHOD_HD) {
char *location = "/mnt/stage2";
char *device = ((struct hdInstallData *)loaderData->stage2Data)->partition;
char *stage2loc = "/mnt/stage2/images/install.img";
char *stage2img;
int stage2inram;
if (!(rc=doPwMount(device, location, "auto", "ro", NULL))) {
if (!access(stage2loc, R_OK)) {
char *updpath;
//TODO? queryCDMediaCheck(device, location);
/* if in rescue mode lets copy stage 2 into RAM so we can */
/* free up the CD drive and user can have it avaiable to */
/* aid system recovery. */
if (FL_RESCUE(flags) && !FL_TEXT(flags) &&
totalMemory() > MIN_GUI_RAM ) {
rc = copyFile(stage2loc, "/tmp/install.img");
stage2img = strdup("/tmp/install.img");
stage2inram = 1;
} else {
stage2img = strdup(stage2loc);
stage2inram = 0;
}
rc = mountStage2(stage2img);
free(stage2img);
if (!rc) {
checked_asprintf(&updpath, "%s/images/updates.img", location);
logMessage(INFO, "Looking for updates in %s", updpath);
copyUpdatesImg(updpath);
free(updpath);
checked_asprintf(&updpath, "%s/images/product.img", location);
logMessage(INFO, "Looking for product in %s", updpath);
copyProductImg(updpath);
free(updpath);
/* if in rescue mode and we copied stage2 to RAM */
/* we can now unmount the CD */
if (FL_RESCUE(flags) && stage2inram) {
umount(location);
}
stage2ok = 1;
checked_asprintf(&url, "file://%s", location);
} else {
logMessage(INFO, "mounting stage2 failed");
umount(location);
}
} else {
/* this wasnt the CD we were looking for, clean up and */
/* try the next CD drive */
umount(location);
}
} else {
logMessage(WARNING, "Mount failed for %s at %s", device, location);
}
}
if (!url)
url = findAnacondaCD("/mnt/stage2");
if (url) {
setStage2LocFromCmdline(url, loaderData);
if (!stage2ok)
setStage2LocFromCmdline(url, loaderData);
skipMethodDialog = 1;
logMessage(INFO, "Detected stage 2 image on CD (url: %s)", url);

View File

@ -18,7 +18,7 @@
#
SYSLINUX=$IMGPATH/usr/share/syslinux/syslinux-nomtools
CDLABEL=$PRODUCT
CDLABEL="$PRODUCT $VERSION x86_64 DVD"
if [ ! -f $SYSLINUX ]; then
echo "Warning: nomtools syslinux doesn't exist"
@ -100,7 +100,7 @@ makeBootImages() {
# insert XEN boot options
sed -i 's/kernel vmlinuz/kernel mboot.c32/' $MBD_BOOTTREE/isolinux.cfg
sed -i "s/append initrd=[^ ]*\(.*\)/append $xenimage --- $kernelimage stage2=hd:LABEL=\"$CDLABEL\"\1 --- $initrd/" $MBD_BOOTTREE/isolinux.cfg
sed -i "s/append initrd=[^ ]*\(.*\)/append $xenimage --- $kernelimage stage2=hd:LABEL=\"$CDLABEL\":\/images\/install.img repo=file:\/mnt\/stage2\1 --- $initrd/" $MBD_BOOTTREE/isolinux.cfg
# copy in memtest if present
if [ -f $IMGPATH/usr/lib/anaconda-runtime/boot/memtest* ]; then

View File

@ -366,6 +366,8 @@ etc/hosts
etc/im_palette.pal
etc/imrc
etc/iscsid.conf
etc/ld.so.conf
etc/ld.so.conf.d/*
etc/man.config
etc/mke2fs.conf
etc/netconfig
@ -390,6 +392,7 @@ etc/shells
etc/sysconfig/network-scripts/network-functions*
etc/udev
etc/wpa_supplicant/wpa_supplicant.conf
etc/X11/fontpath.d
etc/yum.repos.d/*
etc/yum/pluginconf.d/blacklist.conf
etc/yum/pluginconf.d/fedorakmod.conf
@ -629,11 +632,13 @@ usr/share/fonts/*/lklug.ttf
usr/share/fonts/lohit*/*
usr/share/fonts/*/lklug.ttf
usr/share/fonts/cjkuni*/uming*.ttc
usr/share/fonts/default
usr/share/fonts/dejavu/DejaVuSans-Bold.ttf
usr/share/fonts/dejavu/DejaVuSans.ttf
usr/share/fonts/dejavu/DejaVuSansMono.ttf
usr/share/fonts/kacst/KacstFarsi.ttf
usr/share/fonts/kacst/KacstQura.ttf
usr/share/fonts/liberation
usr/share/fonts/madan/Madan.ttf
usr/share/fonts/un-core/UnDotum.ttf
usr/share/fonts/*/VL-Gothic-Regular.ttf

View File

@ -492,6 +492,10 @@ class AnacondaYum(YumSorter):
self._switchCD(1)
self.mediagrabber = self.mediaHandler
self._baseRepoURL = "file://%s" % self.tree
elif m.startswith("file:"):
self.tree = m[5:]
self._baseRepoURL = "file://%s" % self.tree
else:
# No methodstr was given. In order to find an installation source,
# we should first check to see if there's a CD/DVD with packages

View File

@ -83,7 +83,7 @@
<packagereq type="mandatory">kdeaccessibility</packagereq>
<packagereq type="mandatory">kdm</packagereq>
<packagereq type="mandatory">mesa-libEGL</packagereq>
<packagereq type="mandatory">oxygen-icons-theme</packagereq>
<packagereq type="mandatory">oxygen-icon-theme</packagereq>
<packagereq type="mandatory">qubes-kde-dom0</packagereq>
<packagereq type="mandatory">redhat-menus</packagereq>
<packagereq type="mandatory">xsettings-kde</packagereq>

View File

@ -38,7 +38,7 @@ revisor_comps = 1
comps = /tmp/qubes-installer/conf/comps-qubes.xml
destination_directory = /tmp/qubes-installer/build/ISO
working_directory = /tmp/qubes-installer/build/work
working_directory = /tmp/qubes-installer/build/work/
## Models

View File

@ -75,7 +75,9 @@ EOF
# On Mar 31, 2012, the Qubes signing key has changed
# The new key is brought by this RPM, but we also
# need to explicitly import it to RPM DB
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-1-primary
if [ $1 -gt 1 ]; then
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-1-primary
fi
%clean

View File

@ -0,0 +1,12 @@
diff -ru revisor-2.2.orig/revisor/pungi.py revisor-2.2/revisor/pungi.py
--- revisor-2.2.orig/revisor/pungi.py 2010-06-04 15:36:04.000000000 +0200
+++ revisor-2.2/revisor/pungi.py 2012-04-28 02:32:04.675002111 +0200
@@ -584,7 +584,7 @@
if mt["discs"] > 1:
volume = "%s%d" % (volume, disc)
- extraargs.extend(['"%s"' % volume])
+ extraargs.extend(['%s' % volume])
extraargs.extend(['-o', isofile])
if not self.cfg.include_bootiso:

View File

@ -19,7 +19,7 @@
Summary: Fedora "Spin" Graphical User Interface
Name: revisor
Version: 2.2
Release: 4%{?dist}
Release: 5%{?dist}
License: GPLv2
Group: Applications/System
URL: http://fedorahosted.org/revisor
@ -132,6 +132,7 @@ Provides: revisor-wui = %{version}-%{release}
Source100: F13-buildinstall
Patch100: revisor-2.2-comps.patch
Patch101: revisor-2.2-release.patch
Patch102: revisor-2.2-volume-label.patch
%description cli
Revisor provides a set of graphical tools for building customized, updated
@ -354,6 +355,7 @@ This is the Revisor Web User Interface package
%setup -q
%patch100 -p1
%patch101 -p1
%patch102 -p1
%build
%configure