diff --git a/.github/build-canary-i386 b/.github/build-canary-i386 index 56a6051..0cfbf08 100644 --- a/.github/build-canary-i386 +++ b/.github/build-canary-i386 @@ -1 +1 @@ -1 \ No newline at end of file +2 diff --git a/debian/changelog b/debian/changelog index 6d8d068..8671a79 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,5 @@ -upstream-name (1.0-101pika1) pika; urgency=medium +wine-staging (9.14-101pika1) pika; urgency=low - * Initial release. (Closes: #nnnn) + * version number update by debtransform - -- ferreo Wed, 18 Jan 2023 21:48:14 +0000 + -- debtransform Sun, 28 Jul 2024 23:57:21 +0000 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..b4de394 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +11 diff --git a/debian/control b/debian/control index 0bcd8e0..00ae13d 100644 --- a/debian/control +++ b/debian/control @@ -1,19 +1,219 @@ -Source: upstream-name -Section: admin +Source: wine-staging +Section: otherosfs Priority: optional -Maintainer: name -Standards-Version: 4.6.1 -Build-Depends: debhelper-compat (= 13) -Rules-Requires-Root: no +Maintainer: Rosanne DiMesio , Marcus Meissner +XSBC-Original-Maintainer: WineHQ Builds +Build-Depends: autotools-dev, + autoconf, + bison, + docbook-to-man, + docbook-utils, + docbook-xsl, + flex, + fontforge, + gawk, + gcc, + gettext, + libacl1-dev, + libasound2-dev, + libavcodec-dev, + libcups2-dev, + libdbus-1-dev, + libfontconfig1-dev | libfontconfig-dev, + libfreetype6-dev, + libgl1-mesa-dev, + libglu1-mesa-dev, + libgnutls30-dev | libgnutls28-dev | libgnutls-dev, + libgphoto2-dev | libgphoto2-6-dev | libgphoto2-2-dev (>= 2.4.6), + libgstreamer1.0-dev, + libgstreamer-plugins-base1.0-dev, + libgtk-3-dev, + libice-dev, + libkrb5-dev, + libncurses6-dev | libncurses5-dev | libncurses-dev, + libosmesa6-dev, + libpcap-dev, + libpulse-dev, + libsane-dev, + libsdl2-dev, + libssl-dev, + libstdc++6-4.5-dev | libstdc++-dev, + libudev-dev, + libv4l-dev, + libva-dev, + libx11-dev, + libx11-xcb-dev, + libxcomposite-dev, + libxcursor-dev, + libxext-dev, + libxi-dev, + libxinerama-dev, + libxrandr-dev, + libxrender-dev, + libxt-dev, + libxxf86vm-dev, + linux-libc-dev, + patch, + perl, + sharutils, + unixodbc-dev, + x11proto-xinerama-dev +Standards-Version: 3.9.5 -Package: pkgname1 -Architecture: linux-any -# Delete any of these lines if un-used -Depends: ${misc:Depends}, depends -Recommends: high priority optdepends -Conflicts: conflicts -Suggests: low priority optdepends -Breaks: also conflicts!? -Provides: provides -# -Description: pkgdesc +Package: wine-staging-i386 +Architecture: i386 +Multi-Arch: foreign +Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, + libasound2-plugins, + libncurses6 | libncurses5 | libncurses +Recommends: libcairo2, + libcap2-bin, + libcups2, + libdbus-1-3, + libfontconfig1, + libfreetype6, + libglu1-mesa | libglu1, + libgnutls30 | libgnutls-deb0-28 |libgnutls26, + libgssapi-krb5-2, + libgtk-3-0, + libkrb5-3, + libodbc2 |libodbc1, + libosmesa6, + libpcap0.8, + libsane | libsane1, + libsdl2-2.0-0, + libv4l-0, + libva-drm2 | libva-drm1, + libva-x11-2 | libva-x11-1, + libva2 | libva1, + libxcomposite1, + libxcursor1, + libxfixes3, + libxi6, + libxinerama1, + libxrandr2, + libxrender1, + libxxf86vm1 +Section: otherosfs +Priority: optional +Description: WINE Is Not An Emulator - runs MS Windows programs + Wine is a program which allows running Microsoft Windows programs + (including DOS, Windows 3.x and Win32 executables) on Unix. + . + This package contains the files needed to support 32-bit Windows + programs. + +Package: wine-staging-amd64 +Architecture: amd64 +Multi-Arch: foreign +Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, + libasound2-plugins, + libncurses6 | libncurses5 | libncurses, +Recommends: libcairo2, + libcap2-bin, + libcups2, + libdbus-1-3, + libfontconfig1, + libfreetype6, + libglu1-mesa | libglu1, + libgnutls30 | libgnutls-deb0-28 |libgnutls26, + libgssapi-krb5-2, + libgtk-3-0, + libkrb5-3, + libodbc2 |libodbc1, + libosmesa6, + libpcap0.8, + libsane | libsane1, + libsdl2-2.0-0, + libv4l-0, + libva-drm2 | libva-drm1, + libva-x11-2 | libva-x11-1, + libva2 | libva1, + libxcomposite1, + libxcursor1, + libxfixes3, + libxi6, + libxinerama1, + libxrandr2, + libxrender1, + libxxf86vm1 +Section: otherosfs +Priority: optional +Description: WINE Is Not An Emulator - runs MS Windows programs + Wine is a program which allows running Microsoft Windows programs + (including DOS, Windows 3.x and Win32 executables) on Unix. + . + This package contains the files needed to support 64-bit Windows + programs. + +Package: wine-staging +Architecture: i386 amd64 +Multi-Arch: foreign +Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends}, + wine-staging-i386 (= ${binary:Version}) [i386 amd64], + wine-staging-amd64 (= ${binary:Version}) [amd64], +Recommends: libcap2-bin, +Section: otherosfs +Priority: optional +Description: WINE Is Not An Emulator - runs MS Windows programs + Wine is a program which allows running Microsoft Windows programs + (including DOS, Windows 3.x and Win32 executables) on Unix. It + consists of a program loader which loads and executes a Microsoft + Windows binary, and a library (called Winelib) that implements Windows + API calls using their Unix or X11 equivalents. The library may also + be used for porting Win32 code into native Unix executables. + +Package: wine-staging-dev +Architecture: i386 amd64 armhf +Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends} +Depends: libc6-dev, + ${shlibs:Depends}, + wine-staging-i386 (= ${binary:Version}) [i386 amd64], + wine-staging-amd64 (= ${binary:Version}) [amd64], +Section: libdevel +Priority: optional +Description: WINE Is Not An Emulator - runs MS Windows programs + Wine is a program which allows running Microsoft Windows programs + (including DOS, Windows 3.x and Win32 executables) on Unix. + . + This package contains the libraries and header files needed to + develop programs which make use of Wine. + +Package: wine-staging-dbg +Architecture: i386 amd64 +Multi-Arch: same +Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, + wine-staging-i386 (= ${binary:Version}) [i386 amd64], + wine-staging-amd64 (= ${binary:Version}) [amd64], +Section: debug +Priority: optional +Description: WINE Is Not An Emulator - runs MS Windows programs + Wine is a program which allows running Microsoft Windows programs + (including DOS, Windows 3.x and Win32 executables) on Unix. + . + This package includes debugging symbols useful for reporting crashes + and other failures. + +Package: winehq-staging +Architecture: i386 amd64 +Depends: wine-staging (= ${binary:Version}), ${misc:Depends} +Section: otherosfs +Priority: optional +Replaces: wine, wine1.4, wine1.5, wine1.6, wine1.7, wine-i386, wine1.4-i386, + wine1.5-i386, wine1.6-i386, wine1.7-i386, wine-amd64, wine1.4-amd64, + wine1.5-amd64, wine1.6-amd64, wine1.7-amd64, wine32, wine64 +Conflicts: wine, wine-i386, wine-amd64 +Provides: wine, wine1.4, wine1.5, wine1.6, wine1.7, wine-i386, wine1.4-i386, + wine1.5-i386, wine1.6-i386, wine1.7-i386, wine-amd64 [amd64], + wine1.4-amd64 [amd64], wine1.5-amd64 [amd64], wine1.6-amd64 [amd64], + wine1.7-amd64 [amd64], wine32, wine64 [amd64] +Description: WINE Is Not An Emulator - runs MS Windows programs + Wine is a program which allows running Microsoft Windows programs + (including DOS, Windows 3.x and Win32 executables) on Unix. + . + This compatibility package allows to use wine-staging system-wide as + the default Wine version. diff --git a/debian/copyright b/debian/copyright index e69de29..2cc8874 100644 --- a/debian/copyright +++ b/debian/copyright @@ -0,0 +1,139 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Wine Staging +Source: https://www.winehq.org + +Files: * +Copyright: 1993-2024, the Wine project authors + 2014-2024, the Wine Staging project authors +License: LGPL-2.1 + +Files: patches/fonts-Missing_Fonts/0001-fonts-Add-Liberation-Sans-as-an-Arial-replacement.patch +Copyright: 2007, Red Hat +License: LiberationFontLicense + +Files: patches/fonts-Missing_Fonts/0002-fonts-Add-Liberation-Serif-as-an-Times-New-Roman-rep.patch +Copyright: 2007, Red Hat +License: LiberationFontLicense + +Files: patches/fonts-Missing_Fonts/0003-fonts-Add-Liberation-Mono-as-an-Courier-New-replacem.patch +Copyright: 2007, Red Hat +License: LiberationFontLicense + +Files: patches/fonts-Missing_Fonts/0004-fonts-Add-WenQuanYi-Micro-Hei-as-a-Microsoft-Yahei-r.patch +Copyright: 2008-2009, WenQuanYi Board of Trustees + 2007, Google Corporation + 2003-2004, Electronic Font Open Laboratory + 1990-2003, Wada Laboratory, the University of Tokyo +License: Apache-2 or GPL-3+ with font embedding exceptions + +License: LGPL-2.1 + This software is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + . + On Debian systems, the complete text of the GNU Library General Public + License can be found in /usr/share/common-licenses/LGPL-2.1 file. + +License: LiberationFontLicense + LICENSE AGREEMENT AND LIMITED PRODUCT WARRANTY + LIBERATION FONT SOFTWARE + . + This agreement governs the use of the Software and any updates to the Software, + regardless of the delivery mechanism. Subject to the following terms, Red Hat, + Inc. ("Red Hat") grants to the user ("Client") a license to this work pursuant + to the GNU General Public License v.2 with the exceptions set forth below and + such other terms as our set forth in this End User License Agreement. + . + 1.The Software and License Exception. LIBERATION font software (the "Software") + consists of TrueType-OpenType formatted font software for rendering LIBERATION + typefaces in sans serif, serif, and monospaced character styles. You are licensed + to use, modify, copy, and distribute the Software pursuant to the GNU General + Public License v.2 with the following exceptions: + (a)As a special exception, if you create a document which uses this font, and + embed this font or unaltered portions of this font into the document, this font + does not by itself cause the resulting document to be covered by the GNU General + Public License. This exception does not however invalidate any other reasons why + the document might be covered by the GNU General Public License. If you modify + this font, you may extend this exception to your version of the font, but you + are not obligated to do so. If you do not wish to do so, delete this exception + statement from your version. + (b)As a further exception, any distribution of the object code of the Software + in a physical product must provide you the right to access and modify the source + code for the Software and to reinstall that modified version of the Software in + object code form on the same physical product on which you received it. + 2.Intellectual Property Rights. The Software and each of its components, + including the source code, documentation, appearance, structure and organization + are owned by Red Hat and others and are protected under copyright and other laws. + Title to the Software and any component, or to any copy, modification, or merged + portion shall remain with the aforementioned, subject to the applicable license. + The "LIBERATION" trademark is a trademark of Red Hat, Inc. in the U.S. and other + countries. This agreement does not permit Client to distribute modified versions + of the Software using Red Hat's trademarks. If Client makes a redistribution of + a modified version of the Software, then Client must modify the files names to + remove any reference to the Red Hat trademarks and must not use the Red Hat + trademarks in any way to reference or promote the modified Software. + 3.Limited Warranty. To the maximum extent permitted under applicable law, the + Software is provided and licensed "as is" without warranty of any kind, + expressed or implied, including the implied warranties of merchantability, + non-infringement or fitness for a particular purpose. Red Hat does not warrant + that the functions contained in the Software will meet Client's requirements or + that the operation of the Software will be entirely error free or appear + precisely as described in the accompanying documentation. + 4.Limitation of Remedies and Liability. To the maximum extent permitted by + applicable law, Red Hat or any Red Hat authorized dealer will not be liable to + Client for any incidental or consequential damages, including lost profits or + lost savings arising out of the use or inability to use the Software, even if + Red Hat or such dealer has been advised of the possibility of such damages. + 5.General. If any provision of this agreement is held to be unenforceable, that + shall not affect the enforceability of the remaining provisions. This agreement + shall be governed by the laws of the State of North Carolina and of the United + States, without regard to any conflict of laws provisions, except that the + United Nations Convention on the International Sale of Goods shall not apply. + Copyright © 2007 Red Hat, Inc. All rights reserved. LIBERATION is a trademark + of Red Hat, Inc. + +License: GPL-3+ with font embedding exceptions + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + As a special exception, if you create a document which uses this font, + and embed this font or unaltered portions of this font into the + document, this font does not by itself cause the resulting document to + be covered by the GNU General Public License. This exception does not + however invalidate any other reasons why the document might be covered + by the GNU General Public License. If you modify this font, you may + extend this exception to your version of the font, but you are not + obligated to do so. If you do not wish to do so, delete this exception + statement from your version. + . + On Debian systems, the complete text of the GNU General Public License + version 3 can be found in /usr/share/common-licenses/GPL-3 file. + +License: Apache-2 + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + . + http://www.apache.org/licenses/LICENSE-2.0 + . + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + . + On Debian systems, the complete text of the Apache License 2.0 can be + found in /usr/share/common-licenses/Apache-2.0 file. diff --git a/debian/rules b/debian/rules index 64a084a..0f4c790 100755 --- a/debian/rules +++ b/debian/rules @@ -1,67 +1,109 @@ -#! /usr/bin/make -f +#!/usr/bin/make -f -## See debhelper(7) (uncomment to enable). -## Output every command that modifies files on the build system. -export DH_VERBOSE = 1 -export PIKA_BUILD_ARCH = $(shell cat ../pika-build-arch) +export DEB_CFLAGS_MAINT_STRIP = -fstack-protector-strong -fcf-protection=full +export DEB_BUILD_MAINT_OPTIONS = optimize=-lto hardening=-relro -## === the chain of command === -## debuild runs a chain of dh functions in the following order: -## dh_testdir -## dh_clean -## dh_auto_clean -## dh_update_autotools_config -## dh_autoreconf -## dh_auto_configure -## dh_prep -## dh_build -## dh_auto_build -## dh_install -## dh_auto_install -## dh_installdocs -## dh_installchangelogs -## dh_perl -## dh_link -## dh_strip_nondeterminism -## dh_compress -## dh_fixperms -## dh_missing -## dh_dwz -## dh_strip -## dh_makeshlibs -## dh_shlibdeps -## dh_installdeb -## dh_gencontrol -## but you are most likely to only need to override the following: -## dh_clean -## dh_auto_configure -## dh_build -## dh_install - -## === End end of region === - -## === overriding dh functions === -## by default all dh functions will run a specific command based on the build system selected by "dh $@" -## if you have a makefile that does everything you need this is fine, -## but most likely you have no MakeFile and you want to add your own commands -## Note : overrides must be places above %: -## So here's a few examples: - -## overriding dh_clean to make it not delete rust vendor files: -#override_dh_clean: -# echo "disabled" - -## overriding dh_auto_configure to add custom configs: -#override_dh_auto_configure: -# $(srcdir)/configure -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_DATADIR=/usr/share -DCMAKE_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu -DBUILD_PLUGIN=OFF - -## overriding dh_install to install files to a package: -#override_dh_auto_configure: -# mkdir -p debian/pikman/usr/bin -# cp pikman debian/pikman/usr/bin/ - -## === End end of region === - -## This here will start the build: +# Prefer gcc-4.5, then 4.7, then 4.9 - otherwise fallback to gcc. + export CC = $(shell for _cc in gcc-4.5 gcc-4.7 gcc-4.9 gcc false; do \ + if which "$$_cc" >/dev/null 2>&1; then echo "$$_cc"; break; fi; done) + + %: - dh $@ + dh $@ --parallel +# dh $@ --max-parallel=1 + + +override_dh_auto_configure: + # Run configure +ifeq ($(DEB_BUILD_ARCH), amd64) + ./configure --prefix=/opt/wine-staging \ + --libdir=\$${prefix}/lib64 \ + --mandir=\$${prefix}/share/man \ + --infodir=\$${prefix}/share/info \ + --enable-win64 \ + --disable-tests \ + --with-gstreamer \ + --with-xattr \ + + $(CONFFLAGS) +else + ./configure --prefix=/opt/wine-staging \ + --libdir=\$${prefix}/lib \ + --mandir=\$${prefix}/share/man \ + --infodir=\$${prefix}/share/info \ + --disable-tests \ + --with-gstreamer \ + --with-xattr \ + + $(CONFFLAGS) +endif + + +override_dh_auto_test: + # Wine's test suite does not pass on build daemons, skip it for now + + +override_dh_installdocs: + dh_installdocs --link-doc=wine-staging + + +override_dh_install: + dh_install --fail-missing + + # These files will end up in multiple packages otherwise + rm -f debian/wine-staging/opt/wine-staging/bin/wine + rm -f debian/wine-staging/opt/wine-staging/bin/wine-preloader + rm -f debian/wine-staging/opt/wine-staging/bin/wine64 + rm -f debian/wine-staging/opt/wine-staging/bin/wine64-preloader + + # Compat symlinks for bindir + mkdir -p debian/winehq-staging/usr/bin + for _file in $$(ls "debian/wine-staging/opt/wine-staging/bin"); do \ + ln -s "/opt/wine-staging/bin/$$_file" "debian/winehq-staging/usr/bin/$$_file"; \ + done + for _file in wine wine-preloader; do \ + ln -s "/opt/wine-staging/bin/$$_file" "debian/winehq-staging/usr/bin/$$_file"; \ + done +ifeq ($(DEB_HOST_ARCH),amd64) + for _file in wine64 wine64-preloader; do \ + ln -s "/opt/wine-staging/bin/$$_file" "debian/winehq-staging/usr/bin/$$_file"; \ + done +endif + + # Compat symlinks for desktop file + mkdir -p "debian/winehq-staging/usr/share/applications" + for _file in $$(ls "debian/wine-staging/opt/wine-staging/share/applications"); do \ + ln -s "/opt/wine-staging/share/applications/$$_file" "debian/winehq-staging/usr/share/applications/$$_file"; \ + done + + # Compat manpages + for _dir in man1 de.UTF-8/man1 fr.UTF-8/man1 pl.UTF-8/man1; do \ + mkdir -p "debian/winehq-staging/usr/share/man/$$_dir"; \ + if [ -d "debian/wine-staging/opt/wine-staging/share/man/$$_dir" ]; then \ + for _file in $$(ls "debian/wine-staging/opt/wine-staging/share/man/$$_dir"); do \ + ln -s "/opt/wine-staging/share/man/$$_dir/$$_file" "debian/winehq-staging/usr/share/man/$$_dir/$$_file"; \ + done; \ + fi; \ + ln -s "/opt/wine-staging/share/man/$$_dir/wine.1" "debian/winehq-staging/usr/share/man/$$_dir/wine.1"; \ + done + + # Generate list of recommendations +# ifeq ($(DEB_HOST_ARCH),amd64) +# ./debian/recommendations.sh "-m64" "include/config.h" "debian/wine-staging-amd64.substvars" +# else ifeq ($(DEB_HOST_ARCH),armhf) +# ./debian/recommendations.sh "-m32" "include/config.h" "debian/wine-staging-arm.substvars" +# else +# ./debian/recommendations.sh "-m32" "include/config.h" "debian/wine-staging-i386.substvars" +# endif + + +override_dh_strip: + dh_strip -Xwine-pthread -Xwine-kthread --dbg-package=wine-staging-dbg + + +override_dh_shlibdeps: +ifeq ($(DEB_HOST_ARCH),amd64) + dh_shlibdeps -l $(CURDIR)/debian/tmp/opt/wine-staging/lib64/ +else + dh_shlibdeps -l $(CURDIR)/debian/tmp/opt/wine-staging/lib/ +endif diff --git a/debian/wine-staging-amd64.config b/debian/wine-staging-amd64.config new file mode 100644 index 0000000..de6d983 --- /dev/null +++ b/debian/wine-staging-amd64.config @@ -0,0 +1,10 @@ +#!/bin/sh + +set -e + +. /usr/share/debconf/confmodule + +db_input low wine/setcaps || true +db_go + +exit 0 diff --git a/debian/wine-staging-amd64.install b/debian/wine-staging-amd64.install new file mode 100644 index 0000000..492a182 --- /dev/null +++ b/debian/wine-staging-amd64.install @@ -0,0 +1,4 @@ +/opt/wine-staging/lib64/wine/x86_64-unix +/opt/wine-staging/lib64/wine/x86_64-windows +/opt/wine-staging/bin/wine64 +/opt/wine-staging/bin/wine64-preloader diff --git a/debian/wine-staging-amd64.lintian-overrides b/debian/wine-staging-amd64.lintian-overrides new file mode 100644 index 0000000..d2743c6 --- /dev/null +++ b/debian/wine-staging-amd64.lintian-overrides @@ -0,0 +1,3 @@ +# Wine preloader needs static linking to reserve memory and work properly, see +# the comments at loader/preloader.c for a fuller explanation +wine-staging-amd64 binary: statically-linked-binary /opt/wine-staging/bin/wine64-preloader diff --git a/debian/wine-staging-amd64.postinst b/debian/wine-staging-amd64.postinst new file mode 100644 index 0000000..977bf86 --- /dev/null +++ b/debian/wine-staging-amd64.postinst @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +# Alternatively this check can be disabled by preseeding: +# echo "wine/setcaps boolean false" | debconf-set-selections + +. /usr/share/debconf/confmodule + +case "$1" in + configure) + if command -v setcap > /dev/null; then + db_get wine/setcaps + + # Allow dpkg-reconfigure to remove caps + if test "$RET" = "true"; then + if ! setcap "cap_net_raw=epi" /opt/wine-staging/bin/wine64-preloader; then + echo "Setcap failed on /opt/wine-staging/bin/wine64-preloader, applications that need to send/receive raw IP packets will not work" >&2 + fi + else + # setcap -r fails if the xattr is not present + if getcap /opt/wine-staging/bin/wine64-preloader | grep -qs "/opt/wine-staging/bin/wine64-preloader"; then + if ! setcap "-r" /opt/wine-staging/bin/wine64-preloader; then + echo "Setcap -r failed on /opt/wine-staging/bin/wine64-preloader, could not remove capabilities" >&2 + fi + fi + fi + fi + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/debian/wine-staging-amd64.templates b/debian/wine-staging-amd64.templates new file mode 100644 index 0000000..cfb9684 --- /dev/null +++ b/debian/wine-staging-amd64.templates @@ -0,0 +1,9 @@ +Template: wine/setcaps +Type: boolean +Default: false +Description: Allow ordinary users to run applications in Wine that send/receive raw IP packets? + Some applications need to send/receive raw IP packets, which on Linux requires + either a privileged user or the CAP_NET_RAW capability. + By answering yes to this question, the Wine binaries will be installed with CAP_NET_RAW + capability enabled. This will allow the applications that need it to function correctly, + but is a potential security risk. diff --git a/debian/wine-staging-dev.install b/debian/wine-staging-dev.install new file mode 100644 index 0000000..1128535 --- /dev/null +++ b/debian/wine-staging-dev.install @@ -0,0 +1 @@ +/opt/wine-staging/include diff --git a/debian/wine-staging-i386.config b/debian/wine-staging-i386.config new file mode 100644 index 0000000..de6d983 --- /dev/null +++ b/debian/wine-staging-i386.config @@ -0,0 +1,10 @@ +#!/bin/sh + +set -e + +. /usr/share/debconf/confmodule + +db_input low wine/setcaps || true +db_go + +exit 0 diff --git a/debian/wine-staging-i386.install b/debian/wine-staging-i386.install new file mode 100644 index 0000000..a2eaa50 --- /dev/null +++ b/debian/wine-staging-i386.install @@ -0,0 +1,8 @@ +/opt/wine-staging/lib/wine/i386-unix +/opt/wine-staging/lib/wine/i386-windows +/opt/wine-staging/bin/wine +/opt/wine-staging/bin/wine-preloader +/opt/wine-staging/share/man/man?/wine.?* +/opt/wine-staging/share/man/de.UTF-8/man?/wine.?* +/opt/wine-staging/share/man/fr.UTF-8/man?/wine.?* +/opt/wine-staging/share/man/pl.UTF-8/man?/wine.?* diff --git a/debian/wine-staging-i386.lintian-overrides b/debian/wine-staging-i386.lintian-overrides new file mode 100644 index 0000000..cfd5e1b --- /dev/null +++ b/debian/wine-staging-i386.lintian-overrides @@ -0,0 +1,3 @@ +# Wine preloader needs static linking to reserve memory and work properly, see +# the comments at loader/preloader.c for a fuller explanation +wine-staging-i386 binary: statically-linked-binary /opt/wine-staging/bin/wine-preloader diff --git a/debian/wine-staging-i386.postinst b/debian/wine-staging-i386.postinst new file mode 100644 index 0000000..adf98eb --- /dev/null +++ b/debian/wine-staging-i386.postinst @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +# Alternatively this check can be disabled by preseeding: +# echo "wine/setcaps boolean false" | debconf-set-selections + +. /usr/share/debconf/confmodule + +case "$1" in + configure) + if command -v setcap > /dev/null; then + db_get wine/setcaps + + # Allow dpkg-reconfigure to remove caps + if test "$RET" = "true"; then + if ! setcap "cap_net_raw=epi" /opt/wine-staging/bin/wine-preloader; then + echo "Setcap failed on /opt/wine-staging/bin/wine-preloader, applications that need to send/receive raw IP packets will not work" >&2 + fi + else + # setcap -r fails if the xattr is not present + if getcap /opt/wine-staging/bin/wine-preloader | grep -qs "/opt/wine-staging/bin/wine-preloader"; then + if ! setcap "-r" /opt/wine-staging/bin/wine-preloader; then + echo "Setcap -r failed on /opt/wine-staging/bin/wine-preloader, could not remove capabilities" >&2 + fi + fi + fi + fi + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/debian/wine-staging-i386.templates b/debian/wine-staging-i386.templates new file mode 100644 index 0000000..cfb9684 --- /dev/null +++ b/debian/wine-staging-i386.templates @@ -0,0 +1,9 @@ +Template: wine/setcaps +Type: boolean +Default: false +Description: Allow ordinary users to run applications in Wine that send/receive raw IP packets? + Some applications need to send/receive raw IP packets, which on Linux requires + either a privileged user or the CAP_NET_RAW capability. + By answering yes to this question, the Wine binaries will be installed with CAP_NET_RAW + capability enabled. This will allow the applications that need it to function correctly, + but is a potential security risk. diff --git a/debian/wine-staging.config b/debian/wine-staging.config new file mode 100644 index 0000000..de6d983 --- /dev/null +++ b/debian/wine-staging.config @@ -0,0 +1,10 @@ +#!/bin/sh + +set -e + +. /usr/share/debconf/confmodule + +db_input low wine/setcaps || true +db_go + +exit 0 diff --git a/debian/wine-staging.docs b/debian/wine-staging.docs new file mode 100644 index 0000000..3f37816 --- /dev/null +++ b/debian/wine-staging.docs @@ -0,0 +1,4 @@ +documentation/README* +ANNOUNCE.md +AUTHORS +README.md diff --git a/debian/wine-staging.install b/debian/wine-staging.install new file mode 100644 index 0000000..1e13af2 --- /dev/null +++ b/debian/wine-staging.install @@ -0,0 +1,28 @@ +/opt/wine-staging/bin +/opt/wine-staging/share/applications +/opt/wine-staging/share/wine +/opt/wine-staging/share/man/de.UTF-8/man?/winemaker.?* +/opt/wine-staging/share/man/de.UTF-8/man?/wineserver.?* +/opt/wine-staging/share/man/fr.UTF-8/man?/winemaker.?* +/opt/wine-staging/share/man/fr.UTF-8/man?/wineserver.?* +/opt/wine-staging/share/man/man?/msiexec.?* +/opt/wine-staging/share/man/man?/notepad.?* +/opt/wine-staging/share/man/man?/regedit.?* +/opt/wine-staging/share/man/man?/regsvr32.?* +/opt/wine-staging/share/man/man?/widl.?* +/opt/wine-staging/share/man/man?/wineboot.?* +/opt/wine-staging/share/man/man?/winebuild.?* +/opt/wine-staging/share/man/man?/winecfg.?* +/opt/wine-staging/share/man/man?/wineconsole.?* +/opt/wine-staging/share/man/man?/winecpp.?* +/opt/wine-staging/share/man/man?/winedbg.?* +/opt/wine-staging/share/man/man?/winedump.?* +/opt/wine-staging/share/man/man?/winefile.?* +/opt/wine-staging/share/man/man?/wineg++.?* +/opt/wine-staging/share/man/man?/winegcc.?* +/opt/wine-staging/share/man/man?/winemaker.?* +/opt/wine-staging/share/man/man?/winemine.?* +/opt/wine-staging/share/man/man?/winepath.?* +/opt/wine-staging/share/man/man?/wineserver.?* +/opt/wine-staging/share/man/man?/wmc.?* +/opt/wine-staging/share/man/man?/wrc.?* diff --git a/debian/wine-staging.postinst b/debian/wine-staging.postinst new file mode 100644 index 0000000..41ef199 --- /dev/null +++ b/debian/wine-staging.postinst @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +# Alternatively this check can be disabled by preseeding: +# echo "wine/setcaps boolean false" | debconf-set-selections + +. /usr/share/debconf/confmodule + +case "$1" in + configure) + if command -v setcap > /dev/null; then + db_get wine/setcaps + + # Allow dpkg-reconfigure to remove caps + if test "$RET" = "true"; then + if ! setcap "cap_net_raw=epi" /opt/wine-staging/bin/wineserver; then + echo "Setcap failed on /opt/wine-staging/bin/wineserver, applications that need to send/receive raw IP packets will not work" >&2 + fi + else + # setcap -r fails if the xattr is not present + if getcap /opt/wine-staging/bin/wineserver | grep -qs "/opt/wine-staging/bin/wineserver"; then + if ! setcap "-r" /opt/wine-staging/bin/wineserver; then + echo "Setcap -r failed on /opt/wine-staging/bin/wineserver, could not remove capabilities" >&2 + fi + fi + fi + fi + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/debian/wine-staging.templates b/debian/wine-staging.templates new file mode 100644 index 0000000..cfb9684 --- /dev/null +++ b/debian/wine-staging.templates @@ -0,0 +1,9 @@ +Template: wine/setcaps +Type: boolean +Default: false +Description: Allow ordinary users to run applications in Wine that send/receive raw IP packets? + Some applications need to send/receive raw IP packets, which on Linux requires + either a privileged user or the CAP_NET_RAW capability. + By answering yes to this question, the Wine binaries will be installed with CAP_NET_RAW + capability enabled. This will allow the applications that need it to function correctly, + but is a potential security risk. diff --git a/main.sh b/main.sh index d80ca48..cbe190b 100755 --- a/main.sh +++ b/main.sh @@ -6,15 +6,15 @@ set -e echo "$PIKA_BUILD_ARCH" > pika-build-arch -VERSION="1.0" +VERSION="9.14" # Clone Upstream -mkdir -p ./src-pkg-name -cp -rvf ./debian ./src-pkg-name/ -cd ./src-pkg-name/ +mkdir -p ./wine-staging +cp -rvf ./debian ./wine-staging/ +cd ./wine-staging/ # Get build deps -LOGNAME=root dh_make --createorig -y -l -p src-pkg-name_"$VERSION" || echo "dh-make: Ignoring Last Error" +LOGNAME=root dh_make --createorig -y -l -p wine-staging_"$VERSION" || echo "dh-make: Ignoring Last Error" apt-get build-dep ./ -y # Build package