Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

this is my wine-staging.yml , is work with me, get you reffer #42

Closed
newyorkthink opened this issue Aug 5, 2023 · 0 comments
Closed

Comments

@newyorkthink
Copy link

version: 1

script:
  # Remove any previous build cache data
  - rm -rf AppDir appimage-builder-cache/var/cache/apt/archives/*wine* || true
  - mkdir -p appimage-build/prime AppDir/winedata && cp wrapper AppDir
  # Add winetricks
  - wget -q "https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks" -P ./AppDir/bin && chmod +x ./AppDir/bin/winetricks
  # Copy App icon to AppDir/usr/share/icons needed prior to appimage-builder ver 1.x.x
  - mkdir -p AppDir/usr/share/icons ; cp wine.svg AppDir/usr/share/icons
  # Add static appimage runtime
  - cp runtime/runtime-x86_64 appimage-build/prime/runtime-x86_64
  # Add config
  - cp -R config AppDir/winedata

AppDir:
  path: ./AppDir

  app_info:
    id: org.winehq.wine
    name: wine
    icon: wine
    version: "1.0"
    exec: bin/bash
    exec_args: $APPDIR/wrapper $@

  apt:
    arch: [amd64, i386]
    sources:
      - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse'
      - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse'
      - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse'
        key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920D1991BC93C'
      - sourceline: 'deb https://dl.winehq.org/wine-builds/ubuntu/ jammy main'
        key_url: 'https://dl.winehq.org/wine-builds/winehq.key'
      # - sourceline: 'deb http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu/ jammy main'
        # key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xFCAE110B1118213C'
      - sourceline: 'deb https://ppa.launchpadcontent.net/kisak/kisak-mesa/ubuntu jammy main'
        key_url: 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xf63f0f2b90935439'

    include:
      - wine-devel-i386=7.22~jammy-1
      - wine-devel-amd64=7.22~jammy-1
      - bash
      - cabextract
      - cups
      - dash
      - perl
      - coreutils
      - mesa-utils
      - mesa-utils-bin
      - unionfs-fuse
      - vulkan-tools
      - libcups2
      - libfuse2
      - libfuse3-3
      - libmspack0
      - gstreamer1.0-plugins-good:i386
      - gstreamer1.0-plugins-bad:i386
      - gstreamer1.0-plugins-ugly:i386
      - libnvidia-compute-520:i386
      - libnvidia-decode-520:i386
      - libnvidia-encode-520:i386
      - libnvidia-extra-520:i386
      - libnvidia-fbc1-520:i386
      - libnvidia-gl-520:i386
      - libdrm2:i386
      - libdrm-intel1:i386
      - libdrm-nouveau2:i386
      - libdrm-amdgpu1:i386
      - libdrm-radeon1:i386
      - libegl-mesa0:i386
      - libegl1:i386
      - libgbm1:i386
      - libgl1:i386
      - libgl1-mesa-dri:i386
      - libglapi-mesa:i386
      - libgles2:i386
      - libglvnd0:i386
      - libglx0:i386
      - libglx-mesa0:i386
      - mesa-vdpau-drivers:i386
      - mesa-va-drivers:i386
      - mesa-vulkan-drivers:i386
      - libopenal1:i386
      - libx11-6:i386
      - libx11-xcb1:i386
      - libxcb-dri2-0:i386
      - libxcb-dri3-0:i386
      - libxcb-glx0:i386
      - libxcb-present0:i386
      - libxcb-render0:i386
      - libxcb-shape0:i386
      - libxcb-shm0:i386
      - libxcb-xfixes0:i386
      - libxcb1:i386
      - alsa-tools
      - alsa-utils:i386
      - libpulse0
      - libasound2:i386
      - libglib2.0-0:i386
      - libgphoto2-6:i386
      - libgphoto2-port12:i386
      - libgstreamer-plugins-base1.0-0:i386
      - libgstreamer1.0-0:i386
      - libpcap0.8:i386
      - libsane:i386
      - libudev1:i386
      - libusb-1.0-0:i386
      - libxext6:i386
      - ocl-icd-libopencl1:i386
      - libopencl1:i386
      - libopencl-1.1-1:i386
      - libopencl-1.2-1:i386
      - libasound2-plugins:i386
      - libncurses6:i386
      - libncurses5:i386
      - libasound2:i386
      - libpulse0:i386  
      - libOpenAL1:i386
      - libgdk-pixbuf2.0-0:i386
      - libgl1-mesa-glx:i386
      - libglu1:i386
      - libgl1:i386
      - libegl1:i386
      - libglapi-mesa:i386
      - libgraphite2-3:i386
      - libharfbuzz0b:i386
      - libllvm11:i386
      - libmd4c0:i386
      - libepoxy0:i386
      - libgbm1:i386
      - winbind:i386
      - fonts-horai-umefont
      - fonts-wqy-microhei
      - ttf-mscorefonts-installer
      - gnome-exe-thumbnailer
      - libcurl4:i386
      - libgpg-error0:i386
      - libjack-jackd2-0:i38
      - liblcms2-2:i38
      - libldap-2.4-2:i386
      - libmpg123-0:i386
      - libsane-hpaio:i386
      - libsmbclient:i386
      - libsqlite3-0:i386
      - libva-drm2:i386
      - libva-x11-2:i386
      - libvdpau-va-gl1:i386
      - libvulkan1:i386
      - ocl-icd-libopencl1:i386
      - zlib1g:i386
      - libqt5core5a:i386
      - libqt5gui5:i386 
      - libqt5widgets5:i386
      - libqt5network5:i386
      - libqt5printsupport5:i386
      - libqt5sql5:i386
      - libqt5svg5:i386
      - libqt5multimedia5:i386
      - libqt5multimediawidgets5:i386

  files:
    exclude:
      - sbin
      - var
      - etc/alternatives
      - etc/apt
      - etc/cron.daily
      - etc/dpkg
      - etc/mysql
      - etc/sane.d
      - etc/sensors.d
      - etc/skel
      - etc/snmp
      - etc/udev
      - etc/gss
      - etc/init.d
      - etc/logrotate.d
      - lib/modprobe.d
      - lib/systemd
      - lib/udev
      - usr/lib/mime
      - usr/lib/sasl2
      - usr/lib/tmpfiles.d
      - usr/sbin
      - usr/share/apps
      - usr/share/man
      - usr/share/doc
      - usr/share/adduser
      - usr/share/apport
      - usr/share/bash-completion
      - usr/share/bug
      - usr/share/debconf
      - usr/share/doc
      - usr/share/doc-base
      - usr/share/dpkg
      - usr/share/glib-2.0
      - usr/share/gst-plugins-base
      - usr/share/hal
      - usr/share/info
      - usr/share/initramfs-tools
      - usr/share/kde4
      - usr/share/libgphoto2
      - usr/share/lintian
      - usr/share/menu
      - usr/share/metainfo
      - usr/share/mesa-demos
      - usr/share/mime
      - usr/share/misc
      - usr/share/mysql-common
      - usr/share/pixmaps
      - usr/share/pkgconfig
      - usr/share/polkit-1
      - usr/share/snmp
      - usr/share/zoneinfo
      - usr/share/zoneinfo-icu
      - usr/share/zsh
      - opt/wine-devel
      - opt/wine-staging/share/man
      - opt/wine-staging/share/applications
      - opt/wine-staging/lib/wine/i386-unix/*.a
      - opt/wine-staging/lib/wine/i386-windows/*.a
      - opt/wine-staging/lib64/wine/x86_64-unix/*.a
      - opt/wine-staging/lib64/wine/x86_64-windows/*.a

  after_bundle:
    # this is executed after the packages and files are added
    - |
     # Patch wrapper script
     sed -i 's|wine-appimage|wine-appimage-staging|' AppDir/wrapper

     # Check for rc builds
     if [ $(wget -qO- https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/main/binary-amd64/ | grep wine-staging | tail -n1 | grep -c ~rc) -gt 0 ]; then
      WINE_VER="$(wget -qO- https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/main/binary-amd64/ | grep wine-staging | sed 's|_| |g;s|~| |2' | awk '{print $5}' | tail -n1)"
     else
      WINE_VER="$(wget -qO- https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/main/binary-amd64/ | grep wine-staging | sed 's|_| |g;s|~| |g' | awk '{print $5}' | tail -n1)"
     fi
     wget -q -c https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/main/binary-i386/wine-staging_${WINE_VER}~jammy-1_i386.deb
     wget -q -c https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/main/binary-i386/wine-staging-i386_${WINE_VER}~jammy-1_i386.deb
     wget -q -c https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/main/binary-amd64/wine-staging_${WINE_VER}~jammy-1_amd64.deb
     wget -q -c https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/main/binary-amd64/wine-staging-amd64_${WINE_VER}~jammy-1_amd64.deb
     dpkg -x "wine-staging_${WINE_VER}~jammy-1_i386.deb" AppDir/
     dpkg -x "wine-staging-i386_${WINE_VER}~jammy-1_i386.deb" AppDir/
     dpkg -x "wine-staging_${WINE_VER}~jammy-1_amd64.deb" AppDir/
     dpkg -x "wine-staging-amd64_${WINE_VER}~jammy-1_amd64.deb" AppDir/
     (cd AppDir/usr/bin; ln -s "../../opt/wine-staging/bin/"* .)

     # Cleanup
     rm -rf AppDir/usr/share/{applications,man,doc}
     rm -rf AppDir/opt/wine-staging/share/{applications,man,doc}
     rm -rf AppDir/opt/wine-staging/lib/wine/i386-unix/*.a
     rm -rf AppDir/opt/wine-staging/lib/wine/i386-windows/*.a
     rm -rf AppDir/opt/wine-staging/lib64/wine/x86_64-unix/*.a
     rm -rf AppDir/opt/wine-staging/lib64/wine/x86_64-windows/*.a

     # Disable FileOpenAssociations
     sed -i 's|    LicenseInformation|    LicenseInformation,\\\n    FileOpenAssociations|g;$a \\n[FileOpenAssociations]\nHKCU,Software\\Wine\\FileOpenAssociations,"Enable",,"N"' AppDir/opt/wine-staging/share/wine/wine.inf

     # Disable winemenubuilder
     sed -i 's|    FileOpenAssociations|    FileOpenAssociations,\\\n    DllOverrides|;$a \\n[DllOverrides]\nHKCU,Software\\Wine\\DllOverrides,"*winemenubuilder.exe",,""' AppDir/opt/wine-staging/share/wine/wine.inf
     sed -i '/\%11\%\\winemenubuilder.exe -a -r/d' AppDir/opt/wine-staging/share/wine/wine.inf

     # Deploy wine-mono wine-gecko
     # For future reference setting of MONO_VER see https://github.com/wine-mirror/wine/tree/stable of wine-stable
     MONO_VER=$(wget "https://raw.githubusercontent.com/wine-mirror/wine/$(wget -qO- https://github.com/wine-mirror/wine/releases/tag/wine-${WINE_VER} | grep 'commit/' | sed -r 's|/wine-mirror/wine/commit/||g' | cut -d'"' -f2 | head -1)/dlls/appwiz.cpl/addons.c" -qO- | grep -Po 'MONO_VERSION.*[0-9]"' | cut -d'"' -f2)
     GECKO_VER=$(wget "https://raw.githubusercontent.com/wine-mirror/wine/$(wget -qO- https://github.com/wine-mirror/wine/releases/tag/wine-${WINE_VER} | grep 'commit/' | sed -r 's|/wine-mirror/wine/commit/||g' | cut -d'"' -f2 | head -1)/dlls/appwiz.cpl/addons.c" -qO- | grep -Po 'GECKO_VERSION.*[0-9]"' | cut -d'"' -f2)

     case "$WINE_VER" in
     3.0.1|3.0.2|3.0.3|3.0.4|3.0.5)
       GECKO_VER="2.47"
       MONO_VER="4.7.1"
       ;;

     4.0.1|4.0.2|4.0.3|4.0.4)
       GECKO_VER="2.47"
       MONO_VER="4.7.5"
       ;;

     5.0.1|5.0.2|5.0.3|5.0.4|5.0.5)
       GECKO_VER="2.47.1"
       MONO_VER="4.9.4"
       ;;

     6.0.1|6.0.2|6.0.3|6.0.4)
       GECKO_VER="2.47.2"
       MONO_VER="5.1.1"
       ;;

     7.0.1|7.0.2|7.0.3|7.0.4)
       GECKO_VER="2.47.2"
       MONO_VER="7.0.0-x86"
       ;;
     *)
       MONO_VER="$MONO_VER-x86"
       ;;
     esac

     if [[ $(echo $GECKO_VER |sed -e 's/\.//g') -le 247 ]]; then
        GECKO=wine_gecko-${GECKO_VER}
     else
        GECKO=wine-gecko-${GECKO_VER}
     fi

     MONO_URL="https://dl.winehq.org/wine/wine-mono/$(cut -d'-' -f1 <<< ${MONO_VER})/wine-mono-${MONO_VER}.msi"
     GECKO_URL_x86="https://dl.winehq.org/wine/wine-gecko/$GECKO_VER/${GECKO}-x86.msi"
     GECKO_URL_x86_64="https://dl.winehq.org/wine/wine-gecko/$GECKO_VER/${GECKO}-x86_64.msi"

     wget -q "$MONO_URL" -O AppDir/winedata/wine-mono-${MONO_VER}.msi
     wget -q "$GECKO_URL_x86" -O AppDir/winedata/${GECKO}-x86.msi
     wget -q "$GECKO_URL_x86_64" -O AppDir/winedata/${GECKO}-x86_64.msi

  runtime:
    env:
      LIBGL_DRIVERS_PATH: '${APPDIR}/usr/lib/i386-linux-gnu/dri:${APPDIR}/usr/lib/x86_64-linux-gnu/dri:${LIBGL_DRIVERS_PATH}'
      APPDIR_LIBC_VERSION: '2.38'

    path_mappings:
    - /opt/wine-staging:$APPDIR/opt/wine-staging

AppImage:
  update-information: gh-releases-zsync|mmtrt|WINE_AppImage|continuous-staging|wine-staging*.AppImage.zsync
  #sign-key: None
  arch: x86_64
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants