#1 Update to 4.2.1
Closed 9 months ago by gui1ty. Opened a year ago by dturner.
Unknown source rawhide  into  rawhide

file modified
+1
@@ -1,2 +1,3 @@

  xaos-3.5.tar.gz

  /xaos-3.6.tar.gz

+ /release-4.2.1.tar.gz

file modified
+1 -1
@@ -1,1 +1,1 @@

- 051156fa0420bf568827600f69d92e22  xaos-3.6.tar.gz

+ SHA512 (release-4.2.1.tar.gz) = 58aa2c41d1171d4c8fa684707f4fc7619ab5f23cc902358d8bc3303fdd48b26cefe7d54dbf68a4aba9345a0ca97b752b185db19b67caa8b5e9dba50a8b6ad918

@@ -1,32 +0,0 @@

- diff -up xaos-3.6/src/engine/zoom.c.proto xaos-3.6/src/engine/zoom.c

- --- xaos-3.6/src/engine/zoom.c.proto	2013-11-01 08:54:21.000000000 +0100

- +++ xaos-3.6/src/engine/zoom.c	2015-07-09 18:56:49.884124804 +0200

- @@ -138,6 +138,7 @@ int nperi = 0;

-  #endif

-  

-  #ifndef USE_i386ASM

- +REGISTERS(0)

-  static void

-  moveoldpoints(void *data1, struct taskinfo *task, int r1, int r2)

-  REGISTERS(0);

- @@ -933,6 +934,7 @@ static /*INLINE */ void preparemoveoldpo

-  }

-  

-  #ifndef USE_i386ASM

- +REGISTERS(0)

-  static /*INLINE */ void

-  moveoldpoints(void /*@unused@ */ *data1,

-  	      struct taskinfo /*@unused@ */ *task,

- diff -up xaos-3.6/src/engine/zoomd.c.proto xaos-3.6/src/engine/zoomd.c

- --- xaos-3.6/src/engine/zoomd.c.proto	2013-11-01 08:54:21.000000000 +0100

- +++ xaos-3.6/src/engine/zoomd.c	2015-07-09 18:53:38.665002524 +0200

- @@ -280,7 +280,8 @@ dosymetry2(void /*@unused@ */ *data, str

-  #endif

-  #undef bpp1

-  

- -static INLINE void fillline(int line)

- +REGISTERS(0)

- +static void fillline(int line)

-  {

-      register unsigned char *RESTRICT vbuff = cimage.currlines[line];

-      const struct filltable *RESTRICT table = (struct filltable *) tmpdata;

@@ -1,20 +0,0 @@

- diff -up xaos-3.6/src/ui-hlp/render.c.formatsec xaos-3.6/src/ui-hlp/render.c

- --- xaos-3.6/src/ui-hlp/render.c.formatsec	2015-07-09 18:26:22.153303670 +0200

- +++ xaos-3.6/src/ui-hlp/render.c	2015-07-09 18:26:48.245476018 +0200

- @@ -606,14 +606,14 @@ uih_renderimage(struct uih_context *gc1,

-  	printmsg(gettext("Loading catalogs"));

-  	uih_loadcatalog(uih, "english");

-  	if (uih->errstring) {

- -	    fprintf(stderr, uih->errstring);

- +	    fprintf(stderr, "Error: %c");

-  	    uih_clearmessages(uih);

-  	    uih->errstring = NULL;

-  	}

-  	if (catalog != NULL)

-  	    uih_loadcatalog(uih, catalog);

-  	if (uih->errstring) {

- -	    fprintf(stderr, uih->errstring);

- +	    fprintf(stderr, "Error: %c");

-  	    uih_clearmessages(uih);

-  	    uih->errstring = NULL;

-  	}

file removed

file modified
+49 -104
@@ -1,34 +1,17 @@

+ %global src_name  release-4.2.1.tar.gz

+ %global alt_name  XaoS

+ 

  Name:           xaos

- Version:        3.6

- Release:        18%{?dist}

+ Version:	4.2.1

+ Release:	2%{?dist}

  Summary:        A fast, portable real-time interactive fractal zoomer

  

- License:        GPLv2+

- URL:            http://xaos.sourceforge.net

- Source0:        http://surfnet.dl.sourceforge.net/sourceforge/xaos/xaos-%{version}.tar.gz

- Source1:	xaos.png

- Patch0:	xaos-3.6-fix-conflicting-register-types.patch

- Patch1:	xaos-3.6-format-security.patch

- BuildRequires: make

- BuildRequires:  gcc

- BuildRequires:  slang-devel

- BuildRequires:	zlib-devel

- BuildRequires:	libpng-devel

- BuildRequires:	aalib-devel

- BuildRequires:  gpm-devel

- BuildRequires:  gsl-devel

- BuildRequires:  gtk2-devel

- BuildRequires:	ncurses-devel

- BuildRequires:	libXt-devel

- BuildRequires:	libX11-devel

- BuildRequires:	libXext-devel

- BuildRequires:	libXxf86vm-devel

- BuildRequires:	libXxf86dga-devel

- BuildRequires:	dvipdfm

- BuildRequires:	texinfo

- BuildRequires:	texinfo-tex

- BuildRequires:  desktop-file-utils

- BuildRequires:	gettext

+ License:        GPL-2.0-or-later

+ URL:            https://github.com/xaos-project/XaoS

+ Source:		https://github.com/xaos-project/XaoS/archive/refs/tags/%{src_name}

+ 

+ BuildRequires:  qt5-qtbase-devel

+ BuildRequires:  qt5-rpm-macros qt5-linguist

  

  

  %description
@@ -41,87 +24,49 @@

  

  

  %prep

- %setup0 -q 

- %patch0 -p1 -b .proto

- %patch1 -p1 -b .formatsec

- # disable stripping binaries when installing

- sed -i 's| -s | |' Makefile.in

+ %autosetup -n XaoS-release-4.2.1

  

  %build

- %ifarch %ix86 x86_64

- %define long_double --with-long-double

- %endif

- %configure \

-     --with-gsl=yes \

-     --with-sffe=yes \

-     --with-png=yes \

-     --with-gtk-driver=yes \

-     --with-aa-driver=yes \

-     --with-pthread=yes \

-     %{long_double}

- make %{?_smp_mflags}

- 

+ %qmake_qt5

+ %make_build STRIP=:

  

  %install

- mkdir -p $RPM_BUILD_ROOT%{_infodir}

- make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"

- pushd doc

- make xaos.dvi

- dvipdfm xaos.dvi

- popd

- pushd help

- make html

- popd

- 

- # Setup the doc dir structure for install via %%doc

- mv help help-build

- mkdir help

- cp -pr help-build/*.html help/

- cp -pr help-build/*.css help/

- cp -pr help-build/*.jpg help/

- 

- mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps

- cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/pixmaps

- 

- cat > xaos.desktop <<EOF

- [Desktop Entry]

- Name=XaoS

- Comment=Interactive fractal zoomer

- Exec=xaos -driver "GTK+ Driver"

- Icon=xaos

- Terminal=false

- Type=Application

- Categories=Application;Education;Math;Graphics;

- Encoding=UTF-8

- X-Desktop-File-Install-Version=0.10

- EOF

- 

- mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications

- desktop-file-install \

-         --dir $RPM_BUILD_ROOT%{_datadir}/applications \

-         xaos.desktop

- 

- rm -f $RPM_BUILD_ROOT%{_datadir}/XaoS/catalogs/README

- rm -fr $RPM_BUILD_ROOT%{_datadir}/XaoS/doc

- rm -f $RPM_BUILD_ROOT%{_infodir}/dir

- 

- find $RPM_BUILD_ROOT%{_prefix} -exec chmod u+rw '{}' ';'

- 

- %find_lang %{name}

- 

- %files -f %{name}.lang

- %doc README COPYING TODO ChangeLog NEWS

- %doc AUTHORS doc/xaos.pdf

- %doc help

- %{_bindir}/*

- %{_infodir}/*

- %{_datadir}/XaoS

- %{_datadir}/applications/*

- %{_datadir}/pixmaps/*

- %{_mandir}/man*/*

- 

+ #

+ # Stolen from https://build.opensuse.org/package/view_file/openSUSE:Factory/xaos/xaos.spec?expand=1

+ #

+ # Empty install target generated by qmake => install files manually

+ # Binary

+ install -D --mode 0755 --target-directory %{buildroot}%{_bindir} bin/%{name}

+ 

+ # Data; Datapath forced to %%{alt_name} (not configurable)

+ install -D --mode 0644 --target-directory %{buildroot}%{_datadir}/%{alt_name}/catalogs catalogs/*.cat

+ cp --archive examples tutorial %{buildroot}%{_datadir}/%{alt_name}

+ 

+ # Icon, .desktop, AppData

+ install -D --mode 0644 --target-directory %{buildroot}%{_datadir}/metainfo xdg/%{name}.appdata.xml

+ install -D --mode 0644 --target-directory %{buildroot}%{_datadir}/applications xdg/%{name}.desktop

+ install -D --mode 0644 --target-directory %{buildroot}%{_datadir}/pixmaps xdg/%{name}.png

+ 

+ # Man

+ install -D --mode 0644 --target-directory %{buildroot}%{_mandir}/man6 doc/%{name}.6

+ 

+ %files

+ %doc CREDITS.md NEWS doc/README

+ %license COPYING

+ %{_bindir}/%{name}

+ %{_datadir}/%{alt_name}

+ %{_datadir}/applications/%{name}.desktop

+ %{_datadir}/metainfo/%{name}.appdata.xml

+ %{_datadir}/pixmaps/%{name}.png

+ %{_mandir}/man6/xaos.6.gz

  

  %changelog

+ * Fri Jan 13 2023 Dale Turner <rxguy@protonmail.com> - 4.2.1-2

+ - migrated to SPDX license

+ 

+ * Sat Jan 07 2023 Dale Turner <rxguy@protonmail.com> - 4.2.1

+ - Update to 4.2.1

+ 

  * Tue Aug 23 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.6-18

  - Rebuild for gsl-2.7.1

  
@@ -173,7 +118,7 @@

  * Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.6-2

  - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

  

- * Thu Jul  9 2015 Gérard Milmeister <gemi@bluewin.ch> - 3.6-1

+ * Thu Jul  9 2015 GĂ©rard Milmeister <gemi@bluewin.ch> - 3.6-1

  - new release 3.6

  

  * Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5-13

Update to 4.2.1 - Many changes including: Qt interface instead of GTK, C++ instead of C, etc. Removed unneeded patch files.

2 new commits added

  • Fixed sources
  • Deleted png, deleted sources, tidied spec
a year ago

Thanks for the PR! I'll review it soon. I'm leaning towards using %forgemeta for the sources. If you don't know what that is or what it does:

https://fedoraproject.org/wiki/Forge-hosted_projects_packaging_automation

But that can be applied after merging your PR.

Metadata Update from @gui1ty:
- Request assigned

a year ago

I see the scratch build failed. That's something to investigate. @dturner, did you look into the build output already?

Clearly I don't know what I'm doing. Sorry about that. Do I investigate the scratch build link? (https://osci-jenkins-1.ci.fedoraproject.org/job/fedora-ci/job/dist-git-build-pipeline/job/master/26581/) If so, I'm not sure what I'm looking at there...
Perhaps it is something I'm doing wrong on my machine with fedpkg. That's all new to me. This builds in mock.
Apologies for the rough start...

Stop worrying, you'll get there. It's daunting at times, I know. Bu we'll take it one step at a time.

Yes, you have to look at the CI build output. There's a lot of extra information in there. I usually head straight to the console output and look for any errors.

Downloading release-4.2.1.tar.gz
Remove downloaded invalid file /root/jenkins/workspace/i_dist-git-build-pipeline_master/xaos/release-4.2.1.tar.gz
Could not execute sources: Server returned status code 404

Looks like the new tarball has not been uploaded to the dist-git side cache. So, Koji is missing the source to build from. That's where Copr and Koji differ. Copr takes the sources from the SRPM. For information on how to upload sources:

https://docs.fedoraproject.org/en-US/package-maintainers/Package_Maintenance_Guide/#_upload_new_source_files_to_the_lookaside_cache

Try to do that using fedpkg as described. Should that fail due to lack of permissions, maybe, let me know and I'll do it.

That doesn't work for me.

fedpkg clone forks/dturner/rpms/xaos gives me:

fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Could not execute clone: Failed to execute command.

While fedpkg clone --anonymous forks/dturner/rpms/xaos works.
But then fedpkg new-sources release-4.2.1.tar.gz gives me:
Could not execute new_sources: Request is unauthorized.

According to the docs, I think that is expected behaviour, but I am unsure how to proceed.

1 new commit added

  • migrated to SPDX license
a year ago

Alright, I uploaded the new source tarball.

Did you run fkinit before running fedpkg clone? See also: https://docs.fedoraproject.org/en-US/package-maintainers/Installing_Packager_Tools/#kerberos_ticket
Just wondering if not having a kerberos ticket may be the issue here.

I'm not sure how to re-trigger the scratch build other than updating the PR with another push. But I'll start the review first and leave that for later.

I'm doing the a review here as I would for a new package. Some of the issues detected might have been in the package before you adopted it. Guidelines change. But I would recommend looking into them and get the issues fixed.

I only took a global look at the package so far. I will take a closer look at some of the stuff in the spec file. Some of it I don't quite understand, yet.

Package Review

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed

Issues:

===== MUST items =====

C/C++:
[?]: Package does not contain kernel modules.
[?]: Package contains no static executables.
[x]: Header files in -devel subpackage, if present.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

Generic:
[x]: Package successfully compiles and builds into binary rpms on at least
one supported primary architecture.
Note: Using prebuilt packages
[x]: Package is licensed with an open-source compatible license and meets
other legal requirements as defined in the legal section of Packaging
Guidelines.
[!]: License field in the package spec file matches the actual license.
Note: Checking patched sources after %prep for licenses. Licenses
found: "GNU General Public License, Version 2", "Unknown or
generated", "GNU General Public License v2.0 or later", "GNU General
Public License, Version 1", "GNU General Public License v2.0 or later
[obsolete FSF postal address (Mass Ave)]", "GNU General Public License
v3.0 or later", "GNU General Public License, Version 3". 380 files
have unknown license. Detailed output of licensecheck in
/var/lib/copr-rpmbuild/results/xaos/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[?]: Sources contain only permissible code or content.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
(~1MB) or number of files.
Note: Documentation size is 30720 bytes in 3 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the
license(s) in its own file, then that file, containing the text of the
license(s) for the package is included in %license.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package contains desktop file if it is a GUI application.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
%{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[x]: Reviewer should test that the package builds in mock.
[-]: If the source package does not include license text(s) as a separate
file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Sources are verified with gpgverify first in %prep if upstream
publishes signatures.
Note: gpgverify is not used.
[x]: Package should compile and build into binary rpms on all supported
architectures.
[!]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
files.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
$RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Fully versioned dependency in subpackages if applicable.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on debuginfo package(s).
Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package
is arched.

Besides the scratch build now working, I also made a build in Copr with the fedora-review enabled and a scratch build in Koji confirming it builds for all architectures.

Changes from this PR have been included in PR #2. Thanks @dturner!

Pull-Request has been closed by gui1ty

9 months ago