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>

Reply via email to