
You are not logged in.
What does you make.conf look like? Which options do you prefer and why?
My make.conf:
$ cat /etc/make.conf
# These settings were set by the metro build script that automatically built this stage.
# Please consult /etc/make.conf.example for a more detailed example.
ACCEPT_KEYWORDS="amd64"
CHOST="x86_64-pc-linux-gnu"
FEATURES="mini-manifest buildpkg fakeroot"
CFLAGS="-march=amdfam10 -O2 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j5"
EMERGE_DEFAULT_OPTS="--verbose --keep-going"
PORTAGE_BINHOST="/usr/portage/packages"
USE="3dnow apache2 apm avahi bash-completion cdb cdda cddb cdparanoia clamav
djvu dv dvb examples ffmpeg ftp geoip gimp gstreamer handbook hddtemp
jack java javascript joystick jpeg2k kde kerberos kontact latex lirc
lm_sensors maildir maps matroska mozilla msql musepack mysql mysqli
networkmanager nntp nsplugin rss samba scanner semantic-desktop sqlite3
syslog threads tk v4l v4l2 vcd videos vnc xine -gnome -gtk"
INPUT_DEVICES="evdev keyboard mouse joystick"
VIDEO_CARDS="radeon vesa fglrx"
ACCEPT_LICENSE="*"
PORTAGE_ELOG_CLASSES="info warn error log"
PORTAGE_ELOG_SYSTEM="save"Offline
# ---[Compiler Settings]--- #
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -msse4.1 -O2 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j3"
# ---[Overlay Settings]--- #
source /var/lib/layman/make.conf
# ---[Portage Settings]--- #
ACCEPT_KEYWORDS="~amd64"
ACCEPT_LICENSE="dlj-1.1 AdobeFlash-10.1"
#add ccache locations
#CCACHE_DIR="/var/ccache"
#CCACHE_SIZE="2G"
CLEAN_DELAY='3'
EMERGE_DEFAULT_OPTS="--ask --tree --verbose"
EMERGE_WARNING_DELAY='3'
#Add nostrip to FEATURES to keep portage from stripping binaries
#FEATURES="ccache"
#FEATURES="buildpkg"
FEATURES="mini-manifest"
GENTOO_MIRRORS="http://www.gtlib.gatech.edu/pub/gentoo"
PORTAGE_NICENESS="10"
PORTAGE_ELOG_SYSTEM="save"
PORTAGE_ELOG_CLASSES="warn error info log qa"
PORTDIR=/usr/portage
# ---[System Settings]---
ALSA_CARDS="hda-intel"
INPUT_DEVICES="evdev keyboard mouse"
LINGUAS="en_US"
VIDEO_CARDS="nvidia"
# ---[Use Flags]---
#Enable/Disable
USE="
bash-completion branding cleartype corefonts dbus esd fontconfig
gnome gnome-keyring gtk mysql nautilus opengl policykit
qt3support qt4 truetype type1 unicode vim-syntax X
"Offline
# These settings were set by the metro build script that automatically built this stage.
# Please consult /etc/make.conf.example for a more detailed example.
CFLAGS="-O2 -march=native -pipe"
CHOST="x86_64-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j5 -l5"
#GENTOO_MIRRORS="ftp://mirror.csclub.uwaterloo.ca/gentoo-distfiles/ http://distfiles.gentoo.org"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
USE="kde -gnome -xfce qt4 qt3support xcomposite nls truetype userlocales unicode gnutls"
LINGUAS="fr"
INPUT_DEVICES="evdev"
VIDEO_CARDS="vesa nvidia"
ACCEPT_KEYWORDS="~amd64"
ACCEPT_LICENSE="${ACCEPT_LICENSE} AdobeFlash-10"
FEATURES="${FEATURES} mini-manifest"
PORTAGE_ELOG_CLASSES="log warn error info"
PORTAGE_ELOG_SYSTEM="echo:log,error,warn,info save:log,error,warn,info syslog:log,error,warn,info"
EMERGE_DEFAULT_OPTS="--jobs=5 --load-average=5.0 --with-bdeps y"Offline
$ cat /etc/make.conf
# These settings were set by the metro build script that automatically built this stage.
# Please consult /etc/make.conf.example for a more detailed example.
ACCEPT_KEYWORDS="~amd64"
ACCEPT_LICENSE="*"
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -O2 -pipe"
CXXFLAGS="${CFLAGS}"
# Mini Manifests Portage
PORTDIR=/usr/portage-mini-2010
FEATURES="mini-manifest"
USE="mmx sse sse2 sse3"
MAKEOPTS="-j3"
XSERVER="-qt3 -arts -kde -hal X gtk -gnome jpeg gif tiff png spell opengl jpeg2k"
MMEDIA="cdr dvdr dvi"
SECURITY="gnome-keyring xinerama automount"
POWER="acpi"
SOUND="alsa"
NETWORK="xulrunner"
PRINT="cups avahi"
OTHER="java dbus"
RUBY_TARGETS="ruby_targets_ruby18"
USE="${USE} ${XSERVER} ${MMEDIA} ${SECURITY} ${POWER} ${SOUND} ${NETWORK} ${PRINT} ${OTHER} ${RUBY_TARGETS}"
LINGUAS="en de"
VIDEO_CARDS="ati radeonhd radeon"
INPUT_DEVICES="evdev keyboard mouse synaptics"
#RUBY_TARGETS="ruby18"
# Layman/Own sources
source /usr/local/portage/self/make.conf
source /var/lib/layman/make.confOffline
ACCEPT_KEYWORDS="amd64"
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=core2 -mtune=core2 -msse4.1 -pipe"
CXXFLAGS="$CFLAGS"
MAKEOPTS="-j3"
VIDEO_CARDS="nvidia nv vesa"
ALSA_CARDS="ctxfi"
INPUT_DEVICES="keyboard mouse"
AUTOCLEAN="yes"
LINGUAS="ru en"
PORTDIR_OVERLAY="/usr/overlay"
FEATURES="collision-protect mini-manifest"
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/"
USE="X bash-completion cleartype dbus enca ffmpeg fontconfig gstreamer kde mng
opengl qt3support qt4 sndfile spell sql ssse3 svg tray vdpau vnc webkit
wxwidgets -32bit -cups -ipv6 -xine"
source /var/lib/layman/make.confLast edited by damex (2010-10-14 16:41:15)
Offline
Mine, on ninja1. Note that I can't use mini-manifest on this box as it must generate full manifests (since I also provide a non-mini-manifest tree for users...)
ACCEPT_KEYWORDS="~amd64"
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -O2 -pipe"
DISTDIR=/var/distfiles
PORTDIR=/var/git/portage-prod
MAKEOPTS="-j12"
PORTDIR_OVERLAY="/root/git/funtoo-overlay"
PROFILE="default/linux/amd64/2008.0"
RUBY_TARGETS="ruby19"
ACCEPT_LICENSE="PUEL"
#virtualbox
USE="$USE headless rdesktop-vrdp vboxwebsrv"Offline
What kind of box do you own DR ?
-j12 ????
Offline
Are you kidding ? That's not a box, that's a Server blade ![]()
http://www.dell.com/us/business/p/poweredge-r710/pd
How long to do a emerge -eav @system on that box ? Less then 50 minutes ?
Offline
My pc-desktop: Asus P5K, core2 "Yorkfield" @ 3,21 GHz 4 GiB ram ddr2 @801 MHz nvidia gts250 (G92) 500 + 350 GiB hdd sata II.
# These settings were set by the metro build script that automatically built this stage.
# Please consult /etc/make.conf.example for a more detailed example.
ACCEPT_KEYWORDS="amd64"
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
USE="mmx sse sse2 sse3 ssse3 sse4 X Xaw3d a52 aac aalib alsa ao bash-completion bcmath gtk xorg glibc-omitfp mpi smp custom-cflags \
custom-optimization custom-cpuopts xvmc gtk extras audiofile cairo cdda cddb cdparanoia cdr cgi cracklib cdr css cups cxx dbus \
dga djvu dri gdu device-mapper gd posix disk-partition automount icu ntfs fat thunar gpm bluetooth gnome kde mysql sql webkit xulrunner \
kdrive dts dv dvb dvd dvdr eds encode evo exif axpat fastcgi ffmpeg fftw flac foomaticdb fortran gdbm policykit sqlite hddtemp gpm \
ggi gimp ginac gimp gnutls gphoto2 gps gsm gls graphviz gstreamer hal ieee1394 jbig jpeg jpeg2k lame twolame libv4l libv4l2 libgda lirc lzo matroska mng \
mp3 mp4 mpeg mtp mplayer musepack musicbrainz nas nptl openal ogg openexr openmp oss pch perl pda pcre pcntl pdf plasma posix png \
prelude ppds python pulseaudio qt4 raw scanner semantic-desktop shorten smartcard sndfile speex spell ssl svg svga tcl tk threads syslog \
subversion glib java mpi-threads fuse theora v4l v4l2 vcd win32codecs vorbis wapack wmf x264 xcb xft xine xpm xv xvid zlib optimized-qmake \
fontconfig imagemagick mjpeg floppy xrandr midi timidity curl libass libcaca vdr faac faad schroedinger glitz cleartype qt3support mono network \
quicktime opengl -mmxext -3dnow -3dnowext lm_sensors sip wav vdpau nvidia cuda"
INPUT_DEVICES="mouse keyboard evdev"
VIDEO_CARDS="vesa nvidia"
LDFLAGS="${LDFLAGS} -Wl,--hash-style=gnu"
MAKEOPTS="-j5"
LINGUAS="it"
ACCEPT_LICENSE="*"
PORTAGE_TMPDIR="/dev/shm/portage"
#PORTAGE_PORTDIR=/usr/portage-mini-2010
FEATURES="${FEATURES} mini-manifest"
#source /var/lib/layman/make.confOffline
From my laptop, :
ACCEPT_KEYWORDS="~amd64"
ACCEPT_LICENSE="*"
CFLAGS="-march=native -O2 -pipe -ggdb"
CHECKREQS_ACTION="error"
CHOST="x86_64-pc-linux-gnu"
CXXFLAGS="-march=native -O2 -pipe -ggdb"
DISTDIR="/usr/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps=y"
FEATURES="buildpkg mini-manifest splitdebug"
LINGUAS="en en_US"
PKGDIR="/usr/packages"
PORTAGE_ELOG_CLASSES="info,warn,error,log,qa"
PORTAGE_ELOG_SYSTEM="echo:info,warn,error,log,qa save:warn,error,log,qa"
PORT_LOGDIR="/var/log/portage"
PORTAGE_TMPDIR="/tmp"
PORTDIR_OVERLAY="/usr/overlays/rh1"
VIDEO_CARDS="nvidia"
USE="X a52 aac aalib acl acpi alsa berkdb bluetooth branding bzip2 cairo cdda
cdr cli consolekit cracklib crypt css cups cxx dbus dri dts dv dvd dvdr
emboss encode exif fam ffmpeg firefox flac fortran ftp gd gdbm gif gimp
git gphoto2 gpm gtk hddtemp iconv ieee1394 ipod ipv6 java joystick jpeg
jpeg2k laptop lcms ldap libcaca libnotify lirc lm_sensors mad matroska
mercurial mikmod mmx mng modules mp3 mp4 mpeg mtp mudflap musepack
musicbrainz ncurses networkmanager nls nptl nptlonly nsplugin offensive
ogg openexr opengl openmp pam pango pcmcia pcre pda pdf perl png
policykit ppds pppd python qt3support qt4 quicktime rdesktop readline
reflection rss samba sasl scanner sdl session sharedmem smp speex spell
sqlite sse sse2 sse3 ssl ssse3 startup-notification subversion svg sysfs
tcpd theora threads thunar tiff truetype unicode usb v4l2 vcd videos vnc
vorbis wavpack wifi wmf wxwidgets x264 xcb xine xml xorg xscreensaver
xulrunner xv xvid zlib -hal -minimal"Offline
Asus 1215n
ACCEPT_KEYWORDS="~amd64"
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=native"
MAKEOPTS="-j4 --quiet"
FEATURES="parallel-fetch mini-manifest"
PORTAGE_NICENESS="19"
INPUT_DEVICES="keyboard mouse synaptics evdev"
LINGUAS="en pl"
VIDEO_CARDS="intel"
USE_OPTIMIZE="sse2 threads glibc-omitfp ssse3"
USE_FANCY="jpeg png tiff vorbis x264 xvid xft fontconfig X opengl -cleartype lcdfilter libnotify"
USE_MISC="logrotate dbus ipv6 zsh-completion system-sqlite cups vim-syntax slang"
USE_JUNK="-networkmanager -arts -gstreamer -hal -rc_enable"
USE="${USE_OPTIMIZE} ${USE_FANCY} ${USE_MISC} ${USE_JUNK}"
ACCEPT_LICENSE="*"
# ccache
FEATURES="${FEATURES} ccache"
CCACHE_DIR="/root/tmp/ccache"
CCACHE_SIZE="2G"
PORTAGE_COMPRESS = "bzip2"
PORTAGE_COMPRESS_FLAGS = "-9"
# elogv
PORTAGE_ELOG_SYSTEM="save"
PORTAGE_ELOG_CLASSES="warn error info log qa"
# Layman
source /var/lib/layman/make.confI uses almost the same make.conf on each box.
Work smart not hard.
Offline
Guys, the --quiet option is there for what ?
Offline
Guys, the --quiet option is there for what ?
I leaked , I really don't know how it works there , but looking like it works ![]()
Coffee, which sticks to the spoon and dries up there is the most delicious thing in the world.
Offline
Here is mine..
# These settings were set by the metro build script that automatically built this stage.
# Please consult /etc/make.conf.example for a more detailed example.
ACCEPT_KEYWORDS="~amd64"
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -O2 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j5"
#LDFLAGS="${LDFLAGS} --as-needed"
USE="-bluetooth -ldap dbus udev hal jpeg lock session extras thunar vdpau imap ffmpeg gnutls sasl lm_sensors cups nsplugin mmx sse sse2 ssse3"
XFCE_PLUGINS="brightness menu trash"
LINGUAS="sv en"
INPUT_DEVICES="evdev"
VIDEO_CARDS="nvidia"
ALSA_CARDS="snd-hda-intel"
ACCEPT_LICENSE="*"
source /var/lib/layman/make.conf
FEATURES="${FEATURES} mini-manifest"Last edited by Jallee (2010-10-16 11:44:21)
Offline
Guys, the --quiet option is there for what ?
From 'man make':
-s, --silent, --quiet
Silent operation; do not print the commands as they are executed.Offline
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=native -mtune=generic -O2 -pipe"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,--hash-style=gnu,-O1 -Wl,--as-needed,-z,now"
MAKEOPTS="-j5 -l5"
PORTAGE_NICENESS="0"
EMERGE_DEFAULT_OPTS="--load-average=4.0 --verbose"# --jobs=4"
AUTOCLEAN="yes"
ACCEPT_KEYWORDS="~amd64"
ACCEPT_LICENSE="dlj-1.1 skype-eula AdobeFlash-10.1"
LINGUAS="it"
LANG="${LINGUAS}"
ALSA_CARDS="snd_hda_intel"
VIDEO_CARDS="fglrx radeon"
USE="cups custom-cflags custom-optimization dbus fbcon gif -gtk -gnome gnutls -hal -ipv6 jpeg jpeg2k -kde opengl png vim-syntax X zsh-completion"
#CCACHE_SIZE="5G"
SANE_BACKENDS="hp"
APACHE2_MODULES=""
GENTOO_MIRRORS="ftp://mirror.switch.ch/mirror/gentoo/"
RUBY_TARGETS="ruby18 ruby19"
INPUT_DEVICES="evdev"
#PORTDIR=/usr/portage.old
PORTDIR_OVERLAY=/usr/local/portage
PORTAGE_ELOG_CLASSES="log warn error info"
PORTAGE_ELOG_SYSTEM="echo:log,warn save:log,warn,error,info syslog:error"
FEATURES="parallel-fetch metadata-transfer userfetch mini-manifest collision-protect sandbox" #ccache" //DO _NOT_ USE NOW, /var/tmp mounted in RAM
source /var/lib/layman/make.confLast edited by Bronsa (2010-10-15 18:50:33)
Offline
I saw LDFLAGS="--as-needed" in one of the make.conf posts. That should be LDFLAGS="-Wl,--as-needed" The reason is that linking is done through the gcc wrapper, so -Wl, tells it what to pass to the linker. ld is generally not being called directly.
Offline
something like that ...
#I'm walking through the city. Like a drunk, but not. With my slip showing a little. Like a drunk, but not... # An addiction to hands and feet # There's a meat market down the street # The boys and girls watch each other eat # When they really just wanna watch each other sleep
Do all your configs contain lyrics and poetry? ![]()
Offline
Cndy, if yes, feel free to post some more lyrics here, so that we could include some more "fun" into funtoo, so that a reading of config files in funtoo is even more fun of funtoo...
Offline
Also my programs contain chords and songs :3
Coffee, which sticks to the spoon and dries up there is the most delicious thing in the world.
Offline
Here is mine:
# These settings were set by the metro build script that automatically built this stage.
# Please consult /etc/make.conf.example for a more detailed example.
ACCEPT_KEYWORDS="~amd64"
FEATURES="mini-manifest"
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe -floop-interchange -floop-strip-mine -floop-block"
CXXFLAGS="-march=native -O2 -pipe -floop-interchange -floop-strip-mine -floop-block"
DISTDIR="/home/oleg/distfiles"
USE="-* oss curl threads git webdav symlink mdev acl amd64 berkdb bzip2 cracklib crypt gdbm gpm gmp iconv ncurses nls nptl nptlonly openmp pam pcre perl python readline sse sse2 ssse3 ssl tcpd sysfs unicode wavpack xml zlib"
ALSA_CARDS=""
ALSA_PCM_PLUGINS=""
APACHE2_MODULES=""
LCD_DEVICES=""
INPUT_DEVICES=""
VIDEO_CARDS=""
MAKEOPTS="-j5"
PORTAGE_COMPRESS="xz"
PORTAGE_COMPRESS_FLAGS="-9"
EMERGE_DEFAULT_OPTS="--jobs=5 --load-average=5.0"
GENTOO_MIRRORS="http://mirror2.corbina.ru/gentoo-distfiles/ ftp://mirror2.corbina.ru/gentoo-distfiles/ http://mirror.yandex.ru/gentoo-distfiles/ ftp://mirror.yandex.ru/gentoo-distfiles/ ftp://gentoo.kiev.ua/ http://gentoo.kiev.ua/ftp/"
PORTDIR_OVERLAY="/var/lib/layman/oss-overlay"
source /var/lib/layman/make.conf
Last edited by angry_vincent (2010-10-17 07:23:32)
Offline
That's mine! ![]()
# These settings were set by the metro build script that automatically built this stage.
# Please consult /etc/make.conf.example for a more detailed example.
# ---[ Architecture and Compiler Settings ]--- #
CHOST="i686-pc-linux-gnu"
CFLAGS="-O2 -march=atom -mtune=atom -msse -msse2 -msse3 -mssse3 -mfpmath=sse -fomit-frame-pointer -pipe -msahf -mmovbe --param l1-cache-size=24 --param l1-cache-line-size=64 --param l2-cache-size=512"
CXXFLAGS="-O2 -march=atom -mtune=atom -msse -msse2 -msse3 -mssse3 -mfpmath=sse -fomit-frame-pointer -pipe -msahf -mmovbe --param l1-cache-size=24 --param l1-cache-line-size=64 --param l2-cache-size=512"
LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,--sort-common"
MAKEFLAGS="-j2 --quiet"
# ---[ Portage Settings ]--- #
ACCEPT_KEYWORDS="~x86"
ACCEPT_LICENSE="AdobeFlash-10.1 dlj-1.1 PUEL"
EMERGE_DEFAULT_OPTS="--ask --verbose --jobs=2 --keep-going"
FEATURES="mini-manifest ccache"
LINGUAS="de"
PORTAGE_NICENESS="19"
USE="bash-completion ccache cleartype d3d device-mapper dhcpcd disk-partition
djvu dri ebook embedded ffmpeg foomaticdb gimp gnutls java6 jpeg2k kde
kipi laptop lastfm libkms libv4l libv4l2 lzma matroska mmx mplayer msn
musicbrainz mysql nsplugin openexr optimized-qmake oscar otr pch phonon
plasma policykit rss scsi semantic-desktop smp sse sse2 sse3 ssse3 theora
threads thumbnail thumbnails udev v4l v4l2 vcd vim-syntax webinterface
xcomposite xinerama zeroconf -lvm1"
# ---[ Mirror Settings ]--- #
GENTOO_MIRRORS="http://mirrors.kernel.org/gentoo/ http://distfiles.gentoo.org/"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
# ---[ CCache Settings ]--- #
CCACHE_DIR="/var/tmp/ccache"
CCACHE_SIZE="2G"
# ---[ Device Settings ]--- #
FOO2ZJS_DEVICES="hp1215"
INPUT_DEVICES="evdev keyboard mouse synaptics"
VIDEO_CARDS="intel i915"
# ---[ Overlay Settings ]--- #
source /var/lib/layman/make.conf
I_PROMISE_TO_SUPPLY_PATCHES_WITH_BUGS=1 # GCC from toolchain overlay requieres this
PORTDIR_OVERLAY="/usr/local/portage" # Local Overlay And that's my system:
System: Host NC10 Kernel 2.6.36-rc8-git2 i686 (32 bit) Distro Funtoo Linux - baselayout 2.1.8
CPU: Single core Intel Atom N270 (-HT-) cache 512 KB flags (nx sse sse2 sse3 ssse3) bmips 3192.4
Clock Speeds: (1) 1600.00 MHz (2) 1600.00 MHz
Graphics: Card Intel Mobile 945GME Express Integrated Graphics Controller X.org 1.9.99.1 Res: 1024x600
Audio: Card Intel 82801G (ICH7 Family) High Definition Audio Controller driver HDA Intel BusID: 00:1b.0
Sound: Advanced Linux Sound Architecture Version 1.0.23
Network: Card-1 Atheros AR5001 Wireless Network Adapter driver ath5k v: 0.6.0 BusID: 02:00.0
Card-2 Marvell 88E8040 PCI-E Fast Ethernet Controller driver sky2 v: 1.28 at port 2000 BusID: 03:00.0
Disks: HDD Total Size: 160.0GB (51.4% used) 1: /dev/sda WDC_WD1600BEVT 160.0GB
Partition: ID:/ size: 15G used: 9.5G (68%) fs: rootfs ID:/ size: 15G used: 9.5G (68%) fs: ext4
ID:/boot size: 107M used: 27M (27%) fs: ext2 ID:/home size: 84G used: 68G (81%) fs: ext4
ID:swap-1 size: 2.15GB used: 0.00GB (0%) fs: swap
Info: Processes 159 Uptime 1:19 Memory 367.5/999.1MB Runlevel 3 Client Shell inxi 1.4.20 Last edited by a-st (2010-10-17 12:12:49)
Offline
I saw LDFLAGS="--as-needed" in one of the make.conf posts. That should be LDFLAGS="-Wl,--as-needed" The reason is that linking is done through the gcc wrapper, so -Wl, tells it what to pass to the linker. ld is generally not being called directly.
Tanks for the explanation.
Now even i dare to use it..
Offline
Funtoo for years have as-needed in default's ldflags.
Work smart not hard.
Offline