{"id":138,"date":"2013-12-19T22:38:53","date_gmt":"2013-12-19T22:38:53","guid":{"rendered":"http:\/\/blog.ignoranthack.me\/?p=138"},"modified":"2014-04-19T14:46:00","modified_gmt":"2014-04-19T14:46:00","slug":"you-need-to-construct-additional-pylons-building-wine-for-freebsd","status":"publish","type":"post","link":"http:\/\/blog.ignoranthack.me\/?p=138","title":{"rendered":"You need to construct additional pylons.  Building wine for #FreeBSD"},"content":{"rendered":"<p>I&#8217;ve been playing Blizzards&#8217;s Starcraft 2 on Linux via wine emulation lately and thought I&#8217;d see if I can get the same thing working on FreeBSD via the emulators\/i386-wine-devel port.\u00a0 After talking with the fine folks in #bsdports on EFNet, I finally found a recipe that is poudriere friendly and seems to spit out something that sort of works.<\/p>\n<p>David Naylor (dbn@freebsd.org) has a working method for constructing wine on FreeBSD and this should work in most cases for using current.\u00a0 The method is really designed for building a binary package for releases, most folks wouldn&#8217;t want to go down this route.<\/p>\n<p>In order to begin, get poudriere configured and ready to go.\u00a0 You&#8217;ll need to construct an i386 jail for the first part of this process.\u00a0 Something like I show in my <a title=\"How I learned to stop worrying and love the powderkeg.  #FreeBSD\" href=\"http:\/\/blog.ignoranthack.me\/?p=129\" target=\"_blank\">poudiere blog post<\/a><\/p>\n<blockquote><p>poudriere jail -c -j 11i386 -v head -a i386 -m svn<\/p><\/blockquote>\n<p>This will give you a build environment to get the 32bit binaries for wine built and packaged up for step 2.<\/p>\n<blockquote><p>poudriere builk -j 11i386 emulators\/i386-wine-devel<\/p><\/blockquote>\n<p>If all goes well, you now have an i386 package of wine that will be consumed as a distfile for the amd64 package build.\u00a0 I redefine PORTSDIR=\/usr\/local\/poudriere\/ports\/default in \/etc\/make.conf.<\/p>\n<p>If you are like me and use poudriere for everything, copy it to \/usr\/local\/poudriere\/ports\/defaults\/distfiles\/freebsd:11:x86:64\/<\/p>\n<p>Now you&#8217;ll need to edit the emulators\/i386-wine-devel distfile with the appropriate information generated from a sha256 and ls -l of your packagefile in your local i386 repo:<\/p>\n<blockquote><p>sha256 i386-wine-devel-1.7.7,1.txz<\/p>\n<p>SHA256 (i386-wine-devel-1.7.7,1.txz) = 8d0073d1c10be9afbe7c3c9874a31ac110c1f96cf6ddcda74ca16d31bad55d1b<\/p><\/blockquote>\n<p>Modify this with the following to make it compatible with your system:<\/p>\n<blockquote><p>SHA256 (freebsd:11:x86:64\/i386-wine-devel-1.7.7,1.txz) = 8d0073d1c10be9afbe7c3c9874a31ac110c1f96cf6ddcda74ca16d31bad55d1b<\/p><\/blockquote>\n<p>Modify the Makefile.inc to exclude checks for the OS version:<\/p>\n<blockquote><p>Index: Makefile.inc<br \/>\n===================================================================<br \/>\n&#8212; Makefile.inc\u00a0\u00a0 \u00a0(revision 335346)<br \/>\n+++ Makefile.inc\u00a0\u00a0 \u00a0(working copy)<br \/>\n@@ -41,10 +41,10 @@<\/p>\n<p>.include &lt;bsd.port.pre.mk&gt;<\/p>\n<p>-.if !(${OSVERSION} &gt;= 803000 &amp;&amp; ${OSVERSION} &lt; 900000) &amp;&amp; !(${OSVERSION} &gt;= 901000 &amp;&amp; ${OSVERSION} &lt; 1000000)<br \/>\n-IGNORE=\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0binaries compiled for FreeBSD 8.3+ and 9.1+ only<br \/>\n-DISTFILES=<br \/>\n-.endif<br \/>\n+#.if !(${OSVERSION} &gt;= 803000 &amp;&amp; ${OSVERSION} &lt; 900000) &amp;&amp; !(${OSVERSION} &gt;= 901000 &amp;&amp; ${OSVERSION} &lt; 1000000)<br \/>\n+#IGNORE=\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0binaries compiled for FreeBSD 8.3+ and 9.1+ only<br \/>\n+#DISTFILES=<br \/>\n+#.endif<\/p>\n<p>.if ${PORT_OPTIONS:MGECKO}<br \/>\nRUN_DEPENDS+=\u00a0\u00a0 ${DATADIR}\/gecko\/wine_gecko-2.24-x86.msi:${PORTSDIR}\/emulators\/wine-gecko-devel<\/p><\/blockquote>\n<p>And now, you can try building the package in your <strong>*AMD64* <\/strong>poudriere build with:<strong><\/strong><\/p>\n<blockquote><p>poudriere bulk -j 11amd64 emulators\/i386-wine-devel<\/p><\/blockquote>\n<p>If my instructions have succeeded, you now have a package suitable for installation on your amd64 machine that will now let you do wine things.<\/p>\n<p>Now, I need to figure out what the Blizzard Network Installer is trying to do as it runs, self-updates and hangs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been playing Blizzards&#8217;s Starcraft 2 on Linux via wine emulation lately and thought I&#8217;d see if I can get the same thing working on FreeBSD via the emulators\/i386-wine-devel port.\u00a0 After talking with the fine folks in #bsdports on EFNet, I finally found a recipe that is poudriere friendly and seems to spit out something [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"_share_on_mastodon":"0"},"categories":[2],"tags":[],"share_on_mastodon":{"url":"","error":""},"_links":{"self":[{"href":"http:\/\/blog.ignoranthack.me\/index.php?rest_route=\/wp\/v2\/posts\/138"}],"collection":[{"href":"http:\/\/blog.ignoranthack.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.ignoranthack.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.ignoranthack.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.ignoranthack.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=138"}],"version-history":[{"count":10,"href":"http:\/\/blog.ignoranthack.me\/index.php?rest_route=\/wp\/v2\/posts\/138\/revisions"}],"predecessor-version":[{"id":162,"href":"http:\/\/blog.ignoranthack.me\/index.php?rest_route=\/wp\/v2\/posts\/138\/revisions\/162"}],"wp:attachment":[{"href":"http:\/\/blog.ignoranthack.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.ignoranthack.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=138"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.ignoranthack.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}