Bug 1000731 - Review Request: waffle - Platform independent GL API layer
Summary: Review Request: waffle - Platform independent GL API layer
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Christopher Meng
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-08-24 18:08 UTC by Matěj Cepl
Modified: 2018-04-11 10:13 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-10-18 03:43:38 UTC
Type: ---
Embargoed:
i: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Matěj Cepl 2013-08-24 18:08:47 UTC
Spec URL: http://mcepl.fedorapeople.org/tmp/waffle.spec
SRPM URL: http://mcepl.fedorapeople.org/tmp/waffle-1.2.3-1.el7.src.rpm
Description:
Waffle is a cross-platform C library that allows one to defer
selection of GL API and of window system until runtime.

Fedora Account System Username: mcepl

Comment 1 Christopher Meng 2013-08-25 16:14:35 UTC
%cmake \
    -DCMAKE_INSTALL_PREFIX=%{_prefix} \
    -DCMAKE_INSTALL_LIBDIR=%{_lib} \
    -DCMAKE_INSTALL_DOCDIR=%{_defaultdocdir}/%{name}-%{version} \
    -DCMAKE_LIBRARY_PATH=$(echo $LIBRARY_PATH | sed 's/:/;/g') \
    -DCMAKE_BUILD_STRIP=FALSE \
    -Dwaffle_has_glx=1 .

Please check rpm -E %cmake and remove the duplicate lines.

And

    -DCMAKE_INSTALL_DOCDIR=%{_defaultdocdir}/%{name}-%{version} \

stands for what?

=========================================================
waffle-devel.i686: E: arch-dependent-file-in-usr-share /usr/share/doc/waffle-devel/examples/gl_basic
waffle-devel.i686: W: unstripped-binary-or-object /usr/share/doc/waffle-devel/examples/gl_basic
waffle-devel.i686: E: binary-or-shlib-defines-rpath /usr/share/doc/waffle-devel/examples/gl_basic ['/builddir/build/BUILD/waffle-1.2.3/lib']
waffle-devel.i686: E: arch-dependent-file-in-usr-share /usr/share/doc/waffle-devel/examples/simple-x11-egl
waffle-devel.i686: W: unstripped-binary-or-object /usr/share/doc/waffle-devel/examples/simple-x11-egl
waffle-devel.i686: E: binary-or-shlib-defines-rpath /usr/share/doc/waffle-devel/examples/simple-x11-egl ['/builddir/build/BUILD/waffle-1.2.3/lib']
waffle-devel.i686: E: arch-dependent-file-in-usr-share /usr/share/doc/waffle-devel/examples/CMakeFiles/simple-x11-egl.dir/simple-x11-egl.c.o
waffle-devel.i686: E: arch-dependent-file-in-usr-share /usr/share/doc/waffle-devel/examples/CMakeFiles/gl_basic.dir/gl_basic.c.o
waffle-devel.i686: E: non-standard-executable-perm /usr/share/doc/waffle-devel/examples/gl_basic 0775L
waffle-devel.i686: W: spurious-executable-perm /usr/share/doc/waffle-devel/examples/gl_basic
waffle-devel.i686: E: non-standard-executable-perm /usr/share/doc/waffle-devel/examples/simple-x11-egl 0775L
waffle-devel.i686: W: spurious-executable-perm /usr/share/doc/waffle-devel/examples/simple-x11-egl
waffle-devel.i686: E: version-control-internal-file /usr/share/doc/waffle-devel/examples/gl_basic.xcodeproj/.gitignore
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic rtld(GNU_HASH)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl rtld(GNU_HASH)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libc.so.6(GLIBC_2.7)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libX11-xcb.so.1
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libX11-xcb.so.1
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libpthread.so.0(GLIBC_2.0)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libc.so.6(GLIBC_2.0)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libc.so.6(GLIBC_2.0)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libxcb.so.1
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libxcb.so.1
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libGL.so.1
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libGL.so.1
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libpthread.so.0
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libpthread.so.0
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libc.so.6(GLIBC_2.3.4)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libdl.so.2
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libdl.so.2
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libX11.so.6
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libX11.so.6
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libc.so.6
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libc.so.6
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libc.so.6(GLIBC_2.4)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libc.so.6(GLIBC_2.4)

