Bug 1082515 (shake) - Review Request: shake - Make-like build system
Summary: Review Request: shake - Make-like build system
Keywords:
Status: CLOSED ERRATA
Alias: shake
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Rick Elrod
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1082516 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-03-31 08:51 UTC by Jens Petersen
Modified: 2014-04-29 05:22 UTC (History)
3 users (show)

Fixed In Version: shake-0.11.4-3.fc19
Clone Of:
Environment:
Last Closed: 2014-04-24 07:31:14 UTC
Type: ---
Embargoed:
relrod: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Jens Petersen 2014-03-31 08:51:22 UTC
Spec URL: http://petersen.fedorapeople.org/reviews/shake.spec
SRPM URL: http://petersen.fedorapeople.org/reviews/shake-0.11.4-1.fc20.src.rpm

Description:
Shake is a Haskell library for writing build systems - designed as a
replacement for make. See "Development.Shake" for an introduction, including
an example. Further examples are included in the Cabal tarball, under the
Examples directory. The homepage contains links to a user manual, an academic
paper and further information: <https://github.com/ndmitchell/shake>

This package provides the shake tool which can handle most ninja files
faster than ninja and simple makefiles.

Comment 1 Jens Petersen 2014-03-31 09:13:01 UTC
*** Bug 1082516 has been marked as a duplicate of this bug. ***

Comment 2 Jens Petersen 2014-03-31 09:16:20 UTC
Testsuite failed on arm:

 http://koji.fedoraproject.org/koji/taskinfo?taskID=6691595

Comment 3 Jens Petersen 2014-04-01 01:08:31 UTC
I disabled testsuite on arm in 

Spec: http://petersen.fedorapeople.org/reviews/shake/shake.spec
SRPM: http://petersen.fedorapeople.org/reviews/shake/shake-0.11.4-2.fc20.src.rpm

Koji rawhide: http://koji.fedoraproject.org/koji/taskinfo?taskID=6691814

Note also I removed the jquery and other report generating webpage files
from the installation to avoid being blocked by jquery and other js reviews.
It is a secondary feature so I think it is okay for now.

Comment 4 Rick Elrod 2014-04-10 20:40:40 UTC
I'm going to APPROVE this, However:

Can you change the %define here to %global:
%define cabal_configure_options --enable-tests

Also, there are some rpmlint warnings. Most of them (spelling) we can ignore, others would be nice to fix.

Can we ask upstream to add a manpage to their next release?

And this should be pretty easy I think to fix on import:
shake.src: W: strange-permission shake-0.11.4.tar.gz 0600L

Review follows:

Package Review
==============

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


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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Development (unversioned) .so files in -devel subpackage, if present.
[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 is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
[x]: License file installed when any subpackage combination is installed.
[x]: Package must own all directories that it creates.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[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.
[x]: 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]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[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 %doc.
[x]: Package requires other packages for directories it uses.
[x]: Package does not own files or directories owned by other packages.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[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 does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package do not use a name that already exist
[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

Haskell:
[x]: This should never happen

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

Generic:
[-]: 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).
[!]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in ghc-shake
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Scriptlets must be sane, if used.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[?]: 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.
[!]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: %define cabal_configure_options
     --enable-tests
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: Dist tag is present (not strictly required in GL).
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: SourceX is a working URL.

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

Generic:
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
     Note: Arch-ed rpms have a total of 2744320 bytes in /usr/share
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: shake-0.11.4-2.fc20.x86_64.rpm
          ghc-shake-0.11.4-2.fc20.x86_64.rpm
          ghc-shake-devel-0.11.4-2.fc20.x86_64.rpm
          shake-0.11.4-2.fc20.src.rpm
shake.x86_64: W: spelling-error %description -l en_US https -> HTTP
shake.x86_64: W: spelling-error %description -l en_US github -> git hub, git-hub, thuggish
shake.x86_64: W: spelling-error %description -l en_US ndmitchell -> Mitchell, Mitchel
shake.x86_64: W: spelling-error %description -l en_US makefiles -> make files, make-files, filmmakers
shake.x86_64: W: no-manual-page-for-binary shake
ghc-shake-devel.x86_64: W: spelling-error %description -l en_US shakeArgs -> Shakespeare
shake.src: W: spelling-error %description -l en_US https -> HTTP
shake.src: W: spelling-error %description -l en_US github -> git hub, git-hub, thuggish
shake.src: W: spelling-error %description -l en_US ndmitchell -> Mitchell, Mitchel
shake.src: W: spelling-error %description -l en_US makefiles -> make files, make-files, filmmakers
shake.src: W: strange-permission shake-0.11.4.tar.gz 0600L
4 packages and 0 specfiles checked; 0 errors, 11 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint ghc-shake-devel ghc-shake shake
ghc-shake-devel.x86_64: W: spelling-error %description -l en_US shakeArgs -> Shakespeare
shake.x86_64: W: spelling-error %description -l en_US https -> HTTP
shake.x86_64: W: spelling-error %description -l en_US github -> git hub, git-hub, thuggish
shake.x86_64: W: spelling-error %description -l en_US ndmitchell -> Mitchell, Mitchel
shake.x86_64: W: spelling-error %description -l en_US makefiles -> make files, make-files, filmmakers
shake.x86_64: W: no-manual-page-for-binary shake
3 packages and 0 specfiles checked; 0 errors, 6 warnings.
# echo 'rpmlint-done:'



Requires
--------
ghc-shake-devel (rpmlib, GLIBC filtered):
    /bin/sh
    ghc(shake-0.11.4-f90a216aa2bb6bd2ae1e02ef63cebd91)
    ghc-compiler
    ghc-devel(base-4.6.0.1-8aa5d403c45ea59dcd2c39f123e27d57)
    ghc-devel(binary-0.5.1.1-72ed744c57c32286a49da6dda4f660b7)
    ghc-devel(bytestring-0.10.0.2-4f93248f75667c2c3321a7a6761b576f)
    ghc-devel(deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926)
    ghc-devel(directory-1.2.0.1-91a788fd88acd7f149f0f10f5f1e23f2)
    ghc-devel(filepath-1.3.0.1-b12cbe18566fe1532a1fda4c85e31cbe)
    ghc-devel(hashable-1.1.2.5-e0f2541518f84d3123a819112b4ffe20)
    ghc-devel(old-time-1.1.0.1-2f8ea093d0c7014780a8a5772f948883)
    ghc-devel(process-1.1.0.2-76e05340eb66705981411022731ca84a)
    ghc-devel(random-1.0.1.1-43fdc5da991685d8a0ec8cb553880cf8)
    ghc-devel(time-1.4.0.1-10dc4804a19dc0000fab79908f1a9f50)
    ghc-devel(transformers-0.3.0.0-387c76a892254b0b8fe4d66f4780ad17)
    ghc-devel(unix-2.6.0.1-4f219f792083f70ec440ce406f12ce57)
    ghc-devel(unordered-containers-0.2.3.0-c7952fe8bed178bdf8ed4d090730c9da)
    ghc-devel(utf8-string-0.3.7-26a8ed8ca48fe809983bde6faca943a9)
    ghc-shake(x86-64)

ghc-shake (rpmlib, GLIBC filtered):
    ghc(base-4.6.0.1-8aa5d403c45ea59dcd2c39f123e27d57)
    ghc(binary-0.5.1.1-72ed744c57c32286a49da6dda4f660b7)
    ghc(bytestring-0.10.0.2-4f93248f75667c2c3321a7a6761b576f)
    ghc(deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926)
    ghc(directory-1.2.0.1-91a788fd88acd7f149f0f10f5f1e23f2)
    ghc(filepath-1.3.0.1-b12cbe18566fe1532a1fda4c85e31cbe)
    ghc(hashable-1.1.2.5-e0f2541518f84d3123a819112b4ffe20)
    ghc(old-time-1.1.0.1-2f8ea093d0c7014780a8a5772f948883)
    ghc(process-1.1.0.2-76e05340eb66705981411022731ca84a)
    ghc(random-1.0.1.1-43fdc5da991685d8a0ec8cb553880cf8)
    ghc(time-1.4.0.1-10dc4804a19dc0000fab79908f1a9f50)
    ghc(transformers-0.3.0.0-387c76a892254b0b8fe4d66f4780ad17)
    ghc(unix-2.6.0.1-4f219f792083f70ec440ce406f12ce57)
    ghc(unordered-containers-0.2.3.0-c7952fe8bed178bdf8ed4d090730c9da)
    ghc(utf8-string-0.3.7-26a8ed8ca48fe809983bde6faca943a9)
    libHSarray-0.4.0.1-ghc7.6.3.so()(64bit)
    libHSbase-4.6.0.1-ghc7.6.3.so()(64bit)
    libHSbinary-0.5.1.1-ghc7.6.3.so()(64bit)
    libHSbytestring-0.10.0.2-ghc7.6.3.so()(64bit)
    libHScontainers-0.5.0.0-ghc7.6.3.so()(64bit)
    libHSdeepseq-1.3.0.1-ghc7.6.3.so()(64bit)
    libHSdirectory-1.2.0.1-ghc7.6.3.so()(64bit)
    libHSfilepath-1.3.0.1-ghc7.6.3.so()(64bit)
    libHSghc-prim-0.3.0.0-ghc7.6.3.so()(64bit)
    libHShashable-1.1.2.5-ghc7.6.3.so()(64bit)
    libHSinteger-gmp-0.5.0.0-ghc7.6.3.so()(64bit)
    libHSold-locale-1.0.0.5-ghc7.6.3.so()(64bit)
    libHSold-time-1.1.0.1-ghc7.6.3.so()(64bit)
    libHSprocess-1.1.0.2-ghc7.6.3.so()(64bit)
    libHSrandom-1.0.1.1-ghc7.6.3.so()(64bit)
    libHStext-0.11.3.1-ghc7.6.3.so()(64bit)
    libHStime-1.4.0.1-ghc7.6.3.so()(64bit)
    libHStransformers-0.3.0.0-ghc7.6.3.so()(64bit)
    libHSunix-2.6.0.1-ghc7.6.3.so()(64bit)
    libHSunordered-containers-0.2.3.0-ghc7.6.3.so()(64bit)
    libHSutf8-string-0.3.7-ghc7.6.3.so()(64bit)
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libgmp.so.10()(64bit)
    libpthread.so.0()(64bit)
    librt.so.1()(64bit)
    libutil.so.1()(64bit)
    rtld(GNU_HASH)

shake (rpmlib, GLIBC filtered):
    ghc(array-0.4.0.1-3b78425c10ff2dad7acf7e8c8ae014c3)
    ghc(base-4.6.0.1-8aa5d403c45ea59dcd2c39f123e27d57)
    ghc(binary-0.5.1.1-72ed744c57c32286a49da6dda4f660b7)
    ghc(bytestring-0.10.0.2-4f93248f75667c2c3321a7a6761b576f)
    ghc(containers-0.5.0.0-ab1dae9a94cd3cc84e7b2805636ebfa2)
    ghc(deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926)
    ghc(directory-1.2.0.1-91a788fd88acd7f149f0f10f5f1e23f2)
    ghc(filepath-1.3.0.1-b12cbe18566fe1532a1fda4c85e31cbe)
    ghc(ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd)
    ghc(hashable-1.1.2.5-e0f2541518f84d3123a819112b4ffe20)
    ghc(integer-gmp-0.5.0.0-2f15426f5b53fe4c6490832f9b20d8d7)
    ghc(old-locale-1.0.0.5-6729cb9d9cc62d150655de8fc5401b91)
    ghc(old-time-1.1.0.1-2f8ea093d0c7014780a8a5772f948883)
    ghc(process-1.1.0.2-76e05340eb66705981411022731ca84a)
    ghc(random-1.0.1.1-43fdc5da991685d8a0ec8cb553880cf8)
    ghc(text-0.11.3.1-e38859e86485c167fa7c9441789e7607)
    ghc(time-1.4.0.1-10dc4804a19dc0000fab79908f1a9f50)
    ghc(transformers-0.3.0.0-387c76a892254b0b8fe4d66f4780ad17)
    ghc(unix-2.6.0.1-4f219f792083f70ec440ce406f12ce57)
    ghc(unordered-containers-0.2.3.0-c7952fe8bed178bdf8ed4d090730c9da)
    ghc(utf8-string-0.3.7-26a8ed8ca48fe809983bde6faca943a9)
    libHSarray-0.4.0.1-ghc7.6.3.so()(64bit)
    libHSbase-4.6.0.1-ghc7.6.3.so()(64bit)
    libHSbinary-0.5.1.1-ghc7.6.3.so()(64bit)
    libHSbytestring-0.10.0.2-ghc7.6.3.so()(64bit)
    libHScontainers-0.5.0.0-ghc7.6.3.so()(64bit)
    libHSdeepseq-1.3.0.1-ghc7.6.3.so()(64bit)
    libHSdirectory-1.2.0.1-ghc7.6.3.so()(64bit)
    libHSfilepath-1.3.0.1-ghc7.6.3.so()(64bit)
    libHSghc-prim-0.3.0.0-ghc7.6.3.so()(64bit)
    libHShashable-1.1.2.5-ghc7.6.3.so()(64bit)
    libHSinteger-gmp-0.5.0.0-ghc7.6.3.so()(64bit)
    libHSold-locale-1.0.0.5-ghc7.6.3.so()(64bit)
    libHSold-time-1.1.0.1-ghc7.6.3.so()(64bit)
    libHSprocess-1.1.0.2-ghc7.6.3.so()(64bit)
    libHSrandom-1.0.1.1-ghc7.6.3.so()(64bit)
    libHSrts_thr-ghc7.6.3.so()(64bit)
    libHStext-0.11.3.1-ghc7.6.3.so()(64bit)
    libHStime-1.4.0.1-ghc7.6.3.so()(64bit)
    libHStransformers-0.3.0.0-ghc7.6.3.so()(64bit)
    libHSunix-2.6.0.1-ghc7.6.3.so()(64bit)
    libHSunordered-containers-0.2.3.0-ghc7.6.3.so()(64bit)
    libHSutf8-string-0.3.7-ghc7.6.3.so()(64bit)
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libffi.so.6()(64bit)
    libgmp.so.10()(64bit)
    libm.so.6()(64bit)
    libpthread.so.0()(64bit)
    librt.so.1()(64bit)
    libutil.so.1()(64bit)
    rtld(GNU_HASH)



Provides
--------
ghc-shake-devel:
    ghc-devel(shake-0.11.4-f90a216aa2bb6bd2ae1e02ef63cebd91)
    ghc-shake-devel
    ghc-shake-devel(x86-64)
    ghc-shake-static

ghc-shake:
    ghc(shake-0.11.4-f90a216aa2bb6bd2ae1e02ef63cebd91)
    ghc-shake
    ghc-shake(x86-64)
    libHSshake-0.11.4-ghc7.6.3.so()(64bit)

shake:
    shake
    shake(x86-64)



Unversioned so-files
--------------------
ghc-shake: /usr/lib64/ghc-7.6.3/shake-0.11.4/libHSshake-0.11.4-ghc7.6.3.so

Source checksums
----------------
http://hackage.haskell.org/packages/archive/shake/0.11.4/shake-0.11.4.tar.gz :
  CHECKSUM(SHA256) this package     : d112f7186bdec4da433e6933eee1581348f802762533ed51711f80e2db3f723e
  CHECKSUM(SHA256) upstream package : d112f7186bdec4da433e6933eee1581348f802762533ed51711f80e2db3f723e


Generated by fedora-review 0.5.1 (bb9bf27) last change: 2013-12-13
Command line :/usr/bin/fedora-review -b shake
Buildroot used: fedora-20-x86_64
Active plugins: Generic, Haskell, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, R, PHP, Ruby
Disabled flags: EXARCH, EPEL5, BATCH, DISTTAG

Comment 5 Jens Petersen 2014-04-11 05:24:30 UTC
Thank you for reviewing

> Can you change the %define here to %global:
> %define cabal_configure_options --enable-tests

Okay but this is only used locally in the %build section
so I intentionally used %define to make it local, but this may
still be frowned upon perhaps?
Is %define only acceptable inside macro definitions?

> Can we ask upstream to add a manpage to their next release?

Sure: https://github.com/ndmitchell/shake/issues/106

Not sure if/when it might happen though.

> And this should be pretty easy I think to fix on import:
> shake.src: W: strange-permission shake-0.11.4.tar.gz 0600L

Not sure why this time: anyway it will "dissolve" during the srpm import.

Comment 6 Jens Petersen 2014-04-11 05:25:59 UTC
New Package SCM Request
=======================
Package Name: shake
Short Description: Make-like build system
Owners: petersen
Branches: f20 f19 epel7 el6
InitialCC: haskell-sig

Comment 7 Gwyn Ciesla 2014-04-11 11:59:49 UTC
Git done (by process-git-requests).

Comment 8 Jens Petersen 2014-04-14 04:11:40 UTC
> Is %define only acceptable inside macro definitions?

Seems so: http://fedoraproject.org/wiki/Packaging:Guidelines#.25global_preferred_over_.25define

Comment 9 Fedora Update System 2014-04-14 09:44:21 UTC
shake-0.11.4-3.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/shake-0.11.4-3.fc20

Comment 10 Fedora Update System 2014-04-14 09:44:30 UTC
shake-0.11.4-3.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/shake-0.11.4-3.fc19

Comment 11 Fedora Update System 2014-04-15 15:38:17 UTC
shake-0.11.4-3.fc20 has been pushed to the Fedora 20 testing repository.

Comment 12 Fedora Update System 2014-04-24 07:31:14 UTC
shake-0.11.4-3.fc20 has been pushed to the Fedora 20 stable repository.

Comment 13 Fedora Update System 2014-04-29 05:22:45 UTC
shake-0.11.4-3.fc19 has been pushed to the Fedora 19 stable repository.


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