Hello community, here is the log from the commit of package wsl-appx for openSUSE:Factory checked in at 2020-01-23 15:53:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/wsl-appx (Old) and /work/SRC/openSUSE:Factory/.wsl-appx.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wsl-appx" Thu Jan 23 15:53:46 2020 rev:1 rq:764233 version:1 Changes: -------- New Changes file: --- /dev/null 2019-12-19 10:12:34.003146842 +0100 +++ /work/SRC/openSUSE:Factory/.wsl-appx.new.26092/wsl-appx.changes 2020-01-23 15:53:50.603060221 +0100 @@ -0,0 +1,95 @@ +------------------------------------------------------------------- +Tue Jan 14 09:26:53 UTC 2020 - Ludwig Nussel <[email protected]> + +- wsl-launcher was renamed to WSL-DistroLauncher + +------------------------------------------------------------------- +Fri Nov 22 15:22:40 UTC 2019 - Ludwig Nussel <[email protected]> + +- store file with sha256sum of appx file. Otherwise build-compare would + consider build results unchanged that only affected eg the launcher. + +------------------------------------------------------------------- +Wed Nov 6 10:00:18 UTC 2019 - Ludwig Nussel <[email protected]> + +- use different approach to the version in order to match guidelines + https://docs.microsoft.com/en-us/windows/uwp/publish/package-version-numbering + +------------------------------------------------------------------- +Tue Nov 5 15:43:56 UTC 2019 - Ludwig Nussel <[email protected]> + +- set publisher display name correctly to SUSE resp openSUSE +- add compat cert requirement for OBS instances that don't + understand #needsappxsslcertforbuild + +------------------------------------------------------------------- +Thu Oct 24 12:57:44 UTC 2019 - Ludwig Nussel <[email protected]> + +- appx needs a differnt cert, therefore use #needsappxsslcertforbuild + +------------------------------------------------------------------- +Thu Oct 17 15:25:27 UTC 2019 - Ludwig Nussel <[email protected]> + +- use SLE branding on SLE + +------------------------------------------------------------------- +Thu Oct 17 11:27:58 UTC 2019 - Ludwig Nussel <[email protected]> + +- set publisher based on project SSL cert + +------------------------------------------------------------------- +Thu Oct 17 11:09:43 UTC 2019 - Ludwig Nussel <[email protected]> + +- include architecure in appx file name + +------------------------------------------------------------------- +Thu Oct 17 08:03:42 UTC 2019 - Ludwig Nussel <[email protected]> + +- add build number to appx file name + +------------------------------------------------------------------- +Thu Oct 10 08:46:24 UTC 2019 - Ludwig Nussel <[email protected]> + +- rename DistroLauncher.exe to distro specific name + +------------------------------------------------------------------- +Tue Oct 8 15:02:26 UTC 2019 - Ludwig Nussel <[email protected]> + +- try setting a more meaningful version in the appx file + +------------------------------------------------------------------- +Fri Oct 4 13:45:48 UTC 2019 - Ludwig Nussel <[email protected]> + +- actually compress install.tar.gz +- don't needlessly package appx as rpm + +------------------------------------------------------------------- +Wed Oct 2 14:25:02 UTC 2019 - Ludwig Nussel <[email protected]> + +- produce package list and print appx size + +------------------------------------------------------------------- +Wed Oct 2 13:58:02 UTC 2019 - Ludwig Nussel <[email protected]> + +- also check /etc/os-release in case /usr/lib/os-release doesn't exist + +------------------------------------------------------------------- +Tue Oct 1 15:25:40 UTC 2019 - Ludwig Nussel <[email protected]> + +- adjust wsl image name +- prepare for sle + +------------------------------------------------------------------- +Wed Sep 11 12:33:12 UTC 2019 - Ludwig Nussel <[email protected]> + +- add hack to set publisher for signing + +------------------------------------------------------------------- +Thu Aug 8 14:25:52 UTC 2019 - Ludwig Nussel <[email protected]> + +- auto adjust to distro version + +------------------------------------------------------------------- +Thu Oct 19 17:43:05 UTC 2017 - [email protected] + +- Initial OBS build New: ---- AppxManifest.xml openSUSE.tar.gz sle.tar.gz wsl-appx.changes wsl-appx.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wsl-appx.spec ++++++ # # spec file for package wsl-appx # # Copyright (c) 2017 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # needssslcertforbuild # needsappxsslcertforbuild %if 0%{?is_opensuse} %define image_package opensuse-wsl-image %else %define image_package suse-wsl-image %endif Name: wsl-appx Version: 1 Release: 0 License: MIT Summary: SUSE on Windows application Url: https://gitlab.suse.de/cbosdonnat/wsl-app Group: Productivity/Other Source0: AppxManifest.xml Source1: openSUSE.tar.gz Source2: sle.tar.gz BuildRequires: mingw64-filesystem BuildRequires: WSL-DistroLauncher BuildRequires: WSL-DistroLauncher-debug BuildRequires: fb-util-for-appx %if 0%{?is_opensuse} BuildRequires: openSUSE-release %else BuildRequires: sles-release %endif BuildRequires: %image_package BuildRequires: openssl(cli) BuildRoot: %{_tmppath}/%{name}-%{version}-build %description Windows Store application providing SLES or openSUSE. %prep %setup -Tc -a1 -a2 %if 0%{?is_opensuse} ln -s openSUSE files %else ln -s sle files %endif os_release_file="/usr/lib/os-release" if [ -e "/etc/os-release" ]; then os_release_file="/etc/os-release" fi # This is dirty. The CN of the AppxManifest needs to match the # signing certificate's CN. In OBS the CN is the project name. The # project itself may not have a cert so we can't use %_project. So # we abuse %vendor which is the project whith the key. #PROJECT="%vendor" #PROJECT="${PROJECT##*/}" #OBS="%vendor" #OBS="${OBS#*//}" #OBS="${OBS%/*}" #PUBLISHER="E=$PROJECT@$OBS, CN=$PROJECT OBS Project" if [ -e "%{_sourcedir}/_projectcert.crt" ]; then # mangle value so Windows accepts it PUBLISHER=`openssl x509 -subject -in "%{_sourcedir}/_projectcert.crt" -noout -nameopt RFC2253 |sed -e 's/^subject=//;s/emailAddress/E/g;s/,/, /g'` else PUBLISHER="nobody" fi . "$os_release_file" APPID="${PRETTY_NAME//[^[:alnum:]]/}" LAUNCHERNAME="${PRETTY_NAME//[^[:alnum:].]/-}.exe" RELEASE="`rpm -q --qf '%%{release}' %image_package`" ARCH="%_arch" case "$ARCH" in x86_64) ARCH="x64" ;; aarch64) ARCH="arm64" ;; esac PUBLISHER_DISPLAY_NAME="%{?is_opensuse:open}SUSE" # an appx version needs to match this pattern: # '(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])(\.(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])){3}' # found in the error log if you don't set the proper version. # for actual store submission there are more rules: # https://docs.microsoft.com/en-us/windows/uwp/publish/package-version-numbering # So we need to mangle the versions in a creative way if [ "$ID" = "opensuse-tumbleweed" ]; then VERSION=`printf "%d.%d.%d%02d.0" "${VERSION_ID:2:4}" "${VERSION_ID:6}" "${RELEASE%.*}" "${RELEASE#*.}"` APPXNAME="${PRETTY_NAME//[^[:alnum:].]/-}-$ARCH-Build$VERSION_ID.$RELEASE.appx" else RELEASE="${RELEASE/lp???./}" VERSION=`printf "%s.%d%02d.0" "${VERSION_ID}" "${RELEASE%.*}" "${RELEASE#*.}"` APPXNAME="${PRETTY_NAME//[^[:alnum:].]/-}-$ARCH-Build$RELEASE.appx" fi for i in PRETTY_NAME APPID ARCH PUBLISHER PUBLISHER_DISPLAY_NAME VERSION LAUNCHERNAME APPXNAME; do eval echo "\"$i='\$$i'\"" done > .settings cd files sed -e "s/@PRETTY_NAME@/${PRETTY_NAME}/g;s/@APPID@/$APPID/g;s/@PUBLISHER@/$PUBLISHER/g;s/@PUBLISHER_DISPLAY_NAME@/$PUBLISHER_DISPLAY_NAME/g;s/@VERSION@/${VERSION}/g;s/@LAUNCHERNAME@/$LAUNCHERNAME/g;s/@ARCH@/$ARCH/g" \ < %{SOURCE0} > AppxManifest.xml cat AppxManifest.xml # Get the binary cp %{_mingw64_bindir}/DistroLauncher.exe "$LAUNCHERNAME" %build . ./.settings cd files ## Get the rootfs tarball mkdir docker tar -xf /usr/share/suse-docker-images/native/*.tar.xz -C docker tarball=$(find docker -size +10M) mv ${tarball} install.tar # XXX for some reason the file from the docker archive has 0 epoch touch -d "@${SOURCE_DATE_EPOCH:-`date +%%s`}" install.tar ls -al install.tar # XXX for some reason it's gzip'd on SLE12 but not in newer distros. # Bug in containment-rpm-docker? case "`file install.tar`" in *gzip*) mv install.tar install.tar.gz ;; *) gzip install.tar ;; esac rm -rf docker # Create a filemap find * -type f | awk 'BEGIN { print "[Files]" } /filemap.txt/ { next; } { print "\"" $0 "\" \"" $0 "\"" }' > filemap.txt # TODO So far .pri files are generated by VS and added to the source # it would be way better to have them generated here with an opensource tool appx -o "$APPXNAME" -f filemap.txt sha256sum "$APPXNAME" > "$APPXNAME".sha256 mkdir r %if 0%{?suse_version} > 1315 tar -C r -xzf $PWD/install.tar.gz usr/lib/sysimage/rpm/Packages %else tar -C r -xzf $PWD/install.tar.gz var/lib/rpm/Packages %endif rpm --root $PWD/r -qa --qf '%%{size} %%{name}\n' | sort -n > "$APPXNAME.packages.sizes" rpm --root $PWD/r -qa --qf '%%{name}|%%{epoch}|%%{version}|%%{release}|%%{arch}|%%{disturl}\n' | sort > "$APPXNAME.packages" rm -rf r echo -n "### APPX size: " du -h "$APPXNAME" %install cd files install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/appx cp *.appx* $(dirname $RPM_SOURCE_DIR)/OTHER/ %files # store package list just for reference %doc files/*.appx.* %changelog ++++++ AppxManifest.xml ++++++ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <Package IgnorableNamespaces="uap uap2 uap3 rescap desktop" xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2" xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"> <Identity Name="46932SUSE.@APPID@" Version="@VERSION@" Publisher="@PUBLISHER@" ProcessorArchitecture="@ARCH@" /> <Properties> <DisplayName>@PRETTY_NAME@</DisplayName> <PublisherDisplayName>@PUBLISHER_DISPLAY_NAME@</PublisherDisplayName> <Logo>Assets\StoreLogo.png</Logo> </Properties> <Resources> <Resource Language="en-us" /> </Resources> <Dependencies> <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.16215.0" MaxVersionTested="10.0.16288.1" /> </Dependencies> <Capabilities> <rescap:Capability Name="runFullTrust" /> </Capabilities> <Applications> <Application Id="@APPID@" Executable="@LAUNCHERNAME@" EntryPoint="Windows.FullTrustApplication"> <uap:VisualElements DisplayName="@PRETTY_NAME@" Description="@PRETTY_NAME@" BackgroundColor="#73ba25" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png"> <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" Square310x310Logo="Assets\LargeTile.png" Square71x71Logo="Assets\SmallTile.png" ShortName="@PRETTY_NAME@"> <uap:ShowNameOnTiles> <uap:ShowOn Tile="wide310x150Logo" /> <uap:ShowOn Tile="square310x310Logo" /> </uap:ShowNameOnTiles> </uap:DefaultTile> </uap:VisualElements> <Extensions> <uap3:Extension Category="windows.appExecutionAlias" Executable="@LAUNCHERNAME@" EntryPoint="Windows.FullTrustApplication"> <uap3:AppExecutionAlias> <desktop:ExecutionAlias Alias="@LAUNCHERNAME@" /> </uap3:AppExecutionAlias> </uap3:Extension> </Extensions> </Application> </Applications> <mp:PhoneIdentity PhoneProductId="0e1c4fe6-69f2-4cd9-9dce-8a964fe193c3" PhonePublisherId="81795974-7f01-4069-8b81-c6350b96d357" /> </Package>
