Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#38115 closed enhancement (wontfix)

wine-crossover: add noconflict variant that doesn't conflict with other wines

Reported by: cooljeanius (Eric Gallager) Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 2.1.3
Keywords: Cc: ryandesign (Ryan Carsten Schmidt), jyrkiwahlstedt
Port: wine-crossover

Description

Some versions of wine-crossover, such as those bundled by WineSkin, prefix all of their files with "cx". I made a variant for the wine-crossover portfile that does the same thing:

variant noconflict description {Removes conflicts with the other Wine ports by adding a prefix to everything installed} {
    conflicts-delete        wine wine-devel
    post-destroot {
        xinstall -d ${destroot}${prefix}/libexec/cxwine
        file rename ${destroot}${prefix}/bin/wineloader ${destroot}${prefix}/libexec/cxwine/cxwine
        file rename ${destroot}${prefix}/lib/libwine.1.0.dylib ${destroot}${prefix}/lib/libcxwine.1.0.dylib
        system -W ${destroot}${prefix}/lib "ln -sfv ./libcxwine.1.0.dylib ./libwine.1.dylib"
        system -W ${destroot}${prefix}/lib "ln -sfv ./libcxwine.1.0.dylib ./libwine.dylib"
        file rename ${destroot}${prefix}/lib/libwine.dylib ${destroot}${prefix}/lib/libcxwine.dylib
        file rename ${destroot}${prefix}/lib/libwine.1.dylib ${destroot}${prefix}/lib/libcxwine.1.dylib
        system "install_name_tool -change @executable_path/../lib/libwine.1.dylib ${prefix}/lib/libcxwine.1.dylib ${destroot}${prefix}/libexec/cxwine/cxwine"

        file rename ${destroot}${prefix}/lib/wine ${destroot}${prefix}/lib/cxwine
        file rename ${destroot}${prefix}/include/wine ${destroot}${prefix}/include/cxwine
        foreach dll [glob ${destroot}${prefix}/lib/cxwine/*.so] {
            system "install_name_tool -change @executable_path/../lib/libwine.1.dylib ${prefix}/lib/libcxwine.1.dylib ${dll}"
        }
        foreach binary [glob ${destroot}${prefix}/bin/*] {
            file rename ${binary} [file dirname ${binary}]/cx[file tail ${binary}]
        }
        system -W ${destroot}${prefix}/bin "ln -sfv ./cxwinegcc ./cxwinecpp"
        system -W ${destroot}${prefix}/bin "ln -sfv ./cxwinegcc ./cxwineg++"
        foreach manpage [glob ${destroot}${prefix}/share/man/man1/*] {
            file rename ${manpage} [file dirname ${manpage}]/cx[file tail ${manpage}]
        }
        file delete ${destroot}${prefix}/share/man/man1/cxwinecpp.1
        file delete ${destroot}${prefix}/share/man/man1/cxwineg++.1
        foreach manpage [glob ${destroot}${prefix}/share/man/*.UTF-8/man1/*] {
            file rename ${manpage} [file dirname ${manpage}]/cx[file tail ${manpage}]
        }

        xinstall ${filespath}/wine.in ${destroot}${prefix}/bin/cxwine
        reinplace s|@PREFIX@|${prefix}|g ${destroot}${prefix}/bin/cxwine

        file rename ${destroot}${prefix}/share/wine ${destroot}${prefix}/share/cxwine
        xinstall -d ${destroot}${prefix}/share/cxwine/gecko
        xinstall -m 644 ${distpath}/${wine_gecko_distfile} ${destroot}${prefix}/share/cxwine/gecko
        file rename ${destroot}${prefix}/share/applications/wine.desktop ${destroot}${prefix}/share/applications/cxwine.desktop
    
        xinstall -d ${destroot}${prefix}/share/doc/${name}
        xinstall -m 644 -W ${worksrcpath} \
            ANNOUNCE \
            AUTHORS \
            COPYING.LIB \
            LICENSE \
            README \
            ${destroot}${prefix}/share/doc/${name}
    }
}

I'm only posting this variant here instead of an entire diff or portfile because I made some other extraneous changes to the portfile, too, that I don't want to submit.

Change History (6)

comment:1 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

I'm not in favor of this being a variant. Either do it all the time, or make it a subport, or don't do it at all. I would be in favor of not doing this at all; the way it is now, wine-crossover acts as a drop-in replacement for wine, which is desirable, isn't it?

comment:2 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign@… jwa@… added; jeremyhu@… removed
Owner: changed from macports-tickets@… to jeremyhu@…
Summary: Request for variant: version of wine-crossover that doesn't conflict with other wineswine-crossover: add noconflict variant that doesn't conflict with other wines

comment:3 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: wontfix
Status: newclosed

Yeah, I like these three ports (wine, wine-devel, wine-crossover) being essentially replacements for eachother. Is there a real benefit to having these co-exist?

comment:4 in reply to:  3 Changed 12 years ago by cooljeanius (Eric Gallager)

Replying to jeremyhu@…:

Yeah, I like these three ports (wine, wine-devel, wine-crossover) being essentially replacements for eachother. Is there a real benefit to having these co-exist?

Same reason WineSkin lets you install multiple versions of Wine: sometimes a program will work with one version of wine but not another.

comment:5 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

But that's not limited to *just* the three versions we offer. Based on that reasoning, we should offer ports for 1.0.0, 1.0.2, 1.0.3 , ...

comment:6 in reply to:  5 Changed 12 years ago by cooljeanius (Eric Gallager)

Replying to jeremyhu@…:

But that's not limited to *just* the three versions we offer. Based on that reasoning, we should offer ports for 1.0.0, 1.0.2, 1.0.3 , ...

But of those, the Crossover version is the only that the prefix gets changed for. Well that and Crossover Games, which gets prefixed with "CXG" instead of just "CX", but wine-crossover-games has been replaced_by wine-crossover for a while now...

Note: See TracTickets for help on using tickets.