Jump to content
Read the Funtoo Newsletter: Summer 2023 ×

firefish5000

Members
  • Posts

    2
  • Joined

  • Last visited

Posts posted by firefish5000

  1. Yes, there are some binary portage pakages and package servers. Some popular and resource-intensive ebuilds will have a binnary ebuild in the funtoo/gentoo repos as well. For instance firefox and  icedtea ebuilds are

    accompanied with firefox-bin and icedtea-bin ebuilds.

    My laptop's portage is actualy configured to ask's my desktop to emerge packages from source and build binary packages using the laptops use and cflags.  The laptop then uses the dektop as a binary packager server. (My initial install was done by using portage to cross-compile and copying the boootable img to a usb for testing/installation)

     

    But that is besides the point. While initial setup is usualy quite time consuming, its not suppose to remain that way.

     

    The only profile I set was to "core". After I got passed this (with the commands I gave above) I changed it to "desktop". My make.config was minimal, basically USE="X acpi" and VIDEO_CARDS="vesa radeon". I'm afraid I spent the whole day working on this, so I suspect I am too far beyond where I was to dump any useful info at this point.

     

    A bit O.T. but maybe it will be useful... It is really nice to get highly optimized programs for my machine. Everything runs quite snappy. I don't mind all the time it takes to compile from source to reap that benefit.[1] Unfortunately beyond that upside there has just been one problem after another. With very little to go on, I've spend two whole days searching the internet for solutions over and over. The first being the issue of this thread. The most common issue I had was emerge reporting some USE issues. I never understood what it was talking about (still don't), and just ended up emrging individual packages (those that seemed most fundamental) by hand until emerge was finally happy to do @world.

    From the sound of it, your main problem was failure to understand what use flags are. Ill admit that the funtoo installation documentation fails misrably in describing what they do. However, it does link to the gentoo handbook which gives a detailed description of what they do.

    https://wiki.gentoo.org/wiki/Handbook:AMD64/Working/USE

     

    The idea behind USE flags

    When installing Gentoo (or any other distribution, or even operating system for that matter) users make choices depending on the environment they are working with. A setup for a server differs from a setup for a workstation. A gaming workstation differs from a 3D rendering workstation.

    This is not only true for choosing what packages to install, but also what features a certain package should support. If there is no need for OpenGL, why would someone bother to install and maintain OpenGL and build OpenGL support in most of the packages? If someone doesn't want to use KDE, why would they bother compiling packages with KDE support if those packages work flawlessly without?

    To help users in deciding what to install/activate and what not, Gentoo wanted the user to specify his/her environment in an easy way. This forces the user into deciding what they really want and eases the process for portage to make useful decisions.

    Definition of a USE flag

    Enter the USE flags. Such a flag is a keyword that embodies support and dependency-information for a certain concept. If someone defines a certain USE flag, Portage will know that they want support for the chosen keyword. Of course this also alters the dependency information for a package.

    Take a look at a specific example: the kde keyword. If this keyword is not in the USE variable, all packages that have optional KDE support will be compiled without KDE support. All packages that have an optional KDE dependency will be installed without installing the KDE libraries (as dependency). When the kde keyword is defined, then those packages will be compiled with KDE support, and the KDE libraries will be installed as dependency.

    By correctly defining the keywords the system will be tailored specifically to the user's needs.

    I would recommend you read it in it's entity if you haven't already.

     

    Simply put, USE flags determine what each package/program supports. Generally, use flags determine what each package marks as it's dependencies, and alters the options passed to ./configure for the package. eg. For vlc, the 'qt5' use flag would give you the normal qt based vlc GUI. Failure to add a gtk/qt/ncurses/etc use flag to vlc would result in only cvlc being compiled, giving no GUI.

     

    However, wouldn't this ean that by default almost nothing is supported? In which case, we would have to add a bunch of use flags to out make.conf for basic support? No, luckily profile-config gives us an easy way of adding basic support to a system. Depending on what you plan to install/support, you should add different flavors/mixins from profile-config to get your default-use flags set for your system.  For instance, the kde mixin would add kde-related use flags into the profile.

    Since you mentioned you only have core selected, yet are using X11 and buysybox. I would like to recommend adding funtoo/1.0/linux-gnu/mix-ins/X to it (if not now autoselected by desktop).

     

    Now, although I understand you don't plan on continuing with funtoo due to the frustrations you are experiencing on initial setup, I would like to still request that you post the output so, in the off chancew that you decide to try again, we may have an answer for you.

    In addition to that, I would also like to request you post the contents of '/var/log/emerge.log'. With this much info, we may be better able to help.

    In the event you continue using funtoo and run into further errors, you may wish to join the irc.

    Funtoo Linux has a very active IRC community on Freenode (in the #funtoo channel) and you are encouraged to hang out with us.

    While its harder to be detailed there, I personally find it more than adaquit for most problems. Especially for common problems such as circular deps and setting use flags.

     

     

    While it's not very helpful, and you defiantly should NOT copy/past it, here is my make.conf. I commented my reasonings for adding most of the global use flags.

    Not that these alone do not run my installation. I also have several use flags set in /etc/portage/package.use/* , and have a few things in package.unmask, package.accept_keywords, and package.license .

    For the most part though, unmask-write and dispatch-config added these. 

     

    CFLAGS is/was set to the recommened values. If you wish to compile binaries to be used on other systems, you may wish to change this

    CFLAGS="-march=native -O2 -pipe"
    CXXFLAGS="-march=native -O2 -pipe"
    # I have 4 cores with hyperthreading, so 8 threads+1 to keep all us busy.
    MAKEOPTS="-j9"
    
    USE="
    

    My cpu is showing support for these, So I compile everything with them. This shouldn't be needed, however, as they are selected by my march. I'm not sure why I felt compelled to list them...

    sse sse2 sse3 sse4 ssse3 mmx

    bash-completion yanks the cli out of hell. So I add support for it by default. Without this, even if bash-completion ebuild is emerged, most programs will not provide tab completion.

    I like the lzma compression, especialy when I am stuck trying to cram a bunch of crap onto a small usb stick or cd.

    pcre, or perl compatable regular experession, allow me to do things like grep -P '.+' , and similar in vim . I was intregued with perl for a while, so I have a tendency to write perl regex's. This makes that tendency non decrimental

    bash-completion 
    lzma pcre

    I personnaly hate cups on gentoo/funtoo. I keept ran into circular dependencies with cups, cups-filter, and some other package whenever cups was updated.

    As I do not actually own a printer (new printers always mark the ink as expired before I make a second print, usualy printing only 3 times a year).

    I have also marked it in package.provided and manualy added cups-header o system for compiling icedtea. This is the most complex thing I usualy have to do after completing install.

    And it's actually not all that bad.

    -cups
    

    Awesomewm uses lua, cairo, and I believe libnotify, adding support for it lets things like mpv and conky to better fit in the my WM. Some apps, like audacious, may add notifications (like track changed) when compiled with libnotify. As a single user system, consolekit is pointless.

    cairo -consolekit libnotify -policykit dbus udev

    'dvi' is the LaTex dovument format;

    dvi 
    

    I frequently play with programs which make use of opengl like blender and qemu, apparently.

    opengl gles2 3dnow

    I use alsa, so I have support for it by default. Many packages are setup to support pulse by default, however, making portage attempt to install pulse as a dep. As such, I explisitly state that I do not want to support for it.

    I like ffmpeg, matroska, and flac. I want any video players or editors I install to support them too! Furthermore, I love watching my matroska shows and movies on a colored ascii shell(libcaca). Very high quality! (this a joke, though I do love option)

    Metadata? Yes, I utilize it! As such I add exif support to anything that can support it so I can easily view/alter infor on photoes and tracks.

    alsa aalib -pulseaudio
    ffmpeg flac matroska thumbnail imlib2 imlib imagemagick jpeg png svg libcaca 
    exif
    

    I am using awesomewm, thus gnome and kde support is generaly unwanted. Note that adding gnome use flag wont necessarly install gnome, but it will add packages needed by anything you have installed that have gnome specific support options. However, I don't want gnome support, as it would just add wasted cpu cycles compiling ang running the program. Not to mention time compiling gnome-common and other packages necessary for gnome support.

    Note semantic-desktop, kde semantic search and retrieval, is used by most kde-desktop applications. or all applications.

    Never used emacs...

    -kde -emacs webkit canberra X xattr

    Text/Fonts

    truetype unicode
    

    My system is pure64. I even removed x86 support from the kernel. While profile should have added this, I have it here for re-ensurence.

    -multilib
    

    I have ipv6, so I ensure everything supports using it. without ipv6 here, some programs will not be able to use it by default.

    If you don't have ipv6, '-ipv6' should be used instead to remove support. Which is a good idea since if ipv6 support is added, it is tried first for ~all requests. Adding noticeable lag in networks with no or error pron ipv6 support.

    (comcast gave us ipv6 local network and had a ipv6 dns server defined on the modem by default, but we did not have external  ipv6 support. aaaa request thus hung and initial connections to sites were extreamly slow Furthermore it seemed like my system re-attemprted to establish an ipv6 adress ~every 15 minutes. My network now prefers ipv4, and I have created a ipv6 over ipv4 tunnel for use with ipv6 only sites, completly removing the previous lag.)

    ssl nls ipv6 
    

    My deskop is hardwired, no hardware for wifi nor bluetooth devices. So support is sensless. without '-wifi' packages like networkmanager may add useless apps for controlling such.

    -wifi -bluetooth
    

    Installed apache2. However, my installed php build did not have apache2 support. Added apache2 use flag to add support.

    apache2 apache2_modules_proxy_ajp apache2_modules_proxy "
    

    End of USE

    The rest of the file.

    LINGUAS="en ja"
    
    VIDEO_CARDS="nouveau"
    # If I am using blender a lot, I compile support for both and switch on boot.
    # I dont keep it since I get tired of pathing nvidia. using git-sources.
    # VIDEO_CARDS="nouveau nvidia"
    ALSA_CARDS="hda-intel"
    INPUT_DEVICES="evdev"

    Oftentime, you can fix use errors by simply adding '--autounmask-write' to the emerge command.

    After which, running dispatch-conf should show changes emerge wishes to make in /etc/portage/package.use or package.unmask.

    If it looks good you can accept the changes.

     

    If you ever want to know what use flags are availible, or what they are for, you can find it online here or you can read it localy in '/usr/portage/profiles/use.desc' and '/usr/portage/profiles/use.local.desc'

    You can find short descriptions and acceptable values for other things as well such as VIDEO_CARDS, INPUT_DEVICES, and ALSA_CARDS in the files listed by

    find /usr/portage/profiles/ -regex '.*\.desc$'

    Though thses shouldn't be of much interest too you until you have use flags down.

     

    PS.

    When I first tried to install gentoo, It took me 3 tries and about 6 days. I was coming from ubuntu/debian with ~2 years worth of experience on it. Dispite being relitivly new to GNU/Linux, I was actually able to do everything was perfectly thanks to the manual...  except for missing the kernel support for my hard-drive (silicon-disk or something like that). I kept thinking it was grub2 since I believe it somehow ended up showing some unrelated error message after the kernel crashed (grub2 was near brand new at the time).

    By the 3rd install I had a  64gb usb stcik with 13 distros on it, recursive menues (generated by grub functions) for toggling things like X/nox, failsafe, x86/amd_64, vesa, forensicmode, networkless mode, recoverey mode...

    If it was in the original boot menu, I created a toggle for it in the custom grub2.cfg.  At that point, I knew there was no way that the simple grub2 config was the problem.  And was soon able to diagnose the real error and was dirctede to Debian HCL; Check Kernel Driver Support and report modules

    which made the solution clear as day.

    Point being, mine was a simple fix in the end, and I am hopeful that yours will be too. 

     

    PPS. Thinking about it again, peer-peeer networking with all users acting as binhost could be interesting. However, I would imain verifying every possible binary created (all use options, using every supported version of packages it depends on, which also could be compiled withany use, and any verson of deps... )) would be impossible. So while we could create such a network, we couldnt verify that the majourity of the binaries are truely what they claim to be (except by compiling them ourselves with the same versions of all used packages, which would make the peer network pointless since we or a authoritive server has to compile the package in the end for verification).

  2. If you are running it in a chroot, or can ssh into it, then

     

    Could you post the output of 

    emerge --info ; profile-config show

    And also the output of

    emerge -NavDu --backtrack=50 -p @world

    The '--backtrack=50' sometimes is all thats needed to fix the issue. But it's likely we will need to be a bit more involved.

     

    If your stuck without network connectivity on the machine, or the above options are problematic for some other reason,

    Run

    emerge --info >/tmp/PortageInfo ; profile-config show >>/tmp/PortageInfo;
    emerge -NavDu --backtrack=50 -p @world > /tmp/EmergeInfo

    And then copy the files onto a usb stick to post

    You may also wish to do this, and then boot into another OS and open the files from there. Just be sure to change the path from /tmp/ to something else like /home/user/

×
×
  • Create New...