Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
build-system
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
certo
build-system
Commits
75d1dcbc
Commit
75d1dcbc
authored
Nov 02, 2021
by
Vladimir Bashkirtsev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
We should use bind mounted /home /root /var instead of symlinks during build
parent
21b7dd10
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
126 additions
and
26 deletions
+126
-26
Makefile.common
Makefile.common
+9
-3
common.xml
common.xml
+117
-23
No files found.
Makefile.common
View file @
75d1dcbc
...
@@ -49,17 +49,23 @@ $(PACKAGES):
...
@@ -49,17 +49,23 @@ $(PACKAGES):
mount
-t
proc /proc mnt/proc
mount
-t
proc /proc mnt/proc
mount
-t
sysfs /sysfs mnt/sys
mount
-t
sysfs /sysfs mnt/sys
mount
-t
tmpfs /tmp mnt/tmp
mount
-t
tmpfs /tmp mnt/tmp
mount
-t
tmpfs /tmp mnt/var/tmp
mount /dev/
$(SECONDARY)
1 mnt/build
if
[
-d
mnt/data
]
;
then
\
if
[
-d
mnt/data
]
;
then
\
mount /dev/
$(DISK)
4 mnt/data
;
\
mount /dev/
$(DISK)
4 mnt/data
;
\
mount
--bind
mnt/data/home mnt/home
;
\
mount
--bind
mnt/data/root mnt/root
;
\
mount
--bind
mnt/data/var mnt/var
;
\
fi
fi
mount
-t
tmpfs /tmp mnt/var/tmp
mount /dev/
$(SECONDARY)
1 mnt/build
chroot
mnt
$(MAKE)
-C
$(current_dir)
$(
firstword
$(
subst
., ,
$@
))
$(
word
2,
$(
subst
., ,
$@
))
chroot
mnt
$(MAKE)
-C
$(current_dir)
$(
firstword
$(
subst
., ,
$@
))
$(
word
2,
$(
subst
., ,
$@
))
umount
-l
mnt/var/tmp
if
[
-d
mnt/data
]
&&
[[
$$
(
findmnt
-M
mnt/data
)
]]
;
then
\
if
[
-d
mnt/data
]
&&
[[
$$
(
findmnt
-M
mnt/data
)
]]
;
then
\
umount
-l
mnt/var
;
\
umount
-l
mnt/root
;
\
umount
-l
mnt/home
;
\
umount
-l
mnt/data
;
\
umount
-l
mnt/data
;
\
fi
fi
umount
-l
mnt/build
umount
-l
mnt/build
umount
-l
mnt/var/tmp
umount
-l
mnt/tmp
umount
-l
mnt/tmp
umount
-l
mnt/sys
umount
-l
mnt/sys
umount
-l
mnt/proc
umount
-l
mnt/proc
...
...
common.xml
View file @
75d1dcbc
...
@@ -394,6 +394,24 @@
...
@@ -394,6 +394,24 @@
<target
name=
"setup-build-boot-kernel"
>
<target
name=
"setup-build-boot-kernel"
>
<fail
unless=
"BOARD"
message=
"Correct machine type must be specified"
/>
<fail
unless=
"BOARD"
message=
"Correct machine type must be specified"
/>
<delete
file=
"${sysdir}/.success"
/>
<delete
file=
"${sysdir}/.success"
/>
<mkdir
dir=
"${sysdir}/etc/systemd/system/rescue.target.wants"
/>
<echo
file=
"${sysdir}/lib/systemd/system/mount-fstab.service"
>
[Unit]
Description=Mount all fstab partitions
After=local-fs.target
Before=systemd-networkd.service
DefaultDependencies=no
[Service]
Type=oneshot
StandardOutput=tty
ExecStart=/bin/mount -a
[Install]
WantedBy=rescue.target
</echo>
<exec
executable=
"ln"
failonerror=
"true"
>
<arg
line=
"-s /lib/systemd/system/mount-fstab.service ${sysdir}/etc/systemd/system/rescue.target.wants/mount-fstab.service"
/>
</exec>
<echo
file=
"${sysdir}/lib/systemd/system/build.service"
>
[Unit]
<echo
file=
"${sysdir}/lib/systemd/system/build.service"
>
[Unit]
Description=Build boot kernel
Description=Build boot kernel
...
@@ -406,6 +424,9 @@ ExecStartPost=/sbin/poweroff
...
@@ -406,6 +424,9 @@ ExecStartPost=/sbin/poweroff
[Install]
[Install]
WantedBy=rescue.target
WantedBy=rescue.target
</echo>
</echo>
<exec
executable=
"ln"
failonerror=
"true"
>
<arg
line=
"-s /lib/systemd/system/build.service ${sysdir}/etc/systemd/system/rescue.target.wants/build.service"
/>
</exec>
<echo
file=
"${sysdir}/lib/systemd/system/build"
>
#!/bin/sh
<echo
file=
"${sysdir}/lib/systemd/system/build"
>
#!/bin/sh
LC_ALL=POSIX
LC_ALL=POSIX
PATH=/bin:/usr/bin:/sbin:/usr/sbin
PATH=/bin:/usr/bin:/sbin:/usr/sbin
...
@@ -424,14 +445,11 @@ if [ $? -eq 0 ]; then
...
@@ -424,14 +445,11 @@ if [ $? -eq 0 ]; then
fi
fi
rm -rf /etc/systemd/system/rescue.target.wants
rm -rf /etc/systemd/system/rescue.target.wants
rm /lib/systemd/system/mount-fstab.service
rm /lib/systemd/system/build.service
rm /lib/systemd/system/build.service
rm /lib/systemd/system/build
rm /lib/systemd/system/build
</echo>
</echo>
<chmod
file=
"${sysdir}/lib/systemd/system/build"
perm=
"755"
/>
<chmod
file=
"${sysdir}/lib/systemd/system/build"
perm=
"755"
/>
<mkdir
dir=
"${sysdir}/etc/systemd/system/rescue.target.wants"
/>
<exec
executable=
"ln"
failonerror=
"true"
>
<arg
line=
"-s /lib/systemd/system/build.service ${sysdir}/etc/systemd/system/rescue.target.wants/build.service"
/>
</exec>
<exec
executable=
"cp"
failonerror=
"true"
>
<exec
executable=
"cp"
failonerror=
"true"
>
<arg
line=
"-drv ${basedir}/kernelconfig ${sysdir}"
/>
<arg
line=
"-drv ${basedir}/kernelconfig ${sysdir}"
/>
</exec>
</exec>
...
@@ -478,6 +496,24 @@ rm /lib/systemd/system/build
...
@@ -478,6 +496,24 @@ rm /lib/systemd/system/build
<target
name=
"setup-reduce-locales-ab"
if=
"ABstart"
>
<target
name=
"setup-reduce-locales-ab"
if=
"ABstart"
>
<delete
file=
"${sysdir}/.success"
/>
<delete
file=
"${sysdir}/.success"
/>
<mkdir
dir=
"${sysdir}/etc/systemd/system/rescue.target.wants"
/>
<echo
file=
"${sysdir}/lib/systemd/system/mount-fstab.service"
>
[Unit]
Description=Mount all fstab partitions
After=local-fs.target
Before=systemd-networkd.service
DefaultDependencies=no
[Service]
Type=oneshot
StandardOutput=tty
ExecStart=/bin/mount -a
[Install]
WantedBy=rescue.target
</echo>
<exec
executable=
"ln"
failonerror=
"true"
>
<arg
line=
"-s /lib/systemd/system/mount-fstab.service ${sysdir}/etc/systemd/system/rescue.target.wants/mount-fstab.service"
/>
</exec>
<echo
file=
"${sysdir}/lib/systemd/system/reduce-locales.service"
>
[Unit]
<echo
file=
"${sysdir}/lib/systemd/system/reduce-locales.service"
>
[Unit]
Description=Reduce locales
Description=Reduce locales
...
@@ -490,6 +526,9 @@ ExecStartPost=/sbin/poweroff
...
@@ -490,6 +526,9 @@ ExecStartPost=/sbin/poweroff
[Install]
[Install]
WantedBy=rescue.target
WantedBy=rescue.target
</echo>
</echo>
<exec
executable=
"ln"
failonerror=
"true"
>
<arg
line=
"-s /lib/systemd/system/reduce-locales.service ${sysdir}/etc/systemd/system/rescue.target.wants/reduce-locales.service"
/>
</exec>
<echo
file=
"${sysdir}/lib/systemd/system/reduce-locales"
>
#!/bin/sh
<echo
file=
"${sysdir}/lib/systemd/system/reduce-locales"
>
#!/bin/sh
/sbin/fsck -yf /dev/${SECONDARY}2
/sbin/fsck -yf /dev/${SECONDARY}2
/bin/mount -o discard /dev/${SECONDARY}2 /mnt
/bin/mount -o discard /dev/${SECONDARY}2 /mnt
...
@@ -499,14 +538,11 @@ chroot mnt localedef -i en_GB -f UTF-8 en_GB.UTF-8
...
@@ -499,14 +538,11 @@ chroot mnt localedef -i en_GB -f UTF-8 en_GB.UTF-8
/bin/mount -o remount,rw /
/bin/mount -o remount,rw /
/usr/bin/touch /.success
/usr/bin/touch /.success
/bin/rm -rf /etc/systemd/system/rescue.target.wants
/bin/rm -rf /etc/systemd/system/rescue.target.wants
/bin/rm /lib/systemd/system/mount-fstab.service
/bin/rm /lib/systemd/system/reduce-locales.service
/bin/rm /lib/systemd/system/reduce-locales.service
/bin/rm /lib/systemd/system/reduce-locales
/bin/rm /lib/systemd/system/reduce-locales
</echo>
</echo>
<chmod
file=
"${sysdir}/lib/systemd/system/reduce-locales"
perm=
"755"
/>
<chmod
file=
"${sysdir}/lib/systemd/system/reduce-locales"
perm=
"755"
/>
<mkdir
dir=
"${sysdir}/etc/systemd/system/rescue.target.wants"
/>
<exec
executable=
"ln"
failonerror=
"true"
>
<arg
line=
"-s /lib/systemd/system/reduce-locales.service ${sysdir}/etc/systemd/system/rescue.target.wants/reduce-locales.service"
/>
</exec>
</target>
</target>
<target
name=
"check-reduce-locales-success"
>
<target
name=
"check-reduce-locales-success"
>
...
@@ -535,10 +571,29 @@ chroot mnt localedef -i en_GB -f UTF-8 en_GB.UTF-8
...
@@ -535,10 +571,29 @@ chroot mnt localedef -i en_GB -f UTF-8 en_GB.UTF-8
<target
name=
"setup-build"
>
<target
name=
"setup-build"
>
<fail
unless=
"BOARD"
message=
"Correct machine type must be specified"
/>
<fail
unless=
"BOARD"
message=
"Correct machine type must be specified"
/>
<delete
file=
"${sysdir}/.success"
/>
<delete
file=
"${sysdir}/.success"
/>
<echo
file=
"${sysdir}/lib/systemd/system/machine-id.service"
>
[Unit]
<mkdir
dir=
"${sysdir}/etc/systemd/system/rescue.target.wants"
/>
<echo
file=
"${sysdir}/lib/systemd/system/mount-fstab.service"
>
[Unit]
Description=Mount all fstab partitions
After=local-fs.target
Before=systemd-networkd.service
DefaultDependencies=no
[Service]
Type=oneshot
StandardOutput=tty
ExecStart=/bin/mount -a
[Install]
WantedBy=rescue.target
</echo>
<exec
executable=
"ln"
failonerror=
"true"
>
<arg
line=
"-s /lib/systemd/system/mount-fstab.service ${sysdir}/etc/systemd/system/rescue.target.wants/mount-fstab.service"
/>
</exec>
<echo
file=
"${sysdir}/lib/systemd/system/machine-id.service"
>
[Unit]
Description=Setup /etc/machine-id
Description=Setup /etc/machine-id
Before=systemd-networkd.service
Before=systemd-networkd.service
After=local-fs.target
After=local-fs.target mount-fstab.service
DefaultDependencies=no
[Service]
[Service]
Type=oneshot
Type=oneshot
...
@@ -550,9 +605,8 @@ WantedBy=rescue.target
...
@@ -550,9 +605,8 @@ WantedBy=rescue.target
</echo>
</echo>
<echo
file=
"${sysdir}/lib/systemd/system/build.service"
>
[Unit]
<echo
file=
"${sysdir}/lib/systemd/system/build.service"
>
[Unit]
Description=Build ${ant.project.name}
Description=Build ${ant.project.name}
After=network-online.target local-fs.target
After=network-online.target remote-fs.target
Wants=systemd-networkd.service
Wants=systemd-networkd.service systemd-resolved.service remote-fs.target
Wants=systemd-resolved.service
[Service]
[Service]
Type=oneshot
Type=oneshot
...
@@ -563,6 +617,9 @@ ExecStartPost=/sbin/poweroff
...
@@ -563,6 +617,9 @@ ExecStartPost=/sbin/poweroff
[Install]
[Install]
WantedBy=rescue.target
WantedBy=rescue.target
</echo>
</echo>
<exec
executable=
"ln"
failonerror=
"true"
>
<arg
line=
"-s /lib/systemd/system/build.service ${sysdir}/etc/systemd/system/rescue.target.wants/build.service"
/>
</exec>
<echo
file=
"${sysdir}/lib/systemd/system/build"
>
#!/bin/sh
<echo
file=
"${sysdir}/lib/systemd/system/build"
>
#!/bin/sh
LC_ALL=POSIX
LC_ALL=POSIX
PATH=/bin:/usr/bin:/sbin:/usr/sbin
PATH=/bin:/usr/bin:/sbin:/usr/sbin
...
@@ -595,15 +652,12 @@ if [ $? -eq 0 ]; then
...
@@ -595,15 +652,12 @@ if [ $? -eq 0 ]; then
fi
fi
rm -rf /etc/systemd/system/rescue.target.wants
rm -rf /etc/systemd/system/rescue.target.wants
rm /lib/systemd/system/mount-fstab.service
rm /lib/systemd/system/machine-id.service
rm /lib/systemd/system/machine-id.service
rm /lib/systemd/system/build.service
rm /lib/systemd/system/build.service
rm /lib/systemd/system/build
rm /lib/systemd/system/build
</echo>
</echo>
<chmod
file=
"${sysdir}/lib/systemd/system/build"
perm=
"755"
/>
<chmod
file=
"${sysdir}/lib/systemd/system/build"
perm=
"755"
/>
<mkdir
dir=
"${sysdir}/etc/systemd/system/rescue.target.wants"
/>
<exec
executable=
"ln"
failonerror=
"true"
>
<arg
line=
"-s /lib/systemd/system/build.service ${sysdir}/etc/systemd/system/rescue.target.wants/build.service"
/>
</exec>
</target>
</target>
<target
name=
"setup-go-bootstrap"
if=
"GO_BOOTSTRAP"
>
<target
name=
"setup-go-bootstrap"
if=
"GO_BOOTSTRAP"
>
...
@@ -632,10 +686,29 @@ rm /lib/systemd/system/build
...
@@ -632,10 +686,29 @@ rm /lib/systemd/system/build
<target
name=
"setup-build-www"
>
<target
name=
"setup-build-www"
>
<fail
unless=
"BOARD"
message=
"Correct machine type must be specified"
/>
<fail
unless=
"BOARD"
message=
"Correct machine type must be specified"
/>
<delete
file=
"${sysdir}/.success"
/>
<delete
file=
"${sysdir}/.success"
/>
<mkdir
dir=
"${sysdir}/etc/systemd/system/rescue.target.wants"
/>
<echo
file=
"${sysdir}/lib/systemd/system/mount-fstab.service"
>
[Unit]
Description=Mount all fstab partitions
After=local-fs.target
Before=systemd-networkd.service
DefaultDependencies=no
[Service]
Type=oneshot
StandardOutput=tty
ExecStart=/bin/mount -a
[Install]
WantedBy=rescue.target
</echo>
<exec
executable=
"ln"
failonerror=
"true"
>
<arg
line=
"-s /lib/systemd/system/mount-fstab.service ${sysdir}/etc/systemd/system/rescue.target.wants/mount-fstab.service"
/>
</exec>
<echo
file=
"${sysdir}/lib/systemd/system/machine-id.service"
>
[Unit]
<echo
file=
"${sysdir}/lib/systemd/system/machine-id.service"
>
[Unit]
Description=Setup /etc/machine-id
Description=Setup /etc/machine-id
Before=systemd-networkd.service
Before=systemd-networkd.service
After=local-fs.target
After=local-fs.target mount-fstab.service
DefaultDependencies=no
[Service]
[Service]
Type=oneshot
Type=oneshot
...
@@ -660,6 +733,9 @@ ExecStartPost=/sbin/poweroff
...
@@ -660,6 +733,9 @@ ExecStartPost=/sbin/poweroff
[Install]
[Install]
WantedBy=rescue.target
WantedBy=rescue.target
</echo>
</echo>
<exec
executable=
"ln"
failonerror=
"true"
>
<arg
line=
"-s /lib/systemd/system/build.service ${sysdir}/etc/systemd/system/rescue.target.wants/build.service"
/>
</exec>
<echo
file=
"${sysdir}/lib/systemd/system/build"
>
#!/bin/sh
<echo
file=
"${sysdir}/lib/systemd/system/build"
>
#!/bin/sh
LC_ALL=POSIX
LC_ALL=POSIX
PATH=/bin:/usr/bin:/sbin:/usr/sbin
PATH=/bin:/usr/bin:/sbin:/usr/sbin
...
@@ -695,12 +771,12 @@ if [ $? -eq 0 ]; then
...
@@ -695,12 +771,12 @@ if [ $? -eq 0 ]; then
fi
fi
rm -rf /etc/systemd/system/rescue.target.wants
rm -rf /etc/systemd/system/rescue.target.wants
rm /lib/systemd/system/mount-fstab.service
rm /lib/systemd/system/machine-id.service
rm /lib/systemd/system/machine-id.service
rm /lib/systemd/system/build.service
rm /lib/systemd/system/build.service
rm /lib/systemd/system/build
rm /lib/systemd/system/build
</echo>
</echo>
<chmod
file=
"${sysdir}/lib/systemd/system/build"
perm=
"755"
/>
<chmod
file=
"${sysdir}/lib/systemd/system/build"
perm=
"755"
/>
<mkdir
dir=
"${sysdir}/etc/systemd/system/rescue.target.wants"
/>
<exec
executable=
"ln"
failonerror=
"true"
>
<exec
executable=
"ln"
failonerror=
"true"
>
<arg
line=
"-s /lib/systemd/system/build.service ${sysdir}/etc/systemd/system/rescue.target.wants/build.service"
/>
<arg
line=
"-s /lib/systemd/system/build.service ${sysdir}/etc/systemd/system/rescue.target.wants/build.service"
/>
</exec>
</exec>
...
@@ -752,6 +828,24 @@ rm /lib/systemd/system/build
...
@@ -752,6 +828,24 @@ rm /lib/systemd/system/build
<target
name=
"setup-check-strip-and-trim-ab"
if=
"ABstart"
>
<target
name=
"setup-check-strip-and-trim-ab"
if=
"ABstart"
>
<delete
file=
"${sysdir}/.success"
/>
<delete
file=
"${sysdir}/.success"
/>
<mkdir
dir=
"${sysdir}/etc/systemd/system/rescue.target.wants"
/>
<echo
file=
"${sysdir}/lib/systemd/system/mount-fstab.service"
>
[Unit]
Description=Mount all fstab partitions
After=local-fs.target
Before=systemd-networkd.service
DefaultDependencies=no
[Service]
Type=oneshot
StandardOutput=tty
ExecStart=/bin/mount -a
[Install]
WantedBy=rescue.target
</echo>
<exec
executable=
"ln"
failonerror=
"true"
>
<arg
line=
"-s /lib/systemd/system/mount-fstab.service ${sysdir}/etc/systemd/system/rescue.target.wants/mount-fstab.service"
/>
</exec>
<echo
file=
"${sysdir}/lib/systemd/system/check-strip-and-trim.service"
>
[Unit]
<echo
file=
"${sysdir}/lib/systemd/system/check-strip-and-trim.service"
>
[Unit]
Description=Check, strip and trim file system
Description=Check, strip and trim file system
...
@@ -764,6 +858,9 @@ ExecStartPost=/sbin/poweroff
...
@@ -764,6 +858,9 @@ ExecStartPost=/sbin/poweroff
[Install]
[Install]
WantedBy=rescue.target
WantedBy=rescue.target
</echo>
</echo>
<exec
executable=
"ln"
failonerror=
"true"
>
<arg
line=
"-s /lib/systemd/system/check-strip-and-trim.service ${sysdir}/etc/systemd/system/rescue.target.wants/check-strip-and-trim.service"
/>
</exec>
<echo
file=
"${sysdir}/lib/systemd/system/check-strip-and-trim"
>
#!/bin/sh
<echo
file=
"${sysdir}/lib/systemd/system/check-strip-and-trim"
>
#!/bin/sh
/sbin/fsck -yf /dev/${SECONDARY}1
/sbin/fsck -yf /dev/${SECONDARY}1
/sbin/fsck -yf /dev/${SECONDARY}2
/sbin/fsck -yf /dev/${SECONDARY}2
...
@@ -788,14 +885,11 @@ WantedBy=rescue.target
...
@@ -788,14 +885,11 @@ WantedBy=rescue.target
/bin/mount -o remount,rw /
/bin/mount -o remount,rw /
/usr/bin/touch /.success
/usr/bin/touch /.success
/bin/rm -rf /etc/systemd/system/rescue.target.wants
/bin/rm -rf /etc/systemd/system/rescue.target.wants
/bin/rm /lib/systemd/system/mount-fstab.service
/bin/rm /lib/systemd/system/check-strip-and-trim.service
/bin/rm /lib/systemd/system/check-strip-and-trim.service
/bin/rm /lib/systemd/system/check-strip-and-trim
/bin/rm /lib/systemd/system/check-strip-and-trim
</echo>
</echo>
<chmod
file=
"${sysdir}/lib/systemd/system/check-strip-and-trim"
perm=
"755"
/>
<chmod
file=
"${sysdir}/lib/systemd/system/check-strip-and-trim"
perm=
"755"
/>
<mkdir
dir=
"${sysdir}/etc/systemd/system/rescue.target.wants"
/>
<exec
executable=
"ln"
failonerror=
"true"
>
<arg
line=
"-s /lib/systemd/system/check-strip-and-trim.service ${sysdir}/etc/systemd/system/rescue.target.wants/check-strip-and-trim.service"
/>
</exec>
<exec
executable=
"sed"
failonerror=
"true"
>
<exec
executable=
"sed"
failonerror=
"true"
>
<arg
line=
"-e 's/disk\/by-label\/data/${DISK}4/' -i ${sysdir}/etc/fstab"
/>
<arg
line=
"-e 's/disk\/by-label\/data/${DISK}4/' -i ${sysdir}/etc/fstab"
/>
</exec>
</exec>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment