Home | Docs | Forums | Lists | Bugs | Planet | Store | GMN | Get Gentoo!
Not eligible to see or edit group visibility for this bug.
View Bug Activity | Format For Printing | XML | Clone This Bug
FYI, this ebuild may need to be cleaned up, since this is my first attempt at making an ebuild. It does work, however. Reproducible: Always Steps to Reproduce: 1. 2. 3. Actual Results: Properly emerges icc 8.0. Note, however, that the directory structure has changed a lot from 6.x, 7.x.
Created an attachment (id=22031) [details] dev-lang/icc-8.0.055.ebuild
Created an attachment (id=22032) [details] /usr/portage/dev-lang/icc/files/8.0.055/05icc-ifc
Created an attachment (id=22033) [details] /usr/portage/dev-lang/icc/files/8.0.055/icc
(From update of attachment 22031 [details]) ># Copyright 1999-2003 Gentoo Technologies, Inc. ># Distributed under the terms of the GNU General Public License v2 ># $Header: /home/cvsroot/gentoo-x86/dev-lang/icc/icc-7.0.065.ebuild,v 1.7 2003/11/15 03:22:26 seemant Exp $ > >S=${WORKDIR} > >DESCRIPTION="Intel C++ Compiler - The Pentium optimized compiler for Linux" > >SRC_URI1="ftp://download.intel.com/software/products/compilers/downloads/l_cc_p_8.0.055.tar.gz" >SRC_URI2="ftp://download.intel.co.jp/software/products/compilers/downloads/l_cc_p_8.0.055.tar.gz" >SRC_URI="${SRC_URI1} ${SRC_URI2}" > >HOMEPAGE="http://www.intel.com/software/products/compilers/clin/" > >LICENSE="icc-8.0" > >DEPEND="virtual/linux-sources > >=sys-libs/glibc-2.2.4 > app-arch/cpio > app-arch/rpm" > >RDEPEND="virtual/linux-sources > >=sys-libs/glibc-2.2.4" > >SLOT="8" >KEYWORDS="-* ~x86" >IUSE="" > >src_compile() { > # Keep disk space to a minimum > cd l_cc_p_8.0.055 > rm -f intel-*.ia64.rpm > rm -f intel-ii*.rpm > rm -f intel-isu*.rpm > mkdir opt > > for x in intel-*.i386.rpm > do > einfo "Extracting: ${x}" > rpm2cpio ${x} | cpio --extract --make-directories --unconditional > done > > # From UNTAG_CFG_FILES in 'install' > SD=${S}/l_cc_p_8.0.055/opt/intel_cc_80 # Build DESTINATION > RD=/opt/intel_cc_80 # Real DESTINATION > for FILE in $(find $SD/bin/ -regex '.*[ei][cf]p?c$\|.*cfg$\|.*pcl$\|.*vars[^/]*.c?sh$' 2>/dev/null) > do > sed s@\<INSTALLDIR\>@$RD@g ${FILE} > ${FILE}.abs > mv -f ${FILE}.abs ${FILE} > chmod 755 ${FILE} > done > > # From UNTAG_SUPPORT in 'install' > #eval `grep "^[ ]*COMBOPACKAGEID=" install` > > for SUPPORTFILE in ${SD}/doc/*support > do > einfo "Untagging: ${SUPPORTFILE}" > sed s@\<INSTALLTIMECOMBOPACKAGEID\>@$COMBOPACKAGEID@g $SUPPORTFILE > $SUPPORTFILE.abs > mv $SUPPORTFILE.abs $SUPPORTFILE > chmod 644 $SUPPORTFILE > done >} > >src_install () { > dodoc ${SD}/licenses/lgpltext > dodoc ${SD}/licenses/clicense > cp -a l_cc_p_8.0.055/opt ${D} > > # icc enviroment > insinto /etc/env.d > doins ${FILESDIR}/${PVR}/05icc-ifc > # fix the issue with the primary icc executable > exeinto /opt/intel/compiler80/ia32/bin > doexe ${FILESDIR}/${PVR}/icc >} > >pkg_postinst () { > einfo > einfo "http://www.intel.com/software/products/compilers/clin/noncom.htm" > einfo "From the above url you can get a free, non-commercial" > einfo "license to use the Intel C++ Compiler emailed to you." > einfo "You cannot run icc without this license file." > einfo "Read the website for more information on this license." > einfo > einfo "Documentation can be found in /opt/intel/compiler70/docs/" > einfo > einfo "You will need to place your license in /opt/intel/licenses/" > einfo > if [ -d /opt/intel/compiler?0 ] > then > ewarn > ewarn "Packages compiled with older versions of icc will need" > ewarn "to be recompiled. Until you do that, old packages will" > ewarn "work if you edit /etc/ld.so.conf and change 'compiler70'" > ewarn "to 'compiler60' and run 'ldconfig.' Note that this edit" > ewarn "won't persist and will require you to re-edit after each" > ewarn "package you re-install." > fi > ewarn "If 'icc' breaks, use 'iccbin' instead and report a bug." > ewarn "NOTE: Before compiling important applications that your system" > ewarn "depends on, read the warning above. This could potentially" > ewarn "render your system unusable. This is a problem with Intel's" > ewarn "software, _not_ with Gentoo." >}
Comment #4 is a change to the build which marks it as ~x86. I forgot it in the original.
In the einfo part of the ebuild you refer to "compiler70", I suppose you meant to refer to /opt/intel_cc_80/doc/... Nice job, but why do you move the executable to /opt/intel/compiler80 ??
Doh. Need to fix that. As for moving it to "compiler80", whenever I try to rename the directory from its default during the emerge, I get a sandbox violation. Any idea on how to move it to a different directory?
Created an attachment (id=22042) [details] Revised ICC ebuild
Created an attachment (id=22043) [details] /usr/portage/dev-lang/icc/files/8.0.055/05icc-ifc Revised to fix dual paths of IFC & ICC
Created an attachment (id=22044) [details] /usr/portage/dev-lang/icc/files/8.0.055/icc Revised icc script
Revised files should fix most problems; however, I still can't get the ebuild to play nice and put the files into /opt/intel/compiler80 because the original RPM files no longer use that path.
Created an attachment (id=22051) [details] Fix for old environment variable file
Created an attachment (id=22169) [details] Updated ICC Ebuild for 8.0.55 Now fixes the path of the compiler to /opt/intel/compiler80 like it should.
Created an attachment (id=22170) [details] 05icc-ifc env.d file
Created an attachment (id=22171) [details] icc file fix for command line
New ebuild fixes the path to /opt/intel/compiler80. It is also now marked ~x86, and the text of the header and finishing text has been changed to reflect the new build.
Created an attachment (id=22172) [details] Minor patch for previous ebuild Fixes placement of icc script file to correct location.
Created an attachment (id=22178) [details] /usr/portage/dev-lang/icc/files/8.0.055/05icc-ifc
Created an attachment (id=22180) [details] /usr/portage/dev-lang/icc/files/8.0.055/icc Fixes yet another path typo.
Created an attachment (id=22310) [details] Ebuild for ICC 8.0.055, accounts for fixed icpc script The previous build was not fixing the script for icpc. Though not serious, this ebuild and the accompanying icpc file fix the problem.
Created an attachment (id=22311) [details] /usr/portage/dev-lang/icc/files/8.0.055/icpc
Created an attachment (id=22351) [details] ICC 8.0.055 Ebuild with new conf.d configuration file support This ebuild now installs into /etc/conf.d a file called "iccifc" which contains global variables which can be used in ebuilds for configuring ICC and IFC.
Created an attachment (id=22352) [details] /usr/portage/dev-lang/icc/files/8.0.055/iccifc This file goes into /etc/conf.d and contains compiler flags and settings for the ICC and IFC compilers.
/etc/conf.d is specifically for init scripts. You may want to look into moving that to /etc/env.d. (FYI - ebrostig is picking up ICC maintainership soon and will get this bug.)
*** This bug has been marked as a duplicate of 35578 ***
Reopening this one since it has an ebuild attached.
*** Bug 35578 has been marked as a duplicate of this bug. ***
With respect to the env.d / conf.d issue: The iccifc file is not something I want called by env-update. Should I make a directory in env.d called iccifc and put the file in there instead, similar to the gcc directory that currently exists?
That'd work, but how about just a /etc/icc.conf or something along those lines? You've done some pretty impressive work on this. If ebrostig's okay with it, after my Christmas break I'd like to pair you up with him and set you up with a developer account for ICC ebuild maintainance, and perhaps you two can work together on clean Portage integration.
No problems from my side.
Created an attachment (id=22413) [details] /usr/portage/dev-lang/icc/files/8.0.055/iccifc.conf This file replaces the old iccifc file which went into /etc/conf.d. It now goes into /etc as iccifc.conf.
Created an attachment (id=22414) [details] ICC 8.0.055 Ebuild with modified configuration file Just moves the iccifc file to /etc/iccifc.conf
As for the developer account - I'm flattered, to say the least. :)
Created an attachment (id=22443) [details] New 8.0.055 ebuild that keeps the debugger and preserves ia64 This is the ebuild I wrote (modified 7.1... ebuild) that keeps the debugger (still 7.3) from the 8.0.055 package in /opt/intel/compiler80/bin and preserves the ia64 bits as much as possible. I have also changed the directory structure to leave out the ia32 and ia64 bits because they can coexist in /opt/intel/compiler80/. I actually created the same icc and icpc scripts in the files dir as listed above because the original ones were incorrectly changing the command line parameters with and could ruin the binary or the source file name under compile. I hope this helps.
Another change that should be done is to change the glibc prereq to 2.3.2. The 2.2.4+ req is from 7.0. There are a number of (very minor) problems with glibc 2.2.4 and 2.2.5 that prevent some things being built with icc >= 7.0; I have some trivial patches for them and even submitted some eons ago, but as 2.3.2-r(something) is now the 'stable' version it's probably not worth dealing with.
Created an attachment (id=22559) [details] trivial diff to update glibc-2.3.2 req
unfortunately the ebuild fails on me. dawikidnezz Documenten # ACCEPT_KEYWORDS="~x86" emerge icc Calculating dependencies ...done! >>> emerge (1 of 1) dev-lang/icc-8.0.055 to / >>> md5 src_uri ;-) l_cc_p_8.0.055.tar.gz >>> Unpacking source... >>> Unpacking l_cc_p_8.0.055.tar.gz to /var/tmp/portage/icc-8.0.055/work >>> Source unpacked. * Untagging: /var/tmp/portage/icc-8.0.055/work/opt/intel_cc_80/doc/csupport * Untagging: /var/tmp/portage/icc-8.0.055/work/opt/intel_idb_73/doc/idbsupport >>> Install icc-8.0.055 into /var/tmp/portage/icc-8.0.055/image/ category dev-lang cp: cannot stat `/home/dabooty/portage_overlay/dev-lang/icc/files/8.0.055/05icc-ifc-ia32': Onbekend bestand of map install: cannot stat `/var/tmp/portage/icc-8.0.055/temp/05icc-ifc': Onbekend bestand of map !!! ERROR: dev-lang/icc-8.0.055 failed. !!! Function src_install, Line 98, Exitcode 1 !!! (no error message)
the ebuild from comment 32 works fine though
Created an attachment (id=22940) [details] modified comment 32's ebuild slightly See the attachment. The diff is below. Mainly this fixes the /etc/iccifc.conf installation as the line was wrong for it in the ebuild. I bumped the dependency of glibc to 2.3.2 per Garen's suggestion as well. Also fixed the blurb at the end that tells the user about /etc/iccifc.conf --- icc-8.0.055.ebuild.old 2003-12-31 22:46:15.000000000 -0600 +++ icc-8.0.055.ebuild 2003-12-31 22:23:48.000000000 -0600 @@ -15,12 +15,12 @@ LICENSE="icc-8.0" DEPEND="virtual/linux-sources - >=sys-libs/glibc-2.2.4 + >=sys-libs/glibc-2.3.2 app-arch/cpio app-arch/rpm" RDEPEND="virtual/linux-sources - >=sys-libs/glibc-2.2.4" + >=sys-libs/glibc-2.3.2" SLOT="8" KEYWORDS="-* x86" @@ -78,7 +78,7 @@ doexe ${FILESDIR}/${PVR}/icc doexe ${FILESDIR}/${PVR}/icpc insinto /etc - doins #{FILESDIR}/{$PVR}/iccifc.conf + doins ${FILESDIR}/${PVR}/iccifc.conf } pkg_postinst () { @@ -110,7 +110,7 @@ ewarn "software, _not_ with Gentoo." ewarn einfo - einfo "Compiler flags and settings can be changed in /etc/conf.d/iccifc" + einfo "Compiler flags and settings can be changed in /etc/iccifc.conf" einfo }
Created an attachment (id=22941) [details] ebuild arr. Seems to be a bug in bugzilla when you use an apostrophe in the file description. I hope it works this time.
I notices that some of the file permissions in /opt/intel/compiler80/bin are wrong. Errormatch.txt is executable for instance. This is not very serious of course but what about changing the following lines of code > for FILE in $(find $SD/bin/ -regex '.*[ei][cf]p?c$\|.*cfg$\|.*pcl$\|.*vars[^/]*.c?sh$' 2>/dev/null) > do > sed s@\<INSTALLDIR\>@$RD@g ${FILE} > ${FILE}.abs > mv -f ${FILE}.abs ${FILE} > chmod 755 ${FILE} > done to > for FILE in $(grep -l '<INSTALLDIR>') > do > sed s@\<INSTALLDIR\>@$RD@g ${FILE} > ${FILE}.abs > chmod --reference=${FILE} ${FILE}.abs > mv ${FILE}.abs ${FILE} > done ?
Created an attachment (id=23739) [details] ebuild Made the change I mentioned above. If a anybody doesn't like this please (point out why and) revert/delete
Created an attachment (id=23741) [details] ebuild Corrected formatting error. Also, in Comment #41 there is a typo. it should be > for FILE in $(grep -l "<INSTALLDIR>" *) ^ of course
Created an attachment (id=24020) [details] ebuild - cleaned up the ebuild - fixed some `untagging` related stuff - removed dependency on virtual/linux-sources still wondering if their should be a seperate ebuild for the intel debugger since it is also contained in the ifc/ifort tarball. currently the debugger is not installed at all.
regarding /etc/iccifc.conf... wouldn't it be most convenient to have two files /etc/icc.conf and /etc/ifc.conf which redfine compilation related environment variables like > #/etc/icc.conf > > CC="icc" > CFLAGS="-fast -xNW -tpp7" > LD="xild" > ... so that these files can simply be sourced from the ebuild: > #/usr/portage/category/application/version.ebuild > ... > use icc && source /etc/icc.conf > use ifc && source /etc/ifc.conf The ifc use flag does not yet exist of course. I guess it won't be used very often anyway...
ICC integration is going to be handled through Portage, not in individual ebuilds.
Great, I'm looking forward to see how that will work out.
Also -- I agree that ICC and IFC should probably use different config files so they aren't tripping over each other.
BTW, the env.d files are currently overwriting each other, which breaks things if different major versions of ifc/icc are installed.
By now, we already have an ebuild for 8.0.055 in the tree. If there are issues with it, please open a fresh bug about it. I consider this request fulfilled by our current offering.