Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
PSA - How to install wine-staging-9999
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Unsupported Software
View previous topic :: View next topic  
Author Message
saboya
Guru
Guru


Joined: 28 Nov 2006
Posts: 404
Location: Brazil

PostPosted: Tue Feb 27, 2018 3:02 am    Post subject: PSA - How to install wine-staging-9999 Reply with quote

Wine Staging is no longer being maintained. However, some folks have forked it and have been keeping it up to date.

While the wine-staging repo is hard-coded to the live ebuild itself, Portage's flexibility allows us to override basically anything we want. So, let's do it.

1 - Commit hashes for Wine and Wine staging

You need to specify the correct commits for Wine and Wine-staging. In order to do this you have to check the latest commits to Wine-staging and get the last one that says "Rebase against <WINE_HASH>". WINE_HASH will be our Wine commit, and the hash of that commit itself will be our Wine staging commit.

Then you need to create an env file to tell Portage you want those commits. I called this file wine_staging_33. So, the contents of /etc/portage/env/wine_staging_33 should be:

Code:
STAGING_COMMIT="a1ec166849d66b93f03eb31a10de73c78e4f4724"
WINE_COMMIT="9ae8b8c00f2cca205fdf4ce76e221778b7dfbea7"


2 - Wine staging repository

Now, Portage still thinks Wine staging resides at https://github.com/wine-compholio/wine-staging, but we need it to look for https://github.com/wine-staging/wine-staging. To do this, we'll edit our /etc/portage/bashrc:

Code:

pre_src_unpack() {
        if [[ "$PN" == "wine-staging" && "$PV" == "9999" ]]; then
                STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging"
        fi 
}


This should be enough to make Portage look at the right place.

3 - Extra - Patches and deps

The previous 2 steps should be enough, however the latest Wine currently does not compile due to a previous Gentoo patch not applying correctly. So right now we need to remove the patch from the patchlist. Again, let's edit /etc/portage/bashrc, adding a few lines to our previous code:

Code:

pre_src_unpack() {
        if [[ "$PN" == "wine-staging" && "$PV" == "9999" ]]; then
                STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging"
                PATCHES=(
                        "${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
                        "${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
                        "${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
                        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
                )

        fi 
}


Those patches were taken from the wine-staging-9999 commit, removing the last one ("${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch").

Also, currently THE KERBEROS USE FLAG HAS TO BE ENABLED. This should be fixed in the future, but for now just set +kerberos.

That's it, wine-staging should compile just fine. For wine-vanilla-9999, just skip the first step, the last 2 are still necessary.
Back to top
View user's profile Send private message
dark-wulf
n00b
n00b


Joined: 02 Feb 2006
Posts: 38

PostPosted: Fri Mar 02, 2018 5:33 pm    Post subject: Reply with quote

I think more easy is it this way

copy
Code:
/usr/portage/app-emulation/wine-staging/wine-staging-9999.ebuild

to something like
Code:
/usr/local/portage/app-emulation/wine-staging-new/wine-staging-new-9999.ebuild


next replace all "compholio" with "staging" and find

Code:
PATCHES=(
   "${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
   "${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
   "${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
   "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
   "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 #617864
)
PATCHES_BIN=()


and remove the last line
Code:
"${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 #617864


next follow this guide
https://wiki.gentoo.org/wiki/Custom_repository

then :wink: check the latest commits from Wine-staging and get the last one that says "Rebase against <WINE_HASH>". WINE_HASH will be our Wine commit, and the hash of that commit itself will be our Wine staging commit.

add
Code:
#temp
app-emulation/wine-staging-new staging

to /etc/portage/package.use

Finally do for example

Code:
WINE_COMMIT="9ae8b8c00f2cca205fdf4ce76e221778b7dfbea7" STAGING_COMMIT="a1ec166849d66b93f03eb31a10de73c78e4f4724"  emerge wine-staging-new -pv


oh and don't forget to switch wine version

Code:
eselect wine set wine-staging-new-9999


As soon as the new staging arrives in gentoo simply delete the temp entry's from /etc/portage/package.use and delete /usr/local/portage/app-emulation/wine-staging-new/ and you can go on as always :D
_________________
Gentoo rulez!!!
Gentoo for every one!!!
Gentoo for president!!!
Back to top
View user's profile Send private message
saboya
Guru
Guru


Joined: 28 Nov 2006
Posts: 404
Location: Brazil

PostPosted: Sat Mar 03, 2018 1:18 pm    Post subject: Reply with quote

Any method that relies on creating a new ebuild means you have to continue updating the ebuild to keep it up to date.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Unsupported Software All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum