Commit Graph

113 Commits

Author SHA1 Message Date
Michael Tremer
5621b0ef0a cdrom: Compress file system image using Zstandard
This patch uses the new Zstandard algorithm to compress the file system
image on the ISO image. This comes with these advantages:

* Compression is about twice as fast than XZ with the parameters we have
  selected here
* We use a lot less memory during compression and can therefore utilise
  all processor cores of the build machines
* Decompression (when installing IPFire and when creating the
  flash-image) is substantically faster

The downside is that the generated ISO image is slighty larger (~10MiB)
which I am okay with as a trade-off for the points mentioned above.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2021-07-14 08:28:46 +00:00
Arne Fitzenreiter
aafdd71b04 switch arm 32 bit arch from armv5tel to armv6l
we have no supported armv5tel board left so we can switch to the higher
arch. This now can use the vpu (still in softfp calling convention to
not break existing installations.)
this fix many compile problems, also boost is now working again.

Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2021-07-05 07:42:39 +02:00
Michael Tremer
6a8be3e1f7 Config: Break when packaged files are missing
Fixes: #12609
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2021-04-20 11:52:43 +00:00
Arne Fitzenreiter
99d987bd4a lfs/Config: fix build if MAX_PARALLELISM is lower than one
If you have 2GB RAM the build of dnsdist will fail because MAX_PARALLELISM was
set to zero by RAM/2048 because a bit of RAM is used by the system.

This patch ensure that the lowest PARALLELISM value is 1.

Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2021-03-29 10:33:19 +00:00
Michael Tremer
5c36c8dd60 autoconf: Update automake scripts for riscv64
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2021-03-06 11:14:50 +00:00
Michael Tremer
000ff407b9 Config: riscv64 is a 64 bit architecture
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2021-03-06 11:14:49 +00:00
Michael Tremer
1ebdfb0e4e Config: Enable UPDATE_AUTOMAKE for riscv64
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2021-03-06 11:14:49 +00:00
Michael Tremer
b37678e922 Package extended attributes in distro.img and Core Updates
System capabilities are stored in extended file system attributes
which are by default not stored in tar balls.

This patch ensures that they are packaged and extracted.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2021-01-06 14:45:02 +00:00
Arne Fitzenreiter
289a86a320 rootfiles: change MACHINE to xxxMACHINExxx
berkeley has a file that nane contain MACHINE wich should not
replaced by the build architecture.

Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2020-05-10 17:27:28 +00:00
Michael Tremer
b4863d7d14 Config: Set some Go environment variables
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2020-04-20 15:24:25 +00:00
Arne Fitzenreiter
702b59cd02 paks: fix meta size entry
remove the doublequotes around the size because pakfire not
accept this.

fixes: #12348

Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2020-04-02 16:28:39 +00:00
Michael Tremer
258bc2e318 Config: Refactor mastering packages
Those are now created in their own temporary directory, so that
no other files can be included by accident.

We also package with fewer temporary files.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2020-03-24 08:57:56 +00:00
Michael Tremer
cde41c2e6f Go: Cleanup Go Path after build
Go leaves temporary build files in the directory
which we do not need and we should clean up after
every build.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2020-01-12 08:19:17 +00:00
Arne Fitzenreiter
590f879b34 python3: exclude __pycache__ from iso, core and packages
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2020-01-11 21:22:07 +01:00
Arne Fitzenreiter
6ede197501 pathon: update to 3.8 and move pyhton to core
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2020-01-11 14:35:11 +01:00
Michael Tremer
0bc5b1de6d Config: Disable XZ parallelism by default
Exporting XZ_OPT caused that every time xz was called, it automatically
enabled parallelism. The make systemm also launches multiple processes
at the same time to use more processor cores at the same time.

