Unfortunately, no one can be told what Redcore Linux is. You have to see it for yourself!
You are not logged in.
Hello there!
First of all, thank you very much for the pretty hard work on new release.
I just want to know the best way – how to customize system after installation for my PC (in part of hardware and software)
KPIs:
1) I want to use march=native for top packages
2) To add (restore) graphite feature for GCC
3) To add polly for clang
4) Recompile some packages for multi-threads bzip2 support
etc
I know that I need manipulate with USE flags, EXTRA_ECONF etc.
But after update new binary packages will overwrite my changes.
So, what is the way for "branch" my changes and keep it after updates?
Thanks for answer!
Offline
Well, when I designed sisyphus, I considered someone might want to override some defaults. In fact, I was hoping someone will eventually ask me this question. So, you don't really need to branch out. Sisyphus has a mechanism to override the defaults. Not everything in your list is possible, but 3 out of 4 are.
1. Edit /etc/portage/env/10-sisyphus-overrides and add the following lines :
CFLAGS="-O2 -march=native -mtune=generic -pipe -fno-delete-null-pointer-checks -Wno-deprecated -Wno-deprecated-declarations -fno-plt -fstack-protector-strong -fstack-clash-protection -fcf-protection=full"
CXXFLAGS="-O2 -march=native -mtune=generic -pipe -fno-delete-null-pointer-checks -Wno-deprecated -Wno-deprecated-declarations -fno-plt -fstack-protector-strong -fstack-clash-protection -fcf-protection=full"
Feel free to edit these flags however you please. The only change from Redcore's default is -march=native instead of -march=x86-64
Then, let's say you want to compile GCC with -march=native :
Edit /etc/portage/package.env/10-sisyphus-overrides and add the following line :
sys-devel/gcc 10-sisyphus-overrides
For every package you want to compile with -march=native you add another line :
category/name 10-sisyphus-overrides
2. Edit /etc/portage/package.use/10-sisyphus-overrides and add the following line :
sys-devel/gcc graphite
For every package you want to change an USE flag you add another line:
category/name USE
to enable an USE flag or
category/name -USE
to disable it
3. https://bugs.gentoo.org/715612 , this one is a work in progress, once it shows up in Gentoo's tree, you can follow the steps I described at number 2 to enable it.
4. Follow the steps at number 2 and add the following line:
app-alternatives/bzip2 -reference lbzip2
This will change the bzip2 implementation from reference (default implementation) to https://github.com/kjn/lbzip2/
or
app-alternatives/bzip2 -reference pbzip2
This will change the bzip2 implementation from reference (default implementation) to https://launchpad.net/pbzip2
Once done, the changes are permanent and sisyphus will NOT use binaries for the packages altered this way. All you have to do is run
sisyphus upgrade --ebuild
and you will notice it will offer to recompile the altered packages with your settings. If anything goes wrong, just remove the alterations and re-run
sisyphus upgrade --ebuild
Sisyphus has a fallback mechanism, so the --ebuild flag becomes automatically redundant and will use binaries if alterations are removed.
P.S.: There is no global override, changes are possible only per-package basis. Recompiling the whole system with -march=native is possible using a global override, but it is not implemented yet.
Offline
Dear V3n3RiX!
Great thank You for clarification!
Offline