[Debian Jessie / UBUNTU LTS / "frozen pool distribution"] GCC-5 requirement for packages? [+SOLUTION]
edit: This method focuses primarily on getting the Liquorix kernel and headers from the repos directly on Debian Jessie.
What I needed was: 1. apt-get update ; apt-get upgrade ; apt-get dist-upgrade for liquorix and other packages fully functional 2. VirtualBox modules to build with the kernel headers for liquorix. So Ive built a "dirty hack" version of gcc-5 to satisfy the package requirements and build with a native gcc-5 compiler Here are 4 workarounds for this. See which one works for you These are to be used AT YOUR OWN RISK. Please read this before proceeding. techpatterns.com/forums/about1891.html option 1: (thanks anticapitalista) Pull these from an unofficial repo. * This is great! I like this a lot!; :: Code ::
antiX-MX (re)builds liquorix kernels for Debian jessie. main.mepis-deb.org/mx/repo/pool/main/l/linux-liquorix/ main.mepis-deb.org/mx/testrepo/pool/test/l/linux-liquorix/ option 2: install a fake gcc-5 package with a symlink to your standard gcc which may or may not work * It allows you to build modules from source but i noticed a few issues even with successful compiles with gcc-4.9 * This should work fine if you use gcc-6 * A good solution if you wanted to build liquorix or gcc-5 from source while keeping the repos/official repos. option 3. install a gcc-5 build that drops in a fully functional gcc-5 for Debian Jessie * This is what I have right now, and its working great. * If you use my binary you will also need to get the extras package to; at minimum install libisl15. gcc-5 does reference the newer binutils and gnat; although it is most likely not needed. or get these files from the sid debian repos directly. * This is not an official back-port, and is incompatible with any upgrade path when the official gcc-5 is released in jessie-backports option 4. just build Liquoirix from source. The following link contains .debs for the "fake gcc-5" , the "gcc-5 binary package", and the "extras package" for jessie that I built. :: Code :: https://drive.google.com/folderview?id=0B-SFiFoXrUSLN3BIeDBOZVhkU28&usp=sharing:: Code ::
# inxi -bxx System: Host: ptah Kernel: 4.4-3.dmz.3-liquorix-amd64 x86_64 (64 bit gcc: 5.3.1) Desktop: MATE 1.8.1 (Gtk 2.24.25) dm: lightdm Distro: Debian GNU/Linux 8 Machine: Mobo: Google model: Parrot v: 1.0 serial: 123456789 Bios: coreboot v: 4.0-6588-g4acd8ea-dirty date: 09/04/2014 CPU: Dual core Intel Celeron 847 (-MCP-) clocked at 1100 MHz Graphics: Card: Intel 2nd Generation Core Processor Family Integrated Graphics Controller bus-ID: 00:02.0 chip-ID: 8086:0106 Display Server: X.org 1.16.4 drivers: intel (unloaded: fbdev,vesa) tty size: 166x26 Advanced Data: N/A for root Network: Card-1: Qualcomm Atheros AR9462 Wireless Network Adapter driver: ath9k bus-ID: 01:00.0 chip-ID: 168c:0034 Card-2: Broadcom NetLink BCM57785 Gigabit Ethernet PCIe driver: tg3 v: 3.137 bus-ID: 02:00.0 chip-ID: 14e4:16b5 Drives: HDD Total Size: 320.1GB (38.7% used) Info: Processes: 199 Uptime: 37 min Memory: 1214.7/5909.2MB Init: systemd v: 215 runlevel: 5 Gcc sys: 4.9.2 alt: 4.8/5 Client: Shell (bash 4.3.301 running in sudo) inxi: 2.1.28 original post: Hi. I would like to use this on jessie without having to extract the kernel headers myself. Is it possible to remove the gcc-5 requirement since no such package has been built for jessie at this time? OR if it needs to stay please explain why gcc-5 is a requirement to install kernel headers? It limits your user base to require gcc-5. < Edited by sedition :: Mar 4, 16, 13:29 > Back to top |
|||||
liquorix isn't made for frozen pool debian stable releases or ubuntu LTS releases.
it may happen to work for a while after stable release because the gcc version hasn't been updated in testing/unstable yet, but that's just a coincidence. the kernel is compiled with gcc 5 so you have to have gcc 5 installed to compile any module. In other words, say you are going to install nvidia from the run installer, you can't do that with the gcc 5 compiled liquorix kernel and no gcc 5 on the system. And that's the main reason you'd be installing the headers package in the first place. You can either install an older version of liquorix, that was compiled with gcc 4.x, as long as jesse has that gcc version available, or you can not install the headers package. Or you can find a source for gcc 5, like backports. Back to top |
|||||
Thank your your reply. This is understandable.
I have gcc 4.9 Installed, and I suppose I got the lucky "coincidence" where it worked. I required the headers for VirtualBox-5.0. The kernel modules with the headers for the latest release compiled and operate fine with gcc-4.9 after making a sym link to gcc-5. $ dpkg -l | grep gcc ii gcc 4:4.9.2-2 amd64 GNU C compiler ii gcc-4.8-base:amd64 4.8.4-1 amd64 GCC, the GNU Compiler Collection (base package) ii gcc-4.9 4.9.2-10 amd64 GNU C compiler ii gcc-4.9-base:amd64 4.9.2-10 amd64 GCC, the GNU Compiler Collection (base package) ii gcc-4.9-base:i386 4.9.2-10 i386 GCC, the GNU Compiler Collection (base package) ii libgcc-4.9-dev:amd64 4.9.2-10 amd64 GCC support library (development files) ii libgcc1:amd64 1:4.9.2-10 amd64 GCC support library ii libgcc1:i386 1:4.9.2-10 i386 GCC support library ii linux-compiler-gcc-4.9-x86 4.3.3-7~bpo8+1 amd64 Compiler for Linux on x86 (meta-package) I will look for a back-ported package of gcc-5 I appreciate the work that is done compiling these binary kernel releases. edit: There is no back port of gcc-5 available. I will end up building end up building it from source. I quickly through together a fake gcc-5 with a symlink to gcc to so that I can use the header files from the repos. So far my tests with building the modules for VirtualBox5 work fine. This isnt really the right way to do things but it gets the job done for now. Here is a link to the fake gcc-5 deb that may work for some www.filedropper.com/gcc5-fake Back to top |
|||||
Clever idea to trick the system into thinking it has gcc 5 when it's 4.9, obviously that's not a solution that would apply to any but individual cases where the person knows what they are doing and knows that if the thing fails, that's why. But still nice thinking.
gcc5 may be too relatively new for there to be a backport for it yet, or it may simply be way too much work to then backport all the other core packages that would need to also be compiled with gcc5, hard to say, I don't really know how that works. Back to top |
|||||
Thanks. This is something I've had to do in the past a lot with older distributions of Ubuntu.
I was able to successfully build gcc-5 from the gnu sources on jessie. Right now I am in the process of an attempt to build from the Debian source repo's for sid to keep it and standardized as possible. The sources and debian control files reference jessie. But they reference packages which have not made it out of unstable. I pulled the following packages out of sid "binutils_2.26-5_amd64.deb libisl15_0.16.1-1_amd64.deb libisl-dev_0.16.1-1_amd64.deb" and directly installed them directly on to jessie with no dependency issues as a requirement to the build process. The build process is running properly so far and has been for a few hours now. The directions for this process are at. https://wiki.debian.org/HowToPackageForDebian I am essentially back-porting it myself. When the process completes I will edit this post and provide an update. I expect the build to complete and potentially require additional modification the the control file to allow a dpkg install. Back to top |
|||||
I'll ask damentz if he'll pin this thread, the question has come up before, and you're the first person to actually work on a solution.
Back to top |
|||||
Nice little .deb... ;)
Only, You need to pin/hold gcc-5 not to be overwritten/installed (I'm testing gcc-6) ... :: Code :: :~$ sudo apt-get upgrade
Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages have been kept back: gcc-5 system-config-printer-gnome 0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded. :~$ sudo apt-mark hold gcc-5 gcc-5 set on hold. :~$ sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages have been kept back: gcc-5 system-config-printer-gnome 0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded. :~$ sudo apt dist-upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages have been kept back: gcc-5 system-config-printer-gnome 0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded. :~$ echo "gcc-5 hold"|sudo dpkg --set-selections Back to top |
|||||
:: techAdmin wrote :: the question has come up before, and you're the first person to actually work on a solution.Back to top |
|||||
:: zika wrote :: :: techAdmin wrote :: the question has come up before, and you're the first person to actually work on a solution.How kind if you (: The backport process of gcc-5 the "debian way" is still running since my comment the other day. Once its done I should have a somewhat "official" .deb for jessie edit: so my port appears successful of gcc-5 to jessie, its about 500mb of deb files. i am testing the installation right now then i will drop the files somewhere. edit 2: i made a VERY large dirty build of gcc-5 to satisfy the dependency and build issues with the kernel modules on jessie. this is incompatible with any other any installation of gcc-5, and incompatible with sid. use at your own risk. I will upload it once testing is complete. :: Code ::
root@ptah:/home/user# du -mc *dirt* 61 gcc-5-dirty-jessie.deb 61 total root@ptah:/home/user# root@ptah:~/src/testedit# apt-get install virtualbox-5.0 Reading package lists... Done Building dependency tree Reading state information... Done Recommended packages: linux-headers The following NEW packages will be installed: virtualbox-5.0 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/63.8 MB of archives. After this operation, 155 MB of additional disk space will be used. Preconfiguring packages ... Selecting previously unselected package virtualbox-5.0. (Reading database ... 300255 files and directories currently installed.) Preparing to unpack .../virtualbox-5.0_5.0.14-105127~Ubuntu~trusty_amd64.deb ... Unpacking virtualbox-5.0 (5.0.14-105127~Ubuntu~trusty) ... Processing triggers for systemd (215-17+deb8u3) ... Processing triggers for hicolor-icon-theme (0.13-1) ... Processing triggers for shared-mime-info (1.5-2~bpo8+1) ... Processing triggers for desktop-file-utils (0.22-1) ... Processing triggers for mime-support (3.58) ... Setting up virtualbox-5.0 (5.0.14-105127~Ubuntu~trusty) ... addgroup: The group `vboxusers' already exists as a system group. Exiting. Stopping VirtualBox kernel modules ...done. Uninstalling old VirtualBox DKMS kernel modules ...done. Removing old VirtualBox pci kernel module ...done. Trying to register the VirtualBox kernel modules using DKMS ...done. Starting VirtualBox kernel modules ...done. root@ptah:~/src/testedit# uname -a Linux ptah 4.4-3.dmz.2-liquorix-amd64 #1 ZEN SMP PREEMPT Debian 4.4-10 (2016-02-26) x86_64 GNU/Linux root@ptah:~/src/testedit# cat /etc/*release* PRETTY_NAME="Debian GNU/Linux 8 (jessie)" NAME="Debian GNU/Linux" VERSION_ID="8" VERSION="8 (jessie)" ID=debian HOME_URL="http://www.debian.org/" SUPPORT_URL="http://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" root@ptah:~/src/testedit# dpkg -l | grep gcc-5 ii gcc-5 5.3.1-010-JESSIE-DIRTY-BUILD amd64 GNU C compiler ri gcc-5-base:amd64 5.3.1-10 amd64 GCC, the GNU Compiler Collection (base package) root@ptah:~/src/testedit# dpkg -l | grep liquor ii linux-headers-4.4-3.dmz.2-liquorix-amd64 4.4-10 amd64 Header files for Linux 4.4-3.dmz.2-liquorix-amd64 ii linux-headers-liquorix-amd64 4.4-10 amd64 Linux headers for liquorix on 64-bit PCs ii linux-image-4.4-2.dmz.1-liquorix-amd64 4.4-8 amd64 Linux 4.4 for 64-bit PCs ii linux-image-4.4-3.dmz.2-liquorix-amd64 4.4-10 amd64 Linux 4.4 for 64-bit PCs ii linux-image-liquorix-amd64 4.4-10 amd64 Linux image for liquorix on 64-bit PCs ii liquorix-archive-keyring 2009.05.25 all GnuPG archive keys of the liquorix archive ii liquorix-keyring 2009.05.25 all GnuPG keys of liquorix Developers root@ptah:~/src/testedit# Back to top |
|||||
antiX-MX (re)builds liquorix kernels for Debian jessie.
main.mepis-deb.org/mx/repo/pool/main/l/linux-liquorix/ main.mepis-deb.org/mx/testrepo/pool/test/l/linux-liquorix/ Back to top |
|||||
All times are GMT - 8 Hours
|