The combination of this causes memory exhaustion even on large systems
and has no performance gain. Therefore this is disabled by default
and only enabled where we need it which is already the case.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2019-05-10 04:16:08 +01:00
Michael Tremer
d53537ced9 Config: Builds don't seem to like the space
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2019-03-04 11:57:22 +00:00
Michael Tremer
7691a1bfe7 make.sh: Introduce MAX_PARALLELISM
This will now adjust MAKETUNING to not launch more processes
than MAX_PARALLELISM. Handy to limit builds that use a lot of memory.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2019-03-04 11:51:08 +00:00
Michael Tremer
77c863a2f1 make.sh: Introduce DEFAULT_PARALLELISM
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2019-03-04 11:43:47 +00:00
Arne Fitzenreiter
ebaecf2c96 Revert "make.sh: Log into subdirectory for each architecture"
This reverts commit 35ce207ff7.
2018-10-30 15:07:12 +01:00
Michael Tremer
35ce207ff7 make.sh: Log into subdirectory for each architecture
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-10-29 13:42:51 +00:00
Michael Tremer
b26071d378 Config: Set IS_32BIT when running on 32 bit
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-10-24 17:27:10 +01:00
Michael Tremer
de7c8df83e cdrom: Move list of EFI modules to lfs/cdrom
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-07-25 10:54:35 +01:00
Michael Tremer
a1eb776199 cdrom: Fix building GRUB image for aarch64
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-07-14 13:43:53 +01:00
Michael Tremer
582aba0534 Enable EFI on aarch64
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-07-14 13:43:51 +01:00
Michael Tremer
5f387a1b86 cdrom: Install GRUB into EFI image
This will start GRUB on EFI systems when booting from CD

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-07-14 13:43:50 +01:00
Michael Tremer
ba3cbb0cfb Adjust variables that have been renamed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-07-14 13:43:50 +01:00
Michael Tremer
72d40cfddd Config: Have a simple configuration variable that enables EFI
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-07-14 13:43:50 +01:00
Matthias Fischer
c22976907e tar: Update to 1.30 (V3)
For details see:
https://www.gnu.org/software/tar/

Since new 'tar' has changes in commandline option parsing,
it was necessary to adjust 'lfs/Config, 'lfs/cdrom' and
'lfs/core-updates' (thanks to Marcel for diffs and Michael for
corrections).

I have tried to make only the most necessary changes.

As always, please check.

Best,
Matthias

Signed-off-by: Matthias Fischer <matthias.fischer@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-06-06 14:03:07 +01:00
Arne Fitzenreiter
a4923c7f75 Config: follow symlinks at rootfile check
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2018-06-06 11:28:11 +02:00
Michael Tremer
0d1df90f70 Config: Add macro to update automake scripts on aarch64
Some packages ship an older version which does not recognise
aarch64. To overcome this, we just update these scripts when
necessary.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-05-31 11:56:28 +01:00
Michael Tremer
65a736981b Don't compress packages three times. Once is enough.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-05-25 18:36:37 +01:00
Michael Tremer
0054a52bd8 tar seems to ignore the XZ_OPT variable sometimes
This caused that the xz command was called without any
extra arguments. This will now create the tar archive
first and then pass the archive through xz with our
command line switches.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-05-21 20:59:06 +01:00
Matthias Fischer
27267889aa xz: Performance and compression tuning (V2) - fine tuning
Changes since V1:

- Tuned some more 'tar'-command lines
- Included 'lfs/core-updates'
- Some fine-tuning

Hi,

Current results with V2 (clean builds):

'next':
'packages' => 255 MB
'ipfire-2.19.2gb-ext4.i586-full-core121.img.gz => 319 MB
'ipfire-2.19.i586-full-core121.iso' => 218 MB
Total => 792 MB

'xz-tuning':
'packages' => 228 MB
'ipfire-2.19.2gb-ext4.i586-full-core121.img.gz' => 318 MB
'ipfire-2.19.i586-full-core121.iso' => 207 MB

Total => 753 MB (-39 MB)

It would be nice if someone could review and test these. ;-)

If necessary, I can upload a complete patch.

Best,
Matthias

Signed-off-by: Matthias Fischer <matthias.fischer@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-05-21 20:59:06 +01:00
Matthias Fischer
0d7a6f03d4 xz: Performance and compression tuning (V1)
Hi,

as mentioned in the "list", we're trying to make the archives as small as possible
using 'xz'-compression.

In order to achieve this, this patch tests the size of the memory available on the
host system.

It sets the xz-memory-limit (--memory=[N]Mib) to 70% of the available working memory,
a maximum of four xz-'worker threads' (-T4) and a compression rate of '-8' (-8).

