forked from puppylinux-woof-CE/woof-CE
-
Notifications
You must be signed in to change notification settings - Fork 0
/
basesfs
328 lines (271 loc) · 10.6 KB
/
basesfs
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
# ubuntu/debian puppy basesfs pkglist
#
# generic commands: %exit %include %makesfs %import
# special package commands: %get_pkgs_by_priority %addbase %addpkg %bblinks %remove %repo %lock %cutdown
# installer commands: %bootstrap %dpkg %dpkgchroot %depend %nodepend %reinstall %dpkg_configure
# startup default: bootstrap, nodepend
#
# extra param for commands, params can be quoted
# %include include-file
# %makesfs output.sfs [squashfs-param]
# %pkg_by_prio priority ["inclusion-egrep"] ["exclusion-egrep"]
# %bblinks [nousr]
# %remove pkgname ...
# %repo url version sections pkgdb
# %addpkg pkgname ...
# %reinstall pkgname ...
# %dpkg_configure configure flags
# %lock pkgname ...
# %cutdown [all doc gtkdoc nls cache dev]
# %import dir ...
#
# %symlink source target
# %rm file ... (-rf flag is always used)
# %mkdir dir ... (-p flag is always used)
# %touch file ...
# % %chroot command ...
#
# start with %pkgs_by_prio required. Otherwise start with libc6.
#
# essential packages
#%pkgs_by_priority "required" ".*lib.*|^tzdata|^bash|^dash|^lsb-base|^ncurses.*|^bsdutils|^kmod|^mount|^insserv|^mount|^sysvinit-utils|^procps|^makedev" "^klibc|.*plymouth.*|mountall"
#%pkgs_by_priority "required" ".*lib.*|^tzdata|^bash|^dash|^lsb-base|^ncurses.*|^bsdutils|^kmod|^mount|^insserv|^sysvinit-utils|^makedev" "^klibc|.*plymouth.*"
#%pkgs_by_priority "required"
%bootstrap
%nodepend
%dummy libc6 #Tinycore has it's own c libraries. Maybe add symbolic links.
libtinfo5
#multiarch-support #Dependency of libpcre3
libpcre3 #Dependency of libselinux1
libselinux1
debianutils
gettext-base
gettext
%dummy base-files #Tinycore probably already has these
%dummy zlib1g #Already linked to busybox
tar
liblzma5
libbz2-1.0
libattr1
libacl1
%addpkg tinycore9_base_gz
#%addpkg tinycore9_base_gz_users
%addpkg puppycore_noarch
%addpkg puppycore_users
dpkg
%dpkgchroot
dash
bash
coreutils
dialog
strace #add this for debugging purposes
#Let's reconfigure stuff before running post install scripts
%dpkg_configure --force-all -a
%addpkg puppycore_noarch
%addpkg puppycore_users
%addpkg puppycore_i386_strech
#%addpkg PKG #Uncomment this later once we add support for pkg
%add pkg-apt-wrapper
#At this point we coudl run pkg insead of dpkg but we havn't added support for this yet.
# turn on dependency
grep
libsigsegv2 #required for gawk
gawk
%dummy mawk
sed
tar
%dummy gzip
%dummy cpio
libmount1
mount
libkmod2 # debian needs this, dependency of pciutils
kmod # called in /etc/rc.d/rc.sysinit aroun d line 580
libpci3
pciutils #https://wiki.archlinux.org/index.php/NVIDIA_Optimus#No_screens_found_on_a_laptop/NVIDIA_Optimus
dmidecode
%dummy libpam0g
%dummy libpam-modules-bin
%dummy libpam-modules
libaudit1 #required for passwd
libcap-ng0 #Required for passwd
# extra packages
#screen # useful for debugging
file # for checking file types
locales # locale files
%depend
perl-base #Required for debconf
debconf #Required for openssl
openssl #Required for ca-certificates
ca-certificates #Recommended for wget
%chroot update-ca-certificates
libidn2-0 #Required for libpsl5
libunistring0 #Required for libpsl5
libpsl5 #Required for wget
wget
nano
# xorg packages
#rxvt-unicode using aterm instead
aterm #Same name in tinycore
urxvt #required for aterm
#I'll sort out the dependency of this one later.
libfltk1.3 #Instead of fltk-1.3 (from tinycore)
flwm #Instead of flwm_topside (from tinycore)
libimlib2 #Instead of imlib2-bin & imlib2 (from tinycore)
alsa-utils #apulse is called from /root/.xinitrc
####### Maybe keep this since we dont' have matches for Xlibs, Xprogs, Xvesa but turn off dependency tracking
%dummy libwayland-client0 #Dependency for yad, libegl1-mesa, libgbm1
%dummy libwayland-server0 #Dependency for libegl1-mesa, libgbm1
%dummy libxcb-dri2-0 #Dependency for libegl1-mesa, libgl1-mesa-glx
libxcb-dri3-0 #Dependency for libegl1-mesa, libgl1-mesa-glx
%dummy libxcb-present0 #Dependency for libegl1-mesa, libgl1-mesa-glx
%dummy libxcb-sync1 #Dependency for libegl1-mesa
%dummy libxcb-xfixes0 #Dependency for libegl1-mesa
%dummy adduser #Dependency for dbus, xserver-xorg-core
%dummy libxcb-glx0 #Required for libgl1-mesa-glx
%dummy xserver-xorg-core-udeb #Dependency of xorg-input-abi-24
%dummy xorg-input-abi-24 #Virtual package: dependency of: xserver-xorg-input-libinput
#Can use xorg-driver-input instead of xserver-xorg-input-all, which is a virtual package
#that lists the indvidual XOrg input drives as dependencies
%dummy init-system-helpers #Dependency for dbus (systemd stuff)
%dummy libaudit1 #Dependency for dbus
%dummy libcap-ng0 #Dependency for dbus
%dummy libselinux1 #Dependency for dbus
libsystemd0 #Dependency for dbus, libdbus-1-3,procps (via libprocps6)
%dummy gcc-6-base #Dependency for libgcc1: readme, licencing, todo, cangelog
#We mightneed to add this
%dummy libgcc1 #Dependency for libexpat1
libapparmor1 #Dependency of dbus
dbus #Recommended dependency for libdbus-1-3
%dumy xserver-xorg-video-all #Let's pick the specific drivers that we want
xserver-xorg-video-vesa
xserver-xorg-video-vmware #This also works in virtualbox and qemu
#Do this to help the xwin script find the video drivers:
%chroot mkdir -p /usr/X11R7/lib
%chroot cp -sr /usr/lib/xorg/modules/drivers/ /usr/X11R7/lib
xserver-xorg-input-mouse
xserver-xorg-input-kbd #THis is the keyboard module
xserver-xorg
#TODO Create a base sfs layere here. Add other packages as a higher up layer
libxcb-shm0
%dummy libx11-data #Dependency of libx11-6 (inernationalization)
%dummy libxft2 #Dependency of x11-utils
%dummy libxxf86dga1 #Dependency of x11-utils
%dummy libxv1 #Dependency of x11-utils
%dummy libxtst6 #Dependency of x11-utils
libxmuu1 #Dependency of x11-utils
libxcb-shape0 #Dependency of x11-utils #frisbee seems like it might work without this but you'll get the error: libxcb-shape.so.0 missing
x11-utils
#%dummy libxxf86vm1 #Dependency of x11-xserver-utils
x11-xserver-utils
############################# Consider installing xinit ##############
#TODO consider adding tinycore and create a layer here
#xinit #we can start Xorg without xinit
######################### Not sure about this stuff ######
%dummy libgdk-pixbuf2.0-common #dependency of libgdk-pixbuf2.0-0
libgdk-pixbuf2.0-0
%symlink /usr/lib/i386-linux-gnu/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders /usr/bin
#Not sure if we need to symlink the .so files into LD_LIBRARY_PATH
#We'll uncomment this if we need it
#%chroot cp -sr /usr/lib/i386-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/
fonts-dejavu-core # standard font
libxfont1 #Instead of libXfont (From tinycore)
wbar #Same name on tinycore
#######
# window managers etc
jwm
rox
mc #Replaces rox-filer # this will pull-in gtk2
%bootstrap
# network tools to make SNS happy
ifplugd
dhcpcd5
wireless-tools
wpasupplicant
iptables
%addpkg frisbee
rfkill
#yad #Needed for PortaBrowseInstall-i386-0.4; depends on libwayland-client0
#gxmessage #Required for PortaBrowseInstall-i386-0.4
%addpkg PortaBrowseInstall-i386-0.4
# fixes for apt-get: re-install perl-base and xserver-xorg-core with dpkg
%dpkgchroot
%reinstall perl-base xserver-xorg-core
%depkgchroot # switch back to bootstrap installer - faster
%depend
xdialog #note: only i386 arch available
gtkdialog #note: only i386 arch available
%dpkg_configure --force-all -a
# final steps
# remove extremely toxic packages, then setup the dummy
%remove initscripts ifupdown sysv-rc upstart mountall
%dummy initscripts ifupdown sysv-rc upstart mountall
# these useless packages got pulled by apt-get -f install, so prevent it from getting installed
%remove plymouth libplymouth2 plymouth-theme-ubuntu-text
%dummy plymouth libplymouth2 plymouth-theme-ubuntu-text
%remove busybox-initramfs initramfs-tools-bin klibc-utils initramfs-tools
%dummy busybox-initramfs initramfs-tools-bin klibc-utils initramfs-tools
%dummy adduser base-files
## install busybox and its symlinks, fallback for missing utilities
#busybox-static
#%bblinks
# install puppy-base - MUST BE LAST - unless overriding puppy-base
#%mkdir /dev
pmount
%addpkg --forced tinycore9_base_gz
%addpkg --forced puppycore_noarch
#%addpkg --forced tinycore9_base_gz_users #Can use instead of puppycore_users
%addpkg --forced puppycore_users
%addpkg --forced puppycore_i386_strech
#Can use tinycore9_base_gz_startup instead of puppycore: _sysinit _sysinit_net _Xstartup
#%addpkg tinycore9_base_gz_startup
%addpkg --forced puppycore_sysinit
%addpkg --forced puppycore_sysinit_net
%addpkg --forced puppycore_net
%addpkg --forced puppycore_Xstartup
%addpkg --forced puppycore_locale
%reinstall jwm
%chroot wget ftp.us.debian.org/debian/pool/main/g/gnome-menus2/libgnome-menu2_3.0.1-4_i386.deb
%chroot pkg -i libgnome-menu2_3.0.1-4_i386.deb #Needed for fixmenus to work
%addpkg --forced puppycore_xdg #Needed for fixmenus to work
%addpkg --forced jwm_config
%chroot fixmenus
%reinstall rox
%addpkg --forced puppycore_rox
%addpkg --forced rox-filer-data
%addpkg --forced rox_config
%addpkg --forced puppycore_icons
librsvg2-bin #Required for puppy themes
%addpkg --forced pthemes #requires jwm_config
%addpkg --forced debian-setup # specific debian setup, overriding puppy-base
#Dependencies for pkg (maybe create wrappers for these instead of installing them)
%reinstall findutils #Dependency of PKG
%reinstall sed #Dependency of PKG
%reinstall grep #Dependency of PKG
%reinstall wget #required for pkg
%reinstall coreutils #pkg requires "sort" from coreutils
%reinstall util-linux
%reinstall libsystemd0 #Dependency for dbus, libdbus-1-3,procps (via libprocps6)
%reinstall libprocps6 #Required for procps
%reinstall procps
#%reinstall mount
%dpkg_configure --force-all -a
%addpkg --forced puppycore_utils #Required for puppy startup
%rm /bin/sh
%symlink /bin/bash /bin/sh
## install extra built-in packages
# apps
# mtpaint
%addpkg sync_pet_specs_fm_dpkg
%chroot sync_pet_specs_fm_dpkg.sh
%addpkg puppy_ppm_configs_devaun_ascii
%addpkg PKG
%chroot pkg --repo-update #Update the packge repos
%lock puppy-base puppy-base-arch libc6 # example: never update puppy base and libc6
#%addpkg james-staging # temporary area to changes before they get merged to rootfs
%reinstall libc-bin #contians ldconfig
%chroot ldconfig
# cutdown the size
%cutdown doc gtkdoc nls # lets see if nls cutdown works now
#%rm /dev #s243a: Do we want to remove /dev?
# make the sfs (optional)
%makesfs iso/iso-root/puppy.sfs -comp gzip # -Xcompression-level 1