=====================================================

And these are mess..

Name:        waffle
Version:    1.2.3
Release:    1%{?dist}
Summary:    Platform independent GL API layer

Group:        Development/Libraries
License:    MIT
URL:    http://people.freedesktop.org/~chadversary/waffle/releases.html
Source0: http://people.freedesktop.org/~chadversary/%{name}/files/release/%{name}-%{version}/%{name}-%{version}.tar.xz

BuildRequires:    cmake libxslt docbook-style-xsl libxcb-devel
BuildRequires:    libX11-devel mesa-libGL-devel mesa-libGLU-devel
BuildRequires:  mesa-libEGL-devel mesa-libGLES-devel

You can try this:

Name:           waffle
Version:        1.2.3
Release:        1%{?dist}
Summary:        Platform independent GL API layer
Group:          Development/Libraries
License:        MIT
URL:            http://people.freedesktop.org/~chadversary/waffle/releases.html
Source0:        http://people.freedesktop.org/~chadversary/%{name}/files/release/%{name}-%{version}/%{name}-%{version}.tar.xz

BuildRequires:  cmake libxslt docbook-style-xsl libxcb-devel
BuildRequires:  libX11-devel mesa-libGL-devel mesa-libGLU-devel
BuildRequires:  mesa-libEGL-devel mesa-libGLES-devel

Comment 3 Christopher Meng 2013-08-27 05:12:52 UTC
- You bump the release in SPEC on fp.o, but not the SRPM.

- Requires:   %{name} = %{version}-%{release}

Due to https://fedoraproject.org/wiki/Packaging:Guidelines#BuildRequires_and_.25.7B_isa.7D

should be:

Requires:   %{name}%{?_isa} = %{version}-%{release}

- Are these examples belonged to Group:      Development/Libraries?

- CMAKE Options:

option(waffle_build_tests "Build tests" ON)
option(waffle_build_manpages "Build manpages" OFF)
option(waffle_build_htmldoc "Build html documentation" OFF)
option(waffle_build_examples "Build examples" ON)
option(waffle_has_glx "Build support for GLX" OFF)
option(waffle_has_wayland "Build support for Wayland" OFF)
option(waffle_has_x11_egl "Build support for X11/EGL" OFF)
option(waffle_has_gbm "Build support for GBM" OFF)

You just define -Dwaffle_has_glx=1, why not enable others such as wayland?

================================

Rpmlint (installed packages)
----------------------------
# rpmlint waffle-examples waffle-devel waffle
waffle-devel.i686: E: arch-dependent-file-in-usr-share /usr/share/doc/waffle-devel/examples/gl_basic
waffle-devel.i686: W: unstripped-binary-or-object /usr/share/doc/waffle-devel/examples/gl_basic
waffle-devel.i686: E: binary-or-shlib-defines-rpath /usr/share/doc/waffle-devel/examples/gl_basic ['/builddir/build/BUILD/waffle-1.2.3/lib']
waffle-devel.i686: E: arch-dependent-file-in-usr-share /usr/share/doc/waffle-devel/examples/simple-x11-egl
waffle-devel.i686: W: unstripped-binary-or-object /usr/share/doc/waffle-devel/examples/simple-x11-egl
waffle-devel.i686: E: binary-or-shlib-defines-rpath /usr/share/doc/waffle-devel/examples/simple-x11-egl ['/builddir/build/BUILD/waffle-1.2.3/lib']
waffle-devel.i686: E: arch-dependent-file-in-usr-share /usr/share/doc/waffle-devel/examples/CMakeFiles/simple-x11-egl.dir/simple-x11-egl.c.o
waffle-devel.i686: E: arch-dependent-file-in-usr-share /usr/share/doc/waffle-devel/examples/CMakeFiles/gl_basic.dir/gl_basic.c.o
waffle-devel.i686: E: non-standard-executable-perm /usr/share/doc/waffle-devel/examples/gl_basic 0775L
waffle-devel.i686: W: spurious-executable-perm /usr/share/doc/waffle-devel/examples/gl_basic
waffle-devel.i686: E: non-standard-executable-perm /usr/share/doc/waffle-devel/examples/simple-x11-egl 0775L
waffle-devel.i686: W: spurious-executable-perm /usr/share/doc/waffle-devel/examples/simple-x11-egl
waffle-devel.i686: E: version-control-internal-file /usr/share/doc/waffle-devel/examples/gl_basic.xcodeproj/.gitignore
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic rtld(GNU_HASH)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl rtld(GNU_HASH)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libc.so.6(GLIBC_2.7)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libX11-xcb.so.1
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libX11-xcb.so.1
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libpthread.so.0(GLIBC_2.0)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libc.so.6(GLIBC_2.0)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libc.so.6(GLIBC_2.0)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libxcb.so.1
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libxcb.so.1
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libGL.so.1
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libGL.so.1
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libpthread.so.0
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libpthread.so.0
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libc.so.6(GLIBC_2.3.4)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libdl.so.2
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libdl.so.2
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libX11.so.6
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libX11.so.6
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libc.so.6
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libc.so.6
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/gl_basic libc.so.6(GLIBC_2.4)
waffle-devel.i686: W: doc-file-dependency /usr/share/doc/waffle-devel/examples/simple-x11-egl libc.so.6(GLIBC_2.4)

1. version-control-internal-file error, should be fixed;
2. doc-file-dependency is caused by wrong permissions %doc(spurious-executable-perm/non-standard-executable-perm), please chmod.
3. arch-dependent-file-in-usr-share error is caused by object files, can you remove them?
4. Other errors are example files related. Just fix permissions is enough.

Comment 4 Christopher Meng 2013-09-06 03:11:34 UTC
ping after 10 days.

Comment 5 Matěj Cepl 2013-09-26 14:59:51 UTC
(In reply to Christopher Meng from comment #3)
> - You bump the release in SPEC on fp.o, but not the SRPM.

SPEC file: http://mcepl.fedorapeople.org/tmp/waffle.spec
SRPM: http://mcepl.fedorapeople.org/tmp/waffle-1.2.3-3.el7.src.rpm

> should be:
>
> Requires:   %{name}%{?_isa} = %{version}-%{release}

Fixed

> - Are these examples belonged to Group:      Development/Libraries?

Well, I am not sure what to put there. Looking at /usr/share/doc/rpm-*/GROUPS I see

Development/Debuggers
Development/Languages
Development/Libraries
Development/System
Development/Tools
Documentation

OK, let's try Development/Tools but I am not persuaded that any of these
is much better. Documentation is probably just for the “true
documentation” right?

> - CMAKE Options:
>
> option(waffle_build_tests "Build tests" ON)
> option(waffle_build_manpages "Build manpages" OFF)
> option(waffle_build_htmldoc "Build html documentation" OFF)
> option(waffle_build_examples "Build examples" ON)
> option(waffle_has_glx "Build support for GLX" OFF)
> option(waffle_has_wayland "Build support for Wayland" OFF)
> option(waffle_has_x11_egl "Build support for X11/EGL" OFF)
> option(waffle_has_gbm "Build support for GBM" OFF)
>
> You just define -Dwaffle_has_glx=1, why not enable others such as wayland?

Frankly, I need waffle just as a dependency for piglit. I may eventually
switch on GLX, X11/EGL, but unless somebody presents to me useful case
which would require something else, I don't want to add more %ifs and
%bconds to my spec than is necessarily now. Is it failure of the
Packaging Guidelines 

> # rpmlint waffle-examples waffle-devel waffle
> waffle-devel.i686: E: arch-dependent-file-in-usr-share
> /usr/share/doc/waffle-devel/examples/gl_basic

Examples are now in %{_libdir}/%{name}-examples

> 1. version-control-internal-file error, should be fixed;
> 2. doc-file-dependency is caused by wrong permissions
> %doc(spurious-executable-perm/non-standard-executable-perm), please chmod.
> 3. arch-dependent-file-in-usr-share error is caused by object files, can you
> remove them?
> 4. Other errors are example files related. Just fix permissions is enough.

matej@wycliff: waffle (master *%)$ make lint
rpmlint -i *.src.rpm x86_64/*.rpm
waffle.src: W: spelling-error %description -l en_US runtime -> run time, run-time, rudiment
The value of this tag appears to be misspelled. Please double-check.

waffle.x86_64: W: spelling-error %description -l en_US runtime -> run time, run-time, rudiment
The value of this tag appears to be misspelled. Please double-check.

waffle-examples.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

5 packages and 0 specfiles checked; 0 errors, 3 warnings.
matej@wycliff: waffle (master *%)$

Comment 6 Christopher Meng 2013-09-27 03:08:33 UTC
(In reply to Matěj Cepl from comment #5)

> Well, I am not sure what to put there. Looking at
> /usr/share/doc/rpm-*/GROUPS I see
> 
> Development/Debuggers
> Development/Languages
> Development/Libraries
> Development/System
> Development/Tools
> Documentation
> 
> OK, let's try Development/Tools but I am not persuaded that any of these
> is much better. Documentation is probably just for the “true
> documentation” right?

Ah I don't write Groups tag anymore nowadays...

> [cut]
> Frankly, I need waffle just as a dependency for piglit. I may eventually
> switch on GLX, X11/EGL, but unless somebody presents to me useful case
> which would require something else, I don't want to add more %ifs and
> %bconds to my spec than is necessarily now. Is it failure of the
> Packaging Guidelines 

No, but as F21+ may enable wayland, and I think you *may* enable it later. BUT:

> > option(waffle_build_manpages "Build manpages" OFF)
> > option(waffle_build_htmldoc "Build html documentation" OFF)

should be "ON", agree?

Others are fine now.

Comment 9 Christopher Meng 2013-09-27 09:11:25 UTC
↓↓↓↓↓↓↓↓↓↓↓↓↓ATTENTION↓↓↓↓↓↓↓↓↓↓↓↓↓

%package doc
Summary:    Documentation for %{name}
Group:      Documentation
Requires:   %{name}%{?_isa} = %{version}-%{release}

%description doc
Contains HTML version of the developer documentation for development of
%{name}-related software (manpages are in the -devel package).

↑↑↑↑↑↑↑↑↑↑↑↑↑ATTENTION↑↑↑↑↑↑↑↑↑↑↑↑↑

1. Missing BuildArch: noarch and no isa macro should be used!

2. http://people.freedesktop.org/~chadversary/waffle/ is the right URL.

PACKAGE APPROVED.

PLEASE FIX ABOVE ISSUES BEFORE SCM, THANKS!

Comment 10 Matěj Cepl 2013-09-27 10:05:31 UTC
New Package SCM Request
=======================
Package Name: waffle1
Short Description: Platform independent GL API layer
Owners: mcepl
Branches: el6
InitialCC:

Comment 11 Kevin Fenzi 2013-09-27 18:36:04 UTC
WARNING: Requested package name waffle1 doesn't match bug summary waffle 

Which is is supposed to be? waffle or waffle1?

Comment 12 Matěj Cepl 2013-09-27 21:33:50 UTC
(In reply to Kevin Fenzi from comment #11)
> WARNING: Requested package name waffle1 doesn't match bug summary waffle 
> 
> Which is is supposed to be? waffle or waffle1?

Sorry, typo ... waffle.

New Package SCM Request
=======================
Package Name: waffle
Short Description: Platform independent GL API layer
Owners: mcepl
Branches: el6
InitialCC:

Comment 13 Gwyn Ciesla 2013-09-30 12:25:24 UTC
Git done (by process-git-requests).

Comment 14 Christopher Meng 2013-10-18 03:43:38 UTC
Don't forget to close the bug.

Comment 15 Matěj Cepl 2014-04-14 20:56:34 UTC
Package Change Request
======================
Package Name: waffle
New Branches: f20
Owners: mcepl
InitialCC:

Comment 16 Gwyn Ciesla 2014-04-15 11:51:04 UTC
Git done (by process-git-requests).


Note You need to log in before you can comment on or make changes to this bug.