These options are written to the 'XZ_OPT=' environment.

For details see:
https://linux.die.net/man/1/xz

I have set the number of available xz-'worker threads' (-T) to four (-T4), because during
the final tests the '-T0' parameter led to error messages snd stopped: 'cannot allocate memory'.
It wouldn't even run with 90%.

Furthermore, testing with '-T0' led to countless messages filling  up '_build.packages.log'.

E.g.:
...
xz: Adjusted the number of threads from 8 to 2 to not exceed the memory usage
limit of 1557 MiB
...

Tests took place on a 32bit-Ubuntu 16.04.4-system with 8 GB RAM and an Intel I7-2600.
Build time was about 04:30 hrs. Perhaps a 64bit-system would perform better (higher
values), but my goal was to make this run on as many systems as possible, so I choosed
these averages.

If minimum requirements (1024 MB RAM) are not met, building stops.

Current results:

'next', untuned:
ipfire-2.19.2gb-ext4.i586-full-core121.img.gz	=> 332951687 Bytes
ipfire-2.19.i586-full-core121.iso		=> 228589568 Bytes

'next', XZ_OPT: -T4 -8, 70% RAM:
ipfire-2.19.2gb-ext4.i586-full-core121.img.gz	=> 329725723 Bytes
ipfire-2.19.i586-full-core121.iso		=> 217055232 Bytes

These two resulting archives are 14760300 Bytes smaller than before.

Best,
Matthias

Signed-off-by: Matthias Fischer <matthias.fischer@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-05-21 20:59:06 +01:00
Michael Tremer
c0878e43e1 Config: Set PREFIX either to TOOLS_DIR or /usr
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-02-11 20:56:12 +00:00
Michael Tremer
6c4cc7ea1b Move toolchain from /tools to /tools_${arch}
This will allow us to run multiple builds on the same
system at the same time (or at least have them on disk).

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2017-11-23 15:57:28 +00:00
Michael Tremer
f1effdf758 make.sh: Drop option to generate a source ISO
This is a very weird way to distribute sources in 2017.
Let's save the environment and stop using CDs.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2017-11-23 15:55:05 +00:00
Michael Tremer
348ba8e2c5 Revert "Use best XZ compression for smaller images and packages"
This reverts commit 5fd54721c2.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2017-10-18 12:35:19 +01:00
Michael Tremer
9dcfcb0039 Revert "cdrom: Use -8 as compression parameter"
This reverts commit 77ad762c43.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2017-10-18 12:35:04 +01:00
Michael Tremer
77ad762c43 cdrom: Use -8 as compression parameter
This is a better compromise on memory usage and file size

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2017-10-17 21:16:41 +01:00
Michael Tremer
5fd54721c2 Use best XZ compression for smaller images and packages
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2017-10-17 15:23:26 +01:00
Michael Tremer
bc9544929c packages: Compress in parallel
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2017-10-17 14:58:28 +01:00
Michael Tremer
c484679bb3 Download sources via HTTPS
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2017-10-12 15:56:34 +01:00
Michael Tremer
b7093f17d5 stage1: New build script
Creates some basic directories and symlinks in toolchain stage

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2017-05-18 12:04:20 +01:00
Michael Tremer
dc7d6b204d make.sh: Cleanup of polluted environment
The build environment is using a number of variables which
occasionally conflicted with some other build systems.

This patch cleans that up by renaming some variables and
later unexporting them in the lfs files.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2017-05-18 12:02:03 +01:00
Jonatan Schlag
38888b3d92 Add new make macro for installing initscripts
We also move the initscript for also to src/initscripts/packages
and use this new macro to install the initscript
Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
2017-02-22 12:25:42 +01:00
Arne Fitzenreiter
8a148bbc5a Config: update sourcecode upload url
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2016-03-17 23:04:54 +01:00
Michael Tremer
86b759785b make.sh: Update source upload URL
There is no longer a SSH service on source.ipfire.org.

The usual login on git.ipfire.org should be used instead.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2016-02-24 22:12:53 -08:00
Michael Tremer
1d9be34e2a ccache: Include hash of compiler specs in hashing
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2016-01-09 19:48:48 +00:00