Compare commits

...
Sign in to create a new pull request.

29 commits

Author SHA1 Message Date
Nils Philippsen
6db6dde190 update references 2017-08-01 13:52:06 +02:00
Nils Philippsen
25014c1ca2 Merge remote-tracking branch 'github/master' into f26 2017-08-01 13:45:48 +02:00
Petr Písař
ffc2614fb4 Dummy commit for MBS 2017-08-01 11:48:11 +02:00
Petr Písař
b198b660e1 Fix profile's RPM list definitions
Each profile is a list of packages.
2017-07-27 11:59:28 +02:00
Petr Písař
0cb226486d Define profiles
perl-core package pulls in all required packages transitively.
2017-06-06 14:11:04 +02:00
Radoslav Pitonak
f79af84dac general tests update 2017-05-29 12:09:43 +02:00
Petr Písař
634417c4c8 Rebuild after koji failure 2017-05-15 09:20:53 +02:00
Petr Písař
b190a68f12 Rebuild after koji failure 2017-05-12 13:00:04 +02:00
Petr Písař
1d0b43ec6b Rebuild after koji failure 2017-05-12 09:53:29 +02:00
Petr Písař
212ef4225d Rebuild after koji failure 2017-05-11 08:18:40 +02:00
Petr Písař
0f4c407d1a Port to f26 streams 2017-05-10 13:08:17 +02:00
Petr Písař
fd7c8e3889 perl.spec modularity changes are available in f26 2017-05-10 11:09:49 +02:00
Petr Písař
d0a443849d A typo fixed in rpms/perl-srpm-macros 2017-05-10 11:08:40 +02:00
Petr Písař
63aabe3f82 Revert "add perl-test-Taint as a build dep for perl-version"
This reverts commit 72f2b01643 because
this is build-time dependency is in perl-bootstrap module. We do not
want to deliver this component in perl module.
2017-05-10 10:59:54 +02:00
Nils Philippsen
d4a3850c22 rebuild 2017-04-27 15:58:22 +02:00
Nils Philippsen
72f2b01643 add perl-test-Taint as a build dep for perl-version 2017-04-27 12:57:04 +02:00
Radoslav Pitonak
f0c699abaa Dockerfile and tests
Signed-off-by: Nils Philippsen <nils@redhat.com>
2017-04-27 11:32:46 +02:00
Petr "Stone" Hracek
1ea43c7e15 Add README file with dependencies
Signed-off-by: Petr "Stone" Hracek <phracek@redhat.com>
2017-04-12 13:30:33 +02:00
Petr Písař
77907fe6e8 Add missing components run-required after disabling bootstrap 2017-04-10 16:30:12 +02:00
Petr Písař
641ccd5859 Update perl-srpm-macros
Handle perl-Compress-Bzip2, perl-URI, perl-Software-License.
2017-04-10 16:19:27 +02:00
Petr Písař
18ea5e512c Update perl-srpm-macros
This disables optional tests in perl-IPC-System-Simple.
2017-04-10 12:53:52 +02:00
Petr Písař
5e8d92b62d Filter packages already provided by MBR
And perl-Pod-Perldoc was merged into F26.
2017-04-07 13:33:20 +02:00
Petr "Stone" Hracek
6b3bd985e8 trigger commit 2017-04-07 08:48:57 +02:00
Petr "Stone" Hracek
93c60885c9 Delete perl-bootstrap yaml file
Signed-off-by: Petr "Stone" Hracek <phracek@redhat.com>
2017-04-07 08:37:03 +02:00
Petr Písař
e4bb504b2c Build-time dependencies filtered.
I forsee we will miss new run-time dependencies that were disabled on
bootstrap. I will add them or even to perl-bootstrap later.
2017-04-04 17:10:33 +02:00
Petr Písař
fb984eeffb List all components in correct build order
111 source packages.

Optimized build order and filtering build-time only depenencies will follow.
2017-04-04 16:01:48 +02:00
Petr "Stone" Hracek
7b1832387c Perl with disabled bootstrap
Signed-off-by: Petr "Stone" Hracek <phracek@redhat.com>
2017-03-30 18:04:26 +02:00
Petr "Stone" Hracek
d51b6c7a97 First draft of perl module.
Signed-off-by: Petr "Stone" Hracek <phracek@redhat.com>
2017-03-30 17:54:03 +02:00
Fedora Release Engineering
2afc7e37bd Initial setup of the repo 2017-03-28 13:52:01 +00:00
16 changed files with 657 additions and 4 deletions

4
.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
.idea
tests/*.pyc
.idea
tests/localrepo*

14
Dockerfile Normal file
View file

@ -0,0 +1,14 @@
FROM baseruntime/baseruntime:latest
COPY repos/* /etc/yum.repos.d/
COPY tests/scripts/* /tmp/
RUN sed -i 's|/jkaluza/|/ralph/|g' /etc/yum.repos.d/build.repo && \
rpm -e --justdb --nodeps systemd-libs && \
microdnf --nodocs --enablerepo perl install perl perl-devel && \
microdnf clean all
EXPOSE 8080
CMD /bin/bash

14
Makefile Normal file
View file

@ -0,0 +1,14 @@
IMAGE_NAME = perl
MODULEMDURL=file://perl.yaml
default: run
build:
docker build --tag=$(IMAGE_NAME) .
run: build
docker run -d $(IMAGE_NAME)
test: build
cd tests; MODULE=docker MODULEMD=$(MODULEMDURL) URL="docker=$(IMAGE_NAME)" make all

View file

@ -17,6 +17,3 @@ Module containing important perl packages.
| ✓ YES | General **tests are in dist-git** |
| ✓ YES | General **tests pass** |
| ✗ NO | Meets the **Fedora Module Packaging Guidelines** |

View file

@ -1 +0,0 @@
# This is just a placeholder file for a modulemd

376
perl.yaml Normal file
View file

@ -0,0 +1,376 @@
document: modulemd
version: 1
data:
summary: Practical Extraction and Report Language
description: >
Perl is a high-level programming language with roots in C, sed, awk
and shell scripting. Perl is good at handling processes and files, and
is especially good at handling text. Perl's hallmarks are practicality
and efficiency. While it is used to do a lot of different things,
Perl's most common applications are system administration utilities
and web programming.
This module has disabled SysteTap and groff support.
license:
module: [ MIT ]
dependencies:
buildrequires:
base-runtime: f26
perl-bootstrap: f26
requires:
base-runtime: f26
references:
community: https://docs.pagure.org/modularity/
documentation: https://github.com/modularity-modules/perl
tracker: https://github.com/modularity-modules/perl/issues
profiles:
# Interpreter and all Perl modules bundled within upstream Perl
default:
rpms:
- perl-core
# Only the interpreter as standalone executable
minimal:
rpms:
- perl
filter:
rpms:
# This is provided by MBR, we do not need any different content
# there, not providing it will preserve MBR's NEVRA and that's
# good for dependend modules.
- perl-srpm-macros
components:
rpms:
# We need to build all (as in perl-bootstrap) RPM packages again
# because only those built from this module definition will get
# into the module compose.
# This perl-srpm-macros build must have higher NEVRA than a build
# from perl-bootstrap and must be built first.
perl-srpm-macros:
rationale: Control generating source packages.
ref: 2d2cd8711bd8ec5059308d85ca2fcc1fbbcf0aa2
buildorder: -1
# Then we can rebuild in a random order because we have all binary
# packages available from perl-bootstrap.
perl:
rationale: The Perl interpreter.
ref: f26
perl-Algorithm-Diff:
rationale: A run-time dependency.
ref: f26
perl-Archive-Tar:
rationale: Core Perl API.
ref: f26
perl-Archive-Zip:
rationale: A run-time dependency.
ref: f26
perl-autodie:
rationale: Core Perl API.
ref: f26
perl-B-Debug:
rationale: Core Perl API.
ref: f26
perl-bignum:
rationale: Core Perl API.
ref: f26
perl-Carp:
rationale: Core Perl API.
ref: f26
perl-Compress-Bzip2:
rationale: A run-time dependency.
ref: f26
perl-Compress-Raw-Bzip2:
rationale: Core Perl API.
ref: f26
perl-Compress-Raw-Zlib:
rationale: Core Perl API.
ref: f26
perl-Config-Perl-V:
rationale: Core Perl API.
ref: f26
perl-constant:
rationale: Core Perl API.
ref: f26
perl-CPAN:
rationale: Core Perl API.
ref: f26
perl-CPAN-Meta:
rationale: Core Perl API.
ref: f26
perl-CPAN-Meta-Requirements:
rationale: Core Perl API.
ref: f26
perl-CPAN-Meta-YAML:
rationale: Core Perl API.
ref: f26
perl-Data-Dumper:
rationale: Core Perl API.
ref: f26
perl-Data-OptList:
rationale: A run-time dependency.
ref: f26
perl-Data-Section:
rationale: A run-time dependency.
ref: f26
perl-DB_File:
rationale: Core Perl API.
ref: f26
perl-Devel-PPPort:
rationale: Core Perl API.
ref: f26
perl-Devel-Size:
rationale: A run-time dependency.
ref: f26
perl-Digest:
rationale: Core Perl API.
ref: f26
perl-Digest-MD5:
rationale: Core Perl API.
ref: f26
perl-Digest-SHA:
rationale: Core Perl API.
ref: f26
perl-Encode:
rationale: Core Perl API.
ref: f26
perl-Env:
rationale: Core Perl API.
ref: f26
perl-experimental:
rationale: Core Perl API.
ref: f26
perl-Exporter:
rationale: Core Perl API.
ref: f26
perl-ExtUtils-CBuilder:
rationale: Core Perl API.
ref: f26
perl-ExtUtils-Install:
rationale: Core Perl API.
ref: f26
perl-ExtUtils-MakeMaker:
rationale: Core Perl API.
ref: f26
perl-ExtUtils-Manifest:
rationale: Core Perl API.
ref: f26
perl-ExtUtils-ParseXS:
rationale: Core Perl API.
ref: f26
perl-Fedora-VSP:
rationale: RPM dependency generator.
ref: f26
perl-File-Fetch:
rationale: Core Perl API.
ref: f26
perl-File-HomeDir:
rationale: A run-time dependency.
ref: f26
perl-File-Path:
rationale: Core Perl API.
ref: f26
perl-File-Temp:
rationale: Core Perl API.
ref: f26
perl-File-Which:
rationale: A run-time dependency.
ref: f26
perl-Filter:
rationale: Core Perl API.
ref: f26
perl-Filter-Simple:
rationale: Core Perl API.
ref: f26
perl-generators:
rationale: RPM dependency generator.
ref: f26
perl-Getopt-Long:
rationale: Core Perl API.
ref: f26
perl-HTTP-Tiny:
rationale: Core Perl API.
ref: f26
perl-inc-latest:
rationale: A run-time dependency.
ref: f26
perl-IO-Compress:
rationale: Core Perl API.
ref: f26
perl-IO-Socket-IP:
rationale: Core Perl API.
ref: f26
perl-IPC-Cmd:
rationale: Core Perl API.
ref: f26
perl-IPC-System-Simple:
rationale: A run-time dependency.
ref: f26
perl-IPC-SysV:
rationale: Core Perl API.
ref: f26
perl-JSON-PP:
rationale: Core Perl API.
ref: f26
perl-libnet:
rationale: Core Perl API.
ref: f26
perl-local-lib:
rationale: A run-time dependency.
ref: f26
perl-Locale-Codes:
rationale: Core Perl API.
ref: f26
perl-Locale-Maketext:
rationale: Core Perl API.
ref: f26
perl-Math-BigInt:
rationale: Core Perl API.
ref: f26
perl-Math-BigInt-FastCalc:
rationale: Core Perl API.
ref: f26
perl-Math-BigRat:
rationale: Core Perl API.
ref: f26
perl-MIME-Base64:
rationale: Core Perl API.
ref: f26
perl-Module-Build:
rationale: A run-time dependency.
ref: f26
perl-Module-CoreList:
rationale: Core Perl API.
ref: f26
perl-Module-Load:
rationale: Core Perl API.
ref: f26
perl-Module-Load-Conditional:
rationale: Core Perl API.
ref: f26
perl-Module-Metadata:
rationale: Core Perl API.
ref: f26
perl-MRO-Compat:
rationale: A run-time dependency.
ref: f26
perl-Package-Generator:
rationale: A run-time dependency.
ref: f26
perl-Params-Check:
rationale: Core Perl API.
ref: f26
perl-Params-Util:
rationale: A run-time dependency.
ref: f26
perl-parent:
rationale: Core Perl API.
ref: f26
perl-PathTools:
rationale: Core Perl API.
ref: f26
perl-Perl-OSType:
rationale: Core Perl API.
ref: f26
perl-perlfaq:
rationale: Core Perl API.
ref: f26
perl-PerlIO-via-QuotedPrint:
rationale: Core Perl API.
ref: f26
perl-Pod-Checker:
rationale: Core Perl API.
ref: f26
perl-Pod-Escapes:
rationale: Core Perl API.
ref: f26
perl-Pod-Parser:
rationale: Core Perl API.
ref: f26
perl-Pod-Perldoc:
rationale: Core Perl API.
ref: f26
perl-Pod-Simple:
rationale: Core Perl API.
ref: f26
perl-Pod-Usage:
rationale: Core Perl API.
ref: f26
perl-podlators:
rationale: Core Perl API.
ref: f26
perl-Scalar-List-Utils:
rationale: Core Perl API.
ref: f26
perl-Socket:
rationale: Core Perl API.
ref: f26
perl-Software-License:
rationale: A run-time dependency.
ref: f26
perl-Storable:
rationale: Core Perl API.
ref: f26
perl-Sub-Exporter:
rationale: A run-time dependency.
ref: f26
perl-Sub-Install:
rationale: A run-time dependency.
ref: f26
perl-Sys-Syslog:
rationale: Core Perl API.
ref: f26
perl-Term-ANSIColor:
rationale: Core Perl API.
ref: f26
perl-Term-Cap:
rationale: Core Perl API.
ref: f26
perl-Test-Harness:
rationale: Core Perl API.
ref: f26
perl-Test-Simple:
rationale: Core Perl API.
ref: f26
perl-Text-Balanced:
rationale: Core Perl API.
ref: f26
perl-Text-Diff:
rationale: A run-time dependency.
ref: f26
perl-Text-Glob:
rationale: A run-time dependency.
ref: f26
perl-Text-ParseWords:
rationale: Core Perl API.
ref: f26
perl-Text-Tabs+Wrap:
rationale: Core Perl API.
ref: f26
perl-Text-Template:
rationale: A run-time dependency.
ref: f26
perl-Thread-Queue:
rationale: Core Perl API.
ref: f26
perl-threads:
rationale: Core Perl API.
ref: f26
perl-threads-shared:
rationale: Core Perl API.
ref: f26
perl-Time-HiRes:
rationale: Core Perl API.
ref: f26
perl-Time-Local:
rationale: Core Perl API.
ref: f26
perl-Unicode-Collate:
rationale: Core Perl API.
ref: f26
perl-Unicode-Normalize:
rationale: Core Perl API.
ref: f26
perl-URI:
rationale: A run-time dependency.
ref: f26
perl-version:
rationale: Core Perl API.
ref: f26

4
repos/fedora.repo Normal file
View file

@ -0,0 +1,4 @@
[fedora]
name=fedora
baseurl=https://mirrors.nic.cz/fedora/linux/development/26/Everything/x86_64/os/
enabled=0

4
repos/perl.repo Normal file
View file

@ -0,0 +1,4 @@
[perl]
name=perl
baseurl=https://kojipkgs.fedoraproject.org/repos/module-9ac9f492d4852dfd-build/latest/x86_64/
enabled=0

0
sources Normal file
View file

6
tests/Makefile Normal file
View file

@ -0,0 +1,6 @@
MODULE_LINT=/usr/share/moduleframework/tools/modulelint.py
CMD=python -m avocado run --filter-by-tags=-WIP $(MODULE_LINT) *.py
#
all:
$(CMD)

13
tests/config.yaml Normal file
View file

@ -0,0 +1,13 @@
document: modularity-testing
version: 1
name: perl
modulemd-url: https://src.fedoraproject.org/cgit/modules/perl.git/plain/perl.yaml
service:
port: 8080
module:
docker:
start: "docker run -it"
container: perl
rpm:
repos:
- http://mirror.vutbr.cz/fedora/releases/26/Everything/x86_64/os/

57
tests/cpan.py Normal file
View file

@ -0,0 +1,57 @@
#
# This Modularity Testing Framework helps you to write tests for modules
# Copyright (C) 2017 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# he Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Authors: Rado Pitonak <rpitonak@redhat.com>
#
from avocado import main
from avocado.core import exceptions
from moduleframework import module_framework
class CpanCheck(module_framework.AvocadoTest):
"""
:avocado: enable
"""
def testInstallPerlModule(self):
"""
Installing Perl module using cpan [http://www.cpan.org/]
"""
self.start()
self.run("microdnf --nodocs --enablerepo fedora install -y cpan cpanminus")
self.run("cpanm install --force Error")
self.run("perl -e \"use Error\"")
def testInstallCModule(self):
"""
Installing Perl module written in C language, using cpan [http://www.cpan.org/]
Another packages need to be install here - gcc, rpm-devel to build module.
"""
self.start()
self.run("microdnf --nodocs --enablerepo fedora install -y cpan cpanminus")
self.run("microdnf --nodocs --enablerepo fedora install -y gcc rpm-devel")
self.run("cpanm install --force RPM2")
self.run("perl -e \"use RPM2\"")
if __name__ == '__main__':
main()

44
tests/networking.py Normal file
View file

@ -0,0 +1,44 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# This Modularity Testing Framework helps you to write tests for modules
# Copyright (C) 2017 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# he Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Authors: Rado Pitonak <rpitonak@redhat.com>
#
from avocado import main
from avocado.core import exceptions
from moduleframework import module_framework
class NetworkingCheck(module_framework.AvocadoTest):
"""
:avocado: enable
"""
def testHTTPRequest(self):
"""
Test networking with `HTTP::Tiny` perl module
Testing script is included in `scripts` folder
"""
self.start()
self.run("perl /tmp/http.pl")
if __name__ == '__main__':
main()

56
tests/rpmvalidator.py Normal file
View file

@ -0,0 +1,56 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# This Modularity Testing Framework helps you to write tests for modules
# Copyright (C) 2017 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# he Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Authors: Jan Scotka <jscotka@redhat.com>
#
from avocado import main
from moduleframework import module_framework
class ExampleRpmValidation(module_framework.AvocadoTest):
"""
:avocado: enable
"""
fhs_base_paths = [
'/bin',
'/boot',
'/dev',
'/etc',
'/home',
'/lib',
'/lib64',
'/media',
'/mnt',
'/opt',
'/proc',
'/root',
'/run',
'/sbin',
'/sys',
'/srv',
'/tmp',
'/usr/bin'
]
def testPaths(self):
self.start()
for directory in self.fhs_base_paths:
self.run("test -d %s" % directory)

60
tests/sanity.py Normal file
View file

@ -0,0 +1,60 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# This Modularity Testing Framework helps you to write tests for modules
# Copyright (C) 2017 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# he Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Authors: Rado Pitonak <rpitonak@redhat.com>
#
from avocado import main
from avocado.core import exceptions
from moduleframework import module_framework
class SanityCheck(module_framework.AvocadoTest):
"""
:avocado: enable
"""
def test1(self):
"""
Simple sanity test
"""
self.start()
self.run("ls / | grep bin")
def test2PerlVersion(self):
"""
Check if perl is installed in correct version
"""
perl_version = "5.24"
self.start()
self.run("perl -v | grep " + perl_version)
def testPerlScript(self):
"""
Executing simple perl script
"""
test_string = "Running test script\n"
self.start()
self.assertIn("{}".format(test_string), self.run('perl -e " print \'{}\'"'.format(test_string)).stdout)
if __name__ == '__main__':
main()

5
tests/scripts/http.pl Normal file
View file

@ -0,0 +1,5 @@
use HTTP::Tiny;
my $response = HTTP::Tiny->new->get('http://example.com/');
die "Failed!\n" unless $response->{success};