summaryrefslogtreecommitdiffstats
path: root/move/Makefile
blob: 7571c6e8309cfa40519a5c11232a33c5d621f705 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
DEST = /tmp
DEST_LIVETREE = $(DEST)/live_tree
DEST_STAGE2 = $(DEST_LIVETREE)/usr/lib/stage2

ISO = /tmp/mdkmove.iso

DATA_FILES = devices symlinks directories-to-create etcfiles all-etcfiles keyfiles \
             BOOT-800-MOVE.jpg BOOT-1024-MOVE.jpg BOOT-1280-MOVE.jpg BOOT-1600-MOVE.jpg

PROGRAM_FILES = etc-monitorer.pl tree/startkde_move tree/wait4x tree/netscape tree/alsa_default.pl
LANG_FILES = $(shell perl -ne 'print $$1 if /ALLOWED_LANGS = qw\((.*)\)/' move.pm)

STAGE1 = ../mdk-stage1
INSTALL = ../perl-install

INSTALL_FILES = install2.pm install_steps.pm install_any.pm install_interactive.pm install_steps_gtk.pm install_steps_interactive.pm install_messages.pm install_gtk.pm

ARCH := $(shell arch | egrep "(x86_64|sparc64|s390x)")
ifneq ("x$(ARCH)", "x")
LIB_NAME = lib64
else
LIB_NAME = lib
endif

.PHONY: iso 

default: install

get_dest_livetree:
	@echo -n $(DEST_LIVETREE)

iso: build install live_tree_boot big_clps only_iso


build: stage1 xwait runlevel_set
	$(MAKE) -C ../perl-install mo_files

data/isolinux-graphic.bmp.parameters: data/isolinux-graphic.bmp
	perl -I $(INSTALL) $(INSTALL)/standalone/draksplash2 --kernel isolinux/vmlinuz --initrd isolinux/all.rdz $<

data/i18n_en.list:
	cd data ; ./make_i18n_list $(DEST_LIVETREE)

install: un_live_tree_boot data/i18n_en.list
	sudo ./collect-directories-to-create.pl $(DEST_LIVETREE) > data/directories-to-create
	sudo find $(DEST_LIVETREE)/etc -type f | perl -pe 's|$(DEST_LIVETREE)||' > data/all-etcfiles

	sudo cp -f $(STAGE1)/init-move $(DEST_LIVETREE)/sbin/init

	$(MAKE) -C ../perl-install/share/po install NAME=libDrakX DATADIR=$(DEST_LIVETREE)/usr/share

	sudo cp -f xwait $(DEST_LIVETREE)/usr/bin
	sudo cp -f runlevel_set $(DEST_LIVETREE)/usr/bin
	sudo cp -f runstage2 $(DEST_LIVETREE)/usr/bin/runstage2.pl
	sudo rm -rf $(DEST_STAGE2)
	sudo mkdir -p $(DEST_STAGE2)
	sudo sh -c 'echo 1 > $(DEST_STAGE2)/help.pm'
	sudo cp -f *.pm $(DEST_STAGE2)
	sudo cp -f $(addprefix $(INSTALL)/, $(INSTALL_FILES)) $(DEST_STAGE2)
	sudo cp -f $(PROGRAM_FILES) $(DEST_LIVETREE)/usr/bin
	sudo rm -f $(DEST_LIVETREE)/usr/bin/{halt,reboot}  #- symlinks to consolehelper
	sudo cp -f tree/{halt,reboot} $(DEST_LIVETREE)/usr/bin
	sudo cp -f tree/X_move $(DEST_LIVETREE)/usr/X11R6/bin
	sudo cp -f tree/sound.initscript $(DEST_LIVETREE)/etc/init.d/sound

	sudo rm -rf $(DEST_LIVETREE)/usr/share/langs
	sudo mkdir -p $(DEST_LIVETREE)/usr/share/langs
	sudo cp -f $(INSTALL)/pixmaps/langs/lang-*.png $(DEST_LIVETREE)/usr/share/langs

	 #- overwrite /usr/lib/libDrakX files of the live tree with those in CVS
	(cd $(DEST_LIVETREE)/usr/lib/libDrakX ; find -name "*.pm") | egrep -v 'ctxhelp|drakfirsttime' | (cd $(INSTALL) ; sudo cpio -pLumd $(DEST_LIVETREE)/usr/lib/libDrakX/)

	 #- overwrite stuff.so of drakxtools because it doesn't contain C_DRAKX stuff
	sudo cp -f ../perl-install/c/blib/arch/auto/stuff/stuff.so $(DEST_LIVETREE)/usr/lib/libDrakX/auto/c/stuff

	 #- overwrite MDK-Common
#	sudo cp -f ../../soft/perl-MDK-Common/MDK/Common/*.pm $(DEST_LIVETREE)/usr/$(LIB_NAME)/perl5/vendor_perl/*/MDK/Common

	 #- duplicated :(
	sudo perl -pi -e 's/#[-+].*//; $$_ = "\n" if (/^=(head|begin)/ .. /^=cut/) || /use (diagnostics|vars|strict)/' $(DEST_STAGE2)/*.pm `find $(DEST_LIVETREE)/usr/lib/libDrakX -name "*.pm"`

	sudo mkdir -p $(DEST_LIVETREE)/move
	sudo cp -f $(addprefix data/, $(DATA_FILES)) $(DEST_LIVETREE)/move

	sudo install -m 440 tree/sudoers $(DEST_LIVETREE)/etc
	sudo install -m 644 tree/mdk_move_boot_loop.desktop $(DEST_LIVETREE)/usr/share/autostart
	sudo install tree/{mdk_move_loop,mdk_totem,mdk_behind_totem} $(DEST_LIVETREE)/usr/bin
	sudo install -m 644 -D tree/mdk_totem.desktop $(DEST_LIVETREE)/usr/share/apps/kdesktop/DesktopLinks/mdk_totem.desktop
	sudo install -m 644 tree/{kdedrc,konsolerc} $(DEST_LIVETREE)/usr/share/config
	sudo install -m 644 img/Mandrake.png $(DEST_LIVETREE)/usr/share/mdk/backgrounds
	sudo install -m 644 img/FE* $(DEST_LIVETREE)/usr/share/wallpapers

	grep ChangeLog $(INSTALL)/CVS/Entries > /tmp/version
	sudo cp -f /tmp/version $(DEST_LIVETREE)/usr/share/VERSION

un_live_tree_boot:
	sudo ./make_live_tree_boot -u $(DEST_LIVETREE)
	sudo tools/fix-fc-cache.pl $(DEST_LIVETREE)

live_tree_boot:
	rm -f $(DEST)/live_tree*.clp
	sudo ./make_live_tree_boot $(DEST_LIVETREE)
	sudo tools/fix-fc-cache.pl $(DEST_LIVETREE)
	$(MAKE) clps

clps:
	$(MAKE) $(DEST)/live_tree_always.clp
	$(MAKE) $(DEST)/live_tree_boot.clp
	$(MAKE) $(DEST)/live_tree_totem.clp
	-$(MAKE) $(DEST)/live_tree_nvidia.clp
	for i in en fr de it es; do $(MAKE) $(DEST)/live_tree_i18n_$$i.clp $(DEST)/live_tree_always_i18n_$$i.clp; done

big_clps:
	$(MAKE) $(DEST)/live_tree.clp


only_iso:
	rm -rf $(DEST)/iso
	mkdir $(DEST)/iso
	cp -a isolinux $(DEST)/iso
	rm -rf $(DEST)/iso/isolinux/CVS

	mv $(DEST)/*.clp $(DEST)/iso

	touch $(DEST)/iso/isolinux/boot.cat
	find $(DEST)/iso/isolinux -type f -printf '%p 100\n' > $(DEST)/iso.sort ; echo '$(DEST)/iso/live_tree_boot.clp 5' >> $(DEST)/iso.sort
#	download version: MOVE10DO
#	complete version: MOVE10IN
	mkisofs -r -J -hide-rr-moved -nobak -cache-inodes -publisher Mandrakesoft -V 'Move' -volset MOVE10IN -b isolinux/isolinux.bin -c isolinux/boot.cat -sort $(DEST)/iso.sort -no-emul-boot -boot-load-size 4 -boot-info-table -o $(ISO) $(DEST)/iso
	mv $(DEST)/iso/*.clp $(DEST)
	mkcd --addmd5 $(ISO)
#	cdrecord -v -eject dev=0,0,0 blank=fast gracetime=2 speed=99 $(ISO)
#	ftp://a:a@leia//BIG/mdkmove.iso


stage1:
	cd $(STAGE1) && ADDITIONAL_DEFS="-DMANDRAKE_MOVE" MOVE=1 make dirs init stage1-full init-move
	cd .. ; ./make_boot_img move

xwait: %: %.c
	$(CC) $(CFLAGS) $< -L/usr/X11R6/$(LIB_NAME) -lX11 -o $@

runlevel_set: %: %.c
	$(CC) $(CFLAGS) $< -o $@

clean:
	rm -f xwait

%.clp: %
	if [ -e $<.sort ]; then \
	sudo mkisofs -R -sort $<.sort $< | create_compressed_fs - 65536 $@ 2000 2>/dev/null ; \
	else \
	sudo mkisofs -R $< | create_compressed_fs - 65536 $@ 2000 2>/dev/null ; \
	fi

check_dirs:
	for i in `cat data/*.dirs`; do grep "^$$i/" data/*.list && echo "$$i"; done ||:

# perl tools/busy-files-accesses --no-link --no-dir --full-dirs 'data/always.dirs data/boot.dirs data/totem.dirs' --already-have data/always.list
an> =~ /^#\s*(.*?)^[^#]/sm; } $s =~ s/#\s*//mg; } $s =~ s/\n/ /gm; $s =~ s/\s+$//; $s; } sub ask_install_simple { my ($in) = @_; my ($l, $on_services) = services(); $in->ask_many_from_list("drakxservices", N("Choose which services should be automatically started at boot time"), { list => $l, help => sub { description($_[0]) }, values => $on_services, sort => 1, }); } sub ask_install { my ($in) = @_; my %root_services = ( N("Printing") => [ qw(cups cupslpd lpr lpd oki4daemon hpoj cups-lpd) ], N("Internet") => [ qw(httpd boa tux roxen ftp pftp tftp proftpd wu-ftpd pure-ftpdipsec proftpd-xinetd ipchains iptables ipvsadm isdn4linux ibod jabber jabber-icq adsl squid portsentry prelude nessusd junkbuster radvd cddbp ippl iptoip jail.init) ], N("File sharing") => [ qw(nfs nfslock smb nettalk netfs mcserv autofs amd venus.init auth2.init codasrv.init update.init swat) ], N("System") => [ qw(usb usbd pcmcia irda xinetd inetd kudzu harddrake apmd sound network xfs alsa functions halt kheader killall mandrake_everytime mandrake_firstime random rawdevices single keytable syslog crond medusa-init portmap acon anacron atd gpm psacct wine acpid numlock jserver sensors mosix bpowerd bpowerfail fcron powertweak.init ups syslog-ng cvs apcupsd) ], N("Remote Administration") => [ qw(sshd telnetd telnet rsh rlogin rexec webmin cfd heartbeat ldirectord iplog mon vncserver netsaint olympusd drakxtools_http) ], # N("Network Client") => [ qw(ypbind nscd arpwatch fetchmail dnrd_rc diald rsync) ], # N("Network Server") => [ qw(named bootparamd ntpd xntpd chronyd postfix sendmail # imap imaps ipop2 ipop3 pop3s routed yppasswdd ypserv ldap dhcpd dhcrelay # hylafax innd identd rstatd rusersd rwalld rwhod gated # kadmin kprop krb524 krb5kdc krb5server hldsld bayonne sockd dhsd gnu-pop3d # gdips pptpd.conf vrrpd crossfire bnetd pvmd ircd sympa finger ntalk talk) ], N("Database Server") => [ qw(mysql postgresql) ], ); my %services_root; foreach my $root (keys %root_services) { $services_root{$_} = $root foreach @{$root_services{$root}}; } my ($l, $on_services) = services(); my %services; $services{$_} = 0 foreach @{$l || []}; $services{$_} = 1 foreach @{$on_services || []}; $in->ask_browse_tree_info('drakxservices', N("Choose which services should be automatically started at boot time"), { node_state => sub { $services{$_[0]} ? 'selected' : 'unselected' }, build_tree => sub { my ($add_node, $flat) = @_; $add_node->($_, !$flat && ($services_root{$_} || N("Other"))) foreach sort keys %services; }, grep_unselected => sub { grep { !$services{$_} } @_ }, toggle_nodes => sub { my ($set_state, @nodes) = @_; my $new_state = !$services{$nodes[0]}; foreach (@nodes) { $set_state->($_, $new_state ? 'selected' : 'unselected'); $services{$_} = $new_state; } }, get_status => sub { N("Services: %d activated for %d registered", scalar(grep { $_ } values %services), scalar(values %services)); },