diff --git a/modulemd-1.8.16/.beautifier/c/config.ini b/modulemd-1.8.16/.beautifier/c/config.ini deleted file mode 100644 index 8da400e..0000000 --- a/modulemd-1.8.16/.beautifier/c/config.ini +++ /dev/null @@ -1,7 +0,0 @@ -[global] -default = libmodulemd - -[libmodulemd] -command = clang-format -config = libmodulemd-clang.cfg -name = libmodulemd diff --git a/modulemd-1.8.16/.beautifier/c/libmodulemd-clang.cfg b/modulemd-1.8.16/.beautifier/c/libmodulemd-clang.cfg deleted file mode 120000 index 2d11237..0000000 --- a/modulemd-1.8.16/.beautifier/c/libmodulemd-clang.cfg +++ /dev/null @@ -1 +0,0 @@ -../../.clang-format \ No newline at end of file diff --git a/modulemd-1.8.16/.beautifier/global.ini b/modulemd-1.8.16/.beautifier/global.ini deleted file mode 100644 index 622905e..0000000 --- a/modulemd-1.8.16/.beautifier/global.ini +++ /dev/null @@ -1,4 +0,0 @@ -[chdr] - -map = c -default = libmodulemd diff --git a/modulemd-1.8.16/.clang-format b/modulemd-1.8.16/.clang-format deleted file mode 100644 index d9656b5..0000000 --- a/modulemd-1.8.16/.clang-format +++ /dev/null @@ -1,60 +0,0 @@ ---- -# C format -Language: Cpp - -BasedOnStyle: WebKit - -AlignAfterOpenBracket: Align -AlignConsecutiveAssignments: false -AlignConsecutiveDeclarations: false -AlignEscapedNewlinesLeft: false -AlignOperands: true -AlignTrailingComments: false -AllowAllParametersOfDeclarationOnNextLine: true -AllowShortBlocksOnASingleLine: false -AllowShortCaseLabelsOnASingleLine: true -AllowShortFunctionsOnASingleLine: None -AllowShortIfStatementsOnASingleLine: false -AllowShortLoopsOnASingleLine: false -AlwaysBreakAfterReturnType: All -AlwaysBreakBeforeMultilineStrings: true -BinPackArguments: false -BinPackParameters: false -BreakBeforeBinaryOperators: None -BreakBeforeBraces: GNU -BreakBeforeTernaryOperators: false -ColumnLimit: 79 -CommentPragmas: '^ IWYU pragma:' -ContinuationIndentWidth: 2 -DerivePointerAlignment: false -DisableFormat: false -ExperimentalAutoDetectBinPacking: false -IndentCaseLabels: false -IndentWidth: 2 -IndentWrappedFunctionNames: false -KeepEmptyLinesAtTheStartOfBlocks: false -MacroBlockBegin: '' -MacroBlockEnd: '' -MaxEmptyLinesToKeep: 2 -PenaltyBreakBeforeFirstCallParameter: 19 -PenaltyBreakComment: 300 -PenaltyBreakFirstLessLess: 120 -PenaltyBreakString: 1000 -PenaltyExcessCharacter: 1000000 -PointerAlignment: Right -ReflowComments: false -SortIncludes: false -SpaceAfterCStyleCast: false -SpaceBeforeAssignmentOperators: true -SpaceBeforeParens: Always -SpaceInEmptyParentheses: false -SpacesBeforeTrailingComments: 1 -SpacesInContainerLiterals: true -SpacesInCStyleCastParentheses: false -SpacesInParentheses: false -SpacesInSquareBrackets: false -Standard: Cpp11 -TabWidth: 4 -UseTab: Never -... - diff --git a/modulemd-1.8.16/.travis.yml b/modulemd-1.8.16/.travis.yml deleted file mode 100644 index fcfa4ae..0000000 --- a/modulemd-1.8.16/.travis.yml +++ /dev/null @@ -1,43 +0,0 @@ -language: c -compiler: gcc -sudo: required -dist: trusty - -services: - - docker - -addons: - apt: - packages: - - bash - - tar - - bzip2 - -env: - global: - # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created - # via the "travis encrypt" command using the project repo's public key - - secure: "mMcLLwYU0rAQkJDQEw3NlX5l1e1DCuUfCHDhhvku4YMgLbMV3ADvrTvwfnZoimgRhVw5hWXLDGSdJ2jkwAraeNHLjyfDXn/NrPNvo8xAgbtlsWaCO76p3yecfdIzawbW2iKpkyIjw8fCgi2xRccvp2ZTinDspiN96aqqZuhwy/5WzavQG+ECTxkFW6tDcly/NUyy/CH6FH6fqp6tswd+VsqKgZLqybhrwW1/OPBr5e+QvVyfn3KAlWWiyUCj33WU1mxL+LhsS2cNXK5S5V1NOO624oXPCy6oJImONWh0feXuPu20LqoWE/uOVXOcNpSB+3EUA5mfj22ST0FPMrvwS9k2oZGLiIVfDyGmI+Hl/kI4tlh/7zolpaeQB/c8GCGRBuEr+k0J0pqVp7ptOSIw3n6l4R113Sp+EBqSOcNxNVgOoW6pMZSKM73Z9tlr1yHVKw0cfge8YUgplGf0cENgExyjW97W535h2VEMKlgdH9PCQgfTXYANBVp2My+u6CytUetjdJXLwjmjuXBiAtIsrSTUtZ3hx/D1RXygAq0l7YI4iHQOmumSy81rgO2xDs484z/Efs6EXg/zdxluPSND6o/A0OXx80FUa6dwDmP6AmBZsHggVUYK7Gduu0Dry/1lcc2avZqdyOSrLs02vnQaRxb84CKFbhUd93gnVlPki3M=" - - # This is the DOC_TOKEN - - secure: gOGYwbzAQ4fVZ53AdppercJ0w4rA2XzuZK964c7v46qxD64VFqMSra4O/Bk+0A7hHw5jw1aSvKU/eqoJpOOXPfgT/yth8hJ7XmC7powQiw/Atj2/dcWsmCMxX03uefur8LHGQgNWN4W6lbWMdTyLKzmN0snx5A3zbwbfKYpF+d1gYaKrHO1ykeJHuOoIHDGop5Ur9Inl4S3o2U063Wg/YroTuIWvbEjL0Laz7knWuNpSN0g5G2cnF4y0DTDYxZWxFtnfB0npTDggUQqUTHNYrL+a9CPQc+/47FpmXXx0VxwqZ2l3BVO+a+ef5Q6g2VNxU/WJWdnFyRHAjWRKsyKua8zlOsmj+IVmM4nZDtyD0qlS8/nfdI+ZJS16IvKqyA2n9ScHe5YRsNPItd8c6y22nSKnRKlF2h+gWvD56pHUUHFMPlba0dJ7KMiIQZxmY6dKgzerkOylQziBgBMVulvxGz8KILj9+DxTANDlI+8LHt01bIXa4RbsNvOAcjFhNdNgemGv2uXcFyaVsg5w08PVSKb2pQimmB/EOBRSMMhavxOSaAgu/Jjs8xLPj+hMD/yZlav2dlx4Oix3x1humSUsegoa/Az6qulxK+rQdJJA3BuHk389s7e/i+z30KJsbpuIWxH1c/5ETtUFeIflQBYywr++5GqLG7T8WfVxH3ie3aw= - -notifications: - irc: "chat.freenode.net#fedora-modularity" - -jobs: - include: - - name: "Fedora 29" - script: ./.travis/travis-fedora.sh - - name: "Fedora 30" - script: ./.travis/travis-fedora.sh - - name: "Fedora rawhide" - script: ./.travis/travis-fedora.sh - - name: "CentOS 7" - script: ./.travis/travis-centos.sh - - name: "openSUSE tumbleweed" - script: ./.travis/travis-opensuse.sh - - name: "Arch Linux" - script: ./.travis/travis-archlinux.sh - - name: "Mageia 7" - script: ./.travis/travis-mageia.sh diff --git a/modulemd-1.8.16/.travis/archlinux/Dockerfile.deps.tmpl b/modulemd-1.8.16/.travis/archlinux/Dockerfile.deps.tmpl deleted file mode 100644 index 580b84d..0000000 --- a/modulemd-1.8.16/.travis/archlinux/Dockerfile.deps.tmpl +++ /dev/null @@ -1,18 +0,0 @@ -FROM @IMAGE@ - -MAINTAINER Stephen Gallagher - -ARG TARBALL - -RUN pacman -Syu --needed --noconfirm \ - base-devel \ - glib2 \ - glib2-docs \ - gobject-introspection \ - gtk-doc \ - libyaml \ - meson \ - python-gobject \ - python-babel \ - python2-six \ -&& pacman -Scc --noconfirm diff --git a/modulemd-1.8.16/.travis/archlinux/Dockerfile.tmpl b/modulemd-1.8.16/.travis/archlinux/Dockerfile.tmpl deleted file mode 100644 index 6858bcf..0000000 --- a/modulemd-1.8.16/.travis/archlinux/Dockerfile.tmpl +++ /dev/null @@ -1,9 +0,0 @@ -FROM fedora-modularity/libmodulemd-deps-@RELEASE@ - -MAINTAINER Stephen Gallagher - -ARG TARBALL - -ADD $TARBALL /builddir/ - -ENTRYPOINT /builddir/.travis/archlinux/travis-tasks.sh diff --git a/modulemd-1.8.16/.travis/archlinux/travis-tasks.sh b/modulemd-1.8.16/.travis/archlinux/travis-tasks.sh deleted file mode 100755 index f7aea8b..0000000 --- a/modulemd-1.8.16/.travis/archlinux/travis-tasks.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -#Exit on failures -set -e - -set -x - -JOB_NAME=${TRAVIS_JOB_NAME:-Arch Linux} - -os_name='Arch Linux' -release=base - -COMMON_MESON_ARGS="-Dtest_dirty_git=false -Ddeveloper_build=false -Dpython_name=python3" - - -pushd /builddir/ - -# Build the code under GCC and run standard tests -meson --buildtype=debug \ - $COMMON_MESON_ARGS \ - travis - -set +e -ninja -C travis test -ret=$? -if [ $ret != 0 ]; then - cat travis/meson-logs/testlog.txt - exit $ret -fi -set -e - -popd #builddir diff --git a/modulemd-1.8.16/.travis/centos/Dockerfile.deps.tmpl b/modulemd-1.8.16/.travis/centos/Dockerfile.deps.tmpl deleted file mode 100644 index d964751..0000000 --- a/modulemd-1.8.16/.travis/centos/Dockerfile.deps.tmpl +++ /dev/null @@ -1,34 +0,0 @@ -FROM @IMAGE@ - -MAINTAINER Stephen Gallagher - -ARG TARBALL - -RUN yum -y install epel-release \ - && yum -y --setopt=tsflags='' install \ - clang \ - createrepo_c \ - elinks \ - gcc \ - gcc-c++ \ - git-core \ - glib2-devel \ - glib2-doc \ - gobject-introspection-devel \ - gtk-doc \ - libyaml-devel \ - meson \ - ninja-build \ - pkgconfig \ - python2-devel \ - python2-six \ - python-gobject-base \ - python-babel \ - python36-devel \ - python36-gobject-base \ - python3-rpm-macros \ - redhat-rpm-config \ - rpm-build \ - rpmdevtools \ - sudo \ - && yum -y clean all diff --git a/modulemd-1.8.16/.travis/centos/Dockerfile.tmpl b/modulemd-1.8.16/.travis/centos/Dockerfile.tmpl deleted file mode 100644 index 5868fb8..0000000 --- a/modulemd-1.8.16/.travis/centos/Dockerfile.tmpl +++ /dev/null @@ -1,9 +0,0 @@ -FROM fedora-modularity/libmodulemd-deps-@RELEASE@ - -MAINTAINER Stephen Gallagher - -ARG TARBALL - -ADD $TARBALL /builddir/ - -ENTRYPOINT /builddir/.travis/centos/travis-tasks.sh \ No newline at end of file diff --git a/modulemd-1.8.16/.travis/centos/travis-tasks.sh b/modulemd-1.8.16/.travis/centos/travis-tasks.sh deleted file mode 100755 index b56d737..0000000 --- a/modulemd-1.8.16/.travis/centos/travis-tasks.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -#Exit on failures -set -e - -set -x - -JOB_NAME=${TRAVIS_JOB_NAME:-CentOS 7} - -arr=($JOB_NAME) -os_name=${arr[0]:-CentOS} -release=${arr[1]:-7} - -# CentOS 7 doesn't have autopep8, so we'll drop the requirement for it -# This implementation will still allow it to occur if autopep8 still shows -# up later. -COMMON_MESON_ARGS="-Dtest_dirty_git=false -Ddeveloper_build=false -Dpython_name=python3.6" - -pushd /builddir/ - -# Build the code under GCC and run standard tests -meson --buildtype=debug \ - $COMMON_MESON_ARGS \ - travis - -set +e -ninja-build -C travis test -ret=$? -if [ $ret != 0 ]; then - cat travis/meson-logs/testlog.txt - exit $ret -fi -set -e - -popd #builddir diff --git a/modulemd-1.8.16/.travis/fedora/Dockerfile.deps.tmpl b/modulemd-1.8.16/.travis/fedora/Dockerfile.deps.tmpl deleted file mode 100644 index 25ff49e..0000000 --- a/modulemd-1.8.16/.travis/fedora/Dockerfile.deps.tmpl +++ /dev/null @@ -1,47 +0,0 @@ -FROM @IMAGE@ - -MAINTAINER Stephen Gallagher - -ARG TARBALL - -RUN dnf -y --setopt=install_weak_deps=False --setopt=tsflags='' install \ - clang \ - clang-analyzer \ - createrepo_c \ - "libmodulemd >= 2.3" \ - curl \ - elinks \ - gcc \ - gcc-c++ \ - git-core \ - glib2-devel \ - glib2-doc \ - gobject-introspection-devel \ - gtk-doc \ - libyaml-devel \ - meson \ - ninja-build \ - openssl \ - pkgconf \ - popt-devel \ - python2-devel \ - python2-six \ - python2-gobject-base \ - python2-babel \ - python3-autopep8 \ - python3-devel \ - python3-GitPython \ - python3-gobject-base \ - python3-pycodestyle \ - python3-rpm-macros \ - python3-babel \ - redhat-rpm-config \ - rpm-build \ - rpmdevtools \ - ruby \ - "rubygem(json)" \ - rubygems \ - sudo \ - valgrind \ - wget \ - && dnf -y clean all diff --git a/modulemd-1.8.16/.travis/fedora/Dockerfile.tmpl b/modulemd-1.8.16/.travis/fedora/Dockerfile.tmpl deleted file mode 100644 index 8c0fac2..0000000 --- a/modulemd-1.8.16/.travis/fedora/Dockerfile.tmpl +++ /dev/null @@ -1,9 +0,0 @@ -FROM fedora-modularity/libmodulemd-deps-@RELEASE@ - -MAINTAINER Stephen Gallagher - -ARG TARBALL - -ADD $TARBALL /builddir/ - -ENTRYPOINT /builddir/.travis/fedora/travis-tasks.sh diff --git a/modulemd-1.8.16/.travis/fedora/travis-tasks.sh b/modulemd-1.8.16/.travis/fedora/travis-tasks.sh deleted file mode 100755 index 39614e1..0000000 --- a/modulemd-1.8.16/.travis/fedora/travis-tasks.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash - -#Exit on failures -set -e - -set -x - -JOB_NAME=${TRAVIS_JOB_NAME:-Fedora rawhide} - -arr=($JOB_NAME) -os_name=${arr[0]:-Fedora} -release=${arr[1]:-rawhide} - -COMMON_MESON_ARGS="-Dtest_dirty_git=${DIRTY_REPO_CHECK:-true}" - - -pushd /builddir/ - -# Build the code under GCC and run standard tests -meson --buildtype=debug \ - $COMMON_MESON_ARGS \ - travis - -set +e -ninja -C travis test -ret=$? -if [ $ret != 0 ]; then - cat travis/meson-logs/testlog.txt - exit $ret -fi -set -e - - -# Always install and run the installed RPM tests last so we don't pollute the -# testing environment above. - -meson --buildtype=debug \ - $COMMON_MESON_ARGS \ - build_rpm - -pushd build_rpm - -ninja -./make_rpms.sh - -createrepo_c rpmbuild/RPMS/ - -dnf -y install --nogpgcheck \ - --repofrompath libmodulemd-travis,rpmbuild/RPMS \ - python3-libmodulemd1 \ - libmodulemd1-devel \ - --exclude libmodulemd - -# Also install the python2-libmodulemd1 if it was built for this release -# the ||: at the end instructs bash to consider this a pass either way. -dnf -y install --nogpgcheck \ - --repofrompath libmodulemd-travis,rpmbuild/RPMS \ - python2-libmodulemd1 \ - --exclude libmodulemd ||: - -popd #build_rpm - -meson --buildtype=debug \ - -Dtest_installed_lib=true \ - $COMMON_MESON_ARGS \ - installed_lib_tests - -pushd installed_lib_tests - -# Run the tests against the installed RPMs -ninja test - -popd #installed_lib_tests - -popd #builddir diff --git a/modulemd-1.8.16/.travis/mageia/Dockerfile.deps.tmpl b/modulemd-1.8.16/.travis/mageia/Dockerfile.deps.tmpl deleted file mode 100755 index 1830d41..0000000 --- a/modulemd-1.8.16/.travis/mageia/Dockerfile.deps.tmpl +++ /dev/null @@ -1,44 +0,0 @@ -FROM @IMAGE@ - -MAINTAINER Stephen Gallagher - -ARG TARBALL - -RUN dnf -y --setopt=install_weak_deps=False --setopt=tsflags='' install \ - clang \ - clang-analyzer \ - createrepo_c \ - curl \ - elinks \ - gcc \ - gcc-c++ \ - git-core \ - glib2-devel \ - /usr/share/gtk-doc/html/glib/index.html \ - gobject-introspection-devel \ - gtk-doc \ - libyaml-devel \ - meson \ - ninja-build \ - openssl \ - pkgconf \ - popt-devel \ - python-babel \ - python2-six \ - python3-autopep8 \ - python3-devel \ - python3-gitpython \ - python3-gobject3 \ - python3-pycodestyle \ - python3-rpm-macros \ - python3-babel \ - rpm-mageia-setup-build \ - rpm-build \ - rpmdevtools \ - ruby \ - "rubygem(json)" \ - rubygems \ - sudo \ - valgrind \ - wget \ - && dnf -y clean all diff --git a/modulemd-1.8.16/.travis/mageia/Dockerfile.tmpl b/modulemd-1.8.16/.travis/mageia/Dockerfile.tmpl deleted file mode 100755 index e6a41d4..0000000 --- a/modulemd-1.8.16/.travis/mageia/Dockerfile.tmpl +++ /dev/null @@ -1,9 +0,0 @@ -FROM fedora-modularity/libmodulemd-deps-@RELEASE@ - -MAINTAINER Stephen Gallagher - -ARG TARBALL - -ADD $TARBALL /builddir/ - -ENTRYPOINT /builddir/.travis/mageia/travis-tasks.sh diff --git a/modulemd-1.8.16/.travis/mageia/travis-tasks.sh b/modulemd-1.8.16/.travis/mageia/travis-tasks.sh deleted file mode 100755 index ee694c5..0000000 --- a/modulemd-1.8.16/.travis/mageia/travis-tasks.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -#Exit on failures -set -e - -set -x - - -JOB_NAME=${TRAVIS_JOB_NAME:- Mageia 7} - -arr=($JOB_NAME) -os_name=${arr[0]:-Mageia} -release=${arr[1]:-7} - -COMMON_MESON_ARGS="-Dtest_dirty_git=${DIRTY_REPO_CHECK:-true}" - - -pushd /builddir/ - -# Build the code under GCC and run standard tests -meson --buildtype=debug \ - $COMMON_MESON_ARGS \ - travis - -set +e -ninja -C travis test -if [ $? != 0 ]; then - if [ "x$TRAVIS_JOB_NAME" != "x" ]; then - cat travis/meson-logs/testlog.txt - fi - exit $ret -fi -set -e - diff --git a/modulemd-1.8.16/.travis/opensuse/Dockerfile.deps.tmpl b/modulemd-1.8.16/.travis/opensuse/Dockerfile.deps.tmpl deleted file mode 100644 index 077787a..0000000 --- a/modulemd-1.8.16/.travis/opensuse/Dockerfile.deps.tmpl +++ /dev/null @@ -1,40 +0,0 @@ -FROM @IMAGE@ - -MAINTAINER Stephen Gallagher - -ARG TARBALL - -RUN sed -i /etc/zypp/zypp.conf \ - -e "s/rpm.install.excludedocs = yes/rpm.install.excludedocs = no/" - -RUN zypper install --no-confirm --no-recommends \ - clang \ - clang-checker \ - createrepo_c \ - elinks \ - gcc \ - gcc-c++ \ - git-core \ - glib2-devel \ - gobject-introspection-devel \ - gtk-doc \ - libyaml-devel \ - meson \ - ninja \ - pkgconf \ - python-devel \ - python-gobject \ - python2-six \ - python2-Babel \ - python3-autopep8 \ - python3-devel \ - python3-GitPython \ - python3-gobject \ - python3-pycodestyle \ - python3-Babel \ - python-rpm-macros \ - rpm-build \ - rpmdevtools \ - sudo \ - valgrind \ -&& zypper clean --all diff --git a/modulemd-1.8.16/.travis/opensuse/Dockerfile.tmpl b/modulemd-1.8.16/.travis/opensuse/Dockerfile.tmpl deleted file mode 100644 index 601ed0c..0000000 --- a/modulemd-1.8.16/.travis/opensuse/Dockerfile.tmpl +++ /dev/null @@ -1,9 +0,0 @@ -FROM fedora-modularity/libmodulemd-deps-@RELEASE@ - -MAINTAINER Stephen Gallagher - -ARG TARBALL - -ADD $TARBALL /builddir/ - -ENTRYPOINT /builddir/.travis/opensuse/travis-tasks.sh diff --git a/modulemd-1.8.16/.travis/opensuse/travis-tasks.sh b/modulemd-1.8.16/.travis/opensuse/travis-tasks.sh deleted file mode 100755 index 124ad81..0000000 --- a/modulemd-1.8.16/.travis/opensuse/travis-tasks.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -#Exit on failures -set -e - -set -x - -JOB_NAME=${TRAVIS_JOB_NAME:-openSUSE tumbleweed} - -arr=($JOB_NAME) -os_name=${arr[0]:-openSUSE} -release=${arr[1]:-tumbleweed} - -COMMON_MESON_ARGS="-Dtest_dirty_git=false -Ddeveloper_build=false -Dpython_name=python3" - - -pushd /builddir/ - -# Build the code under GCC and run standard tests -meson --buildtype=debug \ - $COMMON_MESON_ARGS \ - travis - -set +e -ninja -C travis test -ret=$? -if [ $ret != 0 ]; then - cat travis/meson-logs/testlog.txt - exit $ret -fi -set -e - -popd #builddir diff --git a/modulemd-1.8.16/.travis/travis-archlinux.sh b/modulemd-1.8.16/.travis/travis-archlinux.sh deleted file mode 100755 index 661399b..0000000 --- a/modulemd-1.8.16/.travis/travis-archlinux.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -pushd $SCRIPT_DIR - -set -e -set -x - -JOB_NAME=${TRAVIS_JOB_NAME:-Arch Linux} - -os_name='Arch Linux' -release=base - -# Create an archive of the current checkout -TARBALL_PATH=`mktemp -p $SCRIPT_DIR tarball-XXXXXX.tar.bz2` -TARBALL=`basename $TARBALL_PATH` - -pushd $SCRIPT_DIR/.. -git ls-files |xargs tar cfj $TARBALL_PATH .git -popd - -repository="docker.io" -os="archlinux" - -sed -e "s/@IMAGE@/$repository\/$os\/$release/" \ - $SCRIPT_DIR/archlinux/Dockerfile.deps.tmpl > $SCRIPT_DIR/archlinux/Dockerfile.deps.$release -sed -e "s/@RELEASE@/$release/" $SCRIPT_DIR/archlinux/Dockerfile.tmpl > $SCRIPT_DIR/archlinux/Dockerfile-$release - -sudo docker build \ - -f $SCRIPT_DIR/archlinux/Dockerfile.deps.$release \ - -t fedora-modularity/libmodulemd-deps-$release . - -sudo docker build \ - -f $SCRIPT_DIR/archlinux/Dockerfile-$release \ - -t fedora-modularity/libmodulemd:$release \ - --build-arg TARBALL=$TARBALL . - -rm -f $TARBALL_PATH $SCRIPT_DIR/archlinux/Dockerfile.deps.$release $SCRIPT_DIR/archlinux/Dockerfile-$release - -docker run \ - -e TRAVIS=$TRAVIS \ - -e TRAVIS_JOB_NAME="$TRAVIS_JOB_NAME" \ - --rm fedora-modularity/libmodulemd:$release - -popd -exit 0 diff --git a/modulemd-1.8.16/.travis/travis-centos.sh b/modulemd-1.8.16/.travis/travis-centos.sh deleted file mode 100755 index 10f0295..0000000 --- a/modulemd-1.8.16/.travis/travis-centos.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -pushd $SCRIPT_DIR - -set -e -set -x - -JOB_NAME=${TRAVIS_JOB_NAME:-CentOS 7} - -arr=($JOB_NAME) -os_name=${arr[0]:-CentOS} -release=${arr[1]:-7} - -# Create an archive of the current checkout -TARBALL_PATH=`mktemp -p $SCRIPT_DIR tarball-XXXXXX.tar.bz2` -TARBALL=`basename $TARBALL_PATH` - -pushd $SCRIPT_DIR/.. -git ls-files |xargs tar cfj $TARBALL_PATH .git -popd - -repository="registry.centos.org" -os="centos" - -sed -e "s/@IMAGE@/$repository\/$os:$release/" \ - $SCRIPT_DIR/centos/Dockerfile.deps.tmpl > $SCRIPT_DIR/centos/Dockerfile.deps.$release -sed -e "s/@RELEASE@/$release/" $SCRIPT_DIR/centos/Dockerfile.tmpl > $SCRIPT_DIR/centos/Dockerfile-$release - -sudo docker build \ - -f $SCRIPT_DIR/centos/Dockerfile.deps.$release \ - -t fedora-modularity/libmodulemd-deps-$release . - -sudo docker build \ - -f $SCRIPT_DIR/centos/Dockerfile-$release \ - -t fedora-modularity/libmodulemd:$release \ - --build-arg TARBALL=$TARBALL . - -rm -f $TARBALL_PATH $SCRIPT_DIR/centos/Dockerfile.deps.$release $SCRIPT_DIR/centos/Dockerfile-$release - -docker run \ - -e TRAVIS=$TRAVIS \ - -e TRAVIS_JOB_NAME="$TRAVIS_JOB_NAME" \ - --rm fedora-modularity/libmodulemd:$release - -popd -exit 0 diff --git a/modulemd-1.8.16/.travis/travis-fedora.sh b/modulemd-1.8.16/.travis/travis-fedora.sh deleted file mode 100755 index 0e1d240..0000000 --- a/modulemd-1.8.16/.travis/travis-fedora.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -pushd $SCRIPT_DIR - -set -e -set -x - -JOB_NAME=${TRAVIS_JOB_NAME:-Fedora rawhide} - -arr=($JOB_NAME) -os_name=${arr[0]:-Fedora} -release=${arr[1]:-rawhide} - -# Create an archive of the current checkout -TARBALL_PATH=`mktemp -p $SCRIPT_DIR tarball-XXXXXX.tar.bz2` -TARBALL=`basename $TARBALL_PATH` - -pushd $SCRIPT_DIR/.. -git ls-files |xargs tar cfj $TARBALL_PATH .git -popd - -repository="registry.fedoraproject.org" -os="fedora" - -sed -e "s/@IMAGE@/$repository\/$os:$release/" \ - $SCRIPT_DIR/fedora/Dockerfile.deps.tmpl > $SCRIPT_DIR/fedora/Dockerfile.deps.$release -sed -e "s/@RELEASE@/$release/" $SCRIPT_DIR/fedora/Dockerfile.tmpl > $SCRIPT_DIR/fedora/Dockerfile-$release - -sudo docker build \ - -f $SCRIPT_DIR/fedora/Dockerfile.deps.$release \ - -t fedora-modularity/libmodulemd-deps-$release . - -sudo docker build \ - -f $SCRIPT_DIR/fedora/Dockerfile-$release \ - -t fedora-modularity/libmodulemd:$release \ - --build-arg TARBALL=$TARBALL . - -rm -f $TARBALL_PATH $SCRIPT_DIR/fedora/Dockerfile.deps.$release $SCRIPT_DIR/fedora/Dockerfile-$release - -docker run \ - -e TRAVIS=$TRAVIS \ - -e TRAVIS_JOB_NAME="$TRAVIS_JOB_NAME" \ - --rm fedora-modularity/libmodulemd:$release - -popd -exit 0 diff --git a/modulemd-1.8.16/.travis/travis-mageia.sh b/modulemd-1.8.16/.travis/travis-mageia.sh deleted file mode 100755 index 4f55e01..0000000 --- a/modulemd-1.8.16/.travis/travis-mageia.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -pushd $SCRIPT_DIR -set -e - -set -x - - -JOB_NAME=${TRAVIS_JOB_NAME:- Mageia 7} - -arr=($JOB_NAME) -os_name=${arr[0]:-Mageia} -release=${arr[1]:-7} - -# Create an archive of the current checkout -TARBALL_PATH=`mktemp -p $SCRIPT_DIR tarball-XXXXXX.tar.bz2` -TARBALL=`basename $TARBALL_PATH` - -pushd $SCRIPT_DIR/.. -git ls-files |xargs tar cfj $TARBALL_PATH .git -popd - -repository="docker.io" -os="mageia" - - -sed -e "s/@IMAGE@/$repository\/$os:$release/" \ - $SCRIPT_DIR/mageia/Dockerfile.deps.tmpl > $SCRIPT_DIR/mageia/Dockerfile.deps.$release -sed -e "s/@RELEASE@/$release/" $SCRIPT_DIR/mageia/Dockerfile.tmpl > $SCRIPT_DIR/mageia/Dockerfile-$release - -sudo docker build \ - -f $SCRIPT_DIR/mageia/Dockerfile.deps.$release \ - -t fedora-modularity/libmodulemd-deps-$release . - -sudo docker build \ - -f $SCRIPT_DIR/mageia/Dockerfile-$release \ - -t fedora-modularity/libmodulemd:$release \ - --build-arg TARBALL=$TARBALL . - -rm -f $TARBALL_PATH $SCRIPT_DIR/mageia/Dockerfile.deps.$release $SCRIPT_DIR/mageia/Dockerfile-$release - -docker run \ - -e TRAVIS=$TRAVIS \ - -e TRAVIS_JOB_NAME="$TRAVIS_JOB_NAME" \ - --rm fedora-modularity/libmodulemd:$release - -popd -exit 0 diff --git a/modulemd-1.8.16/.travis/travis-opensuse.sh b/modulemd-1.8.16/.travis/travis-opensuse.sh deleted file mode 100755 index ecfb82a..0000000 --- a/modulemd-1.8.16/.travis/travis-opensuse.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -pushd $SCRIPT_DIR - -set -e -set -x - -JOB_NAME=${TRAVIS_JOB_NAME:-openSUSE tumbleweed} - -arr=($JOB_NAME) -os_name=${arr[0]:-openSUSE} -release=${arr[1]:-tumbleweed} - -# Create an archive of the current checkout -TARBALL_PATH=`mktemp -p $SCRIPT_DIR tarball-XXXXXX.tar.bz2` -TARBALL=`basename $TARBALL_PATH` - -pushd $SCRIPT_DIR/.. -git ls-files |xargs tar cfj $TARBALL_PATH .git -popd - -repository="registry.opensuse.org" -os="opensuse" - -sed -e "s/@IMAGE@/$repository\/$os\/$release/" \ - $SCRIPT_DIR/opensuse/Dockerfile.deps.tmpl > $SCRIPT_DIR/opensuse/Dockerfile.deps.$release -sed -e "s/@RELEASE@/$release/" $SCRIPT_DIR/opensuse/Dockerfile.tmpl > $SCRIPT_DIR/opensuse/Dockerfile-$release - -sudo docker build \ - -f $SCRIPT_DIR/opensuse/Dockerfile.deps.$release \ - -t fedora-modularity/libmodulemd-deps-$release . - -sudo docker build \ - -f $SCRIPT_DIR/opensuse/Dockerfile-$release \ - -t fedora-modularity/libmodulemd:$release \ - --build-arg TARBALL=$TARBALL . - -rm -f $TARBALL_PATH $SCRIPT_DIR/opensuse/Dockerfile.deps.$release $SCRIPT_DIR/opensuse/Dockerfile-$release - -docker run \ - -e TRAVIS=$TRAVIS \ - -e TRAVIS_JOB_NAME="$TRAVIS_JOB_NAME" \ - --rm fedora-modularity/libmodulemd:$release -popd -exit 0 diff --git a/modulemd-1.8.16/COPYING b/modulemd-1.8.16/COPYING deleted file mode 100644 index 0b73672..0000000 --- a/modulemd-1.8.16/COPYING +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) 2017-2018 Stephen Gallagher - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/modulemd-1.8.16/README.md b/modulemd-1.8.16/README.md deleted file mode 100644 index bbb1367..0000000 --- a/modulemd-1.8.16/README.md +++ /dev/null @@ -1,105 +0,0 @@ -[![Travis](https://img.shields.io/travis/fedora-modularity/libmodulemd.svg?style=plastic)](https://travis-ci.org/fedora-modularity/libmodulemd) -[![Travis](https://img.shields.io/coverity/scan/13739.svg?style=plastic)](https://scan.coverity.com/projects/sgallagher-libmodulemd) - -# libmodulemd -C Library for manipulating module metadata files - -Full details can be found in the -[API Documentation](https://fedora-modularity.github.io/libmodulemd/1.8/) - -# Using libmodulemd from Python - -Using libmodulemd from Python is possible thanks to the gobject-introspection -project. To use libmodulemd from Python, include the following at the top of -your sources. - -Install the `python2-libmodulemd` or `python3-libmodulemd` package for your -system depending on the version of python with which you are working. -These packages provide the appropriate language bindings. - -```python -import gi -gi.require_version('Modulemd', '1.0') -from gi.repository import Modulemd -``` - -# Getting started with developing -## Prerequisites -* A Fedora development environment (physical or virtual) - -To install all of the dependencies needed to build libmodulemd, the following command will work on Fedora 28+ (run as root or with sudo): -``` -dnf -y install clang git-core python3-pycodestyle python3-autopep8 redhat-rpm-config "dnf-command(builddep)" -dnf -y builddep libmodulemd -``` - -To install the tools needed to run the docker-based tests, you will also need: -``` -dnf -y install docker -sudo systemctl enable --now docker.service -``` -and to make sure that your user has privilege to run `sudo docker` (see the documentation for the `/etc/sudoers` file to figure this out). - -## Forking and cloning the sources -The libmodulemd project follows the [Github Fork-and-Pull](https://reflectoring.io/github-fork-and-pull/) model of development. To get started, create a fork of the upstream libmodulemd sources, clone those locally and create branches on your fork to make changes. When they are ready for review or feedback, create a pull-request. - -## Building the sources -This guideline will describe the procedure for working with the 1.0 API. (Note that the 1.0 API is deprecated and will be removed soon) - -Projects built with the meson build-system require a separate build directory from the source path. The `meson` command will generate this directory for you. -``` -meson --buildtype=debug -Db_coverage=true build -``` -The above command (run from the root of the source checkout) will create a new subdirectory - `build` - configured to compile with debug symbols and `gcov` symbols to measure test coverage. - -To build the sources, `chdir()` into the `build` directory and run -``` -ninja -``` - -To build and run the in-tree tests, use -``` -ninja test -``` - -To generate HTML documentation, you can run -``` -ninja modulemd-1.0-doc -``` -(Be aware that the GLib documentation module in meson has some strange quirks and won't recognize newly-added pages without deleting and re-creating the build directory first.) - - -To run the docker-based tests, you can run (from the source root and with `sudo` privilege to run `docker`): -``` -./.travis/travis-fedora.sh -``` -(Optionally setting the environment variable `TRAVIS_JOB_NAME` to `Fedora 28`, `Fedora 29`, etc. to switch to building against those releases rather than Fedora Rawhide). - - -## Tips and tricks - -### Running tests in debug mode - -The libmodulemd library is built atop -[GObject](https://developer.gnome.org/gobject/stable/). It provides a debug -mode that is configurable by an environment variable. In general, it is highly -recommended that you run all tests with -`G_DEBUG='fatal-warnings,fatal-criticals'` set in the environment. This will -cause the application to `abort()` on programming errors that would be logged -and ignored at runtime. - - -### Skipping the valgrind tests - -If you are trying to iterate quickly, you can temporarily skip the valgrind -memory tests by running the test suite with: -``` -MMD_SKIP_VALGRIND=True ninja test -``` - -The automated CI tests will always run with valgrind on all platforms where it -is supported. - -# Authors: -* Stephen Gallagher -* Igor Gnatenko diff --git a/modulemd-1.8.16/libmodulemd.spec.in b/modulemd-1.8.16/libmodulemd.spec.in deleted file mode 100644 index ffec483..0000000 --- a/modulemd-1.8.16/libmodulemd.spec.in +++ /dev/null @@ -1,141 +0,0 @@ -%global libmodulemd_version @VERSION@ - -%if ( 0%{?fedora} && 0%{?fedora} <= 30 ) || ( 0%{?rhel} && 0%{?rhel} <= 7) -%global build_python2 1 -%else -%global build_python2 0 -%endif - -Name: libmodulemd1 -Version: %{libmodulemd_version} -Release: 0%{?dist}.@DATETIME@ -Summary: Module metadata manipulation library - -License: MIT -URL: https://github.com/fedora-modularity/libmodulemd -Source0: %{url}/releases/download/libmodulemd-%{version}/modulemd-%{version}.tar.xz - -BuildRequires: meson >= 0.47 -BuildRequires: pkgconfig -BuildRequires: gcc -BuildRequires: gcc-c++ -BuildRequires: pkgconfig(gobject-2.0) -BuildRequires: pkgconfig(gobject-introspection-1.0) -BuildRequires: pkgconfig(yaml-0.1) -BuildRequires: pkgconfig(gtk-doc) -%if %{build_python2} -BuildRequires: python2-devel -BuildRequires: python-gobject-base -%endif -BuildRequires: python3-devel -BuildRequires: python3-gobject-base -BuildRequires: python3-babel -BuildRequires: python2-babel -BuildRequires: valgrind -BuildRequires: glib2-doc - - -# Patches - - -%description -C Library for manipulating module metadata files. -See https://github.com/fedora-modularity/libmodulemd/blob/master/README.md for -more details. - - -%if %{build_python2} -%package -n python2-%{name} -Summary: Python 2 bindings for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: python-gobject-base -Requires: python-six -Obsoletes: python2-modulemd < 1.3.4 - -%description -n python2-%{name} -Python 2 bindings for %{name} -%endif - - -%package -n python3-%{name} -Summary: Python 3 bindings for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: python3-gobject-base -Requires: %{py3_dist six} -Obsoletes: python3-modulemd < 1.3.4 - -%description -n python3-%{name} -Python 3 bindings for %{name} - - -%package devel -Summary: Development files for libmodulemd -Requires: %{name}%{?_isa} = %{version}-%{release} -Conflicts: libmodulemd-devel - - -%description devel -Development files for libmodulemd. - - -%prep -%autosetup -p1 -n modulemd-%{libmodulemd_version} - - -%build -%meson -Ddeveloper_build=false - -%if 0%{?rhel} && 0%{?rhel} <= 7 -# ALERT!!! PURE HACK FOR EPEL! -# https://bugzilla.redhat.com/show_bug.cgi?id=1546757 -sed -r -i -e "/g-ir-scanner/s/-l(gobject-2.0|glib-2.0|yaml)//g" %{_vpath_builddir}/build.ninja -%endif - -%meson_build - -%check - -export LC_CTYPE=C.utf8 - -%ifarch %{power64} -# Valgrind is broken on ppc64[le] with GCC7: -# https://bugs.kde.org/show_bug.cgi?id=386945 -export MMD_SKIP_VALGRIND=1 -%endif - -%meson_test - - -%install -%meson_install - - -%files -%license COPYING -%doc README.md -%{_bindir}/modulemd-validator-v1 -%{_libdir}/libmodulemd.so.1* -%dir %{_libdir}/girepository-1.0 -%{_libdir}/girepository-1.0/Modulemd-1.0.typelib - - -%files devel -%{_libdir}/libmodulemd.so -%{_libdir}/pkgconfig/modulemd.pc -%{_includedir}/modulemd/ -%dir %{_datadir}/gir-1.0 -%{_datadir}/gir-1.0/Modulemd-1.0.gir -%dir %{_datadir}/gtk-doc -%dir %{_datadir}/gtk-doc/html -%{_datadir}/gtk-doc/html/modulemd-1.0/ - - -%files -n python3-libmodulemd1 - - -%if %{build_python2} -%files -n python2-libmodulemd1 -%endif - - -%changelog diff --git a/modulemd-1.8.16/make_rpms.sh.in b/modulemd-1.8.16/make_rpms.sh.in deleted file mode 100755 index 37e8c54..0000000 --- a/modulemd-1.8.16/make_rpms.sh.in +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/sh - -# optionally call this function with --nocheck to skip the test suite while -# building RPMs. - -set -e - -echo "Creating tarball. This may take a while." - -MMD_SKIP_VALGRIND=True ninja dist > /dev/null - -ln -sf ../meson-dist/ ./rpmbuild/SOURCES - -rpmbuild @BUILDFLAG@ $1 libmodulemd.spec --define "_topdir $(pwd)/rpmbuild" diff --git a/modulemd-1.8.16/meson.build b/modulemd-1.8.16/meson.build deleted file mode 100644 index 0d75240..0000000 --- a/modulemd-1.8.16/meson.build +++ /dev/null @@ -1,139 +0,0 @@ -# This file is part of libmodulemd -# Copyright (C) 2017-2018 Stephen Gallagher -# -# Fedora-License-Identifier: MIT -# SPDX-2.0-License-Identifier: MIT -# SPDX-3.0-License-Identifier: MIT -# -# This program is free software. -# For more information on the license, see COPYING. -# For more information on free software, see . - -project('modulemd', 'c', - version : '1.8.16', - default_options : [ - 'buildtype=debugoptimized', - 'c_std=c11', - 'warning_level=1', - 'b_asneeded=true', - ], - license : 'MIT', - meson_version : '>=0.47.0') - -libmodulemd_version = meson.project_version() - -cc = meson.get_compiler('c') -test_cflags = [ - '-Wpointer-arith', - '-Werror=missing-declarations', - '-Wmissing-prototypes', - '-Wstrict-prototypes', - '-Wuninitialized', - ['-Werror=format-security', '-Werror=format=2'], # Must be checked together - '-Werror=implicit', - '-Werror=init-self', - '-Werror=main', - '-Werror=missing-braces', - '-Werror=return-type', - '-Werror=array-bounds', - '-Werror=write-strings', - '-DG_LOG_USE_STRUCTURED', - '-DG_LOG_DOMAIN="libmodulemd"', -] -foreach cflag: test_cflags - if cc.has_multi_arguments(cflag) - add_project_arguments(cflag, language : 'c') - endif -endforeach - - -pymod = import('python') -gnome = import('gnome') -pkg = import('pkgconfig') -gobject = dependency('gobject-2.0') -yaml = dependency('yaml-0.1') - -sh = find_program('sh') -sed = find_program('sed') -test = find_program('test') - - -with_docs = get_option('with_docs') -if with_docs - gtkdoc = dependency('gtk-doc') - - glib_prefix = dependency('glib-2.0').get_pkgconfig_variable('prefix') - glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html') - - - ret = run_command ([test, '-e', join_paths(glib_docpath, 'glib/index.html')]) - if ret.returncode() != 0 - error('Missing documentation for GLib.') - endif - - ret = run_command ([test, '-e', join_paths(glib_docpath, 'gobject/index.html')]) - if ret.returncode() != 0 - error('Missing documentation for GObject.') - endif -endif - -python_name = get_option('python_name') - -if python_name != '' - # If we've been instructed to use a specific python version - python3 = pymod.find_installation(python_name) -else - # Use the python installation that is running meson - python3 = pymod.find_installation() -endif - -spec_tmpl = find_program('spec_tmpl.sh') - -specfile_template = files('libmodulemd.spec.in') - -mkdir = find_program('mkdir') - -rpmsetup_target = custom_target( - 'rpmsetup', - command: [ - mkdir, '-p', - 'rpmbuild/BUILD', - 'rpmbuild/RPMS', - 'rpmbuild/SPECS', - 'rpmbuild/SRPMS'], - output: 'rpmbuild', -) - -spec_target = custom_target( - 'specfile', - capture: true, - build_always: true, - command: [sh, spec_tmpl, - libmodulemd_version, - '@INPUT@'], - input: specfile_template, - output: 'libmodulemd.spec', - depends: rpmsetup_target, -) - -rpm_cdata = configuration_data() -rpm_cdata.set('VERSION', libmodulemd_version) -rpm_cdata.set('BUILDFLAG', '-bb') - -srpm_cdata = configuration_data() -srpm_cdata.set('VERSION', libmodulemd_version) -srpm_cdata.set('BUILDFLAG', '-bs') - -configure_file( - input: 'make_rpms.sh.in', - output: 'make_srpm.sh', - configuration: srpm_cdata, -) - -configure_file( - input: 'make_rpms.sh.in', - output: 'make_rpms.sh', - configuration: rpm_cdata, -) - -subdir('modulemd') diff --git a/modulemd-1.8.16/meson_options.txt b/modulemd-1.8.16/meson_options.txt deleted file mode 100644 index f879049..0000000 --- a/modulemd-1.8.16/meson_options.txt +++ /dev/null @@ -1,17 +0,0 @@ -# This file is part of libmodulemd -# Copyright (C) 2017-2018 Stephen Gallagher -# -# Fedora-License-Identifier: MIT -# SPDX-2.0-License-Identifier: MIT -# SPDX-3.0-License-Identifier: MIT -# -# This program is free software. -# For more information on the license, see COPYING. -# For more information on free software, see . - -option('developer_build', type : 'boolean', value : true) -option('test_dirty_git', type : 'boolean', value : false) -option('test_installed_lib', type : 'boolean', value : false) -option('skip_introspection', type : 'boolean', value : false) -option('python_name', type : 'string') -option('with_docs', type : 'boolean', value : true) diff --git a/modulemd-1.8.16/mod-defaults/ex1.yaml b/modulemd-1.8.16/mod-defaults/ex1.yaml deleted file mode 100644 index f18554c..0000000 --- a/modulemd-1.8.16/mod-defaults/ex1.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# Intents optional: -document: modulemd-defaults -version: 1 -data: - module: httpd - stream: '2.6' - profiles: - '2.6': [client, server] - intents: - workstation: - stream: '2.2' - profiles: - '2.2': [client] - '2.6': [client, server, bindings] diff --git a/modulemd-1.8.16/mod-defaults/ex2.yaml b/modulemd-1.8.16/mod-defaults/ex2.yaml deleted file mode 100644 index 44e5002..0000000 --- a/modulemd-1.8.16/mod-defaults/ex2.yaml +++ /dev/null @@ -1,16 +0,0 @@ ---- -document: modulemd-defaults -version: 1 -data: - module: postgresql - stream: '8.0' - profiles: - '8.0': [server] ---- -document: modulemd-defaults -version: 1 -data: - module: nodejs - stream: '6.0' - profiles: - '6.0': [default] diff --git a/modulemd-1.8.16/mod-defaults/ex3.yaml b/modulemd-1.8.16/mod-defaults/ex3.yaml deleted file mode 100644 index cb00063..0000000 --- a/modulemd-1.8.16/mod-defaults/ex3.yaml +++ /dev/null @@ -1,32 +0,0 @@ ---- -# Intents optional: -document: modulemd-defaults -version: 1 -data: - module: httpd - stream: '2.2' - profiles: - '2.2': [client, server] - intents: - workstation: - stream: '2.4' - profiles: - '2.4': [client] - '2.6': [client, server, bindings] ---- -document: modulemd-defaults -version: 1 -data: - module: postgresql - stream: '8.1' - profiles: - '8.1': [client, server, foo] ---- -document: modulemd-defaults -version: 1 -data: - module: nodejs - stream: '8.0' - profiles: - '6.0': [default] - '8.0': [super] diff --git a/modulemd-1.8.16/mod-defaults/ex4.yaml b/modulemd-1.8.16/mod-defaults/ex4.yaml deleted file mode 100644 index 7c75f06..0000000 --- a/modulemd-1.8.16/mod-defaults/ex4.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# Intents optional: -document: modulemd-defaults -version: 1 -data: - module: httpd - # No default stream for this module - profiles: - '2.6': [client, server] - intents: - workstation: - stream: '2.2' - profiles: - '2.2': [client] - '2.6': [client, server, bindings] diff --git a/modulemd-1.8.16/mod-defaults/spec.v1.yaml b/modulemd-1.8.16/mod-defaults/spec.v1.yaml deleted file mode 100644 index ccd2736..0000000 --- a/modulemd-1.8.16/mod-defaults/spec.v1.yaml +++ /dev/null @@ -1,43 +0,0 @@ -# Document type identifier -document: modulemd-defaults -# Module metadata format version -version: 1 -data: - # Module name that the defaults are for, required. - module: foo - # A 64-bit unsigned integer. Use YYYYMMDDHHMM to easily identify the last - # modification time. Use UTC for consistency. - # When merging, entries with a newer 'modified' value will override any - # earlier values. (optional) - modified: 201812071200 - # Module stream that is the default for the module, optional. - stream: x.y - # Module profiles indexed by the stream name, optional - # This is a dictionary of stream names to a list of default profiles to be - # installed. - profiles: - 'x.y': [] - bar: [baz, snafu] - # System intents dictionary, optional. Indexed by the intent name. - # Overrides stream/profiles for intent. - intents: - desktop: - # Module stream that is the default for the module, required. - # Overrides the above values for systems with this intent. - stream: y.z - # Module profiles indexed by the stream name, required - # Overrides the above values for systems with this intent. - # From the above, foo:x.y has "other" as the value and foo:bar has - # no default profile. - profiles: - 'y.z': [blah] - 'x.y': [other] - server: - # Module stream that is the default for the module, required. - # Overrides the above values for systems with this intent. - stream: x.y - # Module profiles indexed by the stream name, required - # Overrides the above values for systems with this intent. - # From the above foo:x.y and foo:bar have no default profile. - profiles: - 'x.y': [] diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-buildopts.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-buildopts.h deleted file mode 100644 index f754e46..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-buildopts.h +++ /dev/null @@ -1,146 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#pragma once - -#include "modulemd-simpleset.h" - -#include - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-buildopts - * @title: Modulemd.Buildopts - * @short_description: Provides hints to the build-system on how to build this - * module. - */ - -#define MODULEMD_TYPE_BUILDOPTS (modulemd_buildopts_get_type ()) - -G_DECLARE_FINAL_TYPE ( - ModulemdBuildopts, modulemd_buildopts, MODULEMD, BUILDOPTS, GObject) - -/** - * modulemd_buildopts_new: - * - * Returns: (transfer full): a newly-allocated #ModulemdBuildopts. This object - * must be freed with g_object_unref(). - * - * Since: 1.5 - */ -ModulemdBuildopts * -modulemd_buildopts_new (void); - - -/** - * modulemd_buildopts_set_rpm_macros: - * @macros: (nullable): A string containing RPM build macros in the form that - * they would appear in an RPM macros file on-disk. - * - * Assigns RPM macros for the build-system. - * - * Since: 1.5 - */ -void -modulemd_buildopts_set_rpm_macros (ModulemdBuildopts *self, - const gchar *macros); - - -/** - * modulemd_buildopts_get_rpm_macros: - * - * Retrieves a copy of the string containing RPM build macros in the form that - * they would appear in an RPM macros file on-disk. - * - * Returns: a copy of the string containing RPM build macros in the form that - * they would appear in an RPM macros file on-disk. The caller must free the - * returned string with g_free() once finished with it. This function may - * return NULL if no RPM macros have been set. - * - * Since: 1.5 - */ -gchar * -modulemd_buildopts_get_rpm_macros (ModulemdBuildopts *self); - - -/** - * modulemd_buildopts_set_rpm_whitelist: - * @whitelist: (array zero-terminated=1) (transfer none): The set of RPM names - * for the whitelist. - * - * This will make a copy of all of the unique items in @whitelist. - * - * Since: 1.5 - */ -void -modulemd_buildopts_set_rpm_whitelist (ModulemdBuildopts *self, - GStrv whitelist); - - -/** - * modulemd_buildopts_set_rpm_whitelist_simpleset: - * @whitelist: (transfer none): The #ModulemdSimpleSet set of RPM names - * for the whitelist. - * - * This will make a copy of all of the unique items in @whitelist. - * - * Since: 1.5 - */ -void -modulemd_buildopts_set_rpm_whitelist_simpleset (ModulemdBuildopts *self, - ModulemdSimpleSet *whitelist); - - -/** - * modulemd_buildopts_get_rpm_whitelist: - * - * Returns a copy of the whitelist. - * - * Returns: (array zero-terminated=1) (transfer full): The set of RPM names - * for the whitelist. May return NULL if no whitelist is stored. - * - * Since: 1.5 - */ -GStrv -modulemd_buildopts_get_rpm_whitelist (ModulemdBuildopts *self); - - -/** - * modulemd_buildopts_get_rpm_whitelist_simpleset: - * - * Returns a copy of the whitelist as a #ModulemdSimpleset - * - * Returns: (transfer full): The #ModulemdSimpleSet of RPM names - * for the whitelist. May return NULL if no whitelist is stored. - * - * Since: 1.5 - */ -ModulemdSimpleSet * -modulemd_buildopts_get_rpm_whitelist_simpleset (ModulemdBuildopts *self); - - -/** - * modulemd_buildopts_copy: - * - * Make a deep copy of this #ModulemdBuildopts object. - * - * Returns: (transfer full): A deep copy of this #ModulemdBuildopts object. - * This value must be freed with g_object_unref(). - * - * Since: 1.5 - */ -ModulemdBuildopts * -modulemd_buildopts_copy (ModulemdBuildopts *self); - -G_END_DECLS diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-component-module.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-component-module.h deleted file mode 100644 index 0bfe34d..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-component-module.h +++ /dev/null @@ -1,161 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#ifndef MODULEMD_COMPONENT_MODULE_H -#define MODULEMD_COMPONENT_MODULE_H - -#include "modulemd-component.h" -#include "modulemd-deprecated.h" -#include "modulemd-simpleset.h" - -#include - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-component-module - * @title: Modulemd.ComponentModule - * @short_description: A module component that goes into a module stream. - */ - -#define MODULEMD_TYPE_COMPONENT_MODULE (modulemd_component_module_get_type ()) - -G_DECLARE_FINAL_TYPE (ModulemdComponentModule, - modulemd_component_module, - MODULEMD, - COMPONENT_MODULE, - ModulemdComponent) - -/** - * modulemd_component_module_new: - * - * Returns: (transfer full): A newly-allocated #ModulemdComponentModule. Use - * g_object_unref() to free it. - * - * Since: 1.0 - */ -ModulemdComponentModule * -modulemd_component_module_new (void); - - -/** - * modulemd_component_module_set_ref - * @ref: (nullable): A string: The particular repository commit hash, branch or tag name - * used in this module. - * - * Since: 1.0 - */ -void -modulemd_component_module_set_ref (ModulemdComponentModule *self, - const gchar *ref); - - -/** - * modulemd_component_module_get_ref: - * - * Retrieves the repository ref. - * - * Returns: A string containing the repository ref. - * - * Deprecated: 1.1 - * Use peek_ref() instead. - * - * Since: 1.0 - */ -MMD_DEPRECATED_FOR (modulemd_component_module_peek_ref) -const gchar * -modulemd_component_module_get_ref (ModulemdComponentModule *self); - -/** - * modulemd_component_module_peek_ref: - * - * Retrieves the repository ref. - * - * Returns: A string containing the repository ref. - * - * Since: 1.1 - */ -const gchar * -modulemd_component_module_peek_ref (ModulemdComponentModule *self); - - -/** - * modulemd_component_module_dup_ref: - * - * Retrieves a copy of the repository ref. - * - * Returns: A copy of the string containing the repository ref. - * - * Since: 1.1 - */ -gchar * -modulemd_component_module_dup_ref (ModulemdComponentModule *self); - - -/** - * modulemd_component_module_set_repository - * @repository: (nullable): A string: The VCS repository with the modulemd file, and other - * module data. - * - * Since: 1.0 - */ -void -modulemd_component_module_set_repository (ModulemdComponentModule *self, - const gchar *repository); - - -/** - * modulemd_component_module_get_repository: - * - * Retrieves the repository location. - * - * Returns: A string containing the repository location. - * - * Deprecated: 1.1 - * Use peek_repository() instead. - * - * Since: 1.0 - */ -MMD_DEPRECATED_FOR (modulemd_component_module_peek_repository) -const gchar * -modulemd_component_module_get_repository (ModulemdComponentModule *self); - - -/** - * modulemd_component_module_peek_repository: - * - * Retrieves the repository location. - * - * Returns: A string containing the repository location. - * - * Since: 1.1 - */ -const gchar * -modulemd_component_module_peek_repository (ModulemdComponentModule *self); - - -/** - * modulemd_component_module_dup_repository: - * - * Retrieves a copy of the repository location. - * - * Returns: A copy of the string containing the repository location. - * - * Since: 1.1 - */ -gchar * -modulemd_component_module_dup_repository (ModulemdComponentModule *self); - -G_END_DECLS - -#endif /* MODULEMD_COMPONENT_MODULE_H */ diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-component-rpm.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-component-rpm.h deleted file mode 100644 index bc65ff0..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-component-rpm.h +++ /dev/null @@ -1,331 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#ifndef MODULEMD_COMPONENT_RPM_H -#define MODULEMD_COMPONENT_RPM_H - -#include "modulemd-component.h" -#include "modulemd-deprecated.h" -#include "modulemd-simpleset.h" - -#include - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-component-rpm - * @title: Modulemd.ComponentRpm - * @short_description: An RPM component that goes into a module stream. - */ - -#define MODULEMD_TYPE_COMPONENT_RPM (modulemd_component_rpm_get_type ()) - -G_DECLARE_FINAL_TYPE (ModulemdComponentRpm, - modulemd_component_rpm, - MODULEMD, - COMPONENT_RPM, - ModulemdComponent) - - -/** - * modulemd_component_rpm_new: - * - * Returns: (transfer full): A newly-allocated #ModulemdComponentRpm. This must - * be freed with g_object_unref(). - * - * Since: 1.0 - */ -ModulemdComponentRpm * -modulemd_component_rpm_new (void); - - -/** - * modulemd_component_rpm_set_arches: - * @arches: (nullable): a #ModulemdSimpleSet: A set of architectures on which - * this RPM package should be available. An empty set means the package is - * available on all supported architectures. - * - * Since: 1.0 - */ -void -modulemd_component_rpm_set_arches (ModulemdComponentRpm *self, - ModulemdSimpleSet *arches); - - -/** - * modulemd_component_rpm_get_arches: - * - * Retrieves the set of arches for this component. - * - * Returns: (transfer none): A #ModulemdSimpleSet containing the set of - * supported architectures for this component. - * - * Deprecated: 1.1 - * Use peek_arches() instead. - * - * Since: 1.0 - */ -MMD_DEPRECATED_FOR (modulemd_component_rpm_peek_arches) -ModulemdSimpleSet * -modulemd_component_rpm_get_arches (ModulemdComponentRpm *self); - - -/** - * modulemd_component_rpm_peek_arches: - * - * Retrieves the set of arches for this component. - * - * Returns: (transfer none): A #ModulemdSimpleSet containing the set of - * supported architectures for this component. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_component_rpm_peek_arches (ModulemdComponentRpm *self); - - -/** - * modulemd_component_rpm_dup_arches: - * - * Retrieves a copy of the set of arches for this component. - * - * Returns: (transfer full): A #ModulemdSimpleSet containing the set of - * supported architectures for this component. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_component_rpm_dup_arches (ModulemdComponentRpm *self); - - -/** - * modulemd_component_rpm_set_cache - * @cache: (nullable): A string: The URL of the lookaside cache where this package's - * sources are stored. - * - * Since: 1.0 - */ -void -modulemd_component_rpm_set_cache (ModulemdComponentRpm *self, - const gchar *cache); - - -/** - * modulemd_component_rpm_get_cache: - * - * Retrieves the lookaside cache URL. - * - * Returns: A string containing the URL to the lookaside cache. - * - * Deprecated: 1.1 - * Use peek_cache() instead. - */ -MMD_DEPRECATED_FOR (modulemd_component_rpm_peek_cache) -const gchar * -modulemd_component_rpm_get_cache (ModulemdComponentRpm *self); - - -/** - * modulemd_component_rpm_peek_cache: - * - * Retrieves the lookaside cache URL. - * - * Returns: A string containing the URL to the lookaside cache. - * - * Since: 1.1 - */ -const gchar * -modulemd_component_rpm_peek_cache (ModulemdComponentRpm *self); - - -/** - * modulemd_component_rpm_dup_cache: - * - * Retrieves a copy of the lookaside cache URL. - * - * Returns: A copy of the string containing the URL to the lookaside cache. - * - * Since: 1.1 - */ -gchar * -modulemd_component_rpm_dup_cache (ModulemdComponentRpm *self); - - -/** - * modulemd_component_rpm_set_multilib: - * @multilib: (nullable): a #ModulemdSimpleSet: A set of architectures on which - * this RPM package should be available as multilib. An empty set means the - * package is not available as multilib on any architecture. - * - * Since: 1.0 - */ -void -modulemd_component_rpm_set_multilib (ModulemdComponentRpm *self, - ModulemdSimpleSet *multilib); - - -/** - * modulemd_component_rpm_get_multilib: - * - * Retrieves the set of multilib for this component. - * - * Returns: (transfer none): A #ModulemdSimpleSet containing the set of - * supported multilib architectures for this component. - * - * Deprecated: 1.1 - * Use peek_multilib() instead. - * - * Since: 1.0 - */ -MMD_DEPRECATED_FOR (modulemd_component_rpm_peek_multilib) -ModulemdSimpleSet * -modulemd_component_rpm_get_multilib (ModulemdComponentRpm *self); - - -/** - * modulemd_component_rpm_peek_multilib: - * - * Retrieves the set of multilib for this component. - * - * Returns: (transfer none): A #ModulemdSimpleSet containing the set of - * supported multilib architectures for this component. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_component_rpm_peek_multilib (ModulemdComponentRpm *self); - - -/** - * modulemd_component_rpm_dup_multilib: - * - * Retrieves a copy of the set of multilib for this component. - * - * Returns: (transfer full): A #ModulemdSimpleSet containing the set of - * supported multilib architectures for this component. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_component_rpm_dup_multilib (ModulemdComponentRpm *self); - - -/** - * modulemd_component_rpm_set_ref - * @ref: (nullable): A string: The particular repository commit hash, branch or tag name - * used in this module. - * - * Since: 1.0 - */ -void -modulemd_component_rpm_set_ref (ModulemdComponentRpm *self, const gchar *ref); - - -/** - * modulemd_component_rpm_get_ref: - * - * Retrieves the repository ref. - * - * Returns: A string containing the repository ref. - * - * Deprecated: 1.1 - * Use peek_ref() instead. - */ -MMD_DEPRECATED_FOR (modulemd_component_rpm_peek_ref) -const gchar * -modulemd_component_rpm_get_ref (ModulemdComponentRpm *self); - - -/** - * modulemd_component_rpm_peek_ref: - * - * Retrieves the repository ref. - * - * Returns: A string containing the repository ref. - * - * Since: 1.1 - */ -const gchar * -modulemd_component_rpm_peek_ref (ModulemdComponentRpm *self); - - -/** - * modulemd_component_rpm_dup_ref: - * - * Retrieves a copy of the repository ref. - * - * Returns: A copy of the string containing the repository ref. - * - * Since: 1.1 - */ -gchar * -modulemd_component_rpm_dup_ref (ModulemdComponentRpm *self); - - -/** - * modulemd_component_rpm_set_repository - * @repository: (nullable): A string: The VCS repository with the RPM SPEC file, patches and other - * package data. - * - * Since: 1.0 - */ -void -modulemd_component_rpm_set_repository (ModulemdComponentRpm *self, - const gchar *repository); - - -/** - * modulemd_component_rpm_get_repository: - * - * Retrieves the repository location. - * - * Returns: A string containing the repository location. - * - * Deprecated: 1.1 - * Use peek_repository() instead. - * - * Since: 1.0 - */ -MMD_DEPRECATED_FOR (modulemd_component_rpm_peek_repository) -const gchar * -modulemd_component_rpm_get_repository (ModulemdComponentRpm *self); - - -/** - * modulemd_component_rpm_peek_repository: - * - * Retrieves the repository location. - * - * Returns: A string containing the repository location. - * - * Since: 1.1 - */ -const gchar * -modulemd_component_rpm_peek_repository (ModulemdComponentRpm *self); - - -/** - * modulemd_component_rpm_dup_repository: - * - * Retrieves a copy of the repository location. - * - * Returns: A copy of the string containing the repository location. - * - * Since: 1.1 - */ -gchar * -modulemd_component_rpm_dup_repository (ModulemdComponentRpm *self); - -G_END_DECLS - -#endif /* MODULEMD_COMPONENT_RPM_H */ diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-component.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-component.h deleted file mode 100644 index 3809d38..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-component.h +++ /dev/null @@ -1,220 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#ifndef MODULEMD_COMPONENT_H -#define MODULEMD_COMPONENT_H - -#include "modulemd-deprecated.h" -#include - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-component - * @title: Modulemd.Component - * @short_description: Pure virtual parent class for components that go into a - * module stream. See #ModulemdComponentRPM and #ModulemdComponentModule for - * specific types. - */ - -#define MODULEMD_TYPE_COMPONENT modulemd_component_get_type () -G_DECLARE_DERIVABLE_TYPE ( - ModulemdComponent, modulemd_component, MODULEMD, COMPONENT, GObject) - -struct _ModulemdComponentClass -{ - GObjectClass parent_instance; - - /* Virtual Public Members */ - void (*set_buildorder) (ModulemdComponent *self, gint64 buildorder); - gint64 (*peek_buildorder) (ModulemdComponent *self); - - void (*set_name) (ModulemdComponent *self, const gchar *name); - const gchar *(*peek_name) (ModulemdComponent *self); - - void (*set_rationale) (ModulemdComponent *self, const gchar *rationale); - const gchar *(*peek_rationale) (ModulemdComponent *self); - - gchar *(*dup_name) (ModulemdComponent *self); - gchar *(*dup_rationale) (ModulemdComponent *self); - - /* Pure Virtual Public Members */ - ModulemdComponent *(*copy) (ModulemdComponent *self); - - /* Padding to allow adding up to 11 new virtual functions without - * breaking ABI. */ - gpointer padding[9]; -}; - - -/** - * modulemd_component_new: - * - * Allocates a new #ModulemdComponent - * - * Return value: a new #ModulemdComponent - * - * Since: 1.0 - */ -ModulemdComponent * -modulemd_component_new (void); - - -/** - * modulemd_component_set_buildorder: - * @buildorder: The order to build this component - * - * Sets the 'buildorder' property. - * - * Since: 1.0 - */ -void -modulemd_component_set_buildorder (ModulemdComponent *self, gint64 buildorder); - - -/** - * modulemd_component_get_buildorder: - * - * Returns the 'buildorder' property - * - * Since: 1.0 - */ -gint64 -modulemd_component_get_buildorder (ModulemdComponent *self); - - -/** - * modulemd_component_peek_buildorder: - * - * Returns the 'buildorder' property - * - * Since: 1.1 - */ -gint64 -modulemd_component_peek_buildorder (ModulemdComponent *self); - - -/** - * modulemd_component_set_name: - * @name: The name of the component - * - * Sets the 'name' property. - * - * Since: 1.0 - */ -void -modulemd_component_set_name (ModulemdComponent *self, const gchar *name); - - -/** - * modulemd_component_get_name: - * - * Returns the 'name' property; - * - * Deprecated: 1.1 - * Use peek_name() instead. - * - * Since: 1.0 - */ -MMD_DEPRECATED_FOR (modulemd_component_peek_name) -const gchar * -modulemd_component_get_name (ModulemdComponent *self); - - -/** - * modulemd_component_peek_name: - * - * Returns the 'name' property; - * - * Since: 1.1 - */ -const gchar * -modulemd_component_peek_name (ModulemdComponent *self); - - -/** - * modulemd_component_dup_name: - * - * Returns a copy of the 'name' property; - * - * Since: 1.1 - */ -gchar * -modulemd_component_dup_name (ModulemdComponent *self); - - -/** - * modulemd_component_set_rationale: - * @rationale: The rationale for including this component - * - * Sets the 'rationale' property. - * - * Since: 1.0 - */ -void -modulemd_component_set_rationale (ModulemdComponent *self, - const gchar *rationale); - - -/** - * modulemd_component_get_rationale: - * - * Returns the 'rationale' property; - * - * Deprecated: 1.1 - * Use peek_rationale() instead. - * - * Since: 1.0 - */ -MMD_DEPRECATED_FOR (modulemd_component_peek_rationale) -const gchar * -modulemd_component_get_rationale (ModulemdComponent *self); - - -/** - * modulemd_component_peek_rationale: - * - * Returns the 'rationale' property; - * - * Since: 1.1 - */ -const gchar * -modulemd_component_peek_rationale (ModulemdComponent *self); - - -/** - * modulemd_component_dup_rationale: - * - * Returns a copy of the 'rationale' property; - * - * Since: 1.1 - */ -gchar * -modulemd_component_dup_rationale (ModulemdComponent *self); - - -/** - * modulemd_component_copy: - * - * Returns a complete copy of this Component. - * - * Returns: (transfer full): A copy of this Component. - * - * Since: 1.1 - */ -ModulemdComponent * -modulemd_component_copy (ModulemdComponent *self); - -G_END_DECLS - -#endif /* MODULEMD_COMPONENT_H */ diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-defaults.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-defaults.h deleted file mode 100644 index 6c53c74..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-defaults.h +++ /dev/null @@ -1,559 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#ifndef MODULEMD_DEFAULTS_H -#define MODULEMD_DEFAULTS_H - -#include - -#include "modulemd-intent.h" -#include "modulemd-simpleset.h" - -#include - -enum -{ - MD_DEFAULTS_VERSION_UNSET = 0, - - MD_DEFAULTS_VERSION_1 = 1, - - MD_DEFAULTS_VERSION_MAX = G_MAXUINT64 -}; - -#define MD_DEFAULTS_VERSION_LATEST MD_DEFAULTS_VERSION_1 - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-defaults - * @title: Modulemd.Defaults - * @short_description: Represents the default stream, profiles and other global - * data for a module. - */ - -#define MODULEMD_DEFAULTS_ERROR modulemd_defaults_error_quark () -GQuark -modulemd_defaults_error_quark (void); - -enum ModulemdDefaultsError -{ - MODULEMD_DEFAULTS_ERROR_MISSING_CONTENT, - MODULEMD_DEFAULTS_ERROR_CONFLICTING_STREAMS, - MODULEMD_DEFAULTS_ERROR_CONFLICTING_PROFILES, - MODULEMD_DEFAULTS_ERROR_CONFLICTING_INTENT_STREAM, - MODULEMD_DEFAULTS_ERROR_CONFLICTING_INTENT_PROFILE -}; - -#define MODULEMD_TYPE_DEFAULTS (modulemd_defaults_get_type ()) - -G_DECLARE_FINAL_TYPE ( - ModulemdDefaults, modulemd_defaults, MODULEMD, DEFAULTS, GObject) - - -/** - * modulemd_defaults_new: - * - * Returns: (transfer full): A newly-allocated #ModulemdDefaults object. This - * must be freed with g_object_unref(). - * - * Since: 1.1 - */ -ModulemdDefaults * -modulemd_defaults_new (void); - - -/** - * modulemd_defaults_set_version: - * @version: The metadata file format version - * - * Sets the version of the metadata in use. - * - * Since: 1.1 - */ -void -modulemd_defaults_set_version (ModulemdDefaults *self, guint64 version); - - -/** - * modulemd_defaults_peek_version: - * - * Retrieves the metadata file format version. - * - * Returns: a 64-bit unsigned integer containing the file format version. - * - * Since: 1.1 - */ -guint64 -modulemd_defaults_peek_version (ModulemdDefaults *self); - - -/** - * modulemd_defaults_set_module_name: - * @name: The module name to which these defaults apply - * - * Sets the "module-name" property. - * - * Since: 1.1 - */ -void -modulemd_defaults_set_module_name (ModulemdDefaults *self, const gchar *name); - - -/** - * modulemd_defaults_peek_module_name: - * - * Retrieves the module name to which these defaults apply. - * - * Returns: a string containing the "module-name" property. This string must - * not be modified or freed. If you need to do so, use - * modulemd_defaults_dup_module_name() instead. - * - * Since: 1.1 - */ -const gchar * -modulemd_defaults_peek_module_name (ModulemdDefaults *self); - - -/** - * modulemd_defaults_dup_module_name: - * - * Retrieves the module name to which these defaults apply. - * - * Returns: a string containing the "module-name" property. This string must be - * freed with g_free() when the caller is done with it. - * - * Since: 1.1 - */ -gchar * -modulemd_defaults_dup_module_name (ModulemdDefaults *self); - - -/** - * modulemd_defaults_set_default_stream: - * @stream: The default stream for this module - * - * Sets the "default-stream" property. - * - * Since: 1.1 - */ -void -modulemd_defaults_set_default_stream (ModulemdDefaults *self, - const gchar *stream); - - -/** - * modulemd_defaults_peek_default_stream: - * - * Retrieves the default stream. - * - * Returns: a string containing the "default-stream" property. This string - * must not be modified or freed. If you need to do so, use - * modulemd_defaults_dup_default_stream() instead. - * - * Since: 1.1 - */ -const gchar * -modulemd_defaults_peek_default_stream (ModulemdDefaults *self); - - -/** - * modulemd_defaults_dup_default_stream: - * - * Retrieves the default stream. - * - * Returns: a string containing the "default-stream" property. This string must - * be freed with g_free() when the caller is done with it. - * - * Since: 1.1 - */ -gchar * -modulemd_defaults_dup_default_stream (ModulemdDefaults *self); - - -/** - * modulemd_defaults_set_profiles_for_stream: - * @stream: The name of the stream getting default profiles - * @profiles: (array zero-terminated=1) (transfer none): The set of profile - * names to install by default when installing this stream of the module. - * - * Since: 1.1 - */ -void -modulemd_defaults_set_profiles_for_stream (ModulemdDefaults *self, - const gchar *stream, - gchar **profiles); - - -/** - * modulemd_defaults_assign_profiles_for_stream: - * @stream: The name of the stream getting default profiles - * @profiles: A #ModulemdSimpleSet of profile names to install by default when - * installing this stream of the module. - * - * Since: 1.1 - */ -void -modulemd_defaults_assign_profiles_for_stream (ModulemdDefaults *self, - const gchar *stream, - ModulemdSimpleSet *profiles); - - -/** - * modulemd_defaults_set_profile_defaults: - * @profile_defaults: (nullable) (element-type utf8 ModulemdSimpleSet) (transfer none): - * - * Assigns the hash table of streams and their default profiles - * - * Since: 1.1 - */ -void -modulemd_defaults_set_profile_defaults (ModulemdDefaults *self, - GHashTable *profile_defaults); - - -/** - * modulemd_defaults_dup_profiles_for_stream: - * @stream: The name of the stream from which to retrieve defaults - * - * Returns: (array zero-terminated=1) (transfer full): A zero-terminated array - * of strings that provides the list of profiles that should be installed by - * default when this stream is specified. - * - * Since: 1.1 - */ -gchar ** -modulemd_defaults_dup_profiles_for_stream (ModulemdDefaults *self, - const gchar *stream); - - -/** - * modulemd_defaults_peek_profile_defaults: - * - * Retrieves a hash table of the profile defaults. - * - * Returns: (element-type utf8 ModulemdSimpleSet) (transfer none): A GHashTable - * containing the set of profile defaults for streams of this module. This hash - * table is maintained by the ModulemdDefaults object and must not be freed or - * modified. If modification is necessary, use - * modulemd_defaults_dup_profile_defaults() instead. - * - * Since: 1.1 - */ -GHashTable * -modulemd_defaults_peek_profile_defaults (ModulemdDefaults *self); - - -/** - * modulemd_defaults_dup_profile_defaults: - * - * Retrieves a copy of the hash table of profile defaults. - * - * Returns: (element-type utf8 ModulemdSimpleSet) (transfer container): A - * GHashTable containing the set of profile defaults for streams of this - * module. This hash table is a copy and must be freed with - * g_hash_table_unref() when the caller is finished with it. The elements it - * contains are maintained by the hash table and will be automatically freed - * when their key is removed or the hash table is freed. - * - * Since: 1.1 - */ -GHashTable * -modulemd_defaults_dup_profile_defaults (ModulemdDefaults *self); - - -/** - * modulemd_defaults_add_intent: - * @intent: (transfer none) (not nullable): The #ModulemdIntent to add to the - * intents table. - * - * Adds an intent object to the hash table. - * - * Since: 1.5 - */ -void -modulemd_defaults_add_intent (ModulemdDefaults *self, ModulemdIntent *intent); - - -/** - * modulemd_defaults_set_intents: - * @intents: (element-type utf8 ModulemdIntent) (nullable) (transfer none): - * A #GHashTable containing defaults for individual system intents. - * - * Since: 1.5 - */ -void -modulemd_defaults_set_intents (ModulemdDefaults *self, GHashTable *intents); - - -/** - * modulemd_defaults_peek_intents: - * - * Get a pointer to the intents hash table. The returned table is managed by the - * #ModulemdDefaults object and must not be modified or freed. - * - * Returns: (element-type utf8 ModulemdIntent) (transfer none): A pointer to the - * intents hash table. - * - * Since: 1.5 - */ -GHashTable * -modulemd_defaults_peek_intents (ModulemdDefaults *self); - - -/** - * modulemd_defaults_dup_intents: - * - * Get a copy of the intents hash table. The returned table is managed by the - * caller and must be freed with g_hash_table_unref() - * - * Returns: (element-type utf8 ModulemdIntent) (transfer container): A copy of - * the intents hash table. - * - * Since: 1.5 - */ -GHashTable * -modulemd_defaults_dup_intents (ModulemdDefaults *self); - - -/** - * modulemd_defaults_set_modified: - * - * Sets the modified field for these defaults. - * - * Since: 1.8 - */ -void -modulemd_defaults_set_modified (ModulemdDefaults *self, guint64 modified); - - -/** - * modulemd_defaults_get_modified: - * - * Returns: The modified field for these defaults. - * - * Since: 1.8 - */ -guint64 -modulemd_defaults_get_modified (ModulemdDefaults *self); - - -/** - * modulemd_defaults_new_from_file: - * @yaml_file: A YAML file containing the module metadata and other related - * information such as default streams. - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Constructs a new #ModulemdDefaults object from the first valid - * modulemd-defaults document in the given module stream. This will ignore any - * documents of other types, malformed documents and defaults that appear later - * in the stream. - * - * Returns: A #ModulemdDefaults object constructed the first valid - * modulemd-defaults document in the given module stream. This must be freed - * with g_object_unref() when no longer needed. - * - * Since: 1.2 - */ -ModulemdDefaults * -modulemd_defaults_new_from_file (const gchar *yaml_file, GError **error); - - -/** - * modulemd_defaults_new_from_file_ext: - * @yaml_file: A YAML file containing the module metadata and other related - * information such as default streams. - * @failures: (element-type ModulemdSubdocument) (transfer container) (out): - * An array containing any subdocuments from the YAML file that failed to - * parse. This must be freed with g_ptr_array_unref(). - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Constructs a new #ModulemdDefaults object from the first valid - * modulemd-defaults document in the given module stream. This will ignore any - * documents of other types, malformed documents and defaults that appear later - * in the stream. - * - * Returns: A #ModulemdDefaults object constructed the first valid - * modulemd-defaults document in the given module stream. This must be freed - * with g_object_unref() when no longer needed. - * - * Since: 1.4 - */ -ModulemdDefaults * -modulemd_defaults_new_from_file_ext (const gchar *yaml_file, - GPtrArray **failures, - GError **error); - - -/** - * modulemd_defaults_new_from_string: - * @yaml_string: A YAML string containing the module metadata and other related - * information such as default streams. - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Constructs a new #ModulemdDefaults object from the first valid - * modulemd-defaults document in the given module stream. This will ignore any - * documents of other types, malformed documents and defaults that appear later - * in the stream. - * - * Returns: A #ModulemdDefaults object constructed the first valid - * modulemd-defaults document in the given module stream. This must be freed - * with g_object_unref() when no longer needed. - * - * Since: 1.2 - */ -ModulemdDefaults * -modulemd_defaults_new_from_string (const gchar *yaml_string, GError **error); - - -/** - * modulemd_defaults_new_from_string_ext: - * @yaml_string: A YAML string containing the module metadata and other related - * information such as default streams. - * @failures: (element-type ModulemdSubdocument) (transfer container) (out): - * An array containing any subdocuments from the YAML file that failed to - * parse. This must be freed with g_ptr_array_unref(). - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Constructs a new #ModulemdDefaults object from the first valid - * modulemd-defaults document in the given module stream. This will ignore any - * documents of other types, malformed documents and defaults that appear later - * in the stream. - * - * Returns: A #ModulemdDefaults object constructed the first valid - * modulemd-defaults document in the given module stream. This must be freed - * with g_object_unref() when no longer needed. - * - * Since: 1.4 - */ -ModulemdDefaults * -modulemd_defaults_new_from_string_ext (const gchar *yaml_string, - GPtrArray **failures, - GError **error); - - -/** - * modulemd_defaults_new_from_stream: - * @stream: A YAML stream containing the module metadata and other related - * information such as default streams. - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Constructs a new #ModulemdDefaults object from the first valid - * modulemd-defaults document in the given module stream. This will ignore any - * documents of other types, malformed documents and defaults that appear later - * in the stream. - * - * Returns: A #ModulemdDefaults object constructed the first valid - * modulemd-defaults document in the given module stream. This must be freed - * with g_object_unref() when no longer needed. - * - * Since: 1.4 - */ -ModulemdDefaults * -modulemd_defaults_new_from_stream (FILE *stream, GError **error); - - -/** - * modulemd_defaults_new_from_stream_ext: - * @stream: A YAML stream containing the module metadata and other related - * information such as default streams. - * @failures: (element-type ModulemdSubdocument) (transfer container) (out): - * An array containing any subdocuments from the YAML file that failed to - * parse. This must be freed with g_ptr_array_unref(). - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Constructs a new #ModulemdDefaults object from the first valid - * modulemd-defaults document in the given module stream. This will ignore any - * documents of other types, malformed documents and defaults that appear later - * in the stream. - * - * Returns: A #ModulemdDefaults object constructed the first valid - * modulemd-defaults document in the given module stream. This must be freed - * with g_object_unref() when no longer needed. - * - * Since: 1.4 - */ -ModulemdDefaults * -modulemd_defaults_new_from_stream_ext (FILE *stream, - GPtrArray **failures, - GError **error); - - -/** - * modulemd_defaults_dump: - * @file_path: File path for exporting the YAML representation of this defaults - * object - * - * Exports the YAML representation of this defaults object to a file. - * - * Since: 1.1 - */ -void -modulemd_defaults_dump (ModulemdDefaults *self, const gchar *file_path); - - -/** - * modulemd_defaults_dumps: - * @yaml_string: (out): File path for exporting the YAML representation of this defaults - * object - * - * Exports the YAML representation of this defaults object to a string. The - * caller is responsible for calling g_free() on this string when they are - * finished with it. - * - * Since: 1.1 - */ -void -modulemd_defaults_dumps (ModulemdDefaults *self, gchar **yaml_string); - - -/** - * modulemd_defaults_copy: - * Returns a deep-copy of the defaults object. - * - * Returns: (transfer full): A deep-copied #ModulemdDefaults object. This - * object must be freed with g_object_unref(). - * - * Since: 1.3 - */ -ModulemdDefaults * -modulemd_defaults_copy (ModulemdDefaults *self); - - -/** - * modulemd_defaults_merge: - * @first: A #ModulemdDefaults object providing the base for the merge. - * @second: A #ModulemdDefaults object being merged onto @first. - * @override: In the case of a conflict, should @second completely replace the - * contents of @first. - * - * Returns: (transfer full): A merged or replaced #ModulemdDefaults object. In - * case of unresolvable merge, NULL will be returned and an error will be set. - * This object must be freed with g_object_unref(). - * - * Since: 1.3 - */ -ModulemdDefaults * -modulemd_defaults_merge (ModulemdDefaults *first, - ModulemdDefaults *second, - gboolean override, - GError **error); - -G_END_DECLS - -#endif /* MODULEMD_DEFAULTS_H */ diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-dependencies.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-dependencies.h deleted file mode 100644 index 37674bc..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-dependencies.h +++ /dev/null @@ -1,266 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#ifndef MODULEMD_DEPENDENCIES_H -#define MODULEMD_DEPENDENCIES_H - -#include - -#include "modulemd-deprecated.h" - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-dependencies - * @title: Modulemd.Dependencies - * @short_description: Object to represent build-time and runtime dependencies - * of a module stream. - */ - -#define MODULEMD_TYPE_DEPENDENCIES (modulemd_dependencies_get_type ()) - -G_DECLARE_FINAL_TYPE ( - ModulemdDependencies, modulemd_dependencies, MODULEMD, DEPENDENCIES, GObject) - - -/** - * modulemd_dependencies_new: - * - * Returns: (transfer full): A new #ModulemdDependencies object. This must be - * freed with g_object_unref(). - * - * Since: 1.0 - */ -ModulemdDependencies * -modulemd_dependencies_new (void); - - -/** - * modulemd_dependencies_add_buildrequires: - * @module: The module name - * @streams: (array zero-terminated): The list of streams for this module - * - * Add a set of modules and their streams that are required to build another - * dependent module. The matrix of streams and module names will be calculated - * by the build-system. If the listed provided module name is already present, - * the streams will be added (with deduplication). - * - * Since: 1.0 - */ -void -modulemd_dependencies_add_buildrequires (ModulemdDependencies *self, - const gchar *module, - const gchar **streams); - - -/** - * modulemd_dependencies_add_buildrequires_single: - * @module: The module name - * @stream: The stream for this module - * - * Add a single stream of a module that is required to build another dependent - * module. The matrix of streams and module names will be calculated by the - * build-system. If the listed provided module name is already present, the - * streams will be added (with deduplication). - * - * Since: 1.0 - */ -void -modulemd_dependencies_add_buildrequires_single (ModulemdDependencies *self, - const gchar *module, - const gchar *stream); - - -/** - * modulemd_dependencies_set_buildrequires: - * @buildrequires: (nullable) (element-type utf8 ModulemdSimpleSet) (transfer none): The - * requirements to build this module. - * - * Sets the 'buildrequires' property. - * - * Since: 1.0 - */ -void -modulemd_dependencies_set_buildrequires (ModulemdDependencies *self, - GHashTable *buildrequires); - - -/** - * modulemd_dependencies_get_buildrequires: - * - * Retrieves the "buildrequires" for these dependencies. - * - * Returns: (element-type utf8 ModulemdSimpleSet) (transfer none): A hash - * table containing the "buildrequires" property. Returns NULL if there are no - * buildrequires set. - * - * Deprecated: 1.1 - * Use peek_buildrequires() instead. - * - * Since: 1.0 - */ -MMD_DEPRECATED_FOR (modulemd_dependencies_peek_buildrequires) -GHashTable * -modulemd_dependencies_get_buildrequires (ModulemdDependencies *self); - - -/** - * modulemd_dependencies_peek_buildrequires: - * - * Retrieves the "buildrequires" for these dependencies. - * - * Returns: (element-type utf8 ModulemdSimpleSet) (transfer none): A hash - * table containing the "buildrequires" property. Returns NULL if there are no - * buildrequires set. - * - * Since: 1.1 - */ -GHashTable * -modulemd_dependencies_peek_buildrequires (ModulemdDependencies *self); - - -/** - * modulemd_dependencies_dup_buildrequires: - * - * Retrieves a copy of the "buildrequires" for these dependencies. - * - * Returns: (element-type utf8 ModulemdSimpleSet) (transfer container): A hash - * table containing the "buildrequires" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_dependencies_dup_buildrequires (ModulemdDependencies *self); - - -/** - * modulemd_dependencies_add_requires: - * @module: The module name - * @streams: (array zero-terminated=1): The list of streams for this module - * - * Add a single stream of a module that is required to build another dependent - * module. The matrix of streams and module names will be calculated by the - * build-system. If the listed provided module name is already present, the - * streams will be added (with deduplication). - * - * Since: 1.0 - */ -void -modulemd_dependencies_add_requires (ModulemdDependencies *self, - const gchar *module, - const gchar **streams); - - -/** - * modulemd_dependencies_add_requires_single: - * @module: The module name - * @stream: The stream for this module - * - * Add a set of modules and their streams that are required at runtime by a - * dependent module. The matrix of streams and module names will be calculated - * by the build-system. If the listed provided module name is already present, - * the streams will be added (with deduplication). - * - * Since: 1.0 - */ -void -modulemd_dependencies_add_requires_single (ModulemdDependencies *self, - const gchar *module, - const gchar *stream); - - -/** - * modulemd_dependencies_set_requires: - * @requires: (nullable) (element-type utf8 ModulemdSimpleSet) (transfer none): - * The runtime requirements for this module. - * - * Sets the 'requires' property. - * - * Since: 1.0 - */ -void -modulemd_dependencies_set_requires (ModulemdDependencies *self, - GHashTable *requires); - - -/** - * modulemd_dependencies_get_requires: - * - * Retrieves the "requires" for these dependencies. - * - * Returns: (element-type utf8 ModulemdSimpleSet) (transfer none): A hash - * table containing the "requires" property. - * - * Deprecated: 1.1 - * Use peek_requires() instead. - * - * Since: 1.0 - */ -MMD_DEPRECATED_FOR (modulemd_dependencies_peek_requires) -GHashTable * -modulemd_dependencies_get_requires (ModulemdDependencies *self); - - -/** - * modulemd_dependencies_peek_requires: - * - * Retrieves the "requires" for these dependencies. - * - * Returns: (element-type utf8 ModulemdSimpleSet) (transfer none): A hash - * table containing the "requires" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_dependencies_peek_requires (ModulemdDependencies *self); - - -/** - * modulemd_dependencies_dup_requires: - * - * Retrieves a copy of the "requires" for these dependencies. - * - * Returns: (element-type utf8 ModulemdSimpleSet) (transfer container): A hash - * table containing the "requires" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_dependencies_dup_requires (ModulemdDependencies *self); - - -/** - * modulemd_dependencies_copy: - * @dest: (out): A reference to the destination #ModulemdDependencies - * - * This function will copy the contents of this #ModulemdDependencies to @dest. - * If the dereferenced pointer is NULL, a new #ModulemdDependencies will be - * allocated. - * - * If the dereferenced pointer is not NULL, it will replace the contents of - * @dest. All existing internal variables will be freed. - * - * In either case, the caller is responsible for calling g_object_unref() later - * to free it. - * - * If @self is NULL, no changes will occur to @dest. - * - * Since: 1.0 - */ -void -modulemd_dependencies_copy (ModulemdDependencies *self, - ModulemdDependencies **dest); - -G_END_DECLS - -#endif /* MODULEMD_DEPENDENCIES_H */ diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-deprecated.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-deprecated.h deleted file mode 100644 index 5a32f24..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-deprecated.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#pragma once - -#ifdef MMD_DISABLE_DEPRECATION_WARNINGS -#define MMD_DEPRECATED extern -#define MMD_DEPRECATED_FOR(f) extern -#define MMD_UNAVAILABLE(maj, min) extern -#define MMD_DEPRECATED_TYPE_FOR(f) -#else -#define MMD_DEPRECATED G_DEPRECATED extern -#define MMD_DEPRECATED_FOR(f) G_DEPRECATED_FOR (f) extern -#define MMD_DEPRECATED_TYPE_FOR(f) G_DEPRECATED_FOR (f) -#define MMD_UNAVAILABLE(maj, min) G_UNAVAILABLE (maj, min) extern -#endif diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-improvedmodule.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-improvedmodule.h deleted file mode 100644 index ec687b8..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-improvedmodule.h +++ /dev/null @@ -1,256 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#pragma once - -#include "modulemd-buildopts.h" -#include "modulemd-modulestream.h" -#include "modulemd-defaults.h" - -#include - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-improvedmodule - * @title: Modulemd.ImprovedModule - * @short_description: Collects all information about a module: all of its - * streams, defaults, etc. - */ - -#define MODULEMD_TYPE_IMPROVEDMODULE (modulemd_improvedmodule_get_type ()) - -G_DECLARE_FINAL_TYPE (ModulemdImprovedModule, - modulemd_improvedmodule, - MODULEMD, - IMPROVEDMODULE, - GObject) - - -/** - * modulemd_improvedmodule_new: - * - * Returns: (transfer full): A newly-allocated #ModulemdImprovedModule. This - * object must be freed with g_object_unref(). - * - * Since: 1.6 - */ -ModulemdImprovedModule * -modulemd_improvedmodule_new (const gchar *name); - - -/** - * modulemd_improvedmodule_add_stream: - * @stream: (transfer none) (not nullable): A #ModulemdModuleStream of this - * module. - * - * Add a #ModulemdModuleStream to this module. If this stream name is already in - * use, this function will overwrite the existing value. If the module name does - * not match, this function will silently ignore this stream. - * - * Since : 1.6 - */ -void -modulemd_improvedmodule_add_stream (ModulemdImprovedModule *self, - ModulemdModuleStream *stream); - -/** - * modulemd_improvedmodule_get_stream_by_name: - * @stream_name: The name of the stream to retrieve. - * - * Returns: (transfer full): A #ModulemModuleStream representing the requested - * module stream. NULL if the stream name was not found. If there is more than - * one version and/or context for this stream, it will return one in a - * non-deterministic manner. This function remains for backwards-compatibility, - * but it should never be used. - * - * Since: 1.6 - * - * Deprecated: 1.7 - * Use get_stream_by_nsvc() or get_streams_by_name() instead. - */ -MMD_DEPRECATED_FOR (modulemd_improvedmodule_get_stream_by_nsvc) -ModulemdModuleStream * -modulemd_improvedmodule_get_stream_by_name (ModulemdImprovedModule *self, - const gchar *stream_name); - - -/** - * modulemd_improvedmodule_get_stream_by_nsvc: - * @nsvc: The NSVC of the stream to retrieve. - * - * Returns: (transfer full): A #ModulemModuleStream representing the requested - * module stream. NULL if the stream (name, version, context) was not found. - * - * Since: 1.7 - */ -ModulemdModuleStream * -modulemd_improvedmodule_get_stream_by_nsvc (ModulemdImprovedModule *self, - const gchar *nsvc); - - -/** - * modulemd_improvedmodule_get_streams: - * - * Returns: (element-type utf8 ModulemdModuleStream) (transfer container): A - * #GHashTable containing all #ModulemModuleStream objects for this module. - * This hash table must be freed with g_hash_table_unref(). - * - * Since: 1.6 - */ -GHashTable * -modulemd_improvedmodule_get_streams (ModulemdImprovedModule *self); - -/** - * modulemd_improvedmodule_get_streams_by_name: - * @stream_name: The name of the stream to retrieve - * - * Returns: (element-type ModulemdModuleStream) (transfer container): A - * #GPtrArray containing all #ModulemModuleStream objects for this module which - * matches the requested stream_name. Returns NULL if no streams matched this - * name. - * This #GPtrArray must be freed with g_ptr_array_unref(). - * - * Since: 1.6 - */ -GPtrArray * -modulemd_improvedmodule_get_streams_by_name (ModulemdImprovedModule *self, - const gchar *stream_name); - - -/** - * modulemd_improvedmodule_set_name: - * @module_name: (transfer none) (not nullable): The name of this module. - * - * Sets the module name. - * - * Since: 1.6 - */ -void -modulemd_improvedmodule_set_name (ModulemdImprovedModule *self, - const gchar *module_name); - - -/** - * modulemd_improvedmodule_get_name: - * - * Gets the name of this module. - * - * Returns: (transfer full): The name of this module. This value must be freed - * with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_improvedmodule_get_name (ModulemdImprovedModule *self); - - -/** - * modulemd_improvedmodule_peek_name: (skip) - * - * Gets the name of this module. - * - * Returns: (transfer none): The name of this module. This value must be not be - * modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_improvedmodule_peek_name (ModulemdImprovedModule *self); - - -/** - * modulemd_improvedmodule_set_defaults: - * @defaults: (transfer none) (nullable): A #ModulemdDefaults object describing - * the defaults for this module. - * - * Set the default stream and profiles for this module. Makes no changes if the - * defaults do not apply to this module. - * - * Since: 1.6 - */ -void -modulemd_improvedmodule_set_defaults (ModulemdImprovedModule *self, - ModulemdDefaults *defaults); - - -/** - * modulemd_improvedmodule_get_defaults: - * - * Returns the #ModulemdDefaults object for this module. - * - * Returns: (transfer full): a #ModulemdDefaults object if set, NULL otherwise. - * This object must be freed with g_object_unref(). - * - * Since: 1.6 - */ -ModulemdDefaults * -modulemd_improvedmodule_get_defaults (ModulemdImprovedModule *self); - - -/** - * modulemd_improvedmodule_peek_defaults: (skip) - * - * Returns the #ModulemdDefaults object for this module. - * - * Returns: (transfer none): a #ModulemdDefaults object if set, NULL otherwise. - * This object must be not be modified or freed. - * - * Since: 1.6 - */ -ModulemdDefaults * -modulemd_improvedmodule_peek_defaults (ModulemdImprovedModule *self); - - -/** - * modulemd_improvedmodule_copy: - * - * Make a copy of this module. - * - * Returns: (transfer full): A newly-allocated #ModulemdImprovedModule that is - * a copy of the one passed in. - * - * Since: 1.6 - */ -ModulemdImprovedModule * -modulemd_improvedmodule_copy (ModulemdImprovedModule *self); - - -/** - * modulemd_improvedmodule_dump: - * @yaml_file: A string containing the path to the output file - * - * Writes this module out to a YAML document on disk. - * - * Since: 1.6 - */ -void -modulemd_improvedmodule_dump (ModulemdImprovedModule *self, - const gchar *yaml_file, - GError **error); - - -/** - * modulemd_improvedmodule_dumps: - * - * Writes this module out to a YAML document string. - * - * Return value: (transfer full): A string containing a YAML representation of - * this module and all of its streams. This string must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_improvedmodule_dumps (ModulemdImprovedModule *self, GError **error); - -G_END_DECLS diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-intent.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-intent.h deleted file mode 100644 index 538ca08..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-intent.h +++ /dev/null @@ -1,231 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#pragma once - -#include "modulemd-simpleset.h" - -#include - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-intent - * @title: Modulemd.Intent - * @short_description: Overrides #ModulemdDefaults when a specific system - * "purpose" has been set. - */ - -#define MODULEMD_TYPE_INTENT (modulemd_intent_get_type ()) - -G_DECLARE_FINAL_TYPE ( - ModulemdIntent, modulemd_intent, MODULEMD, INTENT, GObject) - - -/** - * modulemd_intent_new: - * - * Returns: (transfer full): A newly-allocated #ModulemdIntent object. This must - * be freed with g_object_unref(). - * - * Since: 1.5 - */ -ModulemdIntent * -modulemd_intent_new (const gchar *name); - - -/** - * modulemd_intent_set_intent_name: - * @name: (not nullable): The module name to which these defaults apply - * - * Sets the "module-name" property. - * - * Since: 1.5 - */ -void -modulemd_intent_set_intent_name (ModulemdIntent *self, const gchar *name); - - -/** - * modulemd_intent_peek_intent_name: - * - * Retrieves the module name to which these defaults apply. - * - * Returns: a string containing the "module-name" property. This string must - * not be modified or freed. If you need to do so, use - * modulemd_intent_dup_intent_name() instead. - * - * Since: 1.5 - */ -const gchar * -modulemd_intent_peek_intent_name (ModulemdIntent *self); - - -/** - * modulemd_intent_dup_intent_name: - * - * Retrieves the module name to which these defaults apply. - * - * Returns: a string containing the "module-name" property. This string must be - * freed with g_free() when the caller is done with it. - * - * Since: 1.5 - */ -gchar * -modulemd_intent_dup_intent_name (ModulemdIntent *self); - - -/** - * modulemd_intent_set_default_stream: - * @stream: The default stream for this module - * - * Sets the "default-stream" property. - * - * Since: 1.5 - */ -void -modulemd_intent_set_default_stream (ModulemdIntent *self, const gchar *stream); - - -/** - * modulemd_intent_peek_default_stream: - * - * Retrieves the default stream. - * - * Returns: a string containing the "default-stream" property. This string - * must not be modified or freed. If you need to do so, use - * modulemd_intent_dup_default_stream() instead. - * - * Since: 1.5 - */ -const gchar * -modulemd_intent_peek_default_stream (ModulemdIntent *self); - - -/** - * modulemd_intent_dup_default_stream: - * - * Retrieves the default stream. - * - * Returns: a string containing the "default-stream" property. This string must - * be freed with g_free() when the caller is done with it. - * - * Since: 1.5 - */ -gchar * -modulemd_intent_dup_default_stream (ModulemdIntent *self); - - -/** - * modulemd_intent_set_profiles_for_stream: - * @stream: The name of the stream getting default profiles - * @profiles: (array zero-terminated=1) (transfer none): The set of profile - * names to install by default when installing this stream of the module. - * - * Since: 1.5 - */ -void -modulemd_intent_set_profiles_for_stream (ModulemdIntent *self, - const gchar *stream, - gchar **profiles); - -/** - * modulemd_intent_assign_profiles_for_stream: - * @stream: The name of the stream getting default profiles - * @profiles: A #ModulemdSimpleSet of profile names to install by default when - * installing this stream of the module. - * - * Since: 1.5 - */ -void -modulemd_intent_assign_profiles_for_stream (ModulemdIntent *self, - const gchar *stream, - ModulemdSimpleSet *profiles); - - -/** - * modulemd_intent_set_profile_defaults: - * @profile_defaults: (nullable) (element-type utf8 ModulemdSimpleSet) (transfer none): - * - * Assigns the hash table of streams and their default profiles - * - * Since: 1.5 - */ -void -modulemd_intent_set_profile_defaults (ModulemdIntent *self, - GHashTable *profile_defaults); - - -/** - * modulemd_intent_dup_profiles_for_stream: - * @stream: The name of the stream from which to retrieve defaults - * - * Returns: (array zero-terminated=1) (transfer full): A zero-terminated array - * of strings that provides the list of profiles that should be installed by - * default when this stream is specified. - * - * Since: 1.5 - */ -gchar ** -modulemd_intent_dup_profiles_for_stream (ModulemdIntent *self, - const gchar *stream); - - -/** - * modulemd_intent_peek_profile_defaults: - * - * Retrieves a hash table of the profile defaults. - * - * Returns: (element-type utf8 ModulemdSimpleSet) (transfer none): A GHashTable - * containing the set of profile defaults for streams of this module. This hash - * table is maintained by the ModulemdIntent object and must not be freed or - * modified. If modification is necessary, use - * modulemd_intent_dup_profile_defaults() instead. - * - * Since: 1.5 - */ -GHashTable * -modulemd_intent_peek_profile_defaults (ModulemdIntent *self); - - -/** - * modulemd_intent_dup_profile_defaults: - * - * Retrieves a copy of the hash table of profile defaults. - * - * Returns: (element-type utf8 ModulemdSimpleSet) (transfer container): A - * GHashTable containing the set of profile defaults for streams of this - * module. This hash table is a copy and must be freed with - * g_hash_table_unref() when the caller is finished with it. The elements it - * contains are maintained by the hash table and will be automatically freed - * when their key is removed or the hash table is freed. - * - * Since: 1.5 - */ -GHashTable * -modulemd_intent_dup_profile_defaults (ModulemdIntent *self); - - -/** - * modulemd_intent_copy: - * - * Makes a deep copy of a #ModulemdIntent - * - * Returns: (transfer full): A deep copy of the #ModulemdIntent - * - * Since: 1.5 - */ -ModulemdIntent * -modulemd_intent_copy (ModulemdIntent *self); - -G_END_DECLS diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-module.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-module.h deleted file mode 100644 index 925ae21..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-module.h +++ /dev/null @@ -1,471 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#ifndef MODULEMD_MODULE_H -#define MODULEMD_MODULE_H - -#include "modulemd-buildopts.h" -#include "modulemd-component-module.h" -#include "modulemd-component-rpm.h" -#include "modulemd-defaults.h" -#include "modulemd-dependencies.h" -#include "modulemd-modulestream.h" -#include "modulemd-profile.h" -#include "modulemd-servicelevel.h" -#include "modulemd-simpleset.h" - -#include - -G_BEGIN_DECLS - -#define MODULEMD_MODULE_ERROR modulemd_module_error_quark () -GQuark -modulemd_module_error_quark (void); - -enum ModulemdModuleError -{ - MODULEMD_MODULE_ERROR_MISSING_CONTENT, -}; - -#define MODULEMD_TYPE_MODULE modulemd_module_get_type () -G_DECLARE_FINAL_TYPE ( - ModulemdModule, modulemd_module, MODULEMD, MODULE, GObject) - -ModulemdModule * -modulemd_module_new (void); - -ModulemdModule * -modulemd_module_new_from_file (const gchar *yaml_file); - -ModulemdModule * -modulemd_module_new_from_file_ext (const gchar *yaml_file, - GPtrArray **failures, - GError **error); - -void -modulemd_module_new_all_from_file (const gchar *yaml_file, - ModulemdModule ***_modules); - -void -modulemd_module_new_all_from_file_ext (const gchar *yaml_file, - GPtrArray **data); - -ModulemdModule * -modulemd_module_new_from_string (const gchar *yaml_string); - -ModulemdModule * -modulemd_module_new_from_string_ext (const gchar *yaml_string, - GPtrArray **failures, - GError **error); - -void -modulemd_module_new_all_from_string (const gchar *yaml_string, - ModulemdModule ***_modules); - -void -modulemd_module_new_all_from_string_ext (const gchar *yaml_string, - GPtrArray **data); - - -ModulemdModule * -modulemd_module_new_from_stream (FILE *stream, GError **error); - -ModulemdModule * -modulemd_module_new_from_stream_ext (FILE *stream, - GPtrArray **failures, - GError **error); - -ModulemdModule * -modulemd_module_new_from_modulestream (ModulemdModuleStream *stream); - -void -modulemd_module_dump (ModulemdModule *self, const gchar *yaml_file); - -gchar * -modulemd_module_dumps (ModulemdModule *self); - -void -modulemd_module_dump_all (GPtrArray *module_array, const gchar *yaml_file); - -gchar * -modulemd_module_dumps_all (GPtrArray *module_array); - -gboolean -modulemd_module_upgrade (ModulemdModule *self); - -void -modulemd_module_set_arch (ModulemdModule *self, const gchar *arch); - -const gchar * -modulemd_module_get_arch (ModulemdModule *self); - -const gchar * -modulemd_module_peek_arch (ModulemdModule *self); - -gchar * -modulemd_module_dup_arch (ModulemdModule *self); - -void -modulemd_module_set_buildopts (ModulemdModule *self, - ModulemdBuildopts *buildopts); - -ModulemdBuildopts * -modulemd_module_get_buildopts (ModulemdModule *self); - -ModulemdBuildopts * -modulemd_module_peek_buildopts (ModulemdModule *self); - -void -modulemd_module_set_buildrequires (ModulemdModule *self, - GHashTable *buildrequires); - -GHashTable * -modulemd_module_get_buildrequires (ModulemdModule *self); - -GHashTable * -modulemd_module_peek_buildrequires (ModulemdModule *self); - -GHashTable * -modulemd_module_dup_buildrequires (ModulemdModule *self); - -void -modulemd_module_set_community (ModulemdModule *self, const gchar *community); - -const gchar * -modulemd_module_get_community (ModulemdModule *self); - -const gchar * -modulemd_module_peek_community (ModulemdModule *self); - -gchar * -modulemd_module_dup_community (ModulemdModule *self); - -void -modulemd_module_set_content_licenses (ModulemdModule *self, - ModulemdSimpleSet *licenses); - -ModulemdSimpleSet * -modulemd_module_get_content_licenses (ModulemdModule *self); - -ModulemdSimpleSet * -modulemd_module_peek_content_licenses (ModulemdModule *self); - -ModulemdSimpleSet * -modulemd_module_dup_content_licenses (ModulemdModule *self); - -void -modulemd_module_set_context (ModulemdModule *self, const gchar *context); - -const gchar * -modulemd_module_get_context (ModulemdModule *self); - -const gchar * -modulemd_module_peek_context (ModulemdModule *self); - -gchar * -modulemd_module_dup_context (ModulemdModule *self); - -void -modulemd_module_set_dependencies (ModulemdModule *self, GPtrArray *deps); - -void -modulemd_module_add_dependencies (ModulemdModule *self, - ModulemdDependencies *dep); -GPtrArray * -modulemd_module_get_dependencies (ModulemdModule *self); - -GPtrArray * -modulemd_module_peek_dependencies (ModulemdModule *self); - -GPtrArray * -modulemd_module_dup_dependencies (ModulemdModule *self); - -void -modulemd_module_set_description (ModulemdModule *self, - const gchar *description); - -const gchar * -modulemd_module_get_description (ModulemdModule *self); - -const gchar * -modulemd_module_peek_description (ModulemdModule *self); - -gchar * -modulemd_module_dup_description (ModulemdModule *self); - -void -modulemd_module_set_documentation (ModulemdModule *self, - const gchar *documentation); - -const gchar * -modulemd_module_get_documentation (ModulemdModule *self); - -const gchar * -modulemd_module_peek_documentation (ModulemdModule *self); - -gchar * -modulemd_module_dup_documentation (ModulemdModule *self); - -void -modulemd_module_set_eol (ModulemdModule *self, const GDate *date); - -const GDate * -modulemd_module_get_eol (ModulemdModule *self); - -const GDate * -modulemd_module_peek_eol (ModulemdModule *self); - -GDate * -modulemd_module_dup_eol (ModulemdModule *self); - -void -modulemd_module_set_mdversion (ModulemdModule *self, const guint64 mdversion); - -const guint64 -modulemd_module_get_mdversion (ModulemdModule *self); - -guint64 -modulemd_module_peek_mdversion (ModulemdModule *self); - -void -modulemd_module_add_module_component (ModulemdModule *self, - ModulemdComponentModule *component); - -void -modulemd_module_clear_module_components (ModulemdModule *self); - -void -modulemd_module_set_module_components (ModulemdModule *self, - GHashTable *components); - -GHashTable * -modulemd_module_get_module_components (ModulemdModule *self); - -GHashTable * -modulemd_module_peek_module_components (ModulemdModule *self); - -GHashTable * -modulemd_module_dup_module_components (ModulemdModule *self); - -void -modulemd_module_set_module_licenses (ModulemdModule *self, - ModulemdSimpleSet *licenses); - -ModulemdSimpleSet * -modulemd_module_get_module_licenses (ModulemdModule *self); - -ModulemdSimpleSet * -modulemd_module_peek_module_licenses (ModulemdModule *self); - -ModulemdSimpleSet * -modulemd_module_dup_module_licenses (ModulemdModule *self); - -void -modulemd_module_set_name (ModulemdModule *self, const gchar *name); - -const gchar * -modulemd_module_get_name (ModulemdModule *self); - -const gchar * -modulemd_module_peek_name (ModulemdModule *self); - -gchar * -modulemd_module_dup_name (ModulemdModule *self); - -void -modulemd_module_add_profile (ModulemdModule *self, ModulemdProfile *profile); - -void -modulemd_module_clear_profiles (ModulemdModule *self); - -void -modulemd_module_set_profiles (ModulemdModule *self, GHashTable *profiles); - -GHashTable * -modulemd_module_get_profiles (ModulemdModule *self); - -GHashTable * -modulemd_module_peek_profiles (ModulemdModule *self); - -GHashTable * -modulemd_module_dup_profiles (ModulemdModule *self); - -void -modulemd_module_set_requires (ModulemdModule *self, GHashTable *requires); - -GHashTable * -modulemd_module_get_requires (ModulemdModule *self); - -GHashTable * -modulemd_module_peek_requires (ModulemdModule *self); - -GHashTable * -modulemd_module_dup_requires (ModulemdModule *self); - -void -modulemd_module_set_rpm_api (ModulemdModule *self, ModulemdSimpleSet *apis); - -ModulemdSimpleSet * -modulemd_module_get_rpm_api (ModulemdModule *self); - -ModulemdSimpleSet * -modulemd_module_peek_rpm_api (ModulemdModule *self); - -ModulemdSimpleSet * -modulemd_module_dup_rpm_api (ModulemdModule *self); - -void -modulemd_module_set_rpm_artifacts (ModulemdModule *self, - ModulemdSimpleSet *artifacts); - -ModulemdSimpleSet * -modulemd_module_get_rpm_artifacts (ModulemdModule *self); - -ModulemdSimpleSet * -modulemd_module_peek_rpm_artifacts (ModulemdModule *self); - -ModulemdSimpleSet * -modulemd_module_dup_rpm_artifacts (ModulemdModule *self); - -void -modulemd_module_set_rpm_buildopts (ModulemdModule *self, - GHashTable *buildopts); - -GHashTable * -modulemd_module_get_rpm_buildopts (ModulemdModule *self); - -GHashTable * -modulemd_module_peek_rpm_buildopts (ModulemdModule *self); - -GHashTable * -modulemd_module_dup_rpm_buildopts (ModulemdModule *self); - -void -modulemd_module_add_rpm_component (ModulemdModule *self, - ModulemdComponentRpm *component); - -void -modulemd_module_clear_rpm_components (ModulemdModule *self); - -void -modulemd_module_set_rpm_components (ModulemdModule *self, - GHashTable *components); - -GHashTable * -modulemd_module_get_rpm_components (ModulemdModule *self); - -GHashTable * -modulemd_module_peek_rpm_components (ModulemdModule *self); - -GHashTable * -modulemd_module_dup_rpm_components (ModulemdModule *self); - -void -modulemd_module_set_rpm_filter (ModulemdModule *self, - ModulemdSimpleSet *filter); - -ModulemdSimpleSet * -modulemd_module_get_rpm_filter (ModulemdModule *self); - -ModulemdSimpleSet * -modulemd_module_peek_rpm_filter (ModulemdModule *self); - -ModulemdSimpleSet * -modulemd_module_dup_rpm_filter (ModulemdModule *self); - -void -modulemd_module_clear_servicelevels (ModulemdModule *self); - -void -modulemd_module_set_servicelevels (ModulemdModule *self, - GHashTable *servicelevels); - -void -modulemd_module_add_servicelevel (ModulemdModule *self, - ModulemdServiceLevel *servicelevel); - -GHashTable * -modulemd_module_get_servicelevels (ModulemdModule *self); - -GHashTable * -modulemd_module_peek_servicelevels (ModulemdModule *self); - -GHashTable * -modulemd_module_dup_servicelevels (ModulemdModule *self); - -void -modulemd_module_set_stream (ModulemdModule *self, const gchar *stream); - -const gchar * -modulemd_module_get_stream (ModulemdModule *self); - -const gchar * -modulemd_module_peek_stream (ModulemdModule *self); - -gchar * -modulemd_module_dup_stream (ModulemdModule *self); - -void -modulemd_module_set_summary (ModulemdModule *self, const gchar *summary); - -const gchar * -modulemd_module_get_summary (ModulemdModule *self); - -const gchar * -modulemd_module_peek_summary (ModulemdModule *self); - -gchar * -modulemd_module_dup_summary (ModulemdModule *self); - -void -modulemd_module_set_tracker (ModulemdModule *self, const gchar *tracker); - -const gchar * -modulemd_module_get_tracker (ModulemdModule *self); - -const gchar * -modulemd_module_peek_tracker (ModulemdModule *self); - -gchar * -modulemd_module_dup_tracker (ModulemdModule *self); - -void -modulemd_module_set_version (ModulemdModule *self, const guint64 version); - -const guint64 -modulemd_module_get_version (ModulemdModule *self); - -guint64 -modulemd_module_peek_version (ModulemdModule *self); - -void -modulemd_module_set_xmd (ModulemdModule *self, GHashTable *xmd); - -GHashTable * -modulemd_module_get_xmd (ModulemdModule *self); - -GHashTable * -modulemd_module_peek_xmd (ModulemdModule *self); - -GHashTable * -modulemd_module_dup_xmd (ModulemdModule *self); - -ModulemdModule * -modulemd_module_copy (ModulemdModule *self); - -gchar * -modulemd_module_dup_nsvc (ModulemdModule *self); - -G_END_DECLS - -#endif /* MODULEMD_MODULE_H */ diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-modulestream.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-modulestream.h deleted file mode 100644 index cdf0c81..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-modulestream.h +++ /dev/null @@ -1,1454 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#pragma once - -#include "modulemd-buildopts.h" -#include "modulemd-component-module.h" -#include "modulemd-component-rpm.h" -#include "modulemd-defaults.h" -#include "modulemd-dependencies.h" -#include "modulemd-profile.h" -#include "modulemd-servicelevel.h" -#include "modulemd-simpleset.h" -#include "modulemd-translation.h" - -#include - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-modulestream - * @title: Modulemd.ModuleStream - * @short_description: The data to represent a stream of a module as described - * by a modulemd YAML document. - */ - -#define MODULEMD_MODULESTREAM_ERROR modulemd_modulestream_error_quark () -GQuark -modulemd_modulestream_error_quark (void); - -enum ModulemdModuleStreamError -{ - MODULEMD_MODULESTREAM_ERROR_MISSING_CONTENT, -}; - -#define MODULEMD_TYPE_MODULESTREAM modulemd_modulestream_get_type () -G_DECLARE_FINAL_TYPE ( - ModulemdModuleStream, modulemd_modulestream, MODULEMD, MODULESTREAM, GObject) - - -/** - * modulemd_modulestream_new: - * - * Allocates a new #ModulemdModuleStream. - * - * Return value: a new #ModulemdModuleStream. - * - * Since: 1.6 - */ -ModulemdModuleStream * -modulemd_modulestream_new (void); - - -/** - * modulemd_modulestream_copy: - * - * Make a copy of the current module - * - * Returns: (transfer full): A deep copy of this #ModulemdModuleStream - * - * Since: 1.1 - */ -ModulemdModuleStream * -modulemd_modulestream_copy (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_import_from_file: - * @yaml_file: A YAML file containing the module metadata. If this file - * contains more than one subdocument, the entire document will be parsed but - * only the first document will be returned, if it is a valid module. - * @failures: (element-type ModulemdSubdocument) (transfer container) (out): - * An array containing any subdocuments from the YAML file that failed to - * parse. This must be freed with g_ptr_array_unref(). - * - * Populates this #ModulemdModuleStream with data from a YAML file. - * - * Return value: - * False if a parse error occurred and sets @error and @failures. - * False if the first subdocument was not a module and sets @error - * - * Since: 1.6 - */ -gboolean -modulemd_modulestream_import_from_file (ModulemdModuleStream *self, - const gchar *yaml_file, - GPtrArray **failures, - GError **error); - - -/** - * modulemd_modulestream_dump: - * @yaml_file: A string containing the path to the output file - * - * Writes this module stream out to a YAML document on disk. - * - * Returns: False if the file could not be written and sets @error. - * - * Since: 1.6 - */ -gboolean -modulemd_modulestream_dump (ModulemdModuleStream *self, - const gchar *yaml_file, - GError **error); - - -/** - * modulemd_modulestream_import_from_string: - * @yaml_string: A YAML string containing the module metadata. If this string - * contains more than one subdocument, the entire document will be parsed but - * only the first document will be returned, if it is a valid module. - * @failures: (element-type ModulemdSubdocument) (transfer container) (out): - * An array containing any subdocuments from the YAML file that failed to - * parse. This must be freed with g_ptr_array_unref(). - * - * Populates this #ModulemdModuleStream with data from a YAML string. - * - * Return value: - * False if a parse error occurred and sets @error and @failures. - * False if the first subdocument was not a module and sets @error - * - * Since: 1.6 - */ -gboolean -modulemd_modulestream_import_from_string (ModulemdModuleStream *self, - const gchar *yaml_string, - GPtrArray **failures, - GError **error); - - -/** - * modulemd_modulestream_dumps: - * - * Writes this module out to a YAML document string. - * - * Returns: (transfer full): The serialized YAML representation of this stream - * document or NULL and sets @error appropriately. The returned string must be - * freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_modulestream_dumps (ModulemdModuleStream *self, GError **error); - - -/** - * modulemd_modulestream_import_from_stream: - * @stream: A YAML stream containing the module metadata. If this stream - * contains more than one subdocument, the entire document will be parsed but - * only the first document will be returned, if it is a valid module. - * @failures: (element-type ModulemdSubdocument) (transfer container) (out): - * An array containing any subdocuments from the YAML file that failed to - * parse. This must be freed with g_ptr_array_unref(). - * - * Populates this #ModulemdModuleStream with data from a YAML stream. - * - * Return value: - * False if a parse error occurred and sets @error and @failures. - * False if the first subdocument was not a module and sets @error - * - * Since: 1.6 - */ -gboolean -modulemd_modulestream_import_from_stream (ModulemdModuleStream *self, - FILE *stream, - GPtrArray **failures, - GError **error); - - -/** - * modulemd_modulestream_upgrade: - * Upgrade the module to the latest supported version - * - * This function takes content imported from earlier versions of the modulemd - * format and upgrades it into the most recent version. - * - * Return value: TRUE if the upgrade was performed successfully. If this - * function returns FALSE, the internal state of the data is undefined and - * should not be used further. - * - * Since: 1.6 - */ -gboolean -modulemd_modulestream_upgrade (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_arch: - * @arch: (nullable): the module artifact architecture. - * - * Sets the "arch" property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_arch (ModulemdModuleStream *self, const gchar *arch); - - -/** - * modulemd_modulestream_get_arch: - * - * Retrieves the "arch" for modulemd. - * - * Returns: (transfer full): A string containing the "arch" property. This - * string must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_modulestream_get_arch (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_arch: (skip) - * - * Retrieves the "arch" for modulemd. - * - * Returns: A string containing the "arch" property. This string must not be - * modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_modulestream_peek_arch (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_buildopts: - * @buildopts: (nullable) (transfer none): A #ModulemdBuildopts object - * - * Copies a #ModulemdBuildopts object into the module. This object contains - * additional instructions to the build system required to build this module. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_buildopts (ModulemdModuleStream *self, - ModulemdBuildopts *buildopts); - - -/** - * modulemd_modulestream_get_buildopts: - * - * Get a copy of the #ModulemdBuildopts object - * - * Returns: (transfer full): a copy of the #ModulemdBuildopts object. This - * object must be freed with g_object_unref() when the caller is finished with - * it. This function will return NULL if no buildopts have been set. - * - * Since: 1.6 - */ -ModulemdBuildopts * -modulemd_modulestream_get_buildopts (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_buildopts: (skip) - * - * Get a copy of the #ModulemdBuildopts object - * - * Returns: (transfer none): The #ModulemdBuildopts object. This - * object must not be modified or freed. - * This function will return NULL if no buildopts have been set. - * - * Since: 1.6 - */ -ModulemdBuildopts * -modulemd_modulestream_peek_buildopts (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_buildrequires: - * @buildrequires: (nullable) (element-type utf8 utf8) (transfer none): The - * requirements to build this module. - * - * Sets the 'buildrequires' property. This function was deprecated and is not - * valid for modulemd files of version 2 or later. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_buildrequires (ModulemdModuleStream *self, - GHashTable *buildrequires); - - -/** - * modulemd_modulestream_get_buildrequires: - * - * Retrieves the "buildrequires" for modulemd. - * - * Returns: (element-type utf8 utf8) (transfer container): A hash table - * containing the "buildrequires" property. This table must be freed with - * g_hash_table_unref(). - * - * Since: 1.6 - */ -GHashTable * -modulemd_modulestream_get_buildrequires (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_buildrequires: (skip) - * - * Retrieves the "buildrequires" for modulemd. - * - * Returns: (element-type utf8 utf8) (transfer none): A hash table - * containing the "buildrequires" property. - * - * Since: 1.6 - */ -GHashTable * -modulemd_modulestream_peek_buildrequires (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_community: - * @community: (nullable) (transfer none): the module community. - * - * Sets the "community" property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_community (ModulemdModuleStream *self, - const gchar *community); - - -/** - * modulemd_modulestream_get_community: - * - * Retrieves the "community" for modulemd. - * - * Returns: (transfer full): A string containing the "community" property. This - * string must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_modulestream_get_community (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_community: (skip) - * - * Retrieves the "community" for modulemd. - * - * Returns: A string containing the "community" property. This string must not - * be modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_modulestream_peek_community (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_content_licenses: - * @licenses: (nullable) (transfer none): A #ModulemdSimpleSet: The licenses - * under which the components of this module are released. - * - * Sets the content_licenses property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_content_licenses (ModulemdModuleStream *self, - ModulemdSimpleSet *licenses); - - -/** - * modulemd_modulestream_get_content_licenses: - * - * Retrieves the "content_licenses" for modulemd - * - * Returns: (transfer full): a #SimpleSet containing the set of licenses in the - * "content_licenses" property. The returned #SimpleSet must be freed with - * g_object_unref(). - * - * Since: 1.6 - */ -ModulemdSimpleSet * -modulemd_modulestream_get_content_licenses (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_content_licenses: (skip) - * - * Retrieves the "content_licenses" for modulemd - * - * Returns: (transfer none): a #SimpleSet containing the set of licenses in the - * "content_licenses" property. This #SimpleSet must not be modified or freed. - * - * Since: 1.6 - */ -ModulemdSimpleSet * -modulemd_modulestream_peek_content_licenses (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_context: - * @context: (nullable) (transfer none): the module artifact architecture. - * - * Sets the "context" property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_context (ModulemdModuleStream *self, - const gchar *context); - - -/** - * modulemd_modulestream_get_context: - * - * Retrieves the "context" for modulemd. - * - * Returns: (transfer full): A string containing the "context" property. This - * string must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_modulestream_get_context (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_context: (skip) - * - * Retrieves the "context" for modulemd. - * - * Returns: (transfer none): A string containing the "context" property. This - * string must not be modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_modulestream_peek_context (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_dependencies: - * @deps: (array zero-terminated=1) (element-type ModulemdDependencies) (transfer none) (nullable): - * The list of #ModulemdDependencies for this module stream. - * - * Sets the list of #ModulemdDependencies objects for this module stream. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_dependencies (ModulemdModuleStream *self, - GPtrArray *deps); - - -/** - * modulemd_modulestream_add_dependencies: - * @dep: (transfer none): A #ModulemdDependencies object to add to this module - * - * Helper function to populate the dependencies list - * - * Since: 1.6 - */ -void -modulemd_modulestream_add_dependencies (ModulemdModuleStream *self, - ModulemdDependencies *dep); - -/** - * modulemd_modulestream_get_dependencies: - * - * Returns: (element-type ModulemdDependencies) (transfer container): The list - * of dependency objects for this module. This list must be freed with - * g_ptr_array_unref(). - * - * Since: 1.6 - */ -GPtrArray * -modulemd_modulestream_get_dependencies (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_dependencies: (skip) - * - * Returns: (element-type ModulemdDependencies) (transfer none): The list - * of dependency objects for this module. This list and its contents must not - * be modified or freed. - * - * Since: 1.6 - */ -GPtrArray * -modulemd_modulestream_peek_dependencies (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_description: - * @description: (transfer none) (nullable): the module description. - * - * Sets the "description" property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_description (ModulemdModuleStream *self, - const gchar *description); - - -/** - * modulemd_modulestream_get_description: - * - * Retrieves the "description" for modulemd. - * - * Returns: (transfer full): A string containing the "description" property. - * This string must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_modulestream_get_description (ModulemdModuleStream *self); - -/** - * modulemd_modulestream_get_localized_description: - * @locale: (transfer none) (nullable): Specify the locale for the description. - * If NULL is passed, it will attempt to use the LC_MESSAGES locale. If "C" is - * passed or if the locale has no translation available, it will treat it as - * untranslated. - * - * Returns: (transfer full): A string containing the "description" property, - * translated into the language specified by @locale if possible. This string - * must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_modulestream_get_localized_description (ModulemdModuleStream *self, - const gchar *locale); - - -/** - * modulemd_modulestream_peek_description: (skip) - * - * Retrieves the "description" for modulemd. - * - * Returns: (transfer none): A string containing the "description" property. - * This string must not be modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_modulestream_peek_description (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_documentation: - * @documentation: (transfer none) (nullable): the module documentation. - * - * Sets the "documentation" property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_documentation (ModulemdModuleStream *self, - const gchar *documentation); - - -/** - * modulemd_modulestream_get_documentation: - * - * Retrieves the "documentation" for modulemd. - * - * Returns: (transfer full): A string containing the "documentation" property. - * This string must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_modulestream_get_documentation (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_documentation: (skip) - * - * Retrieves the "documentation" for modulemd. - * - * Returns: (transfer none): A string containing the "documentation" property. - * This string must not be modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_modulestream_peek_documentation (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_eol: - * @date: (transfer none) (nullable): The end-of-life date of the module - * - * Sets the "eol" property. - * - * Note: This property is obsolete. Use "servicelevels" instead. This will fail - * on modulemd files using the version 2 or later formats. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_eol (ModulemdModuleStream *self, const GDate *date); - - -/** - * modulemd_modulestream_get_eol: - * - * Retrieves the "eol" property. - * - * Note: This property is obsolete. Use "servicelevels" instead. This will fail - * on modulemd files using the version 2 or later formats. - * - * Returns: (transfer full): A #GDate containing the "EOL" date. - * This #GDate must be freed with g_date_free(). - * - * Since: 1.6 - */ -GDate * -modulemd_modulestream_get_eol (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_eol: (skip) - * - * Retrieves the "eol" property. - * - * Note: This property is obsolete. Use "servicelevels" instead. This will fail - * on modulemd files using the version 2 or later formats. - * - * Returns: (transfer none): A #GDate containing the "EOL" date. This #GDate - * must not be modified or freed. - * - * Since: 1.6 - */ -const GDate * -modulemd_modulestream_peek_eol (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_mdversion - * @mdversion: the metadata version - * - * Sets the "mdversion" property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_mdversion (ModulemdModuleStream *self, - const guint64 mdversion); - - -/** - * modulemd_modulestream_get_mdversion: - * - * Retrieves the "mdversion" for modulemd. - * - * Returns: A 64-bit unsigned integer containing the "mdversion" property. - * - * Since: 1.6 - */ -guint64 -modulemd_modulestream_get_mdversion (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_add_module_component: - * @component: (transfer none): A #ModulemdComponentModule - * - * Adds a #ModulemdComponentModule to the "module_components" hash table. - * - * Since: 1.6 - */ -void -modulemd_modulestream_add_module_component ( - ModulemdModuleStream *self, ModulemdComponentModule *component); - - -/** - * modulemd_modulestream_clear_module_components: - * - * Remove all entries from the "module_components" hash table. - * - * Since: 1.6 - */ -void -modulemd_modulestream_clear_module_components (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_module_components: - * @components: (transfer none) (nullable) (element-type utf8 ModulemdComponentModule): - * The hash table of module components that comprise this module. The keys are - * the module name, the values are a #ModulemdComponentModule containing - * information about that module. - * - * Sets the module_components property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_module_components (ModulemdModuleStream *self, - GHashTable *components); - - -/** - * modulemd_modulestream_get_module_components: - * - * Retrieves the "module-components" for modulemd. - * - * Returns: (element-type utf8 ModulemdComponentModule) (transfer container): A hash - * table containing the "module-components" property. This table must be freed - * with g_hash_table_unref(). - * - * Since: 1.6 - */ -GHashTable * -modulemd_modulestream_get_module_components (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_module_components: (skip) - * - * Retrieves the "module-components" for modulemd. - * - * Returns: (element-type utf8 ModulemdComponentModule) (transfer none): A hash - * table containing the "module-components" property. - * - * Since: 1.6 - */ -GHashTable * -modulemd_modulestream_peek_module_components (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_module_licenses: - * @licenses: (transfer none) (nullable): A #ModulemdSimpleSet: The licenses - * under which the components of this module are released. - * - * Sets the module_licenses property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_module_licenses (ModulemdModuleStream *self, - ModulemdSimpleSet *licenses); - - -/** - * modulemd_modulestream_get_module_licenses: - * - * Retrieves the "module_licenses" for modulemd - * - * Returns: (transfer full): a #ModulemdSimpleSet containing the set of - * licenses in the "module_licenses" property. This #ModulemdSimpleSet must be - * freed with g_object_unref(). - * - * Since: 1.6 - */ -ModulemdSimpleSet * -modulemd_modulestream_get_module_licenses (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_module_licenses: (skip) - * - * Retrieves the "module_licenses" for modulemd - * - * Returns: (transfer none): a #ModulemdSimpleSet containing the set of - * licenses in the "module_licenses" property. - * - * Since: 1.6 - */ -ModulemdSimpleSet * -modulemd_modulestream_peek_module_licenses (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_name: - * @name: (transfer none) (nullable): the module name. - * - * Sets the "name" property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_name (ModulemdModuleStream *self, const gchar *name); - - -/** - * modulemd_modulestream_get_name: - * - * Retrieves the "name" for modulemd. - * - * Returns: (transfer full): A string containing the "name" property. This string - * must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_modulestream_get_name (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_name: (skip) - * - * Retrieves the "name" for modulemd. - * - * Returns: (transfer none): A string containing the "name" property. This - * string must not be modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_modulestream_peek_name (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_add_profile: - * @profile: (transfer none): A #ModulemdProfile - * - * Adds a #ModulemdProfile definition to this module. - * - * Since: 1.6 - */ -void -modulemd_modulestream_add_profile (ModulemdModuleStream *self, - ModulemdProfile *profile); - - -/** - * modulemd_modulestream_clear_profiles: - * - * Remove all entries from the "profiles" hash table. - * - * Since: 1.6 - */ -void -modulemd_modulestream_clear_profiles (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_profiles: - * @profiles: (transfer none) (nullable) (element-type utf8 ModulemdProfile): - * The profiles available for this module. - * - * Sets the 'profiles' property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_profiles (ModulemdModuleStream *self, - GHashTable *profiles); - - -/** - * modulemd_modulestream_get_profiles: - * - * Retrieves the "profiles" for modulemd. - * - * Returns: (element-type utf8 ModulemdProfile) (transfer container): A hash - * table containing the "profiles" property. This table must be freed with - * g_hash_table_unref(). - * - * Since: 1.6 - */ -GHashTable * -modulemd_modulestream_get_profiles (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_profiles: (skip) - * - * Retrieves the "profiles" for modulemd. - * - * Returns: (element-type utf8 ModulemdProfile) (transfer none): A hash - * table containing the "profiles" property. - * - * Since: 1.6 - */ -GHashTable * -modulemd_modulestream_peek_profiles (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_requires: - * @requires: (transfer none) (nullable) (element-type utf8 utf8): The - * requirements to run this module - * - * Sets the 'requires' property. This function was deprecated and is not - * valid for modulemd files of version 2 or later. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_requires (ModulemdModuleStream *self, - GHashTable *requires); - - -/** - * modulemd_modulestream_get_requires: - * - * Retrieves the "requires" for modulemd. - * - * Returns: (element-type utf8 utf8) (transfer container): A hash table - * containing the "requires" property. This function was deprecated and is not - * valid for modulemd files of version 2 or later. This table must be freed with - * g_hash_table_unref(). - * - * Since: 1.6 - */ -GHashTable * -modulemd_modulestream_get_requires (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_requires: (skip) - * - * Retrieves the "requires" for modulemd. - * - * Returns: (element-type utf8 utf8) (transfer none): A hash table - * containing the "requires" property. This function was deprecated and is not - * valid for modulemd files of version 2 or later. - * - * Since: 1.6 - */ -GHashTable * -modulemd_modulestream_peek_requires (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_rpm_api: - * @apis: (transfer none) (nullable): A #ModulemdSimpleSet: The set of binary - * RPM packages that form the public API for this module. - * - * Sets the rpm_api property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_rpm_api (ModulemdModuleStream *self, - ModulemdSimpleSet *apis); - - -/** - * modulemd_modulestream_get_rpm_api: - * - * Retrieves the "rpm_api" for modulemd - * - * Returns: (transfer full): a #ModulemdSimpleSet containing the set of binary - * RPM packages in the "rpm_api" property. This #ModulemdSimpleSet must be freed - * with g_object_unref(). - * - * Since: 1.6 - */ -ModulemdSimpleSet * -modulemd_modulestream_get_rpm_api (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_rpm_api: (skip) - * - * Retrieves the "rpm_api" for modulemd - * - * Returns: (transfer none): a #ModulemdSimpleSet containing the set of binary - * RPM packages in the "rpm_api" property. This #ModulemdSimpleSet must not be - * modified or freed. - * - * Since: 1.6 - */ -ModulemdSimpleSet * -modulemd_modulestream_peek_rpm_api (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_rpm_artifacts: - * @artifacts: (transfer none) (nullable): A #ModulemdSimpleSet: The set of - * binary RPM packages that are contained in this module. Generally populated - * by the module build service. - * - * Sets the rpm_artifacts property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_rpm_artifacts (ModulemdModuleStream *self, - ModulemdSimpleSet *artifacts); - -/** - * modulemd_modulestream_get_rpm_artifacts: - * - * Retrieves the "rpm_artifacts" for modulemd - * - * Returns: (transfer full): a #SimpleSet containing the set of binary RPMs - * contained in this module. - * - * Since: 1.6 - */ -ModulemdSimpleSet * -modulemd_modulestream_get_rpm_artifacts (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_rpm_artifacts: (skip) - * - * Retrieves the "rpm_artifacts" for modulemd - * - * Returns: (transfer none): a #SimpleSet containing the set of binary RPMs - * contained in this module. - * - * Since: 1.6 - */ -ModulemdSimpleSet * -modulemd_modulestream_peek_rpm_artifacts (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_add_rpm_component: - * @component: (transfer none): A #ModulemdComponentRpm - * - * Adds a #ModulemdComponentRpm to the "rpm_components" hash table. - * - * Since: 1.6 - */ -void -modulemd_modulestream_add_rpm_component (ModulemdModuleStream *self, - ModulemdComponentRpm *component); - - -/** - * modulemd_modulestream_clear_rpm_components: - * - * Remove all entries from the "rpm_components" hash table. - * - * Since: 1.6 - */ -void -modulemd_modulestream_clear_rpm_components (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_rpm_components: - * @components: (transfer none) (nullable) (element-type utf8 ModulemdComponentRpm): - * The hash table of module components that comprise this module. The keys are - * the module name, the values are a #ModulemdComponentRpm containing - * information about that module. - * - * Sets the rpm_components property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_rpm_components (ModulemdModuleStream *self, - GHashTable *components); - - -/** - * modulemd_modulestream_get_rpm_components: - * - * Retrieves the "rpm-components" for modulemd. - * - * Returns: (element-type utf8 ModulemdComponentRpm) (transfer container): A hash - * table containing the "rpm-components" property. This table must be freed with - * g_hash_table_unref(). - * - * Since: 1.6 - */ -GHashTable * -modulemd_modulestream_get_rpm_components (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_rpm_components: (skip) - * - * Retrieves the "rpm-components" for modulemd. - * - * Returns: (element-type utf8 ModulemdComponentRpm) (transfer none): A hash - * table containing the "rpm-components" property. - * - * Since: 1.6 - */ -GHashTable * -modulemd_modulestream_peek_rpm_components (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_rpm_filter: - * @filter: (transfer none) (nullable): A #ModulemdSimpleSet: The set of binary - * RPM packages that are explicitly filtered out of this module. - * - * Sets the rpm_artifacts property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_rpm_filter (ModulemdModuleStream *self, - ModulemdSimpleSet *filter); - - -/** - * modulemd_modulestream_get_rpm_filter: - * - * Retrieves the "rpm_filter" for modulemd - * - * Returns: (transfer full): a #ModulemdSimpleSet containing the set of binary - * RPMs filtered out of this module. This #ModulemdSimpleSet must be freed with - * g_object_unref(). - * - * Since: 1.6 - */ -ModulemdSimpleSet * -modulemd_modulestream_get_rpm_filter (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_rpm_filter: (skip) - * - * Retrieves the "rpm_filter" for modulemd - * - * Returns: (transfer none): a #ModulemdSimpleSet containing the set of binary - * RPMs filtered out of this module. This #ModulemdSimpleSet must not be - * modified or freed. - * - * Since: 1.6 - */ -ModulemdSimpleSet * -modulemd_modulestream_peek_rpm_filter (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_clear_servicelevels: - * - * Remove all entries from the "servicelevels" hash table - * - * Since: 1.6 - */ -void -modulemd_modulestream_clear_servicelevels (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_servicelevels: - * @servicelevels: (transfer none) (nullable) (element-type utf8 ModulemdServiceLevel): - * A hash table of #ModulemdServiceLevel objects - * - * Sets the service levels for the module. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_servicelevels (ModulemdModuleStream *self, - GHashTable *servicelevels); - - -/** - * modulemd_modulestream_add_servicelevel: - * @servicelevel: (transfer none): A #ModulemdServiceLevel object to add to the hash table - * - * Adds a service levels to the module. If the name already exists, it will be - * replaced by this entry and will release a reference on the previous entry. - * - * Since: 1.6 - */ -void -modulemd_modulestream_add_servicelevel (ModulemdModuleStream *self, - ModulemdServiceLevel *servicelevel); - - -/** - * modulemd_modulestream_get_servicelevels: - * - * Retrieves the service levels for the module - * - * Returns: (element-type utf8 ModulemdServiceLevel) (transfer container): A - * hash table containing the service levels. This table must be freed with - * g_hash_table_unref(). - * - * Since: 1.6 - */ -GHashTable * -modulemd_modulestream_get_servicelevels (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_servicelevels: (skip) - * - * Retrieves the service levels for the module - * - * Returns: (element-type utf8 ModulemdServiceLevel) (transfer none): A - * hash table containing the service levels. - * - * Since: 1.6 - */ -GHashTable * -modulemd_modulestream_peek_servicelevels (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_stream: - * @stream: (transfer none) (nullable): the module stream. - * - * Sets the "stream" property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_stream (ModulemdModuleStream *self, - const gchar *stream); - - -/** - * modulemd_modulestream_get_stream: - * - * Retrieves the "stream" for modulemd. - * - * Returns: A string containing the "stream" property. This string must be freed - * with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_modulestream_get_stream (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_stream: (skip) - * - * Retrieves the "stream" for modulemd. - * - * Returns: (transfer none): A string containing the "stream" property. This - * string must not be modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_modulestream_peek_stream (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_summary: - * @summary: (transfer none) (nullable): the module summary. - * - * Sets the "summary" property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_summary (ModulemdModuleStream *self, - const gchar *summary); - - -/** - * modulemd_modulestream_get_summary: - * - * Retrieves the "summary" for modulemd. - * - * Returns: A string containing the "summary" property. This string must be - * freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_modulestream_get_summary (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_get_localized_summary: - * @locale: (transfer none) (nullable): Specify the locale for the summary. If - * NULL is passed, it will attempt to use the LC_MESSAGES locale. If "C" is - * passed or if the locale has no translation available, it will treat it as - * untranslated. - * - * Returns: (transfer full): A string containing the "summary" property, - * translated into the language specified by @locale if possible. This string - * must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_modulestream_get_localized_summary (ModulemdModuleStream *self, - const gchar *locale); - - -/** - * modulemd_modulestream_peek_summary: (skip) - * - * Retrieves the "summary" for modulemd. - * - * Returns: (transfer none): A string containing the "summary" property. This - * string must not be modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_modulestream_peek_summary (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_tracker: - * @tracker: (transfer none) (nullable): the module tracker. - * - * Sets the "tracker" property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_tracker (ModulemdModuleStream *self, - const gchar *tracker); - - -/** - * modulemd_modulestream_get_tracker: - * - * Retrieves the "tracker" for modulemd. - * - * Returns: (transfer full): A string containing the "tracker" property. This - * string must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_modulestream_get_tracker (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_tracker: (skip) - * - * Retrieves the "tracker" for modulemd. - * - * Returns: (transfer none): A string containing the "tracker" property. This - * string must not be modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_modulestream_peek_tracker (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_translation: - * @translation: (transfer none) (nullable): A #ModulemdTranslation associated - * with this module and stream which provides translated strings. If the passed - * #ModulemdTranslation does not match this module and stream, it will have no - * effect, but a warning will be emitted. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_translation (ModulemdModuleStream *self, - ModulemdTranslation *translation); - - -/** - * modulemd_modulestream_get_translation: - * - * Returns: (transfer full): A #ModulemdTranslation object associated with this - * module and stream. - * - * Since: 1.6 - */ -ModulemdTranslation * -modulemd_modulestream_get_translation (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_version - * @version: the module version - * - * Sets the "version" property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_version (ModulemdModuleStream *self, - const guint64 version); - - -/** - * modulemd_modulestream_get_version: - * - * Retrieves the "version" for modulemd. - * - * Returns: A 64-bit unsigned integer containing the "version" property. - * - * Since: 1.6 - */ -guint64 -modulemd_modulestream_get_version (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_set_xmd: - * @xmd: (transfer none) (nullable) (element-type utf8 GVariant): Extensible - * metadata block - * - * Sets the 'xmd' property. - * - * Since: 1.6 - */ -void -modulemd_modulestream_set_xmd (ModulemdModuleStream *self, GHashTable *xmd); - - -/** - * modulemd_modulestream_get_xmd: - * - * Retrieves the "xmd" for modulemd. - * - * Returns: (element-type utf8 GVariant) (transfer container): A hash table - * containing the "xmd" property. - * - * Since: 1.6 - */ -GHashTable * -modulemd_modulestream_get_xmd (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_peek_xmd: (skip) - * - * Retrieves the "xmd" for modulemd. - * - * Returns: (element-type utf8 GVariant) (transfer none): A hash table - * containing the "xmd" property. - * - * Since: 1.6 - */ -GHashTable * -modulemd_modulestream_peek_xmd (ModulemdModuleStream *self); - - -/** - * modulemd_modulestream_get_nsvc: - * - * Return the unique module identifier. - * - * Returns: a string describing the unique module identifier in the form: - * "NAME:STREAM:VERSION[:CONTEXT]". This string is owned by the caller and - * must be freed with g_free(). - */ -gchar * -modulemd_modulestream_get_nsvc (ModulemdModuleStream *self); - -G_END_DECLS diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-prioritizer.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-prioritizer.h deleted file mode 100644 index 37bc8e7..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-prioritizer.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#ifndef MODULEMD_PRIORITIZER_H -#define MODULEMD_PRIORITIZER_H - - -#include - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-prioritizer - * @title: Modulemd.Prioritizer - * @short_description: Class to aid in merging module metadata from multiple - * repositories. - */ - -#define MODULEMD_PRIORITIZER_ERROR modulemd_prioritizer_error_quark () -GQuark -modulemd_prioritizer_error_quark (void); - -enum ModulemdPrioritizerError -{ - MODULEMD_PRIORITIZER_NOTHING_TO_PRIORITIZE, - MODULEMD_PRIORITIZER_PRIORITY_OUT_OF_RANGE -}; - -#define MODULEMD_PRIORITIZER_PRIORITY_MAX 1000 -#define MODULEMD_PRIORITIZER_PRIORITY_MIN 0 - -#define MODULEMD_TYPE_PRIORITIZER (modulemd_prioritizer_get_type ()) - -G_DECLARE_FINAL_TYPE ( - ModulemdPrioritizer, modulemd_prioritizer, MODULEMD, PRIORITIZER, GObject) - - -/** - * modulemd_prioritizer_new: - * - * Returns: (transfer full): A newly-allocated #ModulemdPrioritizer. This object - * must be freed with g_object_unref(). - * - * Since: 1.3 - */ -ModulemdPrioritizer * -modulemd_prioritizer_new (void); - - -/** - * modulemd_prioritizer_add: - * @objects: (array zero-terminated=1) (element-type GObject): A #GPtrArray of - * module-related objects loaded from a modulemd YAML stream. - * @priority: The priority of the YAML stream these were loaded from. Items at - * the same priority level will attempt to merge on conflict. Items at higher - * priority levels will replace on conflict. Valid values are 0 - 1000. - * - * Returns: TRUE if the objects could be added without generating a conflict at - * this priority level. If a conflict was detected, this function returns FALSE - * and error is set. The internal state is undefined in the case of an error. - * - * Since: 1.3 - */ -gboolean -modulemd_prioritizer_add (ModulemdPrioritizer *self, - GPtrArray *objects, - gint64 priority, - GError **error); - - -/** - * modulemd_prioritizer_resolve: - * - * Returns: (array zero-terminated=1) (element-type GObject) (transfer container): - * A #GPtrArray of module-related objects with all priorities resolved. This - * object must be freed with g_ptr_array_unref(). - * - * Since: 1.3 - */ -GPtrArray * -modulemd_prioritizer_resolve (ModulemdPrioritizer *self, GError **error); - - -/** - * modulemd_prioritizer_add_index: - * @index: (transfer none) (not nullable): A #GHashTable of - * #ModulemdImprovedModule objects whose contents need to be merged depending on - * priority. - * @priority: The priority of the YAML stream these were loaded from. Items at - * the same priority level will attempt to merge on conflict. Items at higher - * priority levels will replace on conflict. Valid values are 0 - 1000. - * - * Returns: TRUE if the objects could be added without generating a conflict at - * this priority level. If a conflict was detected, this function returns FALSE - * and @error is set. The internal state is undefined in the case of an error. - * - * Since: 1.6 - */ -gboolean -modulemd_prioritizer_add_index (ModulemdPrioritizer *self, - GHashTable *index, - gint64 priority, - GError **error); - -/** - * modulemd_prioritizer_resolve_index: - * - * Returns: (element-type utf8 ModulemdImprovedModule) (transfer container): - * A #GHashTable of #ModulemdImprovedModule objects with all priorities - * resolved. This hash table must be freed with g_hash_table_unref(). - * - * Since: 1.6 - */ -GHashTable * -modulemd_prioritizer_resolve_index (ModulemdPrioritizer *self, GError **error); - -G_END_DECLS - -#endif /* MODULEMD_PRIORITIZER_H */ diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-profile.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-profile.h deleted file mode 100644 index 28d6085..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-profile.h +++ /dev/null @@ -1,272 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#ifndef MODULEMD_PROFILE_H -#define MODULEMD_PROFILE_H - -#include "modulemd-deprecated.h" -#include "modulemd-prioritizer.h" -#include "modulemd-simpleset.h" - -#include - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-profile - * @title: Modulemd.Profile - * @short_description: Stores profile information for a module stream. - */ - -#define MODULEMD_TYPE_PROFILE modulemd_profile_get_type () -G_DECLARE_FINAL_TYPE ( - ModulemdProfile, modulemd_profile, MODULEMD, PROFILE, GObject) - - -/** - * modulemd_profile_new: - * - * Returns: (transfer full): A newly-allocated #ModulemdProfile. This object - * must be freed with g_object_unref(). - * - * Since: 1.0 - */ -ModulemdProfile * -modulemd_profile_new (void); - - -/** - * modulemd_profile_set_description: - * @description: (nullable): the profile description. - * - * Sets the "description" property. - * - * Since: 1.0 - */ -void -modulemd_profile_set_description (ModulemdProfile *self, - const gchar *description); - - -/** - * modulemd_profile_get_description: - * - * Retrieves the profile description. - * - * Returns: A string containing the "description" property. - * - * Deprecated: 1.1 - * Use peek_description() instead. - * - * Since: 1.0 - */ -MMD_DEPRECATED_FOR (modulemd_profile_peek_description) -const gchar * -modulemd_profile_get_description (ModulemdProfile *self); - -/** - * modulemd_profile_get_localized_description: - * @locale: (transfer none) (nullable): Specify the locale for the description. - * If NULL is passed, it will attempt to use the LC_MESSAGES locale. If "C" is - * passed or if the locale has no translation available, it will treat it as - * untranslated. - * - * Returns: (transfer full): A string containing the "description" property, - * translated into the language specified by @locale if possible. This string - * must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_profile_get_localized_description (ModulemdProfile *self, - const gchar *locale); - - -/** - * modulemd_profile_peek_description: - * - * Retrieves the profile description. - * - * Returns: A string containing the "description" property. - * - * Since: 1.1 - */ -const gchar * -modulemd_profile_peek_description (ModulemdProfile *self); - - -/** - * modulemd_profile_dup_description: - * - * Retrieves a copy of the profile description. - * - * Returns: A copy of the string containing the "description" property. - * - * Since: 1.1 - */ -gchar * -modulemd_profile_dup_description (ModulemdProfile *self); - - -/** - * modulemd_profile_set_name: - * @name: (nullable): the profile name. - * - * Sets the "name" property. - * - * Since: 1.0 - */ -void -modulemd_profile_set_name (ModulemdProfile *self, const gchar *name); - - -/** - * modulemd_profile_get_name: - * - * Retrieves the profile name. - * - * Returns: A string containing the "name" property. - * - * Deprecated: 1.1 - * Use peek_name() instead. - * - * Since: 1.0 - */ -MMD_DEPRECATED_FOR (modulemd_profile_peek_name) -const gchar * -modulemd_profile_get_name (ModulemdProfile *self); - - -/** - * modulemd_profile_peek_name: - * - * Retrieves the profile name. - * - * Returns: A string containing the "name" property. - * - * Since: 1.1 - */ -const gchar * -modulemd_profile_peek_name (ModulemdProfile *self); - - -/** - * modulemd_profile_dup_name: - * - * Retrieves a copy of the profile name. - * - * Returns: A copy of string containing the "name" property. - * - * Since: 1.1 - */ -gchar * -modulemd_profile_dup_name (ModulemdProfile *self); - - -/** - * modulemd_profile_set_rpms: - * @rpms: (nullable): A #ModulemdSimpleSet: The rpms to be installed by this - * profile. - * - * Assigns the set of RPMs that will be installed when this profile is - * activated. - * - * Since: 1.0 - */ -void -modulemd_profile_set_rpms (ModulemdProfile *self, ModulemdSimpleSet *rpms); - - -/** - * modulemd_profile_get_rpms: - * - * Retrieves the "rpms" for this profile - * - * Returns: (transfer none): a #SimpleSet containing the set of RPMs in the - * "rpms" property. - * - * Deprecated: 1.1 - * Use peek_rpms() instead. - * - * Since: 1.0 - */ -MMD_DEPRECATED_FOR (modulemd_profile_peek_rpms) -ModulemdSimpleSet * -modulemd_profile_get_rpms (ModulemdProfile *self); - - -/** - * modulemd_profile_peek_rpms: - * - * Retrieves the "rpms" for this profile - * - * Returns: (transfer none): a #SimpleSet containing the set of RPMs in the - * "rpms" property. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_profile_peek_rpms (ModulemdProfile *self); - - -/** - * modulemd_profile_dup_rpms: - * - * Retrieves a copy of the "rpms" for this profile - * - * Returns: (transfer full): a #SimpleSet containing the set of RPMs in the - * "rpms" property. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_profile_dup_rpms (ModulemdProfile *self); - - -/** - * modulemd_profile_add_rpm: - * @rpm: (transfer none) (not nullable): An RPM that will be installed as part - * of this profile. - * - * Since: 1.1 - */ -void -modulemd_profile_add_rpm (ModulemdProfile *self, const gchar *rpm); - - -/** - * modulemd_profile_remove_rpm: - * @rpm: (transfer none) (not nullable): An RPM that will no longer be installed - * as part of this profile. - * - * Since: 1.1 - */ -void -modulemd_profile_remove_rpm (ModulemdProfile *self, const gchar *rpm); - - -/** - * modulemd_profile_copy: - * - * Creates a copy of this profile - * - * Returns: (transfer full): a copy of this #ModulemdProfile - * - * Since: 1.1 - */ -ModulemdProfile * -modulemd_profile_copy (ModulemdProfile *self); - -G_END_DECLS - -#endif /* MODULEMD_PROFILE_H */ diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-servicelevel.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-servicelevel.h deleted file mode 100644 index 82e85aa..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-servicelevel.h +++ /dev/null @@ -1,173 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#ifndef _MODULEMD_SERVICELEVEL_H -#define _MODULEMD_SERVICELEVEL_H - -#include "modulemd-deprecated.h" - -#include - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-servicelevel - * @title: Modulemd.ServiceLevel - * @short_description: Provides lifecycle information for a module stream. - */ - -#define MODULEMD_TYPE_SERVICELEVEL modulemd_servicelevel_get_type () -G_DECLARE_FINAL_TYPE ( - ModulemdServiceLevel, modulemd_servicelevel, MODULEMD, SERVICELEVEL, GObject) - - -/** - * modulemd_servicelevel_new: - * - * Returns: (transfer full): A newly-allocated #ModulemdServiceLevel. This - * object must be freed with g_object_unref(). - * - * Since: 1.0 - */ -ModulemdServiceLevel * -modulemd_servicelevel_new (void); - - -/** - * modulemd_servicelevel_set_eol: - * @date: (nullable): The date this service level ends - * - * Sets the end date of the service level. - * - * Since: 1.0 - */ -void -modulemd_servicelevel_set_eol (ModulemdServiceLevel *self, const GDate *date); - - -/** - * modulemd_servicelevel_get_eol: - * - * Retrieves the end-of-life date of this service level. - * - * Returns: a #GDate representing the end-of-life date of the service level. - * - * Deprecated: 1.1 - * Use peek_eol() instead. - * - * Since: 1.0 - */ -MMD_DEPRECATED_FOR (modulemd_servicelevel_peek_eol) -const GDate * -modulemd_servicelevel_get_eol (ModulemdServiceLevel *self); - - -/** - * modulemd_servicelevel_peek_eol: - * - * Retrieves the end-of-life date of this service level. - * - * Returns: a #GDate representing the end-of-life date of the service level. - * - * Since: 1.1 - */ -const GDate * -modulemd_servicelevel_peek_eol (ModulemdServiceLevel *self); - - -/** - * modulemd_servicelevel_dup_eol: - * - * Retrieves a copy of the end-of-life date of this service level. - * - * Returns: a #GDate representing the end-of-life date of the service level. - * - * Since: 1.1 - */ -GDate * -modulemd_servicelevel_dup_eol (ModulemdServiceLevel *self); - - -/** - * modulemd_servicelevel_set_name: - * @name: (nullable): The name of this servicelevel - * - * Set the name of this service level. - * - * Since: 1.0 - */ -void -modulemd_servicelevel_set_name (ModulemdServiceLevel *self, const gchar *name); - - -/** - * modulemd_servicelevel_get_name: - * - * Retrieves the name of this service level - * - * Returns: a string representing the name of the service level or NULL if not - * set. - * - * Deprecated: 1.1 - * Use peek_name() instead. - * - * Since: 1.0 - */ -MMD_DEPRECATED_FOR (modulemd_servicelevel_peek_name) -const gchar * -modulemd_servicelevel_get_name (ModulemdServiceLevel *self); - - -/** - * modulemd_servicelevel_peek_name: - * - * Retrieves the name of this service level - * - * Returns: a string representing the name of the service level or NULL if not - * set. - * - * Since: 1.1 - */ -const gchar * -modulemd_servicelevel_peek_name (ModulemdServiceLevel *self); - - -/** - * modulemd_servicelevel_dup_name: - * - * Retrieves a copy of the name of this service level - * - * Returns: a copy of the string representing the name of the service level or - * NULL if not set. - * - * Since: 1.1 - */ -gchar * -modulemd_servicelevel_dup_name (ModulemdServiceLevel *self); - - -/** - * modulemd_servicelevel_copy: - * - * Create a copy of this #ModulemdServiceLevel object. - * - * Returns: (transfer full): a copied #ModulemdServiceLevel object - * - * Since: 1.1 - */ -ModulemdServiceLevel * -modulemd_servicelevel_copy (ModulemdServiceLevel *self); - -G_END_DECLS - -#endif /* _MODULEMD_SERVICELEVEL_H */ diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-simpleset.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-simpleset.h deleted file mode 100644 index c7c3b40..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-simpleset.h +++ /dev/null @@ -1,182 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#ifndef MODULEMD_SIMPLESET_H -#define MODULEMD_SIMPLESET_H - -#include - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-simpleset - * @title: Modulemd.SimpleSet - * @short_description: Stores a set of strings, guaranteeing uniqueness. - */ - -#define MODULEMD_TYPE_SIMPLESET modulemd_simpleset_get_type () -G_DECLARE_FINAL_TYPE ( - ModulemdSimpleSet, modulemd_simpleset, MODULEMD, SIMPLESET, GObject) - - -/** - * modulemd_simpleset_new: - * - * Returns: (transfer full): A newly-allocated #ModulemdSimpleset. This object - * must be freed with g_object_unref(). - * - * Since: 1.0 - */ -ModulemdSimpleSet * -modulemd_simpleset_new (void); - - -/** - * modulemd_simpleset_contains: - * @value: A string to compare against the set - * - * Returns: TRUE if the value existed in the set. - * - * Since: 1.0 - */ -gboolean -modulemd_simpleset_contains (ModulemdSimpleSet *self, const gchar *value); - - -/** - * modulemd_simpleset_size: - * - * Returns: The number of elements in the set - * - * Since: 1.0 - */ -guint -modulemd_simpleset_size (ModulemdSimpleSet *self); - - -/** - * modulemd_simpleset_set: - * @set: (array zero-terminated=1) (transfer none): Extensible metadata block - * - * Make the contents of the set equal to an array of strings. This function - * will trigger a signal only if the resulting set is different. It does not - * guarantee any order to the resulting set, only that it will be unique. - * - * Since: 1.0 - */ -void -modulemd_simpleset_set (ModulemdSimpleSet *self, gchar **set); - - -/** - * modulemd_simpleset_get: - * - * Retrieves the set as an array of strings - * - * Returns: (array zero-terminated=1) (transfer full): - * A list representing a set of string values. - * - * Since: 1.0 - */ -gchar ** -modulemd_simpleset_get (ModulemdSimpleSet *self); - - -/** - * modulemd_simpleset_dup: - * - * Retrieves the set as an array of strings - * - * Returns: (array zero-terminated=1) (transfer full): - * A list representing a set of string values. - * - * Since: 1.1 - */ -gchar ** -modulemd_simpleset_dup (ModulemdSimpleSet *self); - - -/** - * modulemd_simpleset_add - * @value: A new string to add to the set - * - * This routine will add a new value to the set if it is not already present. - * - * Since: 1.0 - */ -void -modulemd_simpleset_add (ModulemdSimpleSet *self, const gchar *value); - - -/** - * modulemd_simpleset_remove - * @value: A string to remove from the set - * - * This routine will remove a value from the set if it is present. - */ -void -modulemd_simpleset_remove (ModulemdSimpleSet *self, const gchar *value); - - -/** - * modulemd_simpleset_copy - * @dest: (out) (transfer full): A reference to the destination #ModulemdSimpleSet - * - * This function will copy the contents of this #ModulemdSimpleSet to @dest. - * If the dereferenced pointer is NULL, a new #ModulemdSimpleSet will be - * allocated. - * - * If the dereferenced pointer is not NULL, it will replace the contents of - * @dest. All existing values in the set will be freed. - * - * In either case, the caller is responsible for calling g_object_unref() - * later to free it. - * - * Since: 1.0 - */ -void -modulemd_simpleset_copy (ModulemdSimpleSet *self, ModulemdSimpleSet **dest); - - -/** - * modulemd_simpleset_is_equal: - * @other: A #ModulemdSimpleSet to compare against - * - * Returns: True if the sets contain the same strings. - * - * Since: 1.3 - */ -gboolean -modulemd_simpleset_is_equal (ModulemdSimpleSet *self, - ModulemdSimpleSet *other); - -/** - * SimpleSetValidationFn: - * @str: The current string being validated from the set - * - * This function is called once for each string in a #ModulemdSimpleSet - * when the validate_contents() routine is invoked. It must return TRUE - * if the string passes validation or FALSE if it does not. - * - * Since: 1.4 - */ -typedef gboolean (*ModulemdSimpleSetValidationFn) (const gchar *str); - -gboolean -modulemd_simpleset_validate_contents (ModulemdSimpleSet *self, - ModulemdSimpleSetValidationFn func, - GPtrArray **failures); - -G_END_DECLS - -#endif /* MODULEMD_SIMPLESET_H */ diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-subdocument.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-subdocument.h deleted file mode 100644 index bbf6932..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-subdocument.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#pragma once - - -#include - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-subdocument - * @title: Modulemd.Subdocument - * @short_description: Contains information about individual YAML subdocuments - * being parsed for modulemd information. - */ - -#define MODULEMD_TYPE_SUBDOCUMENT (modulemd_subdocument_get_type ()) - -G_DECLARE_FINAL_TYPE ( - ModulemdSubdocument, modulemd_subdocument, MODULEMD, SUBDOCUMENT, GObject) - - -/** - * modulemd_subdocument_new: - * - * Returns: (transfer full): A newly-allocated #ModulemdSubdocument. This object - * must be freed with g_object_unref(). - * - * Since: 1.4 - */ -ModulemdSubdocument * -modulemd_subdocument_new (void); - - -/** - * modulemd_subdocument_get_yaml: - * - * Returns: A string containing the YAML document - * - * Since: 1.4 - */ -const gchar * -modulemd_subdocument_get_yaml (ModulemdSubdocument *self); - - -/** - * modulemd_subdocument_get_gerror: - * - * Returns: The #GError associated with this subdocument - * - * Since: 1.4 - */ -const GError * -modulemd_subdocument_get_gerror (ModulemdSubdocument *self); - -G_END_DECLS diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-translation-entry.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-translation-entry.h deleted file mode 100644 index d50f732..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-translation-entry.h +++ /dev/null @@ -1,244 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#pragma once - -#include - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-translation-entry - * @title: Modulemd.TranslationEntry - * @short_description: Contains the translated strings for a particular module - * stream. - */ - - -#define MODULEMD_TYPE_TRANSLATION_ENTRY \ - (modulemd_translation_entry_get_type ()) - -G_DECLARE_FINAL_TYPE (ModulemdTranslationEntry, - modulemd_translation_entry, - MODULEMD, - TRANSLATION_ENTRY, - GObject) - -/** - * modulemd_translation_entry_new: - * @locale: (transfer none) (not nullable): The locale for this translation. It - * must correspond to the format specified by [libc locale names]( - * https://www.gnu.org/software/libc/manual/html_node/Locale-Names.html). - * - * Since: 1.6 - */ -ModulemdTranslationEntry * -modulemd_translation_entry_new (const gchar *locale); - - -/** - * modulemd_translation_entry_copy: - * - * Returns: (transfer full): A deep copy of this translation entry. This must be - * freed with g_object_unref(). - * - * Since: 1.6 - */ -ModulemdTranslationEntry * -modulemd_translation_entry_copy (ModulemdTranslationEntry *self); - - -/** - * modulemd_translation_entry_set_locale: - * @locale: (transfer none) (not nullable): The locale - * - * This function sets the locale for this translation. It must correspond to - * the format specified by [libc locale names]( - * https://www.gnu.org/software/libc/manual/html_node/Locale-Names.html). - * - * Since: 1.6 - */ -void -modulemd_translation_entry_set_locale (ModulemdTranslationEntry *self, - const gchar *locale); - -/** - * modulemd_translation_entry_get_locale: - * - * Get the locale of this entry. - * - * Returns: (transfer full): A string describing the locale of this entry, - * corresponding to [libc locale names]( - * https://www.gnu.org/software/libc/manual/html_node/Locale-Names.html). - * This string must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_translation_entry_get_locale (ModulemdTranslationEntry *self); - - -/** - * modulemd_translation_entry_peek_locale: (skip) - * - * Peek at the locale of this entry. - * - * Returns: (transfer none): A string describing the locale of this entry, - * corresponding to [libc locale names]( - * https://www.gnu.org/software/libc/manual/html_node/Locale-Names.html). - * This string must not be modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_translation_entry_peek_locale (ModulemdTranslationEntry *self); - - -/** - * modulemd_translation_entry_set_summary: - * @summary: (transfer none) (not nullable): The summary - * - * This function sets the translation of the summary of this module. - * - * Since: 1.6 - */ -void -modulemd_translation_entry_set_summary (ModulemdTranslationEntry *self, - const gchar *summary); - -/** - * modulemd_translation_entry_get_summary: - * - * Get the summary of this entry. - * - * Returns: (transfer full): A translation of the summary of the module - * appropriate to the locale. This string must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_translation_entry_get_summary (ModulemdTranslationEntry *self); - - -/** - * modulemd_translation_entry_peek_summary: (skip) - * - * Peek at the summary of this entry. - * - * Returns: (transfer none): A translation of the summary of the module - * appropriate to the locale. This string must not be modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_translation_entry_peek_summary (ModulemdTranslationEntry *self); - - -/** - * modulemd_translation_entry_set_description: - * @description: (transfer none) (not nullable): The description - * - * This function sets the translation of the description of this module. - * - * Since: 1.6 - */ -void -modulemd_translation_entry_set_description (ModulemdTranslationEntry *self, - const gchar *description); - -/** - * modulemd_translation_entry_get_description: - * - * Get the description of this entry. - * - * Returns: (transfer full): A translation of the module description, - * appropriate to the locale. This string must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_translation_entry_get_description (ModulemdTranslationEntry *self); - - -/** - * modulemd_translation_entry_peek_description: (skip) - * - * Peek at the description of this entry. - * - * Returns: (transfer none): A translation of the module description, - * appropriate to the locale. This string must not be modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_translation_entry_peek_description (ModulemdTranslationEntry *self); - - -/** - * modulemd_translation_entry_set_profile_description: - * @profile_name: (transfer none) (not nullable): The name of the stream profile - * @profile_description: (transfer none) (nullable): A translation of the - * profile description appropriate to the locale. If set to NULL, this will - * remove the profile description from this #ModulemdTranslationEntry. - * - * Since: 1.6 - */ -void -modulemd_translation_entry_set_profile_description ( - ModulemdTranslationEntry *self, - const gchar *profile_name, - const gchar *profile_description); - - -/** - * modulemd_translation_entry_get_profile_description: - * @profile_name: (transfer none) (not nullable): The name of the stream profile - * - * Returns: (transfer full): The translated description of the requested - * profile. This string must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_translation_entry_get_profile_description ( - ModulemdTranslationEntry *self, const gchar *profile_name); - - -/** - * modulemd_translation_entry_peek_profile_description: (skip) - * @profile_name: (transfer none) (not nullable): The name of the stream profile - * - * Returns: (transfer none): The translated description of the requested - * profile. This string must not be modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_translation_entry_peek_profile_description ( - ModulemdTranslationEntry *self, const gchar *profile_name); - - -/** - * modulemd_translation_entry_get_all_profile_descriptions: - * - * Returns: (transfer container) (element-type utf8 utf8): The complete set of - * profile descriptions, indexed by profile name. This must be freed with - * g_hash_table_unref(). - * - * Since: 1.6 - */ -GHashTable * -modulemd_translation_entry_get_all_profile_descriptions ( - ModulemdTranslationEntry *self); - -G_END_DECLS diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-translation.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-translation.h deleted file mode 100644 index 09af98b..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd-translation.h +++ /dev/null @@ -1,344 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#pragma once - -#include "modulemd-translation-entry.h" - -#include -#include - -G_BEGIN_DECLS - -/** - * SECTION: modulemd-translation - * @title: Modulemd.Translation - * @short_description: Translation information for a module stream - */ - -enum -{ - MD_TRANSLATION_VERSION_UNSET = 0, - - MD_TRANSLATION_VERSION_1 = 1, - - MD_TRANSLATION_VERSION_MAX = G_MAXUINT64 -}; - -#define MODULEMD_TRANSLATION_ERROR modulemd_translation_error_quark () -GQuark -modulemd_translation_error_quark (void); - -enum ModulemdTranslationError -{ - MODULEMD_TRANSLATION_ERROR_MISSING_CONTENT, -}; - -#define MD_TRANSLATION_VERSION_LATEST MD_TRANSLATION_VERSION_1 - -#define MODULEMD_TYPE_TRANSLATION (modulemd_translation_get_type ()) - -G_DECLARE_FINAL_TYPE ( - ModulemdTranslation, modulemd_translation, MODULEMD, TRANSLATION, GObject) - - -/** - * modulemd_translation_new: - * - * Creates a new, uninitialized #ModulemdTranslation object. Use - * .import_from_*() to initialize from an existing source. - * - * Since: 1.6 - */ -ModulemdTranslation * -modulemd_translation_new (void); - - -/** - * modulemd_translation_new_full: - * @module_name: (transfer none): The name of the module to which these - * translations apply. - * @module_stream: (transfer none): The name of the stream to which these - * translations apply. - * @mdversion: The metadata version of the document. - * @modified: The last modified time represented as a 64-bit integer (such as - * 201807011200) - * - * Creates a new #ModulemdTranslation object and initializes its basic - * information. - * - * Since: 1.6 - */ -ModulemdTranslation * -modulemd_translation_new_full (const gchar *module_name, - const gchar *module_stream, - guint64 mdversion, - guint64 modified); - -/** - * modulemd_translation_copy: - * - * Make a deep copy of a #ModulemdTranslation. - * - * Returns: (transfer full): A newly-allocated #ModulemdTranslation identical to - * the one passed in. This object must be freed with g_object_unref() - * - * Since: 1.6 - */ -ModulemdTranslation * -modulemd_translation_copy (ModulemdTranslation *self); - - -/** - * modulemd_translation_import_from_file: - * @yaml_file: (transfer none) (not nullable): The path to a YAML file that - * contains one modulemd-translations subdocument. - * - * Returns: TRUE if the YAML document was a valid modulemd-translations document - * and populates @self with its contents. If any error occurs, @error is set - * appropriately and the function returns FALSE. - * - * Since: 1.6 - */ -gboolean -modulemd_translation_import_from_file (ModulemdTranslation *self, - const gchar *yaml_file, - GError **error); - - -/** - * modulemd_translation_import_from_string: - * @yaml: (transfer none) (not nullable): A string that contains one - * modulemd-translations YAML subdocument. - * - * Returns: TRUE if the YAML document was a valid modulemd-translations document - * and populates @self with its contents. If any error occurs, @error is set - * appropriately and the function returns FALSE. - * - * Since: 1.6 - */ -gboolean -modulemd_translation_import_from_string (ModulemdTranslation *self, - const gchar *yaml, - GError **error); - - -/** - * modulemd_translation_import_from_stream: - * @yaml_stream: (transfer none) (not nullable): A YAML stream that contains one - * modulemd-translations YAML subdocument. - * - * Returns: TRUE if the YAML document was a valid modulemd-translations document - * and populates @self with its contents. If any error occurs, @error is set - * appropriately and the function returns FALSE. - * - * Since: 1.6 - */ -gboolean -modulemd_translation_import_from_stream (ModulemdTranslation *self, - FILE *yaml_stream, - GError **error); - - -/** - * modulemd_translation_dump: - * @yaml_file: A string containing the path to the output file - * - * Writes this module stream translation out to a YAML document on disk. - * - * Returns: False if the file could not be written and sets @error. - * - * Since: 1.6 - */ -gboolean -modulemd_translation_dump (ModulemdTranslation *self, - const gchar *yaml_file, - GError **error); - - -/** - * modulemd_translation_dumps: - * - * Writes this module out to a YAML document string. - * - * Returns: (transfer full): The serialized YAML representation of this module - * stream translation or NULL and sets @error appropriately. The returned string - * must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_translation_dumps (ModulemdTranslation *self, GError **error); - - -/** - * modulemd_translation_set_mdversion: - * @version: The version of the modulemd-translation format in use - * - * Since: 1.6 - */ -void -modulemd_translation_set_mdversion (ModulemdTranslation *self, - guint64 version); - - -/** - * modulemd_translation_get_mdversion: - * - * Returns: The version of the modulemd-translation format in use - * - * Since: 1.6 - */ -guint64 -modulemd_translation_get_mdversion (ModulemdTranslation *self); - - -/** - * modulemd_translation_set_module_name: - * @module_name: (transfer none) (not nullable): The module name to which these - * translations apply. - * - * Since: 1.6 - */ -void -modulemd_translation_set_module_name (ModulemdTranslation *self, - const gchar *module_name); - - -/** - * modulemd_translation_get_module_name: - * - * Returns: (transfer full): The name of the module to which these translations - * apply. This string must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_translation_get_module_name (ModulemdTranslation *self); - - -/** - * modulemd_translation_peek_module_name: (skip) - * - * Returns: (transfer none): The name of the module to which these translations - * apply. This string must not be modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_translation_peek_module_name (ModulemdTranslation *self); - - -/** - * modulemd_translation_set_module_stream: - * @module_stream: (transfer none) (not nullable): The module stream to which - * these translations apply. - * - * Since: 1.6 - */ -void -modulemd_translation_set_module_stream (ModulemdTranslation *self, - const gchar *module_stream); - - -/** - * modulemd_translation_get_module_stream: - * - * Returns: (transfer full): The name of the module stream to which these - * translations apply. This string must be freed with g_free(). - * - * Since: 1.6 - */ -gchar * -modulemd_translation_get_module_stream (ModulemdTranslation *self); - - -/** - * modulemd_translation_peek_module_stream: (skip) - * - * Returns: (transfer none): The name of the module stream to which these - * translations apply. This string must not be modified or freed. - * - * Since: 1.6 - */ -const gchar * -modulemd_translation_peek_module_stream (ModulemdTranslation *self); - - -/** - * modulemd_translation_set_modified: - * @modified: A 64-bit unsigned integer. Use YYYYMMDDHHMM to easily identify the - * last modification time. Use UTC for consistency. - * When merging, entries with a newer 'modified' value will override any - * earlier values. - * - * Since: 1.6 - */ -void -modulemd_translation_set_modified (ModulemdTranslation *self, - guint64 modified); - - -/** - * modulemd_translation_get_modified: - * - * Returns: A 64-bit unsigned integer representing the last modified time. - * - * Since: 1.6 - */ -guint64 -modulemd_translation_get_modified (ModulemdTranslation *self); - - -/** - * modulemd_translation_add_entry: - * @entry: (transfer none) (not nullable): A set of translations of this module - * stream for a particular language. - * - * Since: 1.6 - */ -void -modulemd_translation_add_entry (ModulemdTranslation *self, - ModulemdTranslationEntry *entry); - - -/** - * modulemd_translation_get_entry_by_locale: - * @locale: (transfer none) (not nullable): The locale of the translation to - * retrieve. It must correspond to the format specified by [libc locale names]( - * https://www.gnu.org/software/libc/manual/html_node/Locale-Names.html). - * - * Returns: (transfer full): A #ModulemdTranslationEntry containing the - * translations for the requested locale. This object must be freed with - * g_object_unref(). - * - * Since: 1.6 - */ -ModulemdTranslationEntry * -modulemd_translation_get_entry_by_locale (ModulemdTranslation *self, - const gchar *locale); - - -/** - * modulemd_translation_get_locales: - * - * Returns: (transfer container) (element-type utf8): A sorted list of locales - * known to this #ModulemdTranslation. - * - * Since: 1.6 - */ -GPtrArray * -modulemd_translation_get_locales (ModulemdTranslation *self); - - -G_END_DECLS diff --git a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd.h b/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd.h deleted file mode 100644 index 2431fca..0000000 --- a/modulemd-1.8.16/modulemd/include/modulemd-1.0/modulemd.h +++ /dev/null @@ -1,364 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#ifndef MODULEMD_H -#define MODULEMD_H - -/** - * SECTION: modulemd - * @title: Modulemd - * @short_description: Functions for managing Module Metadata - */ - - -#include -#include -#include - -#include "modulemd-buildopts.h" -#include "modulemd-component.h" -#include "modulemd-component-module.h" -#include "modulemd-component-rpm.h" -#include "modulemd-defaults.h" -#include "modulemd-dependencies.h" -#include "modulemd-deprecated.h" -#include "modulemd-improvedmodule.h" -#include "modulemd-intent.h" -#include "modulemd-module.h" -#include "modulemd-modulestream.h" -#include "modulemd-prioritizer.h" -#include "modulemd-profile.h" -#include "modulemd-simpleset.h" -#include "modulemd-servicelevel.h" -#include "modulemd-subdocument.h" -#include "modulemd-translation.h" -#include "modulemd-translation-entry.h" - -G_BEGIN_DECLS - -/** - * modulemd_get_version: - * - * Returns: The version of libmodulemd. - * - * Since: 1.5 - */ -const gchar * -modulemd_get_version (void); - - -/** - * modulemd_objects_from_file: - * @yaml_file: A YAML file containing the module metadata and other related - * information such as default streams. - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Allocates a #GPtrArray of various supported subdocuments from a file. - * - * Returns: (array zero-terminated=1) (element-type GObject) (transfer container): - * A #GPtrArray of various supported subdocuments from a YAML file. These - * subdocuments will all be GObjects and their type can be identified with - * G_OBJECT_TYPE(object) - * - * Since: 1.2 - */ -GPtrArray * -modulemd_objects_from_file (const gchar *yaml_file, GError **error); - - -/** - * modulemd_objects_from_file_ext: - * @yaml_file: A YAML file containing the module metadata and other related - * information such as default streams. - * @failures: (element-type ModulemdSubdocument) (transfer container) (out): - * An array containing any subdocuments from the YAML file that failed to - * parse. This must be freed with g_ptr_array_unref(). - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Allocates a #GPtrArray of various supported subdocuments from a file. - * - * Returns: (array zero-terminated=1) (element-type GObject) (transfer container): - * A #GPtrArray of various supported subdocuments from a YAML file. These - * subdocuments will all be GObjects and their type can be identified with - * G_OBJECT_TYPE(object). This array must be freed with g_ptr_array_unref(). - * - * Since: 1.4 - */ -GPtrArray * -modulemd_objects_from_file_ext (const gchar *yaml_file, - GPtrArray **failures, - GError **error); - - -/** - * modulemd_index_from_file: - * @yaml_file: A YAML file containing the module metadata and other related - * information such as default streams. - * @failures: (element-type ModulemdSubdocument) (transfer container) (out): - * An array containing any subdocuments from the YAML file that failed to - * parse. This must be freed with g_ptr_array_unref(). - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Allocates a #GHashTable of module data from a file. - * - * Returns: (element-type utf8 ModulemdImprovedModule) (transfer container): - * A #GHashTable containing all of the subdocuments from a YAML file, indexed - * by module name. This hash table must be freed with g_hash_table_unref(). - * - * Since: 1.6 - */ -GHashTable * -modulemd_index_from_file (const gchar *yaml_file, - GPtrArray **failures, - GError **error); - - -/** - * modulemd_objects_from_string: - * @yaml_string: A YAML string containing the module metadata and other related - * information such as default streams. - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Allocates a #GPtrArray of various supported subdocuments from a file. - * - * Returns: (array zero-terminated=1) (element-type GObject) (transfer container): - * A #GPtrArray of various supported subdocuments from a YAML file. These - * subdocuments will all be GObjects and their type can be identified with - * G_OBJECT_TYPE(object) - * - * Since: 1.2 - */ -GPtrArray * -modulemd_objects_from_string (const gchar *yaml_string, GError **error); - - -/** - * modulemd_objects_from_string_ext: - * @yaml_string: A YAML string containing the module metadata and other related - * information such as default streams. - * @failures: (element-type ModulemdSubdocument) (transfer container) (out): - * An array containing any subdocuments from the YAML file that failed to - * parse. This must be freed with g_ptr_array_unref(). - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Allocates a #GPtrArray of various supported subdocuments from a file. - * - * Returns: (array zero-terminated=1) (element-type GObject) (transfer container): - * A #GPtrArray of various supported subdocuments from a YAML file. These - * subdocuments will all be GObjects and their type can be identified with - * G_OBJECT_TYPE(object) - * - * Since: 1.4 - */ -GPtrArray * -modulemd_objects_from_string_ext (const gchar *yaml_string, - GPtrArray **failures, - GError **error); - - -/** - * modulemd_index_from_string: - * @yaml_string: A YAML string containing the module metadata and other related - * information such as default streams. - * @failures: (element-type ModulemdSubdocument) (transfer container) (out): - * An array containing any subdocuments from the YAML string that failed to - * parse. This must be freed with g_ptr_array_unref(). - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Allocates a #GHashTable of module data from a string. - * - * Returns: (element-type utf8 ModulemdImprovedModule) (transfer container): - * A #GHashTable containing all of the subdocuments from a YAML file, indexed - * by module name. This hash table must be freed with g_hash_table_unref(). - * - * Since: 1.6 - */ -GHashTable * -modulemd_index_from_string (const gchar *yaml_string, - GPtrArray **failures, - GError **error); - - -/** - * modulemd_objects_from_stream: - * @stream: A YAML stream containing the module metadata and other related - * information such as default streams. - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Allocates a #GPtrArray of various supported subdocuments from a file. - * - * Returns: (array zero-terminated=1) (element-type GObject) (transfer container): - * A #GPtrArray of various supported subdocuments from a YAML file. These - * subdocuments will all be GObjects and their type can be identified with - * G_OBJECT_TYPE(object) - * - * Since: 1.4 - */ -GPtrArray * -modulemd_objects_from_stream (FILE *stream, GError **error); - - -/** - * modulemd_objects_from_stream_ext: - * @stream: A YAML stream containing the module metadata and other related - * information such as default streams. - * @failures: (element-type ModulemdSubdocument) (transfer container) (out): - * An array containing any subdocuments from the YAML file that failed to - * parse. This must be freed with g_ptr_array_unref(). - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Allocates a #GPtrArray of various supported subdocuments from a file. - * - * Returns: (array zero-terminated=1) (element-type GObject) (transfer container): - * A #GPtrArray of various supported subdocuments from a YAML file. These - * subdocuments will all be GObjects and their type can be identified with - * G_OBJECT_TYPE(object) - * - * Since: 1.4 - */ -GPtrArray * -modulemd_objects_from_stream_ext (FILE *stream, - GPtrArray **failures, - GError **error); - - -/** - * modulemd_index_from_stream: - * @yaml_stream: A YAML stream containing the module metadata and other related - * information such as default streams. - * @failures: (element-type ModulemdSubdocument) (transfer container) (out): - * An array containing any subdocuments from the YAML stream that failed to - * parse. This must be freed with g_ptr_array_unref(). - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Allocates a #GHashTable of module data from a stream. - * - * Returns: (element-type utf8 ModulemdImprovedModule) (transfer container): - * A #GHashTable containing all of the subdocuments from a YAML file, indexed - * by module name. This hash table must be freed with g_hash_table_unref(). - * - * Since: 1.6 - */ -GHashTable * -modulemd_index_from_stream (FILE *yaml_stream, - GPtrArray **failures, - GError **error); - - -/** - * modulemd_dump_index: - * @index: (element-type utf8 ModulemdImprovedModule) (transfer none): The index - * of #ModulemdImprovedModule objects to dump to a YAML file. - * @yaml_file: (transfer none): The path to the file that should contain the - * resulting YAML. - * - * Returns: TRUE if the file was written successfully. In the event of an error, - * sets @error appropriately and returns FALSE. - * - * Since: 1.6 - */ -gboolean -modulemd_dump_index (GHashTable *index, - const gchar *yaml_file, - GError **error); - - -/** - * modulemd_dumps_index: - * @index: (element-type utf8 ModulemdImprovedModule) (transfer none): The index - * of #ModulemdImprovedModule objects to dump to a string. - * - * Returns: A YAML representation of the index as a string, which must be freed - * with g_free(). In the event of an error, sets @error appropriately and - * returns NULL. - * - * Since: 1.6 - */ -gchar * -modulemd_dumps_index (GHashTable *index, GError **error); - - -/** - * modulemd_dump: - * @objects: (array zero-terminated=1) (element-type GObject): A #GPtrArray of - * modulemd or related objects to dump to YAML. - * @yaml_file: The path to the file that should contain the resulting YAML - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Creates a file containing a series of YAML subdocuments, one per object - * passed in. - * - * Since: 1.2 - */ -void -modulemd_dump (GPtrArray *objects, const gchar *yaml_file, GError **error); - - -/** - * modulemd_dumps: - * @objects: (array zero-terminated=1) (element-type GObject): A #GPtrArray of - * modulemd or related objects to dump to YAML. - * @error: (out): A #GError containing additional information if this function - * fails. - * - * Creates a string containing a series of YAML subdocuments, one per object - * passed in. This string must be freed with g_free() when no longer needed. - * - * Since: 1.2 - */ -gchar * -modulemd_dumps (GPtrArray *objects, GError **error); - - -/** - * modulemd_merge_defaults: - * @first: (array zero-terminated=1) (element-type GObject): A #GPtrArray of - * modulemd-related objects. - * @second: (array zero-terminated=1) (element-type GObject) (nullable): - * Optional. A #GPtrArray of modulemd-related objects to be merged into the - * first list. - * @override: Whether entries in @second should override those of @first in the - * event of a conflict or whether they should attempt to merge instead. - * - * This function will process the lists of objects, merging duplicated - * modulemd-defaults objects as needed. If the object lists have different - * priorities, the conflicting values will be replaced by the ones from the - * higher-priority list rather than merged. - * - * This function will return an error if the merge cannot be completed safely. - * - * Returns: (element-type GObject) (transfer container): A list of - * module-related objects with defaults deduplicated and merged. This array is - * newly-allocated and must be freed with g_ptr_array_unref(). - * - * Since: 1.3 - */ -GPtrArray * -modulemd_merge_defaults (const GPtrArray *first, - const GPtrArray *second, - gboolean override, - GError **error); - -G_END_DECLS - -#endif /* MODULEMD_H */ diff --git a/modulemd-1.8.16/modulemd/include/private/modulemd-improvedmodule-private.h b/modulemd-1.8.16/modulemd/include/private/modulemd-improvedmodule-private.h deleted file mode 100644 index 21f7e11..0000000 --- a/modulemd-1.8.16/modulemd/include/private/modulemd-improvedmodule-private.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#pragma once - -#include "modulemd.h" -#include "modulemd-improvedmodule.h" - -GPtrArray * -modulemd_improvedmodule_serialize (ModulemdImprovedModule *self); diff --git a/modulemd-1.8.16/modulemd/include/private/modulemd-private.h b/modulemd-1.8.16/modulemd/include/private/modulemd-private.h deleted file mode 100644 index e9a785a..0000000 --- a/modulemd-1.8.16/modulemd/include/private/modulemd-private.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#pragma once -#include "modulemd.h" - -enum -{ - MD_VERSION_UNSET = 0, - - MD_VERSION_1 = 1, - MD_VERSION_2 = 2, - - MD_VERSION_MAX = G_MAXUINT64 -}; - -#define MD_VERSION_LATEST MD_VERSION_2 - -#define DEFAULT_MERGE_CONFLICT "__merge_conflict__" - -ModulemdModule * -modulemd_module_new_from_modulestream (ModulemdModuleStream *stream); - -ModulemdModuleStream * -modulemd_module_peek_modulestream (ModulemdModule *self); diff --git a/modulemd-1.8.16/modulemd/include/private/modulemd-profile-private.h b/modulemd-1.8.16/modulemd/include/private/modulemd-profile-private.h deleted file mode 100644 index 8f7c20a..0000000 --- a/modulemd-1.8.16/modulemd/include/private/modulemd-profile-private.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#pragma once - - -#include "modulemd.h" -#include "modulemd-profile.h" -#include - -G_BEGIN_DECLS - -void -modulemd_profile_associate_translation (ModulemdProfile *self, - ModulemdTranslation *translation); - -G_END_DECLS diff --git a/modulemd-1.8.16/modulemd/include/private/modulemd-subdocument-private.h b/modulemd-1.8.16/modulemd/include/private/modulemd-subdocument-private.h deleted file mode 100644 index 4e7c5c5..0000000 --- a/modulemd-1.8.16/modulemd/include/private/modulemd-subdocument-private.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - - -/* - * This header includes functions for this object that should be considered - * internal to libmodulemd - */ - -#pragma once - -#include "modulemd.h" -#include - -G_BEGIN_DECLS - -void -modulemd_subdocument_set_doctype (ModulemdSubdocument *self, const GType type); - - -/** - * modulemd_subdocument_get_doctype: - * - * Returns: A #GType of the GObject that represents this subdocument - * - * Since: 1.4 - */ -const GType -modulemd_subdocument_get_doctype (ModulemdSubdocument *self); - - -void -modulemd_subdocument_set_version (ModulemdSubdocument *self, - const guint64 version); - - -/** - * modulemd_subdocument_get_version: - * - * Returns: A 64-bit integer describing the document version - * - * Since: 1.4 - */ -guint64 -modulemd_subdocument_get_version (ModulemdSubdocument *self); - -void -modulemd_subdocument_set_yaml (ModulemdSubdocument *self, const gchar *yaml); - -void -modulemd_subdocument_set_gerror (ModulemdSubdocument *self, - const GError *gerror); - -G_END_DECLS diff --git a/modulemd-1.8.16/modulemd/include/private/modulemd-util.h b/modulemd-1.8.16/modulemd/include/private/modulemd-util.h deleted file mode 100644 index ec32f1e..0000000 --- a/modulemd-1.8.16/modulemd/include/private/modulemd-util.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#ifndef MODULEMD_UTIL_H -#define MODULEMD_UTIL_H - -#include "modulemd.h" -#include "glib.h" - -G_BEGIN_DECLS - -#define MODULEMD_ERROR modulemd_error_quark () -GQuark -modulemd_error_quark (void); - -enum ModulemdError -{ - MODULEMD_ERROR_PROGRAMMING, - MODULEMD_ERROR_MISSING_CONTENT -}; - -GHashTable * -_modulemd_hash_table_deep_str_copy (GHashTable *orig); - -GHashTable * -_modulemd_hash_table_deep_obj_copy (GHashTable *orig); - -GHashTable * -_modulemd_hash_table_deep_variant_copy (GHashTable *orig); - -gint -_modulemd_strcmp_sort (gconstpointer a, gconstpointer b); - -GPtrArray * -_modulemd_ordered_str_keys (GHashTable *htable, GCompareFunc compare_func); - -GList * -_modulemd_ordered_int64_keys (GHashTable *htable); - -void -modulemd_variant_unref (void *ptr); - -gboolean -modulemd_validate_nevra (const gchar *nevra); - - -typedef struct _modulemd_tracer -{ - gchar *function_name; -} modulemd_tracer; - -modulemd_tracer * -modulemd_trace_init (const gchar *function_name); - -void -modulemd_trace_free (modulemd_tracer *tracer); - -G_DEFINE_AUTOPTR_CLEANUP_FUNC (modulemd_tracer, modulemd_trace_free); - -#define MODULEMD_INIT_TRACE \ - g_autoptr (modulemd_tracer) tracer = modulemd_trace_init (__func__); \ - do \ - { \ - (void)(tracer); \ - } \ - while (0); - - -GPtrArray * -_modulemd_index_serialize (GHashTable *index, GError **error); - - -ModulemdTranslationEntry * -_get_locale_entry (ModulemdTranslation *translation, const gchar *_locale); - - -GHashTable * -module_index_from_data (GPtrArray *data, GError **error); - - -G_END_DECLS - -#endif /* MODULEMD_UTIL_H */ diff --git a/modulemd-1.8.16/modulemd/include/private/modulemd-yaml.h b/modulemd-1.8.16/modulemd/include/private/modulemd-yaml.h deleted file mode 100644 index 5886dbb..0000000 --- a/modulemd-1.8.16/modulemd/include/private/modulemd-yaml.h +++ /dev/null @@ -1,498 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#ifndef MODULEMD_YAML_H -#define MODULEMD_YAML_H - -#include "modulemd.h" -#include -#include - -G_BEGIN_DECLS - -#define MODULEMD_YAML_ERROR modulemd_yaml_error_quark () -GQuark -modulemd_yaml_error_quark (void); - -enum ModulemdYamlError -{ - MODULEMD_YAML_ERROR_OPEN, - MODULEMD_YAML_ERROR_PROGRAMMING, - MODULEMD_YAML_ERROR_UNPARSEABLE, - MODULEMD_YAML_ERROR_PARSE, - MODULEMD_YAML_ERROR_EMIT, - MODULEMD_YAML_ERROR_MISSING_REQUIRED -}; - -const gchar * -mmd_yaml_get_event_name (yaml_event_type_t type); - -typedef gboolean (*ModulemdParsingFunc) (yaml_parser_t *parser, - GObject **object, - guint64 version, - GError **error); - -#define YAML_PARSER_PARSE_WITH_ERROR_RETURN(parser, event, _error, ...) \ - do \ - { \ - if (!yaml_parser_parse (parser, event)) \ - { \ - g_debug (__VA_ARGS__); \ - g_set_error (_error, \ - MODULEMD_YAML_ERROR, \ - MODULEMD_YAML_ERROR_UNPARSEABLE, \ - __VA_ARGS__); \ - result = FALSE; \ - goto error; \ - } \ - g_debug ("Parser event: %s (%zu/%zu)", \ - mmd_yaml_get_event_name ((event)->type), \ - (event)->start_mark.line, \ - (event)->start_mark.column); \ - } \ - while (0) - -#define YAML_PARSER_PARSE_WITH_EXIT(parser, event, _error) \ - do \ - { \ - if (!yaml_parser_parse (parser, event)) \ - { \ - g_debug ("Parser error"); \ - g_set_error_literal (_error, \ - MODULEMD_YAML_ERROR, \ - MODULEMD_YAML_ERROR_UNPARSEABLE, \ - "Parser error"); \ - return FALSE; \ - } \ - g_debug ("Parser event: %s", mmd_yaml_get_event_name ((event)->type)); \ - } \ - while (0) - -#define MMD_YAML_ERROR_RETURN_RETHROW(_error, ...) \ - do \ - { \ - g_debug (__VA_ARGS__); \ - result = FALSE; \ - goto error; \ - } \ - while (0) - -#define MMD_YAML_ERROR_EVENT_RETURN_RETHROW(_error, event, ...) \ - do \ - { \ - g_autofree gchar *formatted = g_strdup_printf (__VA_ARGS__); \ - g_debug ("%s [line %zu col %zu]", \ - formatted, \ - event.start_mark.line + 1, \ - event.start_mark.column + 1); \ - goto error; \ - } \ - while (0) - -#define MMD_ERROR_RETURN_FULL(_error, type, ...) \ - do \ - { \ - g_debug (__VA_ARGS__); \ - g_set_error (_error, MODULEMD_YAML_ERROR, type, __VA_ARGS__); \ - result = FALSE; \ - goto error; \ - } \ - while (0) - -#define MMD_YAML_ERROR_RETURN(_error, ...) \ - do \ - { \ - g_debug (__VA_ARGS__); \ - g_set_error ( \ - _error, MODULEMD_YAML_ERROR, MODULEMD_YAML_ERROR_PARSE, __VA_ARGS__); \ - result = FALSE; \ - goto error; \ - } \ - while (0) - -#define MMD_YAML_ERROR_EVENT_RETURN(_error, event, ...) \ - do \ - { \ - g_autofree gchar *formatted = g_strdup_printf (__VA_ARGS__); \ - g_autofree gchar *formatted2 = \ - g_strdup_printf ("%s [line %zu col %zu]", \ - formatted, \ - event.start_mark.line + 1, \ - event.start_mark.column + 1); \ - g_debug ("%s", formatted2); \ - g_set_error (_error, \ - MODULEMD_YAML_ERROR, \ - MODULEMD_YAML_ERROR_PARSE, \ - "%s", \ - formatted2); \ - result = FALSE; \ - goto error; \ - } \ - while (0) - -#define YAML_EMITTER_EMIT_WITH_ERROR_RETURN(emitter, event, _error, ...) \ - do \ - { \ - if (!yaml_emitter_emit (emitter, event)) \ - { \ - g_autofree gchar *formatted = g_strdup_printf (__VA_ARGS__); \ - g_debug ("Error: %s - event type: %s [line %zu col %zu]", \ - formatted, \ - mmd_yaml_get_event_name ((event)->type), \ - (event)->start_mark.line + 1, \ - (event)->start_mark.column + 1); \ - g_set_error_literal (_error, \ - MODULEMD_YAML_ERROR, \ - MODULEMD_YAML_ERROR_EMIT, \ - formatted); \ - result = FALSE; \ - goto error; \ - } \ - g_debug ("Emitter event: %s", mmd_yaml_get_event_name ((event)->type)); \ - } \ - while (0) - -#define MMD_EMIT_WITH_EXIT(emitter, event, _error, ...) \ - do \ - { \ - int _ret; \ - g_debug ("Emitter event: %s", mmd_yaml_get_event_name ((event)->type)); \ - _ret = yaml_emitter_emit (emitter, event); \ - (event)->type = 0; \ - if (!_ret) \ - { \ - g_debug (__VA_ARGS__); \ - g_set_error (_error, \ - MODULEMD_YAML_ERROR, \ - MODULEMD_YAML_ERROR_EMIT, \ - __VA_ARGS__); \ - return FALSE; \ - } \ - } \ - while (0) - -#define MMD_YAML_EMITTER_ERROR_RETURN(_error, ...) \ - do \ - { \ - g_debug (__VA_ARGS__); \ - g_set_error ( \ - _error, MODULEMD_YAML_ERROR, MODULEMD_YAML_ERROR_EMIT, __VA_ARGS__); \ - result = FALSE; \ - goto error; \ - } \ - while (0) - -#define MMD_YAML_EMITTER_ERROR_EVENT_RETURN(_error, event, ...) \ - do \ - { \ - g_autofree gchar *formatted = \ - g_strdup_printf ("%s [line %zu col %zu]", \ - __VA_ARGS__, \ - event.start_mark.line + 1, \ - event.start_mark.column + 1); \ - g_debug (formatted); \ - g_set_error ( \ - _error, MODULEMD_YAML_ERROR, MODULEMD_YAML_ERROR_EMIT, formatted); \ - result = FALSE; \ - goto error; \ - } \ - while (0) - -#define MMD_YAML_EMIT_SCALAR(event, scalar, style) \ - do \ - { \ - yaml_scalar_event_initialize (event, \ - NULL, \ - NULL, \ - (yaml_char_t *)scalar, \ - (int)strlen (scalar), \ - 1, \ - 1, \ - style); \ - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( \ - emitter, event, error, "Error writing scalar"); \ - g_clear_pointer (&scalar, g_free); \ - } \ - while (0) - -#define MMD_EMIT_SCALAR(event, scalar, style) \ - do \ - { \ - yaml_scalar_event_initialize (event, \ - NULL, \ - NULL, \ - (yaml_char_t *)scalar, \ - (int)strlen (scalar), \ - 1, \ - 1, \ - style); \ - MMD_EMIT_WITH_EXIT ( \ - emitter, event, error, "Error writing scalar \"%s\"", scalar); \ - g_clear_pointer (&scalar, g_free); \ - } \ - while (0) - -#define MMD_YAML_EMIT_STR_STR_DICT(event, name, value, style) \ - do \ - { \ - yaml_scalar_event_initialize (event, \ - NULL, \ - NULL, \ - (yaml_char_t *)name, \ - (int)strlen (name), \ - 1, \ - 1, \ - YAML_PLAIN_SCALAR_STYLE); \ - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( \ - emitter, event, error, "Error writing name"); \ - g_clear_pointer (&name, g_free); \ - \ - yaml_scalar_event_initialize (event, \ - NULL, \ - NULL, \ - (yaml_char_t *)value, \ - (int)strlen (value), \ - 1, \ - 1, \ - style); \ - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( \ - emitter, event, error, "Error writing value"); \ - g_clear_pointer (&value, g_free); \ - } \ - while (0) - -#define MMD_EMIT_STR_STR_DICT(event, _name, _value, style) \ - do \ - { \ - yaml_scalar_event_initialize (event, \ - NULL, \ - NULL, \ - (yaml_char_t *)_name, \ - (int)strlen (_name), \ - 1, \ - 1, \ - YAML_PLAIN_SCALAR_STYLE); \ - MMD_EMIT_WITH_EXIT (emitter, event, error, "Error writing name"); \ - g_clear_pointer (&_name, g_free); \ - \ - yaml_scalar_event_initialize (event, \ - NULL, \ - NULL, \ - (yaml_char_t *)_value, \ - (int)strlen (_value), \ - 1, \ - 1, \ - style); \ - MMD_EMIT_WITH_EXIT (emitter, event, error, "Error writing value"); \ - g_clear_pointer (&_value, g_free); \ - } \ - while (0) - -#define MMD_YAML_NOEVENT_ERROR_RETURN(_error, ...) \ - do \ - { \ - g_debug (__VA_ARGS__); \ - g_set_error ( \ - _error, MODULEMD_YAML_ERROR, MODULEMD_YAML_ERROR_PARSE, __VA_ARGS__); \ - result = FALSE; \ - goto error; \ - } \ - while (0) - -#define MMD_YAML_SET_ERROR(_error, ...) \ - do \ - { \ - g_debug (__VA_ARGS__); \ - g_set_error ( \ - _error, MODULEMD_YAML_ERROR, MODULEMD_YAML_ERROR_PARSE, __VA_ARGS__); \ - } \ - while (0) - -#define MMD_EMITTER_SET_ERROR(_error, ...) \ - do \ - { \ - g_debug (__VA_ARGS__); \ - g_set_error ( \ - _error, MODULEMD_YAML_ERROR, MODULEMD_YAML_ERROR_EMIT, __VA_ARGS__); \ - } \ - while (0) - -ModulemdModule ** -mmd_yaml_dup_modules (GPtrArray *objects); - -GPtrArray * -mmd_yaml_convert_modulestreams (GPtrArray *objects); - -gboolean -parse_yaml_file (const gchar *path, - GPtrArray **data, - GPtrArray **failures, - GError **error); - -GHashTable * -parse_module_index_from_file (const gchar *path, - GPtrArray **failures, - GError **error); - -gboolean -parse_yaml_string (const gchar *yaml, - GPtrArray **data, - GPtrArray **failures, - GError **error); - -GHashTable * -parse_module_index_from_string (const gchar *yaml, - GPtrArray **failures, - GError **error); - -gboolean -parse_yaml_stream (FILE *stream, - GPtrArray **data, - GPtrArray **failures, - GError **error); - -GHashTable * -parse_module_index_from_stream (FILE *iostream, - GPtrArray **failures, - GError **error); - - -gboolean -emit_yaml_file (GPtrArray *objects, const gchar *path, GError **error); - -gboolean -emit_yaml_string (GPtrArray *objects, gchar **_yaml, GError **error); - -typedef struct _modulemd_yaml_string -{ - char *str; - size_t len; -} modulemd_yaml_string; - -int -_write_yaml_string (void *data, unsigned char *buffer, size_t size); - -void -modulemd_yaml_string_free (modulemd_yaml_string *yaml_string); - -G_DEFINE_AUTOPTR_CLEANUP_FUNC (FILE, fclose); - -G_DEFINE_AUTOPTR_CLEANUP_FUNC (modulemd_yaml_string, - modulemd_yaml_string_free); - -G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (yaml_event_t, yaml_event_delete); - -G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (yaml_parser_t, yaml_parser_delete); - -G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (yaml_emitter_t, yaml_emitter_delete); - -#define MMD_INIT_YAML_EVENT(_event) \ - g_auto (yaml_event_t) _event; \ - memset (&(_event), 0, sizeof (yaml_event_t)); - -gboolean -parse_raw_yaml_mapping (yaml_parser_t *parser, - GVariant **variant, - GError **error); - -gboolean -parse_raw_yaml_sequence (yaml_parser_t *parser, - GVariant **variant, - GError **error); - -gboolean -skip_unknown_yaml (yaml_parser_t *parser, GError **error); - -gboolean -emit_yaml_variant (yaml_emitter_t *emitter, GVariant *variant, GError **error); - -/* == Common Parsing Functions == */ - -gboolean -_parse_modulemd_date (yaml_parser_t *parser, GDate **_date, GError **error); - -gboolean -_simpleset_from_sequence (yaml_parser_t *parser, - ModulemdSimpleSet **_set, - GError **error); - -gboolean -_hashtable_from_mapping (yaml_parser_t *parser, - GHashTable **_htable, - GError **error); - -gboolean -_parse_skip (yaml_parser_t *parser, GError **error); - - -gboolean -_emit_modulemd_simpleset (yaml_emitter_t *emitter, - ModulemdSimpleSet *set, - yaml_sequence_style_t style, - GError **error); - -gboolean -_emit_modulemd_hashtable (yaml_emitter_t *emitter, - GHashTable *htable, - yaml_scalar_style_t style, - GError **error); -gboolean -_emit_modulemd_variant_hashtable (yaml_emitter_t *emitter, - GHashTable *htable, - GError **error); - - -/* == ModulemdModule Parser == */ - -gboolean -_parse_module_stream (yaml_parser_t *parser, - GObject **object, - guint64 version, - GError **error); - -/* == ModulemdDefaults Parser == */ -gboolean -_parse_defaults (yaml_parser_t *parser, - GObject **object, - guint64 version, - GError **error); - -/* == ModulemdTranslation Parser == */ -gboolean -_parse_translation (yaml_parser_t *parser, - GObject **object, - guint64 version, - GError **error); - -/* == ModulemdModule Emitter == */ -gboolean -_emit_modulestream (yaml_emitter_t *emitter, - ModulemdModuleStream *module, - GError **error); - - -/* == ModulemdDefaults Emitter == */ -gboolean -_emit_defaults (yaml_emitter_t *emitter, - ModulemdDefaults *defaults, - GError **error); - -/* == ModulemdTranslation Emitter == */ -gboolean -_emit_translation (yaml_emitter_t *emitter, - ModulemdTranslation *translation, - GError **error); - -G_END_DECLS - -#endif /* MODULEMD_YAML_H */ diff --git a/modulemd-1.8.16/modulemd/meson.build b/modulemd-1.8.16/modulemd/meson.build deleted file mode 100644 index 04c4e72..0000000 --- a/modulemd-1.8.16/modulemd/meson.build +++ /dev/null @@ -1,535 +0,0 @@ -# This file is part of libmodulemd -# Copyright (C) 2017-2018 Stephen Gallagher -# -# Fedora-License-Identifier: MIT -# SPDX-2.0-License-Identifier: MIT -# SPDX-3.0-License-Identifier: MIT -# -# This program is free software. -# For more information on the license, see COPYING. -# For more information on free software, see . - -test_installed_lib = get_option('test_installed_lib') -skip_introspection = get_option('skip_introspection') -developer_build = get_option('developer_build') -test_dirty_git = get_option('test_dirty_git') - -clang_format = find_program('clang-format', required: developer_build) -if not clang_format.found() - clang_format = disabler() -endif - -pycodestyle = find_program('pycodestyle-3', 'pycodestyle', - required : developer_build) -if not pycodestyle.found() - pycodestyle = disabler() -endif - -autopep8 = find_program('python3-autopep8', 'autopep8', - required : developer_build) -if not autopep8.found() - autopep8 = disabler() -endif - -valgrind = find_program('valgrind', required: developer_build) - -if not valgrind.found() - valgrind = disabler() -endif -valgrind_tests = [] - -if test_installed_lib - # If we're just running the tests on a library that's already installed, - # don't bother building it again. - build_lib = disabler() -else - build_lib = declare_dependency() -endif - - -modulemd_srcs = files( - 'modulemd-buildopts.c', - 'modulemd-common.c', - 'modulemd-component.c', - 'modulemd-component-module.c', - 'modulemd-component-rpm.c', - 'modulemd-defaults.c', - 'modulemd-dependencies.c', - 'modulemd-improvedmodule.c', - 'modulemd-intent.c', - 'modulemd-module.c', - 'modulemd-modulestream.c', - 'modulemd-prioritizer.c', - 'modulemd-profile.c', - 'modulemd-simpleset.c', - 'modulemd-servicelevel.c', - 'modulemd-subdocument.c', - 'modulemd-translation.c', - 'modulemd-translation-entry.c', - 'modulemd-util.c', - 'modulemd-yaml-emitter.c', - 'modulemd-yaml-emitter-defaults.c', - 'modulemd-yaml-emitter-modulemd.c', - 'modulemd-yaml-emitter-translation.c', - 'modulemd-yaml-parser.c', - 'modulemd-yaml-parser-defaults.c', - 'modulemd-yaml-parser-modulemd.c', - 'modulemd-yaml-parser-translation.c', - 'modulemd-yaml-utils.c' -) - -modulemd_hdrs = files( - 'include/modulemd-1.0/modulemd.h', - 'include/modulemd-1.0/modulemd-buildopts.h', - 'include/modulemd-1.0/modulemd-component.h', - 'include/modulemd-1.0/modulemd-component-module.h', - 'include/modulemd-1.0/modulemd-component-rpm.h', - 'include/modulemd-1.0/modulemd-defaults.h', - 'include/modulemd-1.0/modulemd-dependencies.h', - 'include/modulemd-1.0/modulemd-deprecated.h', - 'include/modulemd-1.0/modulemd-improvedmodule.h', - 'include/modulemd-1.0/modulemd-intent.h', - 'include/modulemd-1.0/modulemd-module.h', - 'include/modulemd-1.0/modulemd-modulestream.h', - 'include/modulemd-1.0/modulemd-prioritizer.h', - 'include/modulemd-1.0/modulemd-profile.h', - 'include/modulemd-1.0/modulemd-simpleset.h', - 'include/modulemd-1.0/modulemd-servicelevel.h', - 'include/modulemd-1.0/modulemd-subdocument.h', - 'include/modulemd-1.0/modulemd-translation.h', - 'include/modulemd-1.0/modulemd-translation-entry.h', -) - -modulemd_priv_hdrs = files( - 'include/private/modulemd-improvedmodule-private.h', - 'include/private/modulemd-private.h', - 'include/private/modulemd-profile-private.h', - 'include/private/modulemd-subdocument-private.h', - 'include/private/modulemd-util.h', - 'include/private/modulemd-yaml.h', -) - -include_dirs = include_directories ( - 'include/modulemd-1.0', - 'include' -) - -test_srcs = files( - 'tests/test-modulemd-buildopts.c', - 'tests/test-modulemd-component.c', - 'tests/test-modulemd-defaults.c', - 'tests/test-modulemd-dependencies.c', - 'tests/test-modulemd-intent.c', - 'tests/test-modulemd-module.c', - 'tests/test-modulemd-modulestream.c', - 'tests/test-modulemd-regressions.c', - 'tests/test-modulemd-servicelevel.c', - 'tests/test-modulemd-simpleset.c', - 'tests/test-modulemd-subdocument.c', - 'tests/test-modulemd-translation.c', - 'tests/test-modulemd-translation-entry.c', - 'tests/test-modulemd-yaml.c', -) - - -modulemd_lib = library( - 'modulemd', - sources : modulemd_srcs, - include_directories : include_dirs, - dependencies : [ - gobject, - yaml, - build_lib, - ], - install : true, - version: libmodulemd_version, -) - -if test_installed_lib - # Run tests against an installed library instead of in-tree - modulemd_dep = declare_dependency( - include_directories : include_dirs, - dependencies : [ - gobject, - dependency( - 'modulemd', - version: ['>= 1.0.0', '< 2.0.0'] - ), - ] - ) -else - modulemd_dep = declare_dependency( - include_directories : include_dirs, - link_with : modulemd_lib, - dependencies : [ - gobject, - ] - ) -endif - - -modulemd_validator_v1 = executable( - 'modulemd-validator-v1', - 'modulemd-validator.c', - dependencies : [ - modulemd_dep, - ], - install : true, -) - -header_path = 'modulemd' - -install_headers( - modulemd_hdrs, - subdir : header_path, -) - - -# Test env with release values -test_release_env = environment() -test_release_env.set('G_MESSAGES_DEBUG', 'all') -test_release_env.set ('MESON_SOURCE_ROOT', meson.source_root()) - - -# Test env with fatal warnings and criticals -test_env = test_release_env -test_env.set('G_DEBUG', 'fatal-warnings,fatal-criticals') - -test_modulemd_buildopts = executable( - 'test_modulemd_buildopts', - 'tests/test-modulemd-buildopts.c', - dependencies : [ - modulemd_dep, - ], - install : false, -) - -test('test_modulemd_buildopts', test_modulemd_buildopts, - env : test_env) -test('test_release_modulemd_buildopts', test_modulemd_buildopts, - env : test_release_env) -valgrind_tests += 'test_modulemd_buildopts' - -test_modulemd_component = executable( - 'test_modulemd_component', - 'tests/test-modulemd-component.c', - dependencies : [ - modulemd_dep, - ], - install : false, -) -test('test_modulemd_component', test_modulemd_component, - env : test_env) -test('test_release_modulemd_component', test_modulemd_component, - env : test_release_env) -valgrind_tests += 'test_modulemd_component' - -test_modulemd_defaults = executable( - 'test_modulemd_defaults', - 'tests/test-modulemd-defaults.c', - dependencies : [ - modulemd_dep, - yaml - ], - install : false, -) -test('test_modulemd_defaults', test_modulemd_defaults, - env : test_env) -test('test_release_modulemd_defaults', test_modulemd_defaults, - env : test_release_env) -valgrind_tests += 'test_modulemd_defaults' - -test_modulemd_dependencies = executable( - 'test_modulemd_dependencies', - 'tests/test-modulemd-dependencies.c', - dependencies : [ - modulemd_dep, - ], - install : false, -) -test('test_modulemd_dependencies', test_modulemd_dependencies, - env : test_env) -test('test_release_modulemd_dependencies', test_modulemd_dependencies, - env : test_release_env) -valgrind_tests += 'test_modulemd_dependencies' - -test_modulemd_intent = executable( - 'test_modulemd_intent', - 'tests/test-modulemd-intent.c', - dependencies : [ - modulemd_dep, - ], - install : false, -) -test('test_modulemd_intent', test_modulemd_intent, - env : test_env) -test('test_release_modulemd_intent', test_modulemd_intent, - env : test_release_env) -valgrind_tests += 'test_modulemd_intent' - -test_modulemd_module = executable( - 'test_modulemd_module', - 'tests/test-modulemd-module.c', - dependencies : [ - modulemd_dep, - ], - install : false, -) -test('test_modulemd_module', test_modulemd_module, - env : test_env) -test('test_release_modulemd_module', test_modulemd_module, - env : test_release_env) -valgrind_tests += 'test_modulemd_module' - -test_modulemd_modulestream = executable( - 'test_modulemd_modulestream', - 'tests/test-modulemd-modulestream.c', - dependencies : [ - modulemd_dep, - ], - install : false, -) -test('test_modulemd_modulestream', test_modulemd_modulestream, - env : test_env) -test('test_release_modulemd_modulestream', test_modulemd_modulestream, - env : test_release_env) -valgrind_tests += 'test_modulemd_modulestream' - -test_modulemd_regressions = executable( - 'test_modulemd_regressions', - 'tests/test-modulemd-regressions.c', - dependencies : [ - modulemd_dep, - ], - install : false, -) -test('test_modulemd_regressions', test_modulemd_regressions, - env : test_env) -test('test_release_modulemd_regressions', test_modulemd_regressions, - env : test_release_env) -valgrind_tests += 'test_modulemd_regressions' - -test_modulemd_servicelevel = executable( - 'test_modulemd_servicelevel', - 'tests/test-modulemd-servicelevel.c', - dependencies : [ - modulemd_dep, - ], - install : false, -) -test('test_modulemd_servicelevel', test_modulemd_servicelevel, - env : test_env) -test('test_release_modulemd_servicelevel', test_modulemd_servicelevel, - env : test_release_env) -valgrind_tests += 'test_modulemd_servicelevel' - -test_modulemd_simpleset = executable( - 'test_modulemd_simpleset', - 'tests/test-modulemd-simpleset.c', - dependencies : [ - modulemd_dep, - ], - install : false, -) -test('test_modulemd_simpleset', test_modulemd_simpleset, - env : test_env) -test('test_release_modulemd_simpleset', test_modulemd_simpleset, - env : test_release_env) -valgrind_tests += 'test_modulemd_simpleset' - -test_modulemd_subdocument = executable( - 'test_modulemd_subdocument', - 'tests/test-modulemd-subdocument.c', - dependencies : [ - modulemd_dep, - ], - install : false, -) -test('test_modulemd_subdocument', test_modulemd_subdocument, - env : test_env) -test('test_release_modulemd_subdocument', test_modulemd_subdocument, - env : test_release_env) -valgrind_tests += 'test_modulemd_subdocument' - - -test_modulemd_translation = executable( - 'test_modulemd_translation', - 'tests/test-modulemd-translation.c', - dependencies : [ - modulemd_dep, - ], - install : false, -) -test('test_modulemd_translation', - test_modulemd_translation, - env : test_env) -test('test_release_modulemd_translation', - test_modulemd_translation, - env : test_release_env) -valgrind_tests += 'test_modulemd_translation' - - -test_modulemd_translation_entry = executable( - 'test_modulemd_translation_entry', - 'tests/test-modulemd-translation-entry.c', - dependencies : [ - modulemd_dep, - ], - install : false, -) -test('test_modulemd_translation_entry', - test_modulemd_translation_entry, - env : test_env) -test('test_release_modulemd_translation_entry', - test_modulemd_translation_entry, - env : test_release_env) -valgrind_tests += 'test_modulemd_translation_entry' - - -test_modulemd_yaml = executable( - 'test_modulemd_yaml', - 'tests/test-modulemd-yaml.c', - dependencies : [ - modulemd_dep, - yaml - ], - install : false, -) -test('test_modulemd_yaml', test_modulemd_yaml, - env : test_env) -test('test_release_modulemd_yaml', test_modulemd_yaml, - env : test_release_env) -valgrind_tests += 'test_modulemd_yaml' - -# Test env with fatal warnings and criticals -py_test_env = test_env - -if not test_installed_lib - # If we're testing an installed version, we want to use the default - # locations for these paths. - py_test_env.set ('GI_TYPELIB_PATH', meson.build_root() + '/modulemd') - py_test_env.set ('LD_LIBRARY_PATH', meson.build_root() + '/modulemd') - - # This test is just to catch whether we are accidentally not testing - # the built version. - py_test_env.set ('MODULEMD_VERSION', libmodulemd_version) -endif - -# Test env with release values -py_test_release_env = py_test_env -py_test_release_env.set('G_DEBUG', 'fatal-warnings,fatal-criticals') - -modulemd_python_scripts = files('tests/test-modulemd-python.py') -test ('test_modulemd_python', python3, - env : py_test_env, - args : modulemd_python_scripts) -test ('test_release_modulemd_python', python3, - env : py_test_release_env, - args : modulemd_python_scripts) - - -# Fake test to ensure that all sources and headers are formatted properly -clang_args = [ '-i' ] -test('clang_format', clang_format, - args : clang_args + - modulemd_srcs + - modulemd_hdrs + - modulemd_priv_hdrs + - test_srcs) - - -# Fake test to ensure that the python tests are formatted according to PEP8 -autopep8_args = [ '--in-place', '-a', '-a', '--global-config', '../tox.ini' ] -autopep8_scripts = [ files('tests/test-modulemd-python.py', - 'tests/test-dirty.py', - 'tests/test-valgrind.py',) ] -test('autopep8', autopep8, - args: autopep8_args + autopep8_scripts) - - -# Test all python files for compliance with pycodestyle -# Ignore line-length as there are a number of places where this is unavoidable -pycodestyle_args = [ - '--show-pep8', - '--ignore=E121,E123,E126,E226,E24,E501,E704,W503,W504' -] -test('pycodestyle', pycodestyle, - args: pycodestyle_args + autopep8_scripts) - - -# Fake test to ensure that the autoformatters didn't end up making changes -# when run in CI (such as during a pull-request). This test is only run if -# meson was configured with `-Dtest_dirty_git=true` - -if test_dirty_git - dirty_repo_scripts = [ files('tests/test-dirty.py') ] - test('test_dirty_repo', python3, - args: dirty_repo_scripts) -endif - - -import_header_script = find_program('tests/test-import-headers.sh') -test ('test_import_headers', import_header_script, - env : test_env, - args : modulemd_hdrs) - - -if valgrind.found() - modulemd_valgrind_scripts = files('tests/test-valgrind.py') - test ('valgrind', python3, - env : test_env, - args : modulemd_valgrind_scripts + valgrind_tests, - timeout : 1200) -endif - - -if skip_introspection -else - gnome.generate_gir( - modulemd_lib, - sources : modulemd_srcs + modulemd_hdrs, - nsversion : '1.0', - namespace : 'Modulemd', - symbol_prefix : 'modulemd_', - identifier_prefix : 'Modulemd', - includes : [ - 'GObject-2.0', - ], - install : true, - ) -endif - -cdata = configuration_data() -cdata.set_quoted('LIBMODULEMD_VERSION', libmodulemd_version) -configure_file( - output : 'config.h', - configuration : cdata -) - -pkg.generate( - libraries : modulemd_lib, - subdirs : header_path, - version : libmodulemd_version, - name : 'modulemd', - filebase : 'modulemd', - description : 'Module metadata manipulation library', - requires: [ 'glib-2.0', 'gobject-2.0' ], -) -xcdata = configuration_data() -xcdata.set('VERSION', libmodulemd_version) -configure_file( - input : 'version.xml.in', - output : 'version.xml', - configuration : xcdata -) - -if with_docs - gnome.gtkdoc( - 'modulemd-1.0', - install_dir: 'modulemd-1.0', - src_dir : './modulemd', - main_xml : 'modulemd-docs.xml', - install : true, -) -endif - diff --git a/modulemd-1.8.16/modulemd/modulemd-buildopts.c b/modulemd-1.8.16/modulemd/modulemd-buildopts.c deleted file mode 100644 index cfb3632..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-buildopts.c +++ /dev/null @@ -1,247 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include "modulemd-buildopts.h" - - -struct _ModulemdBuildopts -{ - GObject parent_instance; - - gchar *rpm_macros; - - ModulemdSimpleSet *rpm_whitelist; -}; - -G_DEFINE_TYPE (ModulemdBuildopts, modulemd_buildopts, G_TYPE_OBJECT) - -enum -{ - PROP_0, - - PROP_RPM_MACROS, - PROP_RPM_WHITELIST, - - N_PROPS -}; - - -static GParamSpec *properties[N_PROPS]; - -ModulemdBuildopts * -modulemd_buildopts_new (void) -{ - return g_object_new (MODULEMD_TYPE_BUILDOPTS, NULL); -} - - -static void -modulemd_buildopts_finalize (GObject *object) -{ - ModulemdBuildopts *self = (ModulemdBuildopts *)object; - - g_clear_pointer (&self->rpm_macros, g_free); - g_clear_pointer (&self->rpm_whitelist, g_object_unref); - - G_OBJECT_CLASS (modulemd_buildopts_parent_class)->finalize (object); -} - - -void -modulemd_buildopts_set_rpm_macros (ModulemdBuildopts *self, - const gchar *macros) -{ - g_return_if_fail (MODULEMD_IS_BUILDOPTS (self)); - - if (g_strcmp0 (self->rpm_macros, macros)) - { - g_free (self->rpm_macros); - self->rpm_macros = g_strdup (macros); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_RPM_MACROS]); - } -} - - -gchar * -modulemd_buildopts_get_rpm_macros (ModulemdBuildopts *self) -{ - g_return_val_if_fail (MODULEMD_IS_BUILDOPTS (self), NULL); - return g_strdup (self->rpm_macros); -} - - -void -modulemd_buildopts_set_rpm_whitelist (ModulemdBuildopts *self, GStrv whitelist) -{ - g_return_if_fail (MODULEMD_IS_BUILDOPTS (self)); - - g_clear_pointer (&self->rpm_whitelist, g_object_unref); - - if (!whitelist) - return; - - self->rpm_whitelist = modulemd_simpleset_new (); - for (gsize i = 0; whitelist[i]; i++) - { - modulemd_simpleset_add (self->rpm_whitelist, whitelist[i]); - } - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_RPM_WHITELIST]); -} - - -void -modulemd_buildopts_set_rpm_whitelist_simpleset (ModulemdBuildopts *self, - ModulemdSimpleSet *whitelist) -{ - g_return_if_fail (MODULEMD_IS_BUILDOPTS (self)); - - g_clear_pointer (&self->rpm_whitelist, g_object_unref); - - if (!whitelist) - return; - - modulemd_simpleset_copy (whitelist, &self->rpm_whitelist); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_RPM_WHITELIST]); -} - - -GStrv -modulemd_buildopts_get_rpm_whitelist (ModulemdBuildopts *self) -{ - g_return_val_if_fail (MODULEMD_IS_BUILDOPTS (self), NULL); - - if (!self->rpm_whitelist) - { - return NULL; - } - - return modulemd_simpleset_dup (self->rpm_whitelist); -} - - -ModulemdSimpleSet * -modulemd_buildopts_get_rpm_whitelist_simpleset (ModulemdBuildopts *self) -{ - g_autoptr (ModulemdSimpleSet) set = NULL; - g_return_val_if_fail (MODULEMD_IS_BUILDOPTS (self), NULL); - - if (!self->rpm_whitelist) - { - return NULL; - } - - modulemd_simpleset_copy (self->rpm_whitelist, &set); - - return g_object_ref (set); -} - - -static void -modulemd_buildopts_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdBuildopts *self = MODULEMD_BUILDOPTS (object); - - switch (prop_id) - { - case PROP_RPM_MACROS: - g_value_take_string (value, modulemd_buildopts_get_rpm_macros (self)); - break; - case PROP_RPM_WHITELIST: - g_value_take_boxed (value, modulemd_buildopts_get_rpm_whitelist (self)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - - -static void -modulemd_buildopts_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - ModulemdBuildopts *self = MODULEMD_BUILDOPTS (object); - - switch (prop_id) - { - case PROP_RPM_MACROS: - modulemd_buildopts_set_rpm_macros (self, g_value_get_string (value)); - break; - case PROP_RPM_WHITELIST: - modulemd_buildopts_set_rpm_whitelist (self, g_value_get_boxed (value)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - - -static void -modulemd_buildopts_class_init (ModulemdBuildoptsClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->finalize = modulemd_buildopts_finalize; - object_class->get_property = modulemd_buildopts_get_property; - object_class->set_property = modulemd_buildopts_set_property; - - properties[PROP_RPM_MACROS] = g_param_spec_string ( - "rpm-macros", - "RPM Macros", - "RPM Macros to be set in the buildsystem for this module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_RPM_WHITELIST] = - g_param_spec_boxed ("rpm-whitelist", - "The RPM whitelist.", - "A whitelist of RPM names that can be built for this " - "module stream. May differ from the components list.", - G_TYPE_STRV, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties (object_class, N_PROPS, properties); -} - - -static void -modulemd_buildopts_init (ModulemdBuildopts *self) -{ -} - - -ModulemdBuildopts * -modulemd_buildopts_copy (ModulemdBuildopts *self) -{ - g_autoptr (ModulemdBuildopts) new = NULL; - g_auto (GStrv) whitelist = NULL; - - if (!self) - return NULL; - - new = modulemd_buildopts_new (); - - modulemd_buildopts_set_rpm_macros (new, self->rpm_macros); - whitelist = modulemd_buildopts_get_rpm_whitelist (self); - modulemd_buildopts_set_rpm_whitelist (new, whitelist); - - return g_object_ref (new); -} diff --git a/modulemd-1.8.16/modulemd/modulemd-common.c b/modulemd-1.8.16/modulemd/modulemd-common.c deleted file mode 100644 index a493685..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-common.c +++ /dev/null @@ -1,349 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "config.h" -#include "modulemd.h" -#include "modulemd-module.h" -#include "private/modulemd-improvedmodule-private.h" -#include "private/modulemd-yaml.h" -#include "private/modulemd-util.h" -#include - - -GPtrArray * -modulemd_objects_from_file (const gchar *yaml_file, GError **error) -{ - return modulemd_objects_from_file_ext (yaml_file, NULL, error); -} - - -GPtrArray * -modulemd_objects_from_file_ext (const gchar *yaml_file, - GPtrArray **failures, - GError **error) -{ - g_autoptr (GPtrArray) data = NULL; - GPtrArray *compat_data = NULL; - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - if (!parse_yaml_file (yaml_file, &data, failures, error)) - { - return NULL; - } - - /* For backwards-compatibility, we need to return Modulemd.Module objects, - * not Modulemd.ModuleStream objects - */ - compat_data = mmd_yaml_convert_modulestreams (data); - - return compat_data; -} - - -GHashTable * -modulemd_index_from_file (const gchar *yaml_file, - GPtrArray **failures, - GError **error) -{ - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - return parse_module_index_from_file (yaml_file, failures, error); -} - - -GPtrArray * -modulemd_objects_from_stream (FILE *stream, GError **error) -{ - return modulemd_objects_from_stream_ext (stream, NULL, error); -} - - -GPtrArray * -modulemd_objects_from_stream_ext (FILE *stream, - GPtrArray **failures, - GError **error) -{ - g_autoptr (GPtrArray) data = NULL; - GPtrArray *compat_data = NULL; - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - if (!parse_yaml_stream (stream, &data, failures, error)) - { - return NULL; - } - - /* For backwards-compatibility, we need to return Modulemd.Module objects, - * not Modulemd.ModuleStream objects - */ - compat_data = mmd_yaml_convert_modulestreams (data); - - return compat_data; -} - - -GHashTable * -modulemd_index_from_stream (FILE *yaml_stream, - GPtrArray **failures, - GError **error) -{ - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - return parse_module_index_from_stream (yaml_stream, failures, error); -} - - -GPtrArray * -modulemd_objects_from_string (const gchar *yaml_string, GError **error) -{ - return modulemd_objects_from_string_ext (yaml_string, NULL, error); -} - - -GPtrArray * -modulemd_objects_from_string_ext (const gchar *yaml_string, - GPtrArray **failures, - GError **error) -{ - g_autoptr (GPtrArray) data = NULL; - GPtrArray *compat_data = NULL; - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - if (!parse_yaml_string (yaml_string, &data, failures, error)) - { - return NULL; - } - - /* For backwards-compatibility, we need to return Modulemd.Module objects, - * not Modulemd.ModuleStream objects - */ - compat_data = mmd_yaml_convert_modulestreams (data); - - return compat_data; -} - - -GHashTable * -modulemd_index_from_string (const gchar *yaml_string, - GPtrArray **failures, - GError **error) -{ - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - return parse_module_index_from_string (yaml_string, failures, error); -} - - -gboolean -modulemd_dump_index (GHashTable *index, const gchar *yaml_file, GError **error) -{ - g_autoptr (GPtrArray) objects = _modulemd_index_serialize (index, error); - if (!objects) - { - g_debug ("Serialization of index failed: %s", (*error)->message); - return FALSE; - } - - return emit_yaml_file (objects, yaml_file, error); -} - - -gchar * -modulemd_dumps_index (GHashTable *index, GError **error) -{ - gboolean result; - gchar *yaml = NULL; - - g_autoptr (GPtrArray) objects = _modulemd_index_serialize (index, error); - if (!objects) - { - g_debug ("Serialization of index failed: %s", (*error)->message); - return FALSE; - } - - result = emit_yaml_string (objects, &yaml, error); - if (!result) - { - g_debug ("Emitting YAML string failed: %s", (*error)->message); - return NULL; - } - - return yaml; -} - - -void -modulemd_dump (GPtrArray *objects, const gchar *yaml_file, GError **error) -{ - g_return_if_fail (error == NULL || *error == NULL); - - emit_yaml_file (objects, yaml_file, error); -} - - -gchar * -modulemd_dumps (GPtrArray *objects, GError **error) -{ - gchar *yaml_string = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - if (!emit_yaml_string (objects, &yaml_string, error)) - { - return NULL; - } - - return yaml_string; -} - - -GPtrArray * -modulemd_merge_defaults (const GPtrArray *first, - const GPtrArray *second, - gboolean override, - GError **error) -{ - g_autoptr (GPtrArray) merge_base = NULL; - g_autoptr (GPtrArray) merged = NULL; - g_autoptr (GPtrArray) keys = NULL; - GObject *object = NULL; - g_autoptr (GHashTable) defaults = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - gchar *key = NULL; - gpointer value = NULL; - ModulemdDefaults *updated_defs = NULL; - gsize i; - - merge_base = g_ptr_array_new_full (first->len, g_object_unref); - for (i = 0; i < first->len; i++) - { - g_ptr_array_add (merge_base, - g_object_ref (g_ptr_array_index (first, i))); - } - - if (second && !override) - { - /* If the second repo doesn't override the first, then we can just treat - * them as concatenated together and save some processing time. - */ - g_ptr_array_set_size (merge_base, first->len + second->len); - for (i = 0; i < second->len; i++) - { - g_ptr_array_add (merge_base, - g_object_ref (g_ptr_array_index (second, i))); - } - } - - merged = g_ptr_array_new_full (merge_base->len, g_object_unref); - for (i = 0; i < merge_base->len; i++) - { - object = g_ptr_array_index (merge_base, i); - if (MODULEMD_IS_DEFAULTS (object)) - { - key = modulemd_defaults_dup_module_name (MODULEMD_DEFAULTS (object)); - value = g_hash_table_lookup (defaults, key); - if (!value) - { - /* This is the first time we've encountered the defaults for this - * module. - */ - g_hash_table_replace (defaults, key, g_object_ref (object)); - } - else - { - /* We've seen this one before. Handle the merge */ - updated_defs = - modulemd_defaults_merge (MODULEMD_DEFAULTS (value), - MODULEMD_DEFAULTS (object), - FALSE, - error); - - if (!updated_defs) - { - /* The merge failed. Raise the error */ - g_clear_pointer (&key, g_free); - return NULL; - } - - g_hash_table_replace (defaults, key, updated_defs); - } - } - else - { - /* Not a default object, so just add it to the list */ - g_ptr_array_add (merged, g_object_ref (object)); - } - } - - if (second && override) - { - /* The repos had different priorities, so after resolving any conflicts - * from the base repo, we will set any needed updates and overrides here. - */ - for (i = 0; i < second->len; i++) - { - object = g_ptr_array_index (second, i); - if (MODULEMD_IS_DEFAULTS (object)) - { - key = - modulemd_defaults_dup_module_name (MODULEMD_DEFAULTS (object)); - value = g_hash_table_lookup (defaults, key); - if (!value) - { - /* This is the first time we've encountered the defaults for this - * module. - */ - g_hash_table_replace (defaults, key, g_object_ref (object)); - } - else - { - /* We've seen this one before. Handle the merge */ - updated_defs = - modulemd_defaults_merge (MODULEMD_DEFAULTS (value), - MODULEMD_DEFAULTS (object), - TRUE, - error); - - if (!updated_defs) - { - /* The merge failed. Raise the error */ - return NULL; - } - - g_hash_table_replace (defaults, key, updated_defs); - } - } - else - { - /* Not a default object, so just add it to the list */ - g_ptr_array_add (merged, g_object_ref (object)); - } - } - } - - /* Add all of the defaults to the end of the list */ - keys = _modulemd_ordered_str_keys (defaults, _modulemd_strcmp_sort); - for (i = 0; i < keys->len; i++) - { - value = g_hash_table_lookup (defaults, g_ptr_array_index (keys, i)); - g_ptr_array_add (merged, g_object_ref (MODULEMD_DEFAULTS (value))); - } - - return g_ptr_array_ref (merged); -} - - -const gchar * -modulemd_get_version (void) -{ - return LIBMODULEMD_VERSION; -} diff --git a/modulemd-1.8.16/modulemd/modulemd-component-module.c b/modulemd-1.8.16/modulemd/modulemd-component-module.c deleted file mode 100644 index f074a15..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-component-module.c +++ /dev/null @@ -1,256 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - - -#include "modulemd.h" -#include "modulemd-component-module.h" - -struct _ModulemdComponentModule -{ - GObject parent_instance; - - /* == Members == */ - gchar *ref; - gchar *repo; -}; - -G_DEFINE_TYPE (ModulemdComponentModule, - modulemd_component_module, - MODULEMD_TYPE_COMPONENT) - -enum -{ - PROP_0, - - PROP_REF, - PROP_REPO, - - N_PROPS -}; - -static GParamSpec *properties[N_PROPS]; - -ModulemdComponentModule * -modulemd_component_module_new (void) -{ - return g_object_new (MODULEMD_TYPE_COMPONENT_MODULE, NULL); -} - -static void -modulemd_component_module_finalize (GObject *object) -{ - ModulemdComponentModule *self = (ModulemdComponentModule *)object; - - g_clear_pointer (&self->ref, g_free); - g_clear_pointer (&self->repo, g_free); - - G_OBJECT_CLASS (modulemd_component_module_parent_class)->finalize (object); -} - - -void -modulemd_component_module_set_ref (ModulemdComponentModule *self, - const gchar *ref) -{ - g_return_if_fail (MODULEMD_IS_COMPONENT_MODULE (self)); - - if (g_strcmp0 (self->ref, ref) != 0) - { - g_free (self->ref); - self->ref = g_strdup (ref); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_REF]); - } -} - - -const gchar * -modulemd_component_module_get_ref (ModulemdComponentModule *self) -{ - return modulemd_component_module_peek_ref (self); -} - - -const gchar * -modulemd_component_module_peek_ref (ModulemdComponentModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT_MODULE (self), NULL); - - return self->ref; -} - - -gchar * -modulemd_component_module_dup_ref (ModulemdComponentModule *self) -{ - return g_strdup (modulemd_component_module_peek_ref (self)); -} - - -void -modulemd_component_module_set_repository (ModulemdComponentModule *self, - const gchar *repository) -{ - g_return_if_fail (MODULEMD_IS_COMPONENT_MODULE (self)); - - if (g_strcmp0 (self->repo, repository) != 0) - { - g_free (self->repo); - self->repo = g_strdup (repository); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_REPO]); - } -} - - -const gchar * -modulemd_component_module_get_repository (ModulemdComponentModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT_MODULE (self), NULL); - - return self->repo; -} - - -const gchar * -modulemd_component_module_peek_repository (ModulemdComponentModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT_MODULE (self), NULL); - - return self->repo; -} - - -gchar * -modulemd_component_module_dup_repository (ModulemdComponentModule *self) -{ - return g_strdup (modulemd_component_module_peek_repository (self)); -} - - -static ModulemdComponent * -modulemd_component_module_copy (ModulemdComponent *self) -{ - ModulemdComponentModule *old_component = NULL; - ModulemdComponentModule *new_component = NULL; - - if (!self) - return NULL; - - g_return_val_if_fail (MODULEMD_IS_COMPONENT_MODULE (self), NULL); - - old_component = MODULEMD_COMPONENT_MODULE (self); - - new_component = modulemd_component_module_new (); - - modulemd_component_set_buildorder ( - MODULEMD_COMPONENT (new_component), - modulemd_component_peek_buildorder (self)); - - modulemd_component_set_name (MODULEMD_COMPONENT (new_component), - modulemd_component_peek_name (self)); - - modulemd_component_set_rationale (MODULEMD_COMPONENT (new_component), - modulemd_component_peek_rationale (self)); - - modulemd_component_module_set_ref ( - new_component, modulemd_component_module_peek_ref (old_component)); - - modulemd_component_module_set_repository ( - new_component, modulemd_component_module_peek_repository (old_component)); - - return MODULEMD_COMPONENT (new_component); -} - - -static void -modulemd_component_module_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - ModulemdComponentModule *self = MODULEMD_COMPONENT_MODULE (object); - - switch (prop_id) - { - case PROP_REF: - modulemd_component_module_set_ref (self, g_value_get_string (value)); - break; - - case PROP_REPO: - modulemd_component_module_set_repository (self, - g_value_get_string (value)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; - } -} - -static void -modulemd_component_module_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdComponentModule *self = MODULEMD_COMPONENT_MODULE (object); - - switch (prop_id) - { - case PROP_REF: - g_value_set_string (value, modulemd_component_module_peek_ref (self)); - break; - - case PROP_REPO: - g_value_set_string (value, - modulemd_component_module_peek_repository (self)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; - } -} - -static void -modulemd_component_module_class_init (ModulemdComponentModuleClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - ModulemdComponentClass *parent_class = MODULEMD_COMPONENT_CLASS (klass); - - object_class->finalize = modulemd_component_module_finalize; - object_class->get_property = modulemd_component_module_get_property; - object_class->set_property = modulemd_component_module_set_property; - - parent_class->copy = modulemd_component_module_copy; - - properties[PROP_REF] = - g_param_spec_string ("ref", - "git ", - "The particular repository commit hash, branch " - "or tag name used in this module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_REPO] = - g_param_spec_string ("repository", - "VCS repository", - "The VCS repository with the modulemd file, " - "and other module data.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties (object_class, N_PROPS, properties); -} - -static void -modulemd_component_module_init (ModulemdComponentModule *self) -{ -} diff --git a/modulemd-1.8.16/modulemd/modulemd-component-rpm.c b/modulemd-1.8.16/modulemd/modulemd-component-rpm.c deleted file mode 100644 index 8b0214c..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-component-rpm.c +++ /dev/null @@ -1,451 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - - -#include "modulemd.h" -#include "modulemd-component-rpm.h" - -struct _ModulemdComponentRpm -{ - GObject parent_instance; - - /* == Members == */ - ModulemdSimpleSet *arches; - gchar *cache; - ModulemdSimpleSet *multilib; - gchar *ref; - gchar *repo; -}; - -G_DEFINE_TYPE (ModulemdComponentRpm, - modulemd_component_rpm, - MODULEMD_TYPE_COMPONENT) - -enum -{ - PROP_0, - - PROP_ARCHES, - PROP_CACHE, - PROP_MULTILIB, - PROP_REF, - PROP_REPO, - - N_PROPS -}; - -static GParamSpec *properties[N_PROPS]; - -ModulemdComponentRpm * -modulemd_component_rpm_new (void) -{ - return g_object_new (MODULEMD_TYPE_COMPONENT_RPM, NULL); -} - -static void -modulemd_component_rpm_finalize (GObject *object) -{ - ModulemdComponentRpm *self = (ModulemdComponentRpm *)object; - - g_clear_pointer (&self->arches, g_object_unref); - g_clear_pointer (&self->cache, g_free); - g_clear_pointer (&self->multilib, g_object_unref); - g_clear_pointer (&self->ref, g_free); - g_clear_pointer (&self->repo, g_free); - - G_OBJECT_CLASS (modulemd_component_rpm_parent_class)->finalize (object); -} - - -void -modulemd_component_rpm_set_arches (ModulemdComponentRpm *self, - ModulemdSimpleSet *arches) -{ - g_return_if_fail (MODULEMD_IS_COMPONENT_RPM (self)); - g_return_if_fail (!arches || MODULEMD_IS_SIMPLESET (arches)); - - modulemd_simpleset_copy (arches, &self->arches); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_ARCHES]); -} - - -ModulemdSimpleSet * -modulemd_component_rpm_get_arches (ModulemdComponentRpm *self) -{ - return modulemd_component_rpm_peek_arches (self); -} - - -ModulemdSimpleSet * -modulemd_component_rpm_peek_arches (ModulemdComponentRpm *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT_RPM (self), NULL); - - return self->arches; -} - - -ModulemdSimpleSet * -modulemd_component_rpm_dup_arches (ModulemdComponentRpm *self) -{ - ModulemdSimpleSet *arches = NULL; - g_return_val_if_fail (MODULEMD_IS_COMPONENT_RPM (self), NULL); - - modulemd_simpleset_copy (self->arches, &arches); - return arches; -} - - -void -modulemd_component_rpm_set_cache (ModulemdComponentRpm *self, - const gchar *cache) -{ - g_return_if_fail (MODULEMD_IS_COMPONENT_RPM (self)); - - if (g_strcmp0 (self->cache, cache) != 0) - { - g_free (self->cache); - self->cache = g_strdup (cache); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_CACHE]); - } -} - - -const gchar * -modulemd_component_rpm_get_cache (ModulemdComponentRpm *self) -{ - return modulemd_component_rpm_peek_cache (self); -} - - -const gchar * -modulemd_component_rpm_peek_cache (ModulemdComponentRpm *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT_RPM (self), NULL); - - return self->cache; -} - - -gchar * -modulemd_component_rpm_dup_cache (ModulemdComponentRpm *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT_RPM (self), NULL); - - return g_strdup (self->cache); -} - - -void -modulemd_component_rpm_set_multilib (ModulemdComponentRpm *self, - ModulemdSimpleSet *multilib) -{ - g_return_if_fail (MODULEMD_IS_COMPONENT_RPM (self)); - g_return_if_fail (!multilib || MODULEMD_IS_SIMPLESET (multilib)); - - modulemd_simpleset_copy (multilib, &self->multilib); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_ARCHES]); -} - - -ModulemdSimpleSet * -modulemd_component_rpm_get_multilib (ModulemdComponentRpm *self) -{ - return modulemd_component_rpm_peek_multilib (self); -} - - -ModulemdSimpleSet * -modulemd_component_rpm_peek_multilib (ModulemdComponentRpm *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT_RPM (self), NULL); - - return self->multilib; -} - - -ModulemdSimpleSet * -modulemd_component_rpm_dup_multilib (ModulemdComponentRpm *self) -{ - ModulemdSimpleSet *multilib = NULL; - g_return_val_if_fail (MODULEMD_IS_COMPONENT_RPM (self), NULL); - - modulemd_simpleset_copy (self->multilib, &multilib); - - return multilib; -} - - -void -modulemd_component_rpm_set_ref (ModulemdComponentRpm *self, const gchar *ref) -{ - g_return_if_fail (MODULEMD_IS_COMPONENT_RPM (self)); - - if (g_strcmp0 (self->ref, ref) != 0) - { - g_free (self->ref); - self->ref = g_strdup (ref); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_REF]); - } -} - - -const gchar * -modulemd_component_rpm_get_ref (ModulemdComponentRpm *self) -{ - return modulemd_component_rpm_peek_ref (self); -} - - -const gchar * -modulemd_component_rpm_peek_ref (ModulemdComponentRpm *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT_RPM (self), NULL); - - return self->ref; -} - - -gchar * -modulemd_component_rpm_dup_ref (ModulemdComponentRpm *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT_RPM (self), NULL); - - return g_strdup (self->ref); -} - - -void -modulemd_component_rpm_set_repository (ModulemdComponentRpm *self, - const gchar *repository) -{ - g_return_if_fail (MODULEMD_IS_COMPONENT_RPM (self)); - - if (g_strcmp0 (self->repo, repository) != 0) - { - g_free (self->repo); - self->repo = g_strdup (repository); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_REPO]); - } -} - - -const gchar * -modulemd_component_rpm_get_repository (ModulemdComponentRpm *self) -{ - return modulemd_component_rpm_peek_repository (self); -} - - -const gchar * -modulemd_component_rpm_peek_repository (ModulemdComponentRpm *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT_RPM (self), NULL); - - return self->repo; -} - - -gchar * -modulemd_component_rpm_dup_repository (ModulemdComponentRpm *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT_RPM (self), NULL); - - return g_strdup (self->repo); -} - - -static ModulemdComponent * -modulemd_component_rpm_copy (ModulemdComponent *self) -{ - ModulemdComponentRpm *old_component = NULL; - ModulemdComponentRpm *new_component = NULL; - - if (!self) - return NULL; - - g_return_val_if_fail (MODULEMD_IS_COMPONENT_RPM (self), NULL); - - old_component = MODULEMD_COMPONENT_RPM (self); - - new_component = modulemd_component_rpm_new (); - - modulemd_component_set_buildorder ( - MODULEMD_COMPONENT (new_component), - modulemd_component_peek_buildorder (self)); - - modulemd_component_set_name (MODULEMD_COMPONENT (new_component), - modulemd_component_peek_name (self)); - - modulemd_component_set_rationale (MODULEMD_COMPONENT (new_component), - modulemd_component_peek_rationale (self)); - - modulemd_component_rpm_set_arches ( - new_component, modulemd_component_rpm_peek_arches (old_component)); - - modulemd_component_rpm_set_cache ( - new_component, modulemd_component_rpm_peek_cache (old_component)); - - modulemd_component_rpm_set_multilib ( - new_component, modulemd_component_rpm_peek_multilib (old_component)); - - modulemd_component_rpm_set_ref ( - new_component, modulemd_component_rpm_peek_ref (old_component)); - - modulemd_component_rpm_set_repository ( - new_component, modulemd_component_rpm_peek_repository (old_component)); - - return MODULEMD_COMPONENT (new_component); -} - - -static void -modulemd_component_rpm_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - ModulemdComponentRpm *self = MODULEMD_COMPONENT_RPM (object); - - switch (prop_id) - { - case PROP_ARCHES: - modulemd_component_rpm_set_arches (self, g_value_get_object (value)); - break; - - case PROP_CACHE: - modulemd_component_rpm_set_cache (self, g_value_get_string (value)); - break; - - case PROP_MULTILIB: - modulemd_component_rpm_set_multilib (self, g_value_get_object (value)); - break; - - case PROP_REF: - modulemd_component_rpm_set_ref (self, g_value_get_string (value)); - break; - - case PROP_REPO: - modulemd_component_rpm_set_repository (self, g_value_get_string (value)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; - } -} - -static void -modulemd_component_rpm_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdComponentRpm *self = MODULEMD_COMPONENT_RPM (object); - - switch (prop_id) - { - case PROP_ARCHES: - g_value_set_object (value, modulemd_component_rpm_peek_arches (self)); - break; - - case PROP_CACHE: - g_value_set_string (value, modulemd_component_rpm_peek_cache (self)); - break; - - case PROP_MULTILIB: - g_value_set_object (value, modulemd_component_rpm_peek_multilib (self)); - break; - - case PROP_REF: - g_value_set_string (value, modulemd_component_rpm_peek_ref (self)); - break; - - case PROP_REPO: - g_value_set_string (value, - modulemd_component_rpm_peek_repository (self)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; - } -} - -static void -modulemd_component_rpm_class_init (ModulemdComponentRpmClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - ModulemdComponentClass *parent_class = MODULEMD_COMPONENT_CLASS (klass); - - object_class->finalize = modulemd_component_rpm_finalize; - object_class->get_property = modulemd_component_rpm_get_property; - object_class->set_property = modulemd_component_rpm_set_property; - - parent_class->copy = modulemd_component_rpm_copy; - - properties[PROP_ARCHES] = - g_param_spec_object ("arches", - "Supported architectures", - "A set of architectures on which this RPM " - "package should be available. An empty set means " - "the package is available on all supported " - "architectures.", - MODULEMD_TYPE_SIMPLESET, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_CACHE] = - g_param_spec_string ("cache", - "Lookaside cache", - "The URL of the lookaside cache where this " - "package's sources are stored.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_MULTILIB] = - g_param_spec_object ("multilib", - "Supported multilib architectures", - "A set of architectures on which this RPM " - "package should be available as multilib. What " - "this means varies from architecture to " - "architecture. An empty set is equal to no " - "multilib", - MODULEMD_TYPE_SIMPLESET, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_REF] = - g_param_spec_string ("ref", - "git ", - "The particular repository commit hash, branch " - "or tag name used in this module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_REPO] = - g_param_spec_string ("repository", - "VCS repository", - "The VCS repository with the RPM SPEC file, " - "patches and other package data.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties (object_class, N_PROPS, properties); -} - -static void -modulemd_component_rpm_init (ModulemdComponentRpm *self) -{ - self->arches = modulemd_simpleset_new (); - self->multilib = modulemd_simpleset_new (); -} diff --git a/modulemd-1.8.16/modulemd/modulemd-component.c b/modulemd-1.8.16/modulemd/modulemd-component.c deleted file mode 100644 index 984a8a1..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-component.c +++ /dev/null @@ -1,415 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include "modulemd-component.h" - - -enum -{ - COMPONENT_PROP_0, - - COMPONENT_PROP_BUILDORDER, - COMPONENT_PROP_NAME, - COMPONENT_PROP_RATIONALE, - - COMPONENT_N_PROPS -}; - -GParamSpec *component_properties[COMPONENT_N_PROPS] = { - NULL, -}; - -/* Private structure definition */ -typedef struct -{ - gint64 buildorder; - gchar *name; - gchar *rationale; -} ModulemdComponentPrivate; - -G_DEFINE_TYPE_WITH_PRIVATE (ModulemdComponent, - modulemd_component, - G_TYPE_OBJECT) - -static void -modulemd_component_default_set_buildorder (ModulemdComponent *self, - gint64 buildorder) -{ - g_return_if_fail (MODULEMD_IS_COMPONENT (self)); - ModulemdComponentPrivate *priv = - modulemd_component_get_instance_private (self); - - - priv->buildorder = buildorder; -} - -static gint64 -modulemd_component_default_get_buildorder (ModulemdComponent *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT (self), 0); - ModulemdComponentPrivate *priv = - modulemd_component_get_instance_private (self); - - return priv->buildorder; -} - -static void -modulemd_component_default_set_name (ModulemdComponent *self, - const gchar *name) -{ - g_return_if_fail (MODULEMD_IS_COMPONENT (self)); - ModulemdComponentPrivate *priv = - modulemd_component_get_instance_private (self); - - priv->name = g_strdup (name); -} - -static const gchar * -modulemd_component_default_peek_name (ModulemdComponent *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT (self), 0); - ModulemdComponentPrivate *priv = - modulemd_component_get_instance_private (self); - - return priv->name; -} - -static gchar * -modulemd_component_default_dup_name (ModulemdComponent *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT (self), 0); - ModulemdComponentPrivate *priv = - modulemd_component_get_instance_private (self); - - return g_strdup (priv->name); -} - -static void -modulemd_component_default_set_rationale (ModulemdComponent *self, - const gchar *rationale) -{ - g_return_if_fail (MODULEMD_IS_COMPONENT (self)); - ModulemdComponentPrivate *priv = - modulemd_component_get_instance_private (self); - - priv->rationale = g_strdup (rationale); -} - -static const gchar * -modulemd_component_default_peek_rationale (ModulemdComponent *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT (self), 0); - ModulemdComponentPrivate *priv = - modulemd_component_get_instance_private (self); - - return priv->rationale; -} - -static gchar * -modulemd_component_default_dup_rationale (ModulemdComponent *self) -{ - g_return_val_if_fail (MODULEMD_IS_COMPONENT (self), 0); - ModulemdComponentPrivate *priv = - modulemd_component_get_instance_private (self); - - return g_strdup (priv->rationale); -} - - -void -modulemd_component_set_buildorder (ModulemdComponent *self, gint64 buildorder) -{ - ModulemdComponentClass *klass; - - g_return_if_fail (MODULEMD_IS_COMPONENT (self)); - - klass = MODULEMD_COMPONENT_GET_CLASS (self); - g_return_if_fail (klass->set_buildorder); - - klass->set_buildorder (self, buildorder); -} - - -gint64 -modulemd_component_get_buildorder (ModulemdComponent *self) -{ - return modulemd_component_peek_buildorder (self); -} - - -gint64 -modulemd_component_peek_buildorder (ModulemdComponent *self) -{ - ModulemdComponentClass *klass; - - g_return_val_if_fail (MODULEMD_IS_COMPONENT (self), 0); - - klass = MODULEMD_COMPONENT_GET_CLASS (self); - g_return_val_if_fail (klass->peek_buildorder, 0); - - return klass->peek_buildorder (self); -} - - -void -modulemd_component_set_name (ModulemdComponent *self, const gchar *name) -{ - ModulemdComponentClass *klass; - - g_return_if_fail (MODULEMD_IS_COMPONENT (self)); - - klass = MODULEMD_COMPONENT_GET_CLASS (self); - g_return_if_fail (klass->set_name); - - klass->set_name (self, name); -} - - -const gchar * -modulemd_component_get_name (ModulemdComponent *self) -{ - return modulemd_component_peek_name (self); -} - - -const gchar * -modulemd_component_peek_name (ModulemdComponent *self) -{ - ModulemdComponentClass *klass; - - g_return_val_if_fail (MODULEMD_IS_COMPONENT (self), NULL); - - klass = MODULEMD_COMPONENT_GET_CLASS (self); - g_return_val_if_fail (klass->peek_name, NULL); - - - return klass->peek_name (self); -} - - -gchar * -modulemd_component_dup_name (ModulemdComponent *self) -{ - ModulemdComponentClass *klass; - - g_return_val_if_fail (MODULEMD_IS_COMPONENT (self), NULL); - - klass = MODULEMD_COMPONENT_GET_CLASS (self); - g_return_val_if_fail (klass->dup_name, NULL); - - - return klass->dup_name (self); -} - - -void -modulemd_component_set_rationale (ModulemdComponent *self, - const gchar *rationale) -{ - ModulemdComponentClass *klass; - - g_return_if_fail (MODULEMD_IS_COMPONENT (self)); - - klass = MODULEMD_COMPONENT_GET_CLASS (self); - g_return_if_fail (klass->set_rationale); - - klass->set_rationale (self, rationale); -} - - -const gchar * -modulemd_component_get_rationale (ModulemdComponent *self) -{ - return modulemd_component_peek_rationale (self); -} - - -const gchar * -modulemd_component_peek_rationale (ModulemdComponent *self) -{ - ModulemdComponentClass *klass; - - g_return_val_if_fail (MODULEMD_IS_COMPONENT (self), NULL); - - klass = MODULEMD_COMPONENT_GET_CLASS (self); - g_return_val_if_fail (klass->peek_rationale, NULL); - - - return klass->peek_rationale (self); -} - - -gchar * -modulemd_component_dup_rationale (ModulemdComponent *self) -{ - ModulemdComponentClass *klass; - - g_return_val_if_fail (MODULEMD_IS_COMPONENT (self), NULL); - - klass = MODULEMD_COMPONENT_GET_CLASS (self); - g_return_val_if_fail (klass->peek_rationale, NULL); - - - return klass->dup_rationale (self); -} - - -ModulemdComponent * -modulemd_component_copy (ModulemdComponent *self) -{ - ModulemdComponentClass *klass; - - if (!self) - return NULL; - - g_return_val_if_fail (MODULEMD_IS_COMPONENT (self), NULL); - - klass = MODULEMD_COMPONENT_GET_CLASS (self); - g_return_val_if_fail (klass->copy, NULL); - - - return klass->copy (self); -} - - -static void -modulemd_component_set_property (GObject *gobject, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - ModulemdComponent *self = MODULEMD_COMPONENT (gobject); - - switch (property_id) - { - case COMPONENT_PROP_BUILDORDER: - modulemd_component_set_buildorder (self, g_value_get_int64 (value)); - break; - - case COMPONENT_PROP_NAME: - modulemd_component_set_name (self, g_value_get_string (value)); - break; - - case COMPONENT_PROP_RATIONALE: - modulemd_component_set_rationale (self, g_value_get_string (value)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec); - break; - } -} - -static void -modulemd_component_get_property (GObject *gobject, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdComponent *self = MODULEMD_COMPONENT (gobject); - - switch (property_id) - { - case COMPONENT_PROP_BUILDORDER: - g_value_set_int64 (value, modulemd_component_peek_buildorder (self)); - break; - - case COMPONENT_PROP_NAME: - g_value_set_string (value, modulemd_component_peek_name (self)); - break; - - case COMPONENT_PROP_RATIONALE: - g_value_set_string (value, modulemd_component_peek_rationale (self)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec); - break; - } -} - -static void -modulemd_component_finalize (GObject *gobject) -{ - ModulemdComponent *self = (ModulemdComponent *)gobject; - ModulemdComponentPrivate *priv = - modulemd_component_get_instance_private (self); - - g_clear_pointer (&priv->name, g_free); - g_clear_pointer (&priv->rationale, g_free); -} - -static void -modulemd_component_class_init (ModulemdComponentClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->set_property = modulemd_component_set_property; - object_class->get_property = modulemd_component_get_property; - - object_class->finalize = modulemd_component_finalize; - - klass->set_buildorder = modulemd_component_default_set_buildorder; - klass->peek_buildorder = modulemd_component_default_get_buildorder; - - klass->set_name = modulemd_component_default_set_name; - klass->peek_name = modulemd_component_default_peek_name; - klass->dup_name = modulemd_component_default_dup_name; - - klass->set_rationale = modulemd_component_default_set_rationale; - klass->peek_rationale = modulemd_component_default_peek_rationale; - klass->dup_rationale = modulemd_component_default_dup_rationale; - - /* copy() is pure-virtual */ - klass->copy = NULL; - - component_properties[COMPONENT_PROP_BUILDORDER] = - g_param_spec_int64 ("buildorder", - "Build order", - "The buildorder index for this component.", - G_MININT64, - G_MAXINT64, - 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - component_properties[COMPONENT_PROP_NAME] = - g_param_spec_string ("name", - "Component name", - "The component name.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - component_properties[COMPONENT_PROP_RATIONALE] = - g_param_spec_string ("rationale", - "Component rationale", - "The rationale for including this component in " - "the module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties ( - object_class, COMPONENT_N_PROPS, component_properties); -} - -static void -modulemd_component_init (ModulemdComponent *self) -{ -} - - -ModulemdComponent * -modulemd_component_new (void) -{ - return g_object_new (MODULEMD_TYPE_COMPONENT, NULL); -} diff --git a/modulemd-1.8.16/modulemd/modulemd-defaults.c b/modulemd-1.8.16/modulemd/modulemd-defaults.c deleted file mode 100644 index 9fa00f4..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-defaults.c +++ /dev/null @@ -1,1013 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include "modulemd-defaults.h" -#include "modulemd-simpleset.h" -#include "private/modulemd-private.h" -#include "private/modulemd-yaml.h" - - -GQuark -modulemd_defaults_error_quark (void) -{ - return g_quark_from_static_string ("modulemd-defaults-error-quark"); -} - -struct _ModulemdDefaults -{ - GObject parent_instance; - - /* == Members == */ - guint64 version; - gchar *module_name; - gchar *default_stream; - GHashTable *intents; - GHashTable *profile_defaults; - guint64 modified; -}; - -G_DEFINE_TYPE (ModulemdDefaults, modulemd_defaults, G_TYPE_OBJECT) - -enum -{ - PROP_0, - - PROP_VERSION, - PROP_MODULE_NAME, - PROP_DEFAULT_STREAM, - PROP_INTENTS, - PROP_PROFILE_DEFAULTS, - - N_PROPS -}; - -static GParamSpec *properties[N_PROPS]; - -ModulemdDefaults * -modulemd_defaults_new (void) -{ - return g_object_new (MODULEMD_TYPE_DEFAULTS, NULL); -} - -static void -modulemd_defaults_finalize (GObject *object) -{ - ModulemdDefaults *self = (ModulemdDefaults *)object; - - g_clear_pointer (&self->module_name, g_free); - g_clear_pointer (&self->default_stream, g_free); - g_clear_pointer (&self->intents, g_hash_table_unref); - g_clear_pointer (&self->profile_defaults, g_hash_table_unref); - - G_OBJECT_CLASS (modulemd_defaults_parent_class)->finalize (object); -} - - -void -modulemd_defaults_set_version (ModulemdDefaults *self, guint64 version) -{ - g_return_if_fail (MODULEMD_IS_DEFAULTS (self)); - - if (self->version != version) - { - self->version = version; - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_VERSION]); - } -} - - -guint64 -modulemd_defaults_peek_version (ModulemdDefaults *self) -{ - g_return_val_if_fail (self, MD_DEFAULTS_VERSION_UNSET); - - return self->version; -} - - -void -modulemd_defaults_set_module_name (ModulemdDefaults *self, const gchar *name) -{ - g_return_if_fail (MODULEMD_IS_DEFAULTS (self)); - - if (g_strcmp0 (self->module_name, name) != 0) - { - g_free (self->module_name); - self->module_name = g_strdup (name); - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MODULE_NAME]); - } -} - - -const gchar * -modulemd_defaults_peek_module_name (ModulemdDefaults *self) -{ - g_return_val_if_fail (self, NULL); - - return self->module_name; -} - - -gchar * -modulemd_defaults_dup_module_name (ModulemdDefaults *self) -{ - g_return_val_if_fail (self, NULL); - - return g_strdup (self->module_name); -} - - -void -modulemd_defaults_set_default_stream (ModulemdDefaults *self, - const gchar *stream) -{ - g_return_if_fail (MODULEMD_IS_DEFAULTS (self)); - - if (g_strcmp0 (self->default_stream, stream) != 0) - { - g_free (self->default_stream); - self->default_stream = g_strdup (stream); - g_object_notify_by_pspec (G_OBJECT (self), - properties[PROP_DEFAULT_STREAM]); - } -} - - -const gchar * -modulemd_defaults_peek_default_stream (ModulemdDefaults *self) -{ - g_return_val_if_fail (self, NULL); - - if (self->default_stream && - g_str_equal (self->default_stream, DEFAULT_MERGE_CONFLICT)) - { - /* During an index merge, we determined that this was in conflict - * with another set of ModulemdDefaults for the same module. If we - * see this, treat it as no default stream when querying for it. - */ - return NULL; - } - return self->default_stream; -} - - -gchar * -modulemd_defaults_dup_default_stream (ModulemdDefaults *self) -{ - g_return_val_if_fail (self, NULL); - - if (self->default_stream && - g_str_equal (self->default_stream, DEFAULT_MERGE_CONFLICT)) - { - /* During an index merge, we determined that this was in conflict - * with another set of ModulemdDefaults for the same module. If we - * see this, treat it as no default stream when querying for it. - */ - return NULL; - } - - return g_strdup (self->default_stream); -} - - -void -modulemd_defaults_set_profiles_for_stream (ModulemdDefaults *self, - const gchar *stream, - gchar **profiles) -{ - ModulemdSimpleSet *set = NULL; - g_return_if_fail (MODULEMD_IS_DEFAULTS (self)); - - set = modulemd_simpleset_new (); - modulemd_simpleset_set (set, profiles); - - g_hash_table_replace (self->profile_defaults, g_strdup (stream), set); - g_object_notify_by_pspec (G_OBJECT (self), - properties[PROP_PROFILE_DEFAULTS]); -} - - -void -modulemd_defaults_assign_profiles_for_stream (ModulemdDefaults *self, - const gchar *stream, - ModulemdSimpleSet *profiles) -{ - ModulemdSimpleSet *set = NULL; - g_return_if_fail (MODULEMD_IS_DEFAULTS (self)); - - modulemd_simpleset_copy (profiles, &set); - - g_hash_table_replace (self->profile_defaults, g_strdup (stream), set); - g_object_notify_by_pspec (G_OBJECT (self), - properties[PROP_PROFILE_DEFAULTS]); -} - - -void -modulemd_defaults_set_profile_defaults (ModulemdDefaults *self, - GHashTable *profile_defaults) -{ - GHashTableIter iter; - gpointer key, value; - ModulemdSimpleSet *set = NULL; - - g_return_if_fail (MODULEMD_IS_DEFAULTS (self)); - - g_hash_table_remove_all (self->profile_defaults); - - if (profile_defaults) - { - g_hash_table_iter_init (&iter, profile_defaults); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - modulemd_simpleset_copy ((ModulemdSimpleSet *)value, &set); - g_hash_table_replace ( - self->profile_defaults, g_strdup ((const gchar *)key), set); - set = NULL; - } - } - - g_object_notify_by_pspec (G_OBJECT (self), - properties[PROP_PROFILE_DEFAULTS]); -} - - -gchar ** -modulemd_defaults_dup_profiles_for_stream (ModulemdDefaults *self, - const gchar *stream) -{ - ModulemdSimpleSet *set = NULL; - gchar **profiles = NULL; - - g_return_val_if_fail (MODULEMD_IS_DEFAULTS (self), NULL); - - set = g_hash_table_lookup (self->profile_defaults, stream); - - profiles = modulemd_simpleset_dup (set); - g_clear_pointer (&set, g_object_unref); - - return profiles; -} - - -GHashTable * -modulemd_defaults_peek_profile_defaults (ModulemdDefaults *self) -{ - g_return_val_if_fail (MODULEMD_IS_DEFAULTS (self), NULL); - - return self->profile_defaults; -} - - -GHashTable * -modulemd_defaults_dup_profile_defaults (ModulemdDefaults *self) -{ - GHashTableIter iter; - GHashTable *new; - gpointer key, value; - ModulemdSimpleSet *set = NULL; - - g_return_val_if_fail (MODULEMD_IS_DEFAULTS (self), NULL); - - new = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - - g_hash_table_iter_init (&iter, self->profile_defaults); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - modulemd_simpleset_copy ((ModulemdSimpleSet *)value, &set); - g_hash_table_replace (new, g_strdup ((const gchar *)key), set); - set = NULL; - } - - return new; -} - - -void -modulemd_defaults_add_intent (ModulemdDefaults *self, ModulemdIntent *intent) -{ - g_autoptr (ModulemdIntent) copy = NULL; - - g_return_if_fail (MODULEMD_IS_DEFAULTS (self)); - g_return_if_fail (MODULEMD_IS_INTENT (intent)); - - copy = modulemd_intent_copy (intent); - g_hash_table_replace (self->intents, - g_strdup (modulemd_intent_peek_intent_name (intent)), - g_object_ref (copy)); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_INTENTS]); -} - - -void -modulemd_defaults_set_intents (ModulemdDefaults *self, GHashTable *intents) -{ - GHashTableIter iter; - gpointer key, value; - g_return_if_fail (MODULEMD_IS_DEFAULTS (self)); - - g_hash_table_remove_all (self->intents); - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_INTENTS]); - - if (intents) - { - g_hash_table_iter_init (&iter, intents); - - while (g_hash_table_iter_next (&iter, &key, &value)) - { - modulemd_defaults_add_intent (self, MODULEMD_INTENT (value)); - } - } -} - - -GHashTable * -modulemd_defaults_peek_intents (ModulemdDefaults *self) -{ - g_return_val_if_fail (MODULEMD_IS_DEFAULTS (self), NULL); - - return self->intents; -} - - -GHashTable * -modulemd_defaults_dup_intents (ModulemdDefaults *self) -{ - g_autoptr (GHashTable) intents = NULL; - ModulemdIntent *intent = NULL; - gpointer key, value; - GHashTableIter iter; - - g_return_val_if_fail (MODULEMD_IS_DEFAULTS (self), NULL); - - intents = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - g_hash_table_iter_init (&iter, self->intents); - - while (g_hash_table_iter_next (&iter, &key, &value)) - { - intent = MODULEMD_INTENT (value); - g_hash_table_replace ( - intents, - g_strdup (modulemd_intent_peek_intent_name (intent)), - modulemd_intent_copy (intent)); - } - - return g_hash_table_ref (intents); -} - - -void -modulemd_defaults_set_modified (ModulemdDefaults *self, guint64 modified) -{ - g_return_if_fail (MODULEMD_IS_DEFAULTS (self)); - self->modified = modified; -} - - -guint64 -modulemd_defaults_get_modified (ModulemdDefaults *self) -{ - return self->modified; -} - - -ModulemdDefaults * -modulemd_defaults_new_from_file (const gchar *yaml_file, GError **error) -{ - return modulemd_defaults_new_from_file_ext (yaml_file, NULL, error); -} - - -ModulemdDefaults * -modulemd_defaults_new_from_file_ext (const gchar *yaml_file, - GPtrArray **failures, - GError **error) -{ - GObject *object = NULL; - GPtrArray *data = NULL; - ModulemdDefaults *defaults = NULL; - - if (!parse_yaml_file (yaml_file, &data, failures, error)) - { - return NULL; - } - - for (gsize i = 0; i < data->len; i++) - { - object = g_ptr_array_index (data, i); - if (MODULEMD_IS_DEFAULTS (object)) - { - defaults = MODULEMD_DEFAULTS (g_object_ref (object)); - break; - } - } - - if (!defaults) - { - g_set_error (error, - MODULEMD_DEFAULTS_ERROR, - MODULEMD_DEFAULTS_ERROR_MISSING_CONTENT, - "Provided YAML file contained no valid defaults objects"); - } - - g_clear_pointer (&data, g_ptr_array_unref); - - return defaults; -} - - -ModulemdDefaults * -modulemd_defaults_new_from_string (const gchar *yaml_string, GError **error) -{ - return modulemd_defaults_new_from_string_ext (yaml_string, NULL, error); -} - - -ModulemdDefaults * -modulemd_defaults_new_from_string_ext (const gchar *yaml_string, - GPtrArray **failures, - GError **error) -{ - GObject *object = NULL; - GPtrArray *data = NULL; - ModulemdDefaults *defaults = NULL; - - if (!parse_yaml_string (yaml_string, &data, failures, error)) - { - return NULL; - } - - for (gsize i = 0; i < data->len; i++) - { - object = g_ptr_array_index (data, i); - if (MODULEMD_IS_DEFAULTS (object)) - { - defaults = MODULEMD_DEFAULTS (g_object_ref (object)); - break; - } - } - - if (!defaults) - { - g_set_error (error, - MODULEMD_DEFAULTS_ERROR, - MODULEMD_DEFAULTS_ERROR_MISSING_CONTENT, - "Provided YAML file contained no valid defaults objects"); - } - - g_clear_pointer (&data, g_ptr_array_unref); - - return defaults; -} - - -ModulemdDefaults * -modulemd_defaults_new_from_stream (FILE *stream, GError **error) -{ - return modulemd_defaults_new_from_stream_ext (stream, NULL, error); -} - - -ModulemdDefaults * -modulemd_defaults_new_from_stream_ext (FILE *stream, - GPtrArray **failures, - GError **error) -{ - GObject *object = NULL; - g_autoptr (GPtrArray) data = NULL; - ModulemdDefaults *defaults = NULL; - - if (!parse_yaml_stream (stream, &data, failures, error)) - { - return NULL; - } - - for (gsize i = 0; i < data->len; i++) - { - object = g_ptr_array_index (data, i); - if (MODULEMD_IS_DEFAULTS (object)) - { - defaults = MODULEMD_DEFAULTS (g_object_ref (object)); - break; - } - } - - if (!defaults) - { - g_set_error (error, - MODULEMD_DEFAULTS_ERROR, - MODULEMD_DEFAULTS_ERROR_MISSING_CONTENT, - "Provided YAML stream contained no valid defaults objects"); - } - - return defaults; -} - - -void -modulemd_defaults_dump (ModulemdDefaults *self, const gchar *file_path) -{ - GPtrArray *objects = NULL; - GError *error = NULL; - - g_return_if_fail (MODULEMD_IS_DEFAULTS (self)); - - objects = g_ptr_array_new (); - - g_ptr_array_add (objects, self); - - if (!emit_yaml_file (objects, file_path, &error)) - { - g_debug ("Failed to export YAML: [%s]", error->message); - } - - g_ptr_array_unref (objects); -} - - -void -modulemd_defaults_dumps (ModulemdDefaults *self, gchar **yaml_string) -{ - GPtrArray *objects = NULL; - GError *error = NULL; - - g_return_if_fail (MODULEMD_IS_DEFAULTS (self)); - - objects = g_ptr_array_new (); - - g_ptr_array_add (objects, self); - - if (!emit_yaml_string (objects, yaml_string, &error)) - { - g_debug ("Failed to export YAML: [%s]", error->message); - } - - g_ptr_array_unref (objects); -} - - -static void -modulemd_defaults_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdDefaults *self = MODULEMD_DEFAULTS (object); - - switch (prop_id) - { - case PROP_VERSION: - g_value_set_uint64 (value, modulemd_defaults_peek_version (self)); - break; - - case PROP_MODULE_NAME: - g_value_set_string (value, modulemd_defaults_peek_module_name (self)); - break; - - case PROP_DEFAULT_STREAM: - g_value_set_string (value, modulemd_defaults_peek_default_stream (self)); - break; - - case PROP_INTENTS: - g_value_take_boxed (value, modulemd_defaults_dup_intents (self)); - break; - - case PROP_PROFILE_DEFAULTS: - g_value_take_boxed (value, - modulemd_defaults_dup_profile_defaults (self)); - break; - - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; - } -} - -static void -modulemd_defaults_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - ModulemdDefaults *self = MODULEMD_DEFAULTS (object); - - switch (prop_id) - { - case PROP_VERSION: - modulemd_defaults_set_version (self, g_value_get_uint64 (value)); - break; - - case PROP_MODULE_NAME: - modulemd_defaults_set_module_name (self, g_value_get_string (value)); - break; - - case PROP_DEFAULT_STREAM: - modulemd_defaults_set_default_stream (self, g_value_get_string (value)); - break; - - case PROP_INTENTS: - modulemd_defaults_set_intents (self, g_value_get_boxed (value)); - break; - - case PROP_PROFILE_DEFAULTS: - modulemd_defaults_set_profile_defaults (self, g_value_get_boxed (value)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; - } -} - -static void -modulemd_defaults_class_init (ModulemdDefaultsClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->finalize = modulemd_defaults_finalize; - object_class->get_property = modulemd_defaults_get_property; - object_class->set_property = modulemd_defaults_set_property; - - properties[PROP_VERSION] = - g_param_spec_uint64 ("version", - "Module Defaults file format version", - "An integer property representing the defaults file " - "format used.", - 0, - G_MAXUINT64, - 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_MODULE_NAME] = g_param_spec_string ( - "module-name", - "Module Name", - "The name of the module to which these defaults apply.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_DEFAULT_STREAM] = g_param_spec_string ( - "default-stream", - "Default Stream", - "The name of the stream that will be used by default for this module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdDefaults:profile-defaults: (type GLib.HashTable(utf8,ModulemdSimpleSet)) - */ - properties[PROP_PROFILE_DEFAULTS] = g_param_spec_boxed ( - "profile-defaults", - "Profile Defaults", - "A hash table comprised of the set of profiles that act as the default " - "for each available stream of the module.", - G_TYPE_HASH_TABLE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdDefaults:intents: (type GLib.HashTable(utf8,ModulemdIntent)) - */ - properties[PROP_INTENTS] = g_param_spec_boxed ( - "intents", - "Intents", - "A hash table describing divergent defaults based on the intent of the " - "system.", - G_TYPE_HASH_TABLE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - - g_object_class_install_properties (object_class, N_PROPS, properties); -} - -static void -modulemd_defaults_init (ModulemdDefaults *self) -{ - self->intents = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - self->profile_defaults = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); -} - - -ModulemdDefaults * -modulemd_defaults_copy (ModulemdDefaults *self) -{ - if (!self) - return NULL; - - ModulemdDefaults *new_defaults = modulemd_defaults_new (); - - modulemd_defaults_set_version (new_defaults, - modulemd_defaults_peek_version (self)); - modulemd_defaults_set_module_name ( - new_defaults, modulemd_defaults_peek_module_name (self)); - modulemd_defaults_set_modified (new_defaults, - modulemd_defaults_get_modified (self)); - modulemd_defaults_set_default_stream ( - new_defaults, modulemd_defaults_peek_default_stream (self)); - modulemd_defaults_set_profile_defaults ( - new_defaults, modulemd_defaults_peek_profile_defaults (self)); - - modulemd_defaults_set_intents (new_defaults, - modulemd_defaults_peek_intents (self)); - - return new_defaults; -} - - -static gboolean -modulemd_defaults_merge_default_profiles (GHashTable *from_profile_defaults, - GHashTable *merged_profile_defaults, - guint64 from_modified, - guint64 into_modified, - GError **error); - -static void -modulemd_defaults_merge_intent_default_streams (ModulemdIntent *from_intent, - ModulemdIntent *into_intent, - const gchar *intent_name, - guint64 from_modified, - guint64 into_modified); - -ModulemdDefaults * -modulemd_defaults_merge (ModulemdDefaults *first, - ModulemdDefaults *second, - gboolean override, - GError **error) -{ - g_autoptr (ModulemdDefaults) merged = NULL; - ModulemdIntent *from_intent = NULL; - ModulemdIntent *merged_intent = NULL; - const gchar *intent_name = NULL; - GHashTableIter iter; - gpointer key, value; - - - g_return_val_if_fail (first && MODULEMD_IS_DEFAULTS (first), NULL); - g_return_val_if_fail (second && MODULEMD_IS_DEFAULTS (second), NULL); - - if (override) - { - /* If override is set, then returning a copy of second is the - * shortest path - */ - return modulemd_defaults_copy (second); - } - - /* Start from a copy of the base */ - merged = modulemd_defaults_copy (first); - - /* == Merge default streams == */ - if (second->default_stream && !merged->default_stream) - { - /* Only the second Defaults had a default stream, so set that */ - modulemd_defaults_set_default_stream (merged, second->default_stream); - } - else if (merged->default_stream && second->default_stream) - { - /* Both of them had a defaults set */ - - /* Shortcut past if we already know there are conflicts in this - * default stream. - */ - if (!g_str_equal (merged->default_stream, DEFAULT_MERGE_CONFLICT)) - { - /* If second has a higher modified value, use its value. - * If first has a higher modified value, it's already saved in - * merged from the copy() - */ - if (second->modified > first->modified) - { - modulemd_defaults_set_default_stream (merged, - second->default_stream); - } - else if (first->modified == second->modified) - { - if (!g_str_equal (first->default_stream, second->default_stream)) - { - /* They have conflicting default streams */ - g_info ("Module stream mismatch in merge: %s != %s", - first->default_stream, - second->default_stream); - - /* Set the special conflicting value */ - modulemd_defaults_set_default_stream ( - merged, DEFAULT_MERGE_CONFLICT); - } - /* Otherwise, they are the same and merged will have the correct - * value from the copy() - */ - } - } - } - /* If neither of the above matched, both first and second had NULL for the - * default stream, so nothing to do - */ - - - /* == Merge profile defaults == */ - if (!modulemd_defaults_merge_default_profiles (second->profile_defaults, - merged->profile_defaults, - second->modified, - first->modified, - error)) - { - return NULL; - } - - - /* == Merge intent defaults == */ - - /* --- Merge intent default stream values --- */ - - /* Iterate through 'second', adding any new values and checking the existing - * ones for equivalence. - */ - g_hash_table_iter_init (&iter, modulemd_defaults_peek_intents (second)); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - g_return_val_if_fail (value && MODULEMD_IS_INTENT (value), FALSE); - - intent_name = (gchar *)key; - from_intent = MODULEMD_INTENT (value); - - merged_intent = g_hash_table_lookup (merged->intents, intent_name); - if (!merged_intent) - { - /* This intent doesn't exist yet, so just add it completely. */ - g_hash_table_insert (merged->intents, - g_strdup (intent_name), - modulemd_intent_copy (from_intent)); - continue; - } - - /* Merge the intent default streams */ - modulemd_defaults_merge_intent_default_streams (from_intent, - merged_intent, - intent_name, - second->modified, - first->modified); - - /* Merge the intent default profiles */ - if (!modulemd_defaults_merge_default_profiles ( - modulemd_intent_peek_profile_defaults (from_intent), - modulemd_intent_peek_profile_defaults (merged_intent), - second->modified, - first->modified, - error)) - { - return NULL; - } - } - - /* Set the modified value to the higher of the two provided */ - if (second->modified > first->modified) - modulemd_defaults_set_modified (merged, second->modified); - - return g_steal_pointer (&merged); -} - - -static gboolean -modulemd_defaults_merge_default_profiles (GHashTable *from_profile_defaults, - GHashTable *merged_profile_defaults, - guint64 from_modified, - guint64 into_modified, - GError **error) -{ - GHashTableIter iter; - gpointer key, value; - gchar *stream_name = NULL; - ModulemdSimpleSet *from_profiles = NULL; - ModulemdSimpleSet *merged_profiles = NULL; - ModulemdSimpleSet *copied_profiles = NULL; - - g_hash_table_iter_init (&iter, from_profile_defaults); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - stream_name = (gchar *)key; - from_profiles = (ModulemdSimpleSet *)value; - merged_profiles = - g_hash_table_lookup (merged_profile_defaults, stream_name); - - if (!merged_profiles) - { - /* Didn't appear in the profiles list, so just add it to merged */ - modulemd_simpleset_copy (from_profiles, &copied_profiles); - g_hash_table_insert ( - merged_profile_defaults, g_strdup (stream_name), copied_profiles); - copied_profiles = NULL; - continue; - } - - /* Check to see if they match */ - if (!modulemd_simpleset_is_equal (from_profiles, merged_profiles)) - { - if (from_modified > into_modified) - { - modulemd_simpleset_copy (from_profiles, &copied_profiles); - g_hash_table_insert (merged_profile_defaults, - g_strdup (stream_name), - copied_profiles); - copied_profiles = NULL; - } - else if (into_modified > from_modified) - { - /* Already there, so just continue */ - continue; - } - else - { - /* The profile sets differed. This is an unresolvable merge - * conflict - */ - g_set_error (error, - MODULEMD_DEFAULTS_ERROR, - MODULEMD_DEFAULTS_ERROR_CONFLICTING_PROFILES, - "Profile default mismatch in stream: %s", - stream_name); - return FALSE; - } - } - - /* They were a complete match, so no need to add it a second time */ - } - - return TRUE; -} - -static void -modulemd_defaults_merge_intent_default_streams (ModulemdIntent *from_intent, - ModulemdIntent *into_intent, - const gchar *intent_name, - guint64 from_modified, - guint64 into_modified) -{ - const gchar *from_default_stream = NULL; - const gchar *into_default_stream = NULL; - - g_return_if_fail (from_intent && MODULEMD_IS_INTENT (from_intent)); - g_return_if_fail (into_intent && MODULEMD_IS_INTENT (into_intent)); - g_return_if_fail (intent_name); - - from_default_stream = modulemd_intent_peek_default_stream (from_intent); - - /* If there is no new default stream, just jump to the next item */ - if (!from_default_stream) - return; - - into_default_stream = modulemd_intent_peek_default_stream (into_intent); - - - /* If a previous merge has already marked this as conflicting, just bail - * out here and move on to the next intent - */ - if (g_str_equal (into_default_stream, DEFAULT_MERGE_CONFLICT)) - return; - - - if (into_default_stream) - { - /* Both default stream names are present. - * If they are equal, there's nothing to do. - */ - - if (!g_str_equal (into_default_stream, from_default_stream)) - { - if (from_modified > into_modified) - { - /* Set the default stream of from as the merged value */ - modulemd_intent_set_default_stream (into_intent, - from_default_stream); - return; - } - else if (into_modified == from_modified) - { - g_info ( - "Module stream mismatch in merge: %s != %s for intent %s", - into_default_stream, - from_default_stream, - intent_name); - modulemd_intent_set_default_stream (into_intent, - DEFAULT_MERGE_CONFLICT); - return; - } - /* Otherwise into is already set, so do nothing */ - } - } - else /* !into_default_stream */ - { - /* There was no default stream set yet, so just add the new one */ - modulemd_intent_set_default_stream (into_intent, from_default_stream); - } -} diff --git a/modulemd-1.8.16/modulemd/modulemd-dependencies.c b/modulemd-1.8.16/modulemd/modulemd-dependencies.c deleted file mode 100644 index 0b21946..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-dependencies.c +++ /dev/null @@ -1,412 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include -#include "private/modulemd-util.h" - - -struct _ModulemdDependencies -{ - GObject parent_instance; - - GHashTable *buildrequires; - GHashTable *requires; -}; - -G_DEFINE_TYPE (ModulemdDependencies, modulemd_dependencies, G_TYPE_OBJECT) - -enum -{ - DEPS_PROP_0, - - DEPS_PROP_BUILDREQUIRES, - DEPS_PROP_REQUIRES, - - DEPS_N_PROPS -}; - -static GParamSpec *deps_properties[DEPS_N_PROPS]; - - -static void -_modulemd_dependencies_add_streams (GHashTable *reqs, - const gchar *module, - const gchar **streams) -{ - ModulemdSimpleSet *streamset = - MODULEMD_SIMPLESET (g_hash_table_lookup (reqs, module)); - gsize i = 0; - - if (streamset == NULL) - { - streamset = modulemd_simpleset_new (); - } - else - { - g_object_ref (streamset); - } - - for (i = 0; streams[i]; i++) - { - modulemd_simpleset_add (streamset, streams[i]); - } - - g_hash_table_replace (reqs, g_strdup (module), streamset); -} - -static void -_modulemd_dependencies_add_stream (GHashTable *reqs, - const gchar *module, - const gchar *stream) -{ - const gchar **streams = g_new0 (const gchar *, 2); - streams[0] = g_strdup (stream); - - _modulemd_dependencies_add_streams (reqs, module, streams); - g_clear_pointer (&streams[0], g_free); - g_clear_pointer (&streams, g_free); -} - - -void -modulemd_dependencies_add_buildrequires (ModulemdDependencies *self, - const gchar *module, - const gchar **streams) -{ - GHashTable *br = g_hash_table_ref (self->buildrequires); - - _modulemd_dependencies_add_streams (br, module, streams); - - g_hash_table_unref (br); - - g_object_notify_by_pspec (G_OBJECT (self), - deps_properties[DEPS_PROP_BUILDREQUIRES]); -} - - -void -modulemd_dependencies_add_buildrequires_single (ModulemdDependencies *self, - const gchar *module, - const gchar *stream) -{ - GHashTable *br = g_hash_table_ref (self->buildrequires); - - _modulemd_dependencies_add_stream (br, module, stream); - - g_hash_table_unref (br); - - g_object_notify_by_pspec (G_OBJECT (self), - deps_properties[DEPS_PROP_BUILDREQUIRES]); -} - - -void -modulemd_dependencies_set_buildrequires (ModulemdDependencies *self, - GHashTable *buildrequires) -{ - GHashTableIter iter; - gpointer key, value; - ModulemdSimpleSet *copy = NULL; - g_return_if_fail (MODULEMD_IS_DEPENDENCIES (self)); - - g_hash_table_remove_all (self->buildrequires); - - if (buildrequires) - { - g_hash_table_iter_init (&iter, buildrequires); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - modulemd_simpleset_copy ((ModulemdSimpleSet *)value, ©); - - g_hash_table_replace ( - self->buildrequires, g_strdup ((gchar *)key), g_object_ref (copy)); - - g_clear_pointer (©, g_object_unref); - } - } - - g_object_notify_by_pspec (G_OBJECT (self), - deps_properties[DEPS_PROP_BUILDREQUIRES]); -} - - -GHashTable * -modulemd_dependencies_get_buildrequires (ModulemdDependencies *self) -{ - return modulemd_dependencies_peek_buildrequires (self); -} - - -GHashTable * -modulemd_dependencies_peek_buildrequires (ModulemdDependencies *self) -{ - g_return_val_if_fail (MODULEMD_IS_DEPENDENCIES (self), NULL); - - return self->buildrequires; -} - - -static GHashTable * -modulemd_dependencies_dup_requires_common (GHashTable *requires) -{ - GHashTable *new_requires = NULL; - ModulemdSimpleSet *set = NULL; - GHashTableIter iter; - gpointer key, value; - - g_return_val_if_fail (requires, NULL); - - new_requires = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - - g_hash_table_iter_init (&iter, requires); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - set = NULL; - modulemd_simpleset_copy (MODULEMD_SIMPLESET (value), &set); - g_hash_table_replace ( - new_requires, g_strdup ((gchar *)key), (gpointer)set); - } - - return new_requires; -} - - -GHashTable * -modulemd_dependencies_dup_buildrequires (ModulemdDependencies *self) -{ - g_return_val_if_fail (MODULEMD_IS_DEPENDENCIES (self), NULL); - - return modulemd_dependencies_dup_requires_common (self->buildrequires); -} - - -void -modulemd_dependencies_add_requires (ModulemdDependencies *self, - const gchar *module, - const gchar **streams) -{ - GHashTable *r = g_hash_table_ref (self->requires); - - _modulemd_dependencies_add_streams (r, module, streams); - - g_hash_table_unref (r); - - g_object_notify_by_pspec (G_OBJECT (self), - deps_properties[DEPS_PROP_REQUIRES]); -} - - -void -modulemd_dependencies_add_requires_single (ModulemdDependencies *self, - const gchar *module, - const gchar *stream) -{ - GHashTable *r = g_hash_table_ref (self->requires); - - _modulemd_dependencies_add_stream (r, module, stream); - - g_hash_table_unref (r); - - g_object_notify_by_pspec (G_OBJECT (self), - deps_properties[DEPS_PROP_REQUIRES]); -} - - -void -modulemd_dependencies_set_requires (ModulemdDependencies *self, - GHashTable *requires) -{ - GHashTableIter iter; - gpointer key, value; - ModulemdSimpleSet *copy = NULL; - g_return_if_fail (MODULEMD_IS_DEPENDENCIES (self)); - - g_hash_table_remove_all (self->requires); - - if (requires) - { - g_hash_table_iter_init (&iter, requires); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - modulemd_simpleset_copy ((ModulemdSimpleSet *)value, ©); - - g_hash_table_replace ( - self->requires, g_strdup ((gchar *)key), g_object_ref (copy)); - - g_clear_pointer (©, g_object_unref); - } - } - - g_object_notify_by_pspec (G_OBJECT (self), - deps_properties[DEPS_PROP_REQUIRES]); -} - - -GHashTable * -modulemd_dependencies_get_requires (ModulemdDependencies *self) -{ - return modulemd_dependencies_peek_requires (self); -} - - -GHashTable * -modulemd_dependencies_peek_requires (ModulemdDependencies *self) -{ - g_return_val_if_fail (MODULEMD_IS_DEPENDENCIES (self), NULL); - - return self->requires; -} - - -GHashTable * -modulemd_dependencies_dup_requires (ModulemdDependencies *self) -{ - g_return_val_if_fail (MODULEMD_IS_DEPENDENCIES (self), NULL); - - return modulemd_dependencies_dup_requires_common (self->requires); -} - - -void -modulemd_dependencies_copy (ModulemdDependencies *self, - ModulemdDependencies **dest) -{ - if (!self) - return; - - g_return_if_fail (MODULEMD_IS_DEPENDENCIES (self)); - g_return_if_fail (dest); - g_return_if_fail (*dest == NULL || - (*dest != NULL && MODULEMD_IS_DEPENDENCIES (*dest))); - - /* Allocate a Modulemd.Dependencies if needed */ - if (*dest == NULL) - { - *dest = modulemd_dependencies_new (); - } - - modulemd_dependencies_set_buildrequires (*dest, self->buildrequires); - modulemd_dependencies_set_requires (*dest, self->requires); -} - - -ModulemdDependencies * -modulemd_dependencies_new (void) -{ - return g_object_new (MODULEMD_TYPE_DEPENDENCIES, NULL); -} - -static void -modulemd_dependencies_finalize (GObject *object) -{ - ModulemdDependencies *self = (ModulemdDependencies *)object; - - g_clear_pointer (&self->buildrequires, g_hash_table_unref); - g_clear_pointer (&self->requires, g_hash_table_unref); - - G_OBJECT_CLASS (modulemd_dependencies_parent_class)->finalize (object); -} - -static void -modulemd_dependencies_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdDependencies *self = MODULEMD_DEPENDENCIES (object); - - switch (prop_id) - { - case DEPS_PROP_BUILDREQUIRES: - g_value_take_boxed (value, - modulemd_dependencies_dup_buildrequires (self)); - break; - - case DEPS_PROP_REQUIRES: - g_value_take_boxed (value, modulemd_dependencies_dup_requires (self)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; - } -} - -static void -modulemd_dependencies_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - ModulemdDependencies *self = MODULEMD_DEPENDENCIES (object); - - switch (prop_id) - { - case DEPS_PROP_BUILDREQUIRES: - modulemd_dependencies_set_buildrequires (self, - g_value_get_boxed (value)); - break; - - case DEPS_PROP_REQUIRES: - modulemd_dependencies_set_requires (self, g_value_get_boxed (value)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; - } -} - -static void -modulemd_dependencies_class_init (ModulemdDependenciesClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->finalize = modulemd_dependencies_finalize; - object_class->get_property = modulemd_dependencies_get_property; - object_class->set_property = modulemd_dependencies_set_property; - - /** - * ModulemdDependencies:buildrequires: (type GLib.HashTable(utf8,ModulemdSimpleSet)) (transfer none) - */ - deps_properties[DEPS_PROP_BUILDREQUIRES] = g_param_spec_boxed ( - "buildrequires", - "Build dependencies", - "A dictionary of module streams that this module must build against. The " - "build system will create a matrix of builds from the modules and streams " - "specified.", - G_TYPE_HASH_TABLE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdDependencies:requires: (type GLib.HashTable(utf8,ModulemdSimpleSet)) (transfer none) - */ - deps_properties[DEPS_PROP_REQUIRES] = g_param_spec_boxed ( - "requires", - "Runtime dependencies", - "A dictionary of module streams that this module requires at runtime. The " - "buildsystem will match this to the buildrequires matrix as appropriate.", - G_TYPE_HASH_TABLE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties ( - object_class, DEPS_N_PROPS, deps_properties); -} - -static void -modulemd_dependencies_init (ModulemdDependencies *self) -{ - /* Allocate the members */ - self->buildrequires = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - self->requires = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); -} diff --git a/modulemd-1.8.16/modulemd/modulemd-docs.xml b/modulemd-1.8.16/modulemd/modulemd-docs.xml deleted file mode 100644 index 570a2e8..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-docs.xml +++ /dev/null @@ -1,59 +0,0 @@ - - -]> - - - Modulemd Reference Manual - - for Modulemd &version; - - - - Stephen - Gallagher - -
- sgallagh@redhat.com -
-
-
-
- - 2017-2018 - Stephen Gallagher - -
- - - libmodulemd - - - API Documentation for libmodulemd. - - - - Modulemd 1.0 (Deprecated) - - - - - - - - - - - - - - - - - - - - - -
\ No newline at end of file diff --git a/modulemd-1.8.16/modulemd/modulemd-improvedmodule.c b/modulemd-1.8.16/modulemd/modulemd-improvedmodule.c deleted file mode 100644 index e0c5ebf..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-improvedmodule.c +++ /dev/null @@ -1,433 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include "modulemd-improvedmodule.h" -#include "private/modulemd-improvedmodule-private.h" -#include "private/modulemd-util.h" -#include "private/modulemd-yaml.h" - - -struct _ModulemdImprovedModule -{ - GObject parent_instance; - - /* The name of this module */ - gchar *name; - - /* Hash table of streams available in this module, indexed by stream name */ - GHashTable *streams; - - /* The defaults for this module */ - ModulemdDefaults *defaults; -}; - -G_DEFINE_TYPE (ModulemdImprovedModule, modulemd_improvedmodule, G_TYPE_OBJECT) - -enum -{ - PROP_0, - - PROP_NAME, - PROP_DEFAULTS, - - N_PROPS -}; - -static GParamSpec *properties[N_PROPS]; - -ModulemdImprovedModule * -modulemd_improvedmodule_new (const gchar *name) -{ - return g_object_new (MODULEMD_TYPE_IMPROVEDMODULE, "name", name, NULL); -} - -static void -modulemd_improvedmodule_finalize (GObject *object) -{ - ModulemdImprovedModule *self = (ModulemdImprovedModule *)object; - - g_clear_pointer (&self->name, g_free); - g_clear_pointer (&self->streams, g_hash_table_unref); - g_clear_pointer (&self->defaults, g_object_unref); - - G_OBJECT_CLASS (modulemd_improvedmodule_parent_class)->finalize (object); -} - - -void -modulemd_improvedmodule_set_name (ModulemdImprovedModule *self, - const gchar *module_name) -{ - g_return_if_fail (MODULEMD_IS_IMPROVEDMODULE (self)); - - g_clear_pointer (&self->name, g_free); - self->name = g_strdup (module_name); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_NAME]); -} - - -gchar * -modulemd_improvedmodule_get_name (ModulemdImprovedModule *self) -{ - return g_strdup (self->name); -} - - -const gchar * -modulemd_improvedmodule_peek_name (ModulemdImprovedModule *self) -{ - return self->name; -} - - -void -modulemd_improvedmodule_set_defaults (ModulemdImprovedModule *self, - ModulemdDefaults *defaults) -{ - g_return_if_fail (MODULEMD_IS_IMPROVEDMODULE (self)); - g_return_if_fail (!defaults || MODULEMD_IS_DEFAULTS (defaults)); - - - /* Return without making any changes if the module names don't match. */ - if (defaults && g_strcmp0 (modulemd_defaults_peek_module_name (defaults), - modulemd_improvedmodule_peek_name (self))) - { - g_warning ("Attempting to assign defaults for module %s to module %s", - modulemd_defaults_peek_module_name (defaults), - modulemd_improvedmodule_peek_name (self)); - return; - } - - g_clear_pointer (&self->defaults, g_object_unref); - - if (defaults) - { - self->defaults = modulemd_defaults_copy (defaults); - } - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_DEFAULTS]); -} - - -ModulemdDefaults * -modulemd_improvedmodule_get_defaults (ModulemdImprovedModule *self) -{ - return modulemd_defaults_copy (self->defaults); -} - - -ModulemdDefaults * -modulemd_improvedmodule_peek_defaults (ModulemdImprovedModule *self) -{ - return self->defaults; -} - - -void -modulemd_improvedmodule_add_stream (ModulemdImprovedModule *self, - ModulemdModuleStream *stream) -{ - g_autofree gchar *nsvc = NULL; - g_return_if_fail (MODULEMD_IS_IMPROVEDMODULE (self)); - g_return_if_fail (MODULEMD_IS_MODULESTREAM (stream)); - - - if (g_strcmp0 (self->name, modulemd_modulestream_peek_name (stream))) - { - /* This stream doesn't match this module. Ignore it */ - return; - } - - nsvc = modulemd_modulestream_get_nsvc (stream); - if (!nsvc) - { - /* The stream name is usually filled in by the build system, so if we're - * handling a user-edited libmodulemd file, just fill this field with - * unique placeholder data. - */ - nsvc = - g_strdup_printf ("__unknown_%d__", g_hash_table_size (self->streams)); - } - - g_hash_table_replace ( - self->streams, g_strdup (nsvc), modulemd_modulestream_copy (stream)); -} - - -static gboolean -_key_startswith (gpointer _key, gpointer _value, gpointer user_data) -{ - g_return_val_if_fail (_key && user_data, FALSE); - - return !(strncmp (_key, user_data, strlen (user_data))); -} - - -ModulemdModuleStream * -modulemd_improvedmodule_get_stream_by_name (ModulemdImprovedModule *self, - const gchar *stream_name) -{ - g_autofree gchar *ns = NULL; - g_return_val_if_fail (MODULEMD_IS_IMPROVEDMODULE (self), NULL); - - ns = g_strdup_printf ("%s:%s", self->name, stream_name); - - return g_object_ref (g_hash_table_find (self->streams, _key_startswith, ns)); -} - - -ModulemdModuleStream * -modulemd_improvedmodule_get_stream_by_nsvc (ModulemdImprovedModule *self, - const gchar *nsvc) -{ - g_return_val_if_fail (MODULEMD_IS_IMPROVEDMODULE (self), NULL); - - if (!g_hash_table_contains (self->streams, nsvc)) - { - return NULL; - } - - return modulemd_modulestream_copy ( - g_hash_table_lookup (self->streams, nsvc)); -} - - -GHashTable * -modulemd_improvedmodule_get_streams (ModulemdImprovedModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_IMPROVEDMODULE (self), NULL); - - return g_hash_table_ref (self->streams); -} - - -GPtrArray * -modulemd_improvedmodule_get_streams_by_name (ModulemdImprovedModule *self, - const gchar *stream_name) -{ - GHashTableIter iter; - g_autoptr (GPtrArray) streams = NULL; - g_autofree gchar *ns = NULL; - gpointer key, value; - - g_return_val_if_fail (MODULEMD_IS_IMPROVEDMODULE (self), NULL); - - /* Assume the common case of a single stream object per name */ - streams = g_ptr_array_new_with_free_func (g_object_unref); - - ns = g_strdup_printf ("%s:%s", self->name, stream_name); - g_hash_table_iter_init (&iter, self->streams); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - if (!(strncmp (key, ns, strlen (ns)))) - { - g_ptr_array_add ( - streams, - modulemd_modulestream_copy (MODULEMD_MODULESTREAM (value))); - } - } - - if (streams->len == 0) - return NULL; - - return g_ptr_array_ref (streams); -} - - -ModulemdImprovedModule * -modulemd_improvedmodule_copy (ModulemdImprovedModule *self) -{ - GHashTableIter iter; - gpointer key, value; - ModulemdImprovedModule *new_module = NULL; - - if (!self) - return NULL; - - new_module = - modulemd_improvedmodule_new (modulemd_improvedmodule_peek_name (self)); - - /* Copy all of the streams */ - g_hash_table_iter_init (&iter, self->streams); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - g_hash_table_replace ( - new_module->streams, - g_strdup ((const gchar *)key), - modulemd_modulestream_copy ((MODULEMD_MODULESTREAM (value)))); - } - - /* Copy the defaults data */ - modulemd_improvedmodule_set_defaults ( - new_module, modulemd_improvedmodule_peek_defaults (self)); - - return new_module; -} - - -static void -modulemd_improvedmodule_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdImprovedModule *self = MODULEMD_IMPROVEDMODULE (object); - - switch (prop_id) - { - case PROP_NAME: - g_value_take_string (value, modulemd_improvedmodule_get_name (self)); - break; - - case PROP_DEFAULTS: - g_value_take_object (value, modulemd_improvedmodule_get_defaults (self)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - -static void -modulemd_improvedmodule_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - ModulemdImprovedModule *self = MODULEMD_IMPROVEDMODULE (object); - - switch (prop_id) - { - case PROP_NAME: - modulemd_improvedmodule_set_name (self, g_value_get_string (value)); - break; - - case PROP_DEFAULTS: - modulemd_improvedmodule_set_defaults (self, g_value_get_object (value)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - -static void -modulemd_improvedmodule_class_init (ModulemdImprovedModuleClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->finalize = modulemd_improvedmodule_finalize; - object_class->get_property = modulemd_improvedmodule_get_property; - object_class->set_property = modulemd_improvedmodule_set_property; - - - properties[PROP_NAME] = g_param_spec_string ( - "name", - "Module Name", - "The name of this module", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS); - - properties[PROP_DEFAULTS] = - g_param_spec_object ("defaults", - "Module Defaults", - "Object describing the default stream and profiles " - "for this module.", - MODULEMD_TYPE_DEFAULTS, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties (object_class, N_PROPS, properties); -} - -static void -modulemd_improvedmodule_init (ModulemdImprovedModule *self) -{ - self->streams = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); -} - - -GPtrArray * -modulemd_improvedmodule_serialize (ModulemdImprovedModule *self) -{ - g_autoptr (GPtrArray) objects = NULL; - g_autoptr (GPtrArray) keys = NULL; - ModulemdModuleStream *stream = NULL; - ModulemdTranslation *translation = NULL; - - g_return_val_if_fail (MODULEMD_IS_IMPROVEDMODULE (self), NULL); - - /* First export all of the ModuleStream objects */ - keys = _modulemd_ordered_str_keys (self->streams, _modulemd_strcmp_sort); - - /* Preallocate the array to hold the full set of streams, plus the defaults */ - objects = g_ptr_array_new_full (keys->len + 1, g_object_unref); - - for (gsize i = 0; i < keys->len; i++) - { - stream = modulemd_improvedmodule_get_stream_by_nsvc ( - self, g_ptr_array_index (keys, i)); - g_ptr_array_add (objects, stream); - - /* If there are translated strings associated with this stream, make sure - * to include those. - */ - translation = modulemd_modulestream_get_translation (stream); - if (translation) - g_ptr_array_add (objects, translation); - } - - /* Then write out the default object if it exists */ - if (modulemd_improvedmodule_peek_defaults (self)) - { - g_ptr_array_add (objects, modulemd_improvedmodule_get_defaults (self)); - } - - return g_ptr_array_ref (objects); -} - - -void -modulemd_improvedmodule_dump (ModulemdImprovedModule *self, - const gchar *yaml_file, - GError **error) -{ - g_autoptr (GPtrArray) objects = NULL; - - g_return_if_fail (MODULEMD_IS_IMPROVEDMODULE (self)); - - objects = modulemd_improvedmodule_serialize (self); - - if (!emit_yaml_file (objects, yaml_file, error)) - { - g_debug ("Error emitting YAML file: %s", (*error)->message); - } -} - - -gchar * -modulemd_improvedmodule_dumps (ModulemdImprovedModule *self, GError **error) -{ - gchar *yaml = NULL; - g_autoptr (GPtrArray) objects = NULL; - - objects = modulemd_improvedmodule_serialize (self); - - if (!emit_yaml_string (objects, &yaml, error)) - { - g_debug ("Error emitting YAML string: %s", (*error)->message); - g_clear_pointer (&yaml, g_free); - } - - return yaml; -} diff --git a/modulemd-1.8.16/modulemd/modulemd-intent.c b/modulemd-1.8.16/modulemd/modulemd-intent.c deleted file mode 100644 index ff84ae4..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-intent.c +++ /dev/null @@ -1,357 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include "modulemd-intent.h" - - -struct _ModulemdIntent -{ - GObject parent_instance; - - gchar *intent_name; - gchar *default_stream; - GHashTable *profile_defaults; -}; - -G_DEFINE_TYPE (ModulemdIntent, modulemd_intent, G_TYPE_OBJECT) - -enum -{ - PROP_0, - PROP_INTENT_NAME, - PROP_DEFAULT_STREAM, - PROP_PROFILE_DEFAULTS, - N_PROPS -}; - -static GParamSpec *properties[N_PROPS]; - -ModulemdIntent * -modulemd_intent_new (const gchar *name) -{ - return g_object_new (MODULEMD_TYPE_INTENT, "intent-name", name, NULL); -} - -static void -modulemd_intent_finalize (GObject *object) -{ - ModulemdIntent *self = (ModulemdIntent *)object; - - g_clear_pointer (&self->intent_name, g_free); - g_clear_pointer (&self->default_stream, g_free); - g_clear_pointer (&self->profile_defaults, g_hash_table_unref); - - G_OBJECT_CLASS (modulemd_intent_parent_class)->finalize (object); -} - -static void -modulemd_intent_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdIntent *self = MODULEMD_INTENT (object); - - switch (prop_id) - { - case PROP_INTENT_NAME: - g_value_set_string (value, modulemd_intent_peek_intent_name (self)); - break; - - case PROP_DEFAULT_STREAM: - g_value_set_string (value, modulemd_intent_peek_default_stream (self)); - break; - - case PROP_PROFILE_DEFAULTS: - g_value_take_boxed (value, modulemd_intent_dup_profile_defaults (self)); - break; - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - -static void -modulemd_intent_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - ModulemdIntent *self = MODULEMD_INTENT (object); - - switch (prop_id) - { - case PROP_INTENT_NAME: - modulemd_intent_set_intent_name (self, g_value_get_string (value)); - break; - - case PROP_DEFAULT_STREAM: - modulemd_intent_set_default_stream (self, g_value_get_string (value)); - break; - - case PROP_PROFILE_DEFAULTS: - modulemd_intent_set_profile_defaults (self, g_value_get_boxed (value)); - break; - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - -static void -modulemd_intent_class_init (ModulemdIntentClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->finalize = modulemd_intent_finalize; - object_class->get_property = modulemd_intent_get_property; - object_class->set_property = modulemd_intent_set_property; - - properties[PROP_INTENT_NAME] = g_param_spec_string ( - "intent-name", - "Intent Name", - "The name of the module to which these defaults apply.", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS); - - properties[PROP_DEFAULT_STREAM] = g_param_spec_string ( - "default-stream", - "Default Stream", - "The name of the stream that will be used by default for this module.", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdIntent:profile-defaults: (type GLib.HashTable(utf8,ModulemdSimpleSet)) - */ - properties[PROP_PROFILE_DEFAULTS] = g_param_spec_boxed ( - "profile-defaults", - "Profile Defaults", - "A hash table comprised of the set of profiles that act as the default " - "for each available stream of the module.", - G_TYPE_HASH_TABLE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - - g_object_class_install_properties (object_class, N_PROPS, properties); -} - -static void -modulemd_intent_init (ModulemdIntent *self) -{ - self->profile_defaults = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); -} - - -void -modulemd_intent_set_intent_name (ModulemdIntent *self, const gchar *name) -{ - g_return_if_fail (MODULEMD_IS_INTENT (self)); - g_return_if_fail (name); - - if (g_strcmp0 (self->intent_name, name) != 0) - { - g_clear_pointer (&self->intent_name, g_free); - if (name) - { - self->intent_name = g_strdup (name); - } - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_INTENT_NAME]); - } -} - - -const gchar * -modulemd_intent_peek_intent_name (ModulemdIntent *self) -{ - g_return_val_if_fail (self, NULL); - - return self->intent_name; -} - - -gchar * -modulemd_intent_dup_intent_name (ModulemdIntent *self) -{ - g_return_val_if_fail (self, NULL); - - return g_strdup (self->intent_name); -} - - -void -modulemd_intent_set_default_stream (ModulemdIntent *self, const gchar *stream) -{ - g_return_if_fail (MODULEMD_IS_INTENT (self)); - - if (g_strcmp0 (self->default_stream, stream) != 0) - { - g_clear_pointer (&self->default_stream, g_free); - if (stream) - { - self->default_stream = g_strdup (stream); - } - g_object_notify_by_pspec (G_OBJECT (self), - properties[PROP_DEFAULT_STREAM]); - } -} - - -const gchar * -modulemd_intent_peek_default_stream (ModulemdIntent *self) -{ - g_return_val_if_fail (self, NULL); - - return self->default_stream; -} - - -gchar * -modulemd_intent_dup_default_stream (ModulemdIntent *self) -{ - g_return_val_if_fail (self, NULL); - - return g_strdup (self->default_stream); -} - - -void -modulemd_intent_set_profiles_for_stream (ModulemdIntent *self, - const gchar *stream, - gchar **profiles) -{ - ModulemdSimpleSet *set = NULL; - g_return_if_fail (MODULEMD_IS_INTENT (self)); - - set = modulemd_simpleset_new (); - modulemd_simpleset_set (set, profiles); - - g_hash_table_replace (self->profile_defaults, g_strdup (stream), set); - g_object_notify_by_pspec (G_OBJECT (self), - properties[PROP_PROFILE_DEFAULTS]); -} - - -void -modulemd_intent_assign_profiles_for_stream (ModulemdIntent *self, - const gchar *stream, - ModulemdSimpleSet *profiles) -{ - ModulemdSimpleSet *set = NULL; - g_return_if_fail (MODULEMD_IS_INTENT (self)); - - modulemd_simpleset_copy (profiles, &set); - - g_hash_table_replace (self->profile_defaults, g_strdup (stream), set); - g_object_notify_by_pspec (G_OBJECT (self), - properties[PROP_PROFILE_DEFAULTS]); -} - - -void -modulemd_intent_set_profile_defaults (ModulemdIntent *self, - GHashTable *profile_defaults) -{ - GHashTableIter iter; - gpointer key, value; - ModulemdSimpleSet *set = NULL; - - g_return_if_fail (MODULEMD_IS_INTENT (self)); - - g_hash_table_remove_all (self->profile_defaults); - - if (profile_defaults) - { - g_hash_table_iter_init (&iter, profile_defaults); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - modulemd_simpleset_copy ((ModulemdSimpleSet *)value, &set); - g_hash_table_replace ( - self->profile_defaults, g_strdup ((const gchar *)key), set); - set = NULL; - } - } - - g_object_notify_by_pspec (G_OBJECT (self), - properties[PROP_PROFILE_DEFAULTS]); -} - - -gchar ** -modulemd_intent_dup_profiles_for_stream (ModulemdIntent *self, - const gchar *stream) -{ - ModulemdSimpleSet *set = NULL; - gchar **profiles = NULL; - - g_return_val_if_fail (MODULEMD_IS_INTENT (self), NULL); - - set = g_hash_table_lookup (self->profile_defaults, stream); - - profiles = modulemd_simpleset_dup (set); - g_clear_pointer (&set, g_object_unref); - - return profiles; -} - - -GHashTable * -modulemd_intent_peek_profile_defaults (ModulemdIntent *self) -{ - g_return_val_if_fail (MODULEMD_IS_INTENT (self), NULL); - - return self->profile_defaults; -} - - -GHashTable * -modulemd_intent_dup_profile_defaults (ModulemdIntent *self) -{ - GHashTableIter iter; - GHashTable *new; - gpointer key, value; - ModulemdSimpleSet *set = NULL; - - g_return_val_if_fail (MODULEMD_IS_INTENT (self), NULL); - - new = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - - g_hash_table_iter_init (&iter, self->profile_defaults); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - modulemd_simpleset_copy ((ModulemdSimpleSet *)value, &set); - g_hash_table_replace (new, g_strdup ((const gchar *)key), set); - set = NULL; - } - - return new; -} - - -ModulemdIntent * -modulemd_intent_copy (ModulemdIntent *self) -{ - g_autoptr (ModulemdIntent) new_intent = NULL; - - if (!self) - return NULL; - - g_return_val_if_fail (MODULEMD_IS_INTENT (self), NULL); - - new_intent = modulemd_intent_new (self->intent_name); - - modulemd_intent_set_default_stream (new_intent, self->default_stream); - modulemd_intent_set_profile_defaults ( - new_intent, modulemd_intent_peek_profile_defaults (self)); - - return g_object_ref (new_intent); -} diff --git a/modulemd-1.8.16/modulemd/modulemd-module.c b/modulemd-1.8.16/modulemd/modulemd-module.c deleted file mode 100644 index 3c4d231..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-module.c +++ /dev/null @@ -1,3348 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -/* ============================================================================ - * This object is deprecated as of v1.6.0 and should be replaced with - * ModulemdModuleStream. - */ - -#define MMD_DISABLE_DEPRECATION_WARNINGS 1 -#include "modulemd.h" -#include "private/modulemd-yaml.h" -#include "private/modulemd-util.h" -#include "private/modulemd-private.h" -#include -#include -#include -#include - -/** - * SECTION: modulemd-module - * @title: Modulemd.Module - * @short_description: DEPRECATED: use #ModulemdModuleStream instead - * - * Deprecated: 1.6 - */ - -GQuark -modulemd_module_error_quark (void) -{ - return g_quark_from_static_string ("modulemd-module-error-quark"); -} - -enum -{ - MD_PROP_0, - - MD_PROP_ARCH, - MD_PROP_BUILDOPTS, - MD_PROP_BUILDREQUIRES, - MD_PROP_COMMUNITY, - MD_PROP_CONTENT_LIC, - MD_PROP_CONTEXT, - MD_PROP_DEPS, - MD_PROP_DESC, - MD_PROP_DOCS, - MD_PROP_EOL, - MD_PROP_MDVERSION, - MD_PROP_MODULE_LIC, - MD_PROP_MODULE_COMPONENTS, - MD_PROP_NAME, - MD_PROP_PROFILES, - MD_PROP_RPM_API, - MD_PROP_RPM_ARTIFACTS, - MD_PROP_RPM_COMPONENTS, - MD_PROP_RPM_BUILDOPTS, - MD_PROP_RPM_FILTER, - MD_PROP_REQUIRES, - MD_PROP_SL, - MD_PROP_STREAM, - MD_PROP_SUMMARY, - MD_PROP_TRACKER, - MD_PROP_VERSION, - MD_PROP_XMD, - - MD_N_PROPERTIES -}; - -static GParamSpec *md_properties[MD_N_PROPERTIES] = { - NULL, -}; - -struct _ModulemdModule -{ - GObject parent_instance; - - ModulemdModuleStream *stream; - - /* == Members for backwards-compatibility == */ - GHashTable *rpm_buildopts; -}; - -G_DEFINE_TYPE (ModulemdModule, modulemd_module, G_TYPE_OBJECT) -typedef struct _ModulemdModule - ModulemdModule MMD_DEPRECATED_TYPE_FOR (ModulemdModuleStream); - -/** - * modulemd_module_set_arch: - * @arch: (nullable): the module artifact architecture. - * - * Sets the "arch" property. - * - * Since: 1.0 - */ -void -modulemd_module_set_arch (ModulemdModule *self, const gchar *arch) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_arch (self->stream, arch); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_ARCH]); -} - -/** - * modulemd_module_get_arch: - * - * Retrieves the "arch" for modulemd. - * - * Returns: A string containing the "arch" property. - * - * Since: 1.0 - */ -const gchar * -modulemd_module_get_arch (ModulemdModule *self) -{ - return modulemd_module_peek_arch (self); -} - -/** - * modulemd_module_peek_arch: - * - * Retrieves the "arch" for modulemd. - * - * Returns: A string containing the "arch" property. - * - * Since: 1.1 - */ -const gchar * -modulemd_module_peek_arch (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_arch (self->stream); -} - - -/** - * modulemd_module_dup_arch: - * - * Retrieves a copy of the "arch" for modulemd. - * - * Returns: A copy of the string containing the "arch" property. - * - * Since: 1.1 - */ -gchar * -modulemd_module_dup_arch (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_arch (self->stream); -} - - -/** - * modulemd_module_set_buildopts: - * @buildopts: (nullable) (transfer none): A #ModulemdBuildopts object - * - * Copies a #ModulemdBuildopts object into the module. This object contains - * additional instructions to the build system required to build this module. - * - * Since: 1.5 - */ -void -modulemd_module_set_buildopts (ModulemdModule *self, - ModulemdBuildopts *buildopts) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - g_return_if_fail (!buildopts || MODULEMD_IS_BUILDOPTS (buildopts)); - - modulemd_modulestream_set_buildopts (self->stream, buildopts); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_BUILDOPTS]); -} - - -/** - * modulemd_module_get_buildopts: - * - * Get a copy of the #ModulemdBuildopts object - * - * Returns: (transfer full): a copy of the #ModulemdBuildopts object. This - * object must be freed with g_object_unref() when the caller is finished with - * it. This function will return NULL if no buildopts have been set. - * - * Since: 1.5 - */ -ModulemdBuildopts * -modulemd_module_get_buildopts (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_buildopts (self->stream); -} - - -/** - * modulemd_module_peek_buildopts: (skip) - * - * Get a copy of the #ModulemdBuildopts object - * - * Returns: (transfer none): The #ModulemdBuildopts object. This - * object must not be modified or freed. - * This function will return NULL if no buildopts have been set. - * - * Since: 1.6 - */ -ModulemdBuildopts * -modulemd_module_peek_buildopts (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_buildopts (self->stream); -} - - -/** - * modulemd_module_set_buildrequires: - * @buildrequires: (nullable) (element-type utf8 utf8): The requirements to - * build this module. - * - * Sets the 'buildrequires' property. This function was deprecated and is not - * valid for modulemd files of version 2 or later. - * - * Since: 1.0 - */ -void -modulemd_module_set_buildrequires (ModulemdModule *self, - GHashTable *buildrequires) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_buildrequires (self->stream, buildrequires); - - g_object_notify_by_pspec (G_OBJECT (self), - md_properties[MD_PROP_BUILDREQUIRES]); -} - -/** - * modulemd_module_get_buildrequires: - * - * Retrieves the "buildrequires" for modulemd. - * - * Returns: (element-type utf8 utf8) (transfer none): A hash table - * containing the "buildrequires" property. - * - * Since: 1.0 - */ -GHashTable * -modulemd_module_get_buildrequires (ModulemdModule *self) -{ - return modulemd_module_peek_buildrequires (self); -} - -/** - * modulemd_module_peek_buildrequires: - * - * Retrieves the "buildrequires" for modulemd. - * - * Returns: (element-type utf8 utf8) (transfer none): A hash table - * containing the "buildrequires" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_peek_buildrequires (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_buildrequires (self->stream); -} - - -/** - * modulemd_module_dup_buildrequires: - * - * Retrieves the "buildrequires" for modulemd. - * - * Returns: (element-type utf8 utf8) (transfer container): A hash table - * containing the "buildrequires" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_dup_buildrequires (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_buildrequires (self->stream); -} - - -/** - * modulemd_module_set_community: - * @community: (nullable): the module community. - * - * Sets the "community" property. - * - * Since: 1.0 - */ -void -modulemd_module_set_community (ModulemdModule *self, const gchar *community) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_community (self->stream, community); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_COMMUNITY]); -} - -/** - * modulemd_module_get_community: - * - * Retrieves the "community" for modulemd. - * - * Returns: A string containing the "community" property. - * - * Since: 1.0 - */ -const gchar * -modulemd_module_get_community (ModulemdModule *self) -{ - return modulemd_module_peek_community (self); -} - - -/** - * modulemd_module_peek_community: - * - * Retrieves the "community" for modulemd. - * - * Returns: A string containing the "community" property. - * - * Since: 1.1 - */ -const gchar * -modulemd_module_peek_community (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_community (self->stream); -} - - -/** - * modulemd_module_dup_community: - * - * Retrieves a copy of the "community" for modulemd. - * - * Returns: A copy of string containing the "community" property. - * - * Since: 1.1 - */ -gchar * -modulemd_module_dup_community (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_community (self->stream); -} - - -/** - * modulemd_module_set_content_licenses: - * @licenses: (nullable): A #ModulemdSimpleSet: The licenses under which the - * components of this module are released. - * - * Sets the content_licenses property. - * - * Since: 1.0 - */ -void -modulemd_module_set_content_licenses (ModulemdModule *self, - ModulemdSimpleSet *licenses) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - g_return_if_fail (!licenses || MODULEMD_IS_SIMPLESET (licenses)); - - modulemd_modulestream_set_content_licenses (self->stream, licenses); - - g_object_notify_by_pspec (G_OBJECT (self), - md_properties[MD_PROP_CONTENT_LIC]); -} - -/** - * modulemd_module_get_content_licenses: - * - * Retrieves the "content_licenses" for modulemd - * - * Returns: (transfer none): a #SimpleSet containing the set of licenses in the - * "content_licenses" property. - * - * Since: 1.0 - */ -ModulemdSimpleSet * -modulemd_module_get_content_licenses (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_module_peek_content_licenses (self); -} - - -/** - * modulemd_module_peek_content_licenses: - * - * Retrieves the "content_licenses" for modulemd - * - * Returns: (transfer none): a #SimpleSet containing the set of licenses in the - * "content_licenses" property. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_module_peek_content_licenses (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_content_licenses (self->stream); -} - - -/** - * modulemd_module_dup_content_licenses: - * - * Retrieves the "content_licenses" for modulemd - * - * Returns: (transfer full): a #SimpleSet containing the set of licenses in the - * "content_licenses" property. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_module_dup_content_licenses (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_content_licenses (self->stream); -} - - -/** - * modulemd_module_set_context: - * @context: (nullable): the module artifact architecture. - * - * Sets the "context" property. - * - * Since: 1.0 - */ -void -modulemd_module_set_context (ModulemdModule *self, const gchar *context) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - - modulemd_modulestream_set_context (self->stream, context); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_CONTEXT]); -} - -/** - * modulemd_module_get_context: - * - * Retrieves the "context" for modulemd. - * - * Returns: A string containing the "context" property. - * - * Since: 1.0 - */ -const gchar * -modulemd_module_get_context (ModulemdModule *self) -{ - return modulemd_module_peek_context (self); -} - - -/** - * modulemd_module_peek_context: - * - * Retrieves the "context" for modulemd. - * - * Returns: A string containing the "context" property. - * - * Since: 1.1 - */ -const gchar * -modulemd_module_peek_context (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_context (self->stream); -} - - -/** - * modulemd_module_dup_context: - * - * Retrieves a copy of the "context" for modulemd. - * - * Returns: A copy of the string containing the "context" property. - * - * Since: 1.1 - */ -gchar * -modulemd_module_dup_context (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_context (self->stream); -} - - -/** - * modulemd_module_set_dependencies: - * @deps: (array zero-terminated=1) (element-type ModulemdDependencies) (transfer none) (nullable): - * The NULL-terminated list of dependencies. - * - * Sets the list of dependency objects for this module. - * - * Since: 1.0 - */ -void -modulemd_module_set_dependencies (ModulemdModule *self, GPtrArray *deps) -{ - modulemd_modulestream_set_dependencies (self->stream, deps); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_DEPS]); -} - - -/** - * modulemd_module_add_dependencies: - * @dep: A dependency object to add to this module - * - * Helper function to populate the dependencies list - * - * Since: 1.0 - */ -void -modulemd_module_add_dependencies (ModulemdModule *self, - ModulemdDependencies *dep) -{ - modulemd_modulestream_add_dependencies (self->stream, dep); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_DEPS]); -} - - -/** - * modulemd_module_get_dependencies - * - * Returns: (element-type ModulemdDependencies) (transfer none): The list - * of dependency objects for this module. - * - * Since: 1.0 - */ -GPtrArray * -modulemd_module_get_dependencies (ModulemdModule *self) -{ - return modulemd_module_peek_dependencies (self); -} - - -/** - * modulemd_module_peek_dependencies - * - * Returns: (element-type ModulemdDependencies) (transfer none): The list - * of dependency objects for this module. - * - * Since: 1.1 - */ -GPtrArray * -modulemd_module_peek_dependencies (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_dependencies (self->stream); -} - - -/** - * modulemd_module_dup_dependencies - * - * Returns: (element-type ModulemdDependencies) (transfer container): The list - * of dependency objects for this module. - * - * Since: 1.1 - */ -GPtrArray * -modulemd_module_dup_dependencies (ModulemdModule *self) -{ - return modulemd_modulestream_get_dependencies (self->stream); -} - - -/** - * modulemd_module_set_description: - * @description: (nullable): the module description. - * - * Sets the "description" property. - * - * Since: 1.0 - */ -void -modulemd_module_set_description (ModulemdModule *self, - const gchar *description) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_description (self->stream, description); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_DESC]); -} - -/** - * modulemd_module_get_description: - * - * Retrieves the "description" for modulemd. - * - * Returns: A string containing the "description" property. - * - * Since: 1.0 - */ -const gchar * -modulemd_module_get_description (ModulemdModule *self) -{ - return modulemd_module_peek_description (self); -} - - -/** - * modulemd_module_peek_description: - * - * Retrieves the "description" for modulemd. - * - * Returns: A string containing the "description" property. - * - * Since: 1.1 - */ -const gchar * -modulemd_module_peek_description (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_description (self->stream); -} - - -/** - * modulemd_module_dup_description: - * - * Retrieves a copy of the "description" for modulemd. - * - * Returns: A copy of the string containing the "description" property. - * - * Since: 1.1 - */ -gchar * -modulemd_module_dup_description (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_description (self->stream); -} - - -/** - * modulemd_module_set_documentation: - * @documentation: (nullable): the module documentation. - * - * Sets the "documentation" property. - * - * Since: 1.0 - */ -void -modulemd_module_set_documentation (ModulemdModule *self, - const gchar *documentation) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_documentation (self->stream, documentation); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_DOCS]); -} - -/** - * modulemd_module_get_documentation: - * - * Retrieves the "documentation" for modulemd. - * - * Returns: A string containing the "documentation" property. - * - * Since: 1.0 - */ -const gchar * -modulemd_module_get_documentation (ModulemdModule *self) -{ - return modulemd_module_peek_documentation (self); -} - - -/** - * modulemd_module_peek_documentation: - * - * Retrieves the "documentation" for modulemd. - * - * Returns: A string containing the "documentation" property. - * - * Since: 1.1 - */ -const gchar * -modulemd_module_peek_documentation (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_documentation (self->stream); -} - - -/** - * modulemd_module_dup_documentation: - * - * Retrieves a copy of the "documentation" for modulemd. - * - * Returns: A copy of the string containing the "documentation" property. - * - * Since: 1.1 - */ -gchar * -modulemd_module_dup_documentation (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_documentation (self->stream); -} - - -/** - * modulemd_module_set_eol: - * @date: (nullable): The end-of-life date of the module - * - * Sets the "eol" property. - * - * Note: This property is obsolete. Use "servicelevels" instead. This will fail - * on modulemd files using the version 2 or later formats. - * - * Since: 1.0 - */ -void -modulemd_module_set_eol (ModulemdModule *self, const GDate *date) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - g_return_if_fail (modulemd_module_peek_mdversion (self) < 2); - - modulemd_modulestream_set_eol (self->stream, date); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_EOL]); -} - - -/** - * modulemd_module_get_eol: - * - * Retrieves the "eol" property. - * - * Note: This property is obsolete. Use "servicelevels" instead. This will fail - * on modulemd files using the version 2 or later formats. - * - * Returns: A #GDate containing the "EOL" date - * - * Since: 1.0 - */ -const GDate * -modulemd_module_get_eol (ModulemdModule *self) -{ - return modulemd_module_peek_eol (self); -} - - -/** - * modulemd_module_peek_eol: - * - * Retrieves the "eol" property. - * - * Note: This property is obsolete. Use "servicelevels" instead. This will fail - * on modulemd files using the version 2 or later formats. - * - * Returns: A #GDate containing the "EOL" date - * - * Since: 1.1 - */ -const GDate * -modulemd_module_peek_eol (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_eol (self->stream); -} - - -/** - * modulemd_module_dup_eol: - * - * Retrieves a copy of the "eol" property. - * - * Note: This property is obsolete. Use "servicelevels" instead. This will fail - * on modulemd files using the version 2 or later formats. - * - * Returns: A #GDate containing a copy of the "EOL" date - * - * Since: 1.1 - */ -GDate * -modulemd_module_dup_eol (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_eol (self->stream); -} - - -/** - * modulemd_module_set_mdversion - * @mdversion: the metadata version - * - * Sets the "mdversion" property. - * - * Since: 1.0 - */ -void -modulemd_module_set_mdversion (ModulemdModule *self, const guint64 mdversion) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - - modulemd_modulestream_set_mdversion (self->stream, mdversion); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_MDVERSION]); -} - - -/** - * modulemd_module_get_mdversion: - * - * Retrieves the "mdversion" for modulemd. - * - * Returns: A 64-bit unsigned integer containing the "mdversion" property. - * - * Since: 1.0 - */ -const guint64 -modulemd_module_get_mdversion (ModulemdModule *self) -{ - return modulemd_module_peek_mdversion (self); -} - - -/** - * modulemd_module_peek_mdversion: - * - * Retrieves the "mdversion" for modulemd. - * - * Returns: A 64-bit unsigned integer containing the "mdversion" property. - */ -guint64 -modulemd_module_peek_mdversion (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), 0); - - return modulemd_modulestream_get_mdversion (self->stream); -} - - -/** - * modulemd_module_add_module_component: - * @component: A #ModulemdComponentModule - * - * Adds a #ModulemdComponentModule to the "module_components" hash table. - * - * Since: 1.0 - */ -void -modulemd_module_add_module_component (ModulemdModule *self, - ModulemdComponentModule *component) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - g_return_if_fail (MODULEMD_IS_COMPONENT_MODULE (component)); - - modulemd_modulestream_add_module_component (self->stream, component); - - g_object_notify_by_pspec (G_OBJECT (self), - md_properties[MD_PROP_MODULE_COMPONENTS]); -} - - -/** - * modulemd_module_clear_module_components: - * - * Remove all entries from the "module_components" hash table. - * - * Since: 1.0 - */ -void -modulemd_module_clear_module_components (ModulemdModule *self) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_clear_module_components (self->stream); - - g_object_notify_by_pspec (G_OBJECT (self), - md_properties[MD_PROP_MODULE_COMPONENTS]); -} - - -/** - * modulemd_module_set_module_components: - * @components: (nullable) (element-type utf8 ModulemdComponentModule): The hash table of - * module components that comprise this module. The keys are the module name, - * the values are a #ModulemdComponentModule containing information about that - * module. - * - * Sets the module_components property. - * - * Since: 1.0 - */ -void -modulemd_module_set_module_components (ModulemdModule *self, - GHashTable *components) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_module_components (self->stream, components); - - g_object_notify_by_pspec (G_OBJECT (self), - md_properties[MD_PROP_MODULE_COMPONENTS]); -} - -/** - * modulemd_module_get_module_components: - * - * Retrieves the "module-components" for modulemd. - * - * Returns: (element-type utf8 ModulemdComponentModule) (transfer none): A hash table - * containing the "module-components" property. - * - * Since: 1.0 - */ -GHashTable * -modulemd_module_get_module_components (ModulemdModule *self) -{ - return modulemd_module_peek_module_components (self); -} - - -/** - * modulemd_module_peek_module_components: - * - * Retrieves the "module-components" for modulemd. - * - * Returns: (element-type utf8 ModulemdComponentModule) (transfer none): A hash table - * containing the "module-components" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_peek_module_components (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_module_components (self->stream); - ; -} - - -/** - * modulemd_module_dup_module_components: - * - * Retrieves the "module-components" for modulemd. - * - * Returns: (element-type utf8 ModulemdComponentModule) (transfer container): - * A copy of the hash table containing the "module-components" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_dup_module_components (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - - return modulemd_modulestream_get_module_components (self->stream); - ; -} - - -/** - * modulemd_module_set_module_licenses: - * @licenses: (nullable): A #ModulemdSimpleSet: The licenses under which the - * components of this module are released. - * - * Sets the module_licenses property. - * - * Since: 1.0 - */ -void -modulemd_module_set_module_licenses (ModulemdModule *self, - ModulemdSimpleSet *licenses) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - g_return_if_fail (!licenses || MODULEMD_IS_SIMPLESET (licenses)); - - modulemd_modulestream_set_module_licenses (self->stream, licenses); - - g_object_notify_by_pspec (G_OBJECT (self), - md_properties[MD_PROP_MODULE_LIC]); -} - -/** - * modulemd_module_get_module_licenses: - * - * Retrieves the "module_licenses" for modulemd - * - * Returns: (transfer none): a #ModulemdSimpleSet containing the set of - * licenses in the "module_licenses" property. - * - * Since: 1.0 - */ -ModulemdSimpleSet * -modulemd_module_get_module_licenses (ModulemdModule *self) -{ - return modulemd_module_peek_module_licenses (self); -} - - -/** - * modulemd_module_peek_module_licenses: - * - * Retrieves the "module_licenses" for modulemd - * - * Returns: (transfer none): a #ModulemdSimpleSet containing the set of - * licenses in the "module_licenses" property. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_module_peek_module_licenses (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_module_licenses (self->stream); -} - - -/** - * modulemd_module_dup_module_licenses: - * - * Retrieves a copy of the "module_licenses" for modulemd - * - * Returns: (transfer full): a #ModulemdSimpleSet containing the set of - * licenses in the "module_licenses" property. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_module_dup_module_licenses (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_module_licenses (self->stream); -} - - -/** - * modulemd_module_set_name: - * @name: (nullable): the module name. - * - * Sets the "name" property. - * - * Since: 1.0 - */ -void -modulemd_module_set_name (ModulemdModule *self, const gchar *name) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_name (self->stream, name); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_NAME]); -} - -/** - * modulemd_module_get_name: - * - * Retrieves the "name" for modulemd. - * - * Returns: A string containing the "name" property. - * - * Since: 1.0 - */ -const gchar * -modulemd_module_get_name (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_module_peek_name (self); -} - - -/** - * modulemd_module_peek_name: - * - * Retrieves the "name" for modulemd. - * - * Returns: A string containing the "name" property. - * - * Since: 1.1 - */ -const gchar * -modulemd_module_peek_name (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_name (self->stream); -} - - -/** - * modulemd_module_dup_name: - * - * Retrieves a copy of the "name" for modulemd. - * - * Returns: A copy of the string containing the "name" property. - * - * Since: 1.1 - */ -gchar * -modulemd_module_dup_name (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_name (self->stream); -} - - -/** - * modulemd_module_add_profile: - * @profile: A #ModulemdProfile - * - * Adds a #ModulemdProfile definition to this module. - * - * Since: 1.0 - */ -void -modulemd_module_add_profile (ModulemdModule *self, ModulemdProfile *profile) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - g_return_if_fail (MODULEMD_IS_PROFILE (profile)); - - modulemd_modulestream_add_profile (self->stream, profile); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_PROFILES]); -} - - -/** - * modulemd_module_clear_profiles: - * - * Remove all entries from the "profiles" hash table. - * - * Since: 1.0 - */ -void -modulemd_module_clear_profiles (ModulemdModule *self) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_clear_profiles (self->stream); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_PROFILES]); -} - - -/** - * modulemd_module_set_profiles: - * @profiles: (nullable) (element-type utf8 ModulemdProfile): The profiles avaiable for - * this module. - * - * Sets the 'profiles' property. - * - * Since: 1.0 - */ -void -modulemd_module_set_profiles (ModulemdModule *self, GHashTable *profiles) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_profiles (self->stream, profiles); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_PROFILES]); -} - - -/** - * modulemd_module_get_profiles: - * - * Retrieves the "profiles" for modulemd. - * - * Returns: (element-type utf8 ModulemdProfile) (transfer none): A hash - * table containing the "profiles" property. - * - * Since: 1.0 - */ -GHashTable * -modulemd_module_get_profiles (ModulemdModule *self) -{ - return modulemd_module_peek_profiles (self); -} - - -/** - * modulemd_module_peek_profiles: - * - * Retrieves the "profiles" for modulemd. - * - * Returns: (element-type utf8 ModulemdProfile) (transfer none): A hash - * table containing the "profiles" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_peek_profiles (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_profiles (self->stream); -} - - -/** - * modulemd_module_dup_profiles: - * - * Retrieves a copy of the "profiles" for modulemd. - * - * Returns: (element-type utf8 ModulemdProfile) (transfer container): A hash - * table containing a copy of the "profiles" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_dup_profiles (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_profiles (self->stream); -} - - -/** - * modulemd_module_set_requires: - * @requires: (nullable) (element-type utf8 utf8): The requirements to run this module - * - * Sets the 'requires' property. This function was deprecated and is not - * valid for modulemd files of version 2 or later. - * - * Since: 1.0 - */ -void -modulemd_module_set_requires (ModulemdModule *self, GHashTable *requires) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_requires (self->stream, requires); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_REQUIRES]); -} - - -/** - * modulemd_module_get_requires: - * - * Retrieves the "requires" for modulemd. - * - * Returns: (element-type utf8 utf8) (transfer none): A hash table - * containing the "requires" property. This function was deprecated and is not - * valid for modulemd files of version 2 or later. - * - * Since: 1.0 - */ -GHashTable * -modulemd_module_get_requires (ModulemdModule *self) -{ - return modulemd_module_peek_requires (self); -} - - -/** - * modulemd_module_peek_requires: - * - * Retrieves the "requires" for modulemd. - * - * Returns: (element-type utf8 utf8) (transfer none): A hash table - * containing the "requires" property. This function was deprecated and is not - * valid for modulemd files of version 2 or later. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_peek_requires (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_requires (self->stream); -} - - -/** - * modulemd_module_dup_requires: - * - * Retrieves a copy of the "requires" for modulemd. - * - * Returns: (element-type utf8 utf8) (transfer container): A hash table - * containing a copy of the "buildrequires" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_dup_requires (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_requires (self->stream); -} - - -/** - * modulemd_module_set_rpm_api: - * @apis: (nullable): A #ModulemdSimpleSet: The set of binary RPM packages that - * form the public API for this module. - * - * Sets the rpm_api property. - * - * Since: 1.0 - */ -void -modulemd_module_set_rpm_api (ModulemdModule *self, ModulemdSimpleSet *apis) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - g_return_if_fail (!apis || MODULEMD_IS_SIMPLESET (apis)); - - modulemd_modulestream_set_rpm_api (self->stream, apis); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_RPM_API]); -} - - -/** - * modulemd_module_get_rpm_api: - * - * Retrieves the "rpm_api" for modulemd - * - * Returns: (transfer none): a #SimpleSet containing the set of binary RPM - * packages in the "rpm_api" property. - * - * Since: 1.0 - */ -ModulemdSimpleSet * -modulemd_module_get_rpm_api (ModulemdModule *self) -{ - return modulemd_module_peek_rpm_api (self); -} - - -/** - * modulemd_module_peek_rpm_api: - * - * Retrieves the "rpm_api" for modulemd - * - * Returns: (transfer none): a #SimpleSet containing the set of binary RPM - * packages in the "rpm_api" property. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_module_peek_rpm_api (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_rpm_api (self->stream); -} - - -/** - * modulemd_module_dup_rpm_api: - * - * Retrieves a copy of the "rpm_api" for modulemd - * - * Returns: (transfer full): a #SimpleSet containing the set of binary RPM - * packages in the "rpm_api" property. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_module_dup_rpm_api (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_rpm_api (self->stream); -} - - -/** - * modulemd_module_set_rpm_artifacts: - * @artifacts: (nullable): A #ModulemdSimpleSet: The set of binary RPM packages - * that are contained in this module. Generally populated by the module build - * service. - * - * Sets the rpm_artifacts property. - * - * Since: 1.0 - */ -void -modulemd_module_set_rpm_artifacts (ModulemdModule *self, - ModulemdSimpleSet *artifacts) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - g_return_if_fail (!artifacts || MODULEMD_IS_SIMPLESET (artifacts)); - - modulemd_modulestream_set_rpm_artifacts (self->stream, artifacts); - - g_object_notify_by_pspec (G_OBJECT (self), - md_properties[MD_PROP_RPM_ARTIFACTS]); -} - - -/** - * modulemd_module_get_rpm_artifacts: - * - * Retrieves the "rpm_artifacts" for modulemd - * - * Returns: (transfer none): a #SimpleSet containing the set of binary RPMs - * contained in this module. - * - * Since: 1.0 - */ -ModulemdSimpleSet * -modulemd_module_get_rpm_artifacts (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_module_peek_rpm_artifacts (self); -} - - -/** - * modulemd_module_peek_rpm_artifacts: - * - * Retrieves the "rpm_artifacts" for modulemd - * - * Returns: (transfer none): a #SimpleSet containing the set of binary RPMs - * contained in this module. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_module_peek_rpm_artifacts (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_rpm_artifacts (self->stream); -} - - -/** - * modulemd_module_dup_rpm_artifacts: - * - * Retrieves a copy of the "rpm_artifacts" for modulemd - * - * Returns: (transfer full): a #SimpleSet containing the set of binary RPMs - * contained in this module. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_module_dup_rpm_artifacts (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_rpm_artifacts (self->stream); -} - - -/** - * modulemd_module_set_rpm_buildopts: - * @buildopts: (nullable) (element-type utf8 utf8): A dictionary of - * build options to pass to rpmbuild. Currently the only recognized key is - * "macros". - * - * Sets the 'rpm-buildopts' property. - * - * Since: 1.0 - */ -void -modulemd_module_set_rpm_buildopts (ModulemdModule *self, GHashTable *buildopts) -{ - g_autoptr (ModulemdBuildopts) opts = NULL; - const gchar *rpm_macros = NULL; - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - /* First, make sure the Buildopts object exists */ - opts = modulemd_modulestream_get_buildopts (self->stream); - if (!opts) - { - opts = modulemd_buildopts_new (); - } - - rpm_macros = g_hash_table_lookup (buildopts, "macros"); - modulemd_buildopts_set_rpm_macros (opts, rpm_macros); - - modulemd_modulestream_set_buildopts (self->stream, opts); -} - -/** - * modulemd_module_get_rpm_buildopts: - * - * Retrieves the "rpm-buildopts" for modulemd. - * - * Returns: (element-type utf8 utf8) (transfer none): A hash table - * containing the "rpm-buildopts" property. - * - * Since: 1.0 - */ -GHashTable * -modulemd_module_get_rpm_buildopts (ModulemdModule *self) -{ - return modulemd_module_peek_rpm_buildopts (self); -} - - -/** - * modulemd_module_peek_rpm_buildopts: - * - * Retrieves the "rpm-buildopts" for modulemd. - * - * Returns: (element-type utf8 utf8) (transfer none): A hash table - * containing the "rpm-buildopts" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_peek_rpm_buildopts (ModulemdModule *self) -{ - ModulemdBuildopts *opts = NULL; - g_autofree gchar *rpm_macros = NULL; - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - opts = modulemd_modulestream_peek_buildopts (self->stream); - if (opts) - { - rpm_macros = modulemd_buildopts_get_rpm_macros (opts); - } - - if (rpm_macros) - { - /* Update the hash table for backwards compatibility */ - g_hash_table_replace ( - self->rpm_buildopts, g_strdup ("macros"), g_strdup (rpm_macros)); - } - else - { - g_hash_table_remove_all (self->rpm_buildopts); - } - - return self->rpm_buildopts; -} - - -/** - * modulemd_module_dup_rpm_buildopts: - * - * Retrieves a copy of the "rpm-buildopts" for modulemd. - * - * Returns: (element-type utf8 utf8) (transfer container): A hash table - * containing the "rpm-buildopts" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_dup_rpm_buildopts (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return g_hash_table_ref (modulemd_module_peek_rpm_buildopts (self)); -} - - -/** - * modulemd_module_add_rpm_component: - * @component: A #ModulemdComponentRpm - * - * Adds a #ModulemdComponentRpm to the "rpm_components" hash table. - * - * Since: 1.0 - */ -void -modulemd_module_add_rpm_component (ModulemdModule *self, - ModulemdComponentRpm *component) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - g_return_if_fail (MODULEMD_IS_COMPONENT_RPM (component)); - - modulemd_modulestream_add_rpm_component (self->stream, component); - - g_object_notify_by_pspec (G_OBJECT (self), - md_properties[MD_PROP_RPM_COMPONENTS]); -} - - -/** - * modulemd_module_clear_rpm_components: - * - * Remove all entries from the "rpm_components" hash table. - * - * Since: 1.0 - */ -void -modulemd_module_clear_rpm_components (ModulemdModule *self) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_clear_rpm_components (self->stream); - - g_object_notify_by_pspec (G_OBJECT (self), - md_properties[MD_PROP_RPM_COMPONENTS]); -} - - -/** - * modulemd_module_set_rpm_components: - * @components: (nullable) (element-type utf8 ModulemdComponentRpm): The hash table of - * module components that comprise this module. The keys are the module name, - * the values are a #ModulemdComponentRpm containing information about that - * module. - * - * Sets the rpm_components property. - * - * Since: 1.0 - */ -void -modulemd_module_set_rpm_components (ModulemdModule *self, - GHashTable *components) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_rpm_components (self->stream, components); - - g_object_notify_by_pspec (G_OBJECT (self), - md_properties[MD_PROP_RPM_COMPONENTS]); -} - - -/** - * modulemd_module_get_rpm_components: - * - * Retrieves the "rpm-components" for modulemd. - * - * Returns: (element-type utf8 ModulemdComponentRpm) (transfer none): A hash table - * containing the "rpm-components" property. - * - * Since: 1.0 - */ -GHashTable * -modulemd_module_get_rpm_components (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_module_peek_rpm_components (self); -} - - -/** - * modulemd_module_peek_rpm_components: - * - * Retrieves the "rpm-components" for modulemd. - * - * Returns: (element-type utf8 ModulemdComponentRpm) (transfer none): A hash table - * containing the "rpm-components" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_peek_rpm_components (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_rpm_components (self->stream); -} - - -/** - * modulemd_module_dup_rpm_components: - * - * Retrieves the "rpm-components" for modulemd. - * - * Returns: (element-type utf8 ModulemdComponentRpm) (transfer container): - * A hash table containing the "rpm-components" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_dup_rpm_components (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_rpm_components (self->stream); -} - - -/** - * modulemd_module_set_rpm_filter: - * @filter: (nullable): A #ModulemdSimpleSet: The set of binary RPM packages - * that are explicitly filtered out of this module. - * - * Sets the rpm_artifacts property. - * - * Since: 1.0 - */ -void -modulemd_module_set_rpm_filter (ModulemdModule *self, - ModulemdSimpleSet *filter) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - g_return_if_fail (!filter || MODULEMD_IS_SIMPLESET (filter)); - - modulemd_modulestream_set_rpm_filter (self->stream, filter); - - g_object_notify_by_pspec (G_OBJECT (self), - md_properties[MD_PROP_RPM_FILTER]); -} - - -/** - * modulemd_module_get_rpm_filter: - * - * Retrieves the "rpm_filter" for modulemd - * - * Returns: (transfer none): a #SimpleSet containing the set of binary RPMs - * filtered out of this module. - * - * Since: 1.0 - */ -ModulemdSimpleSet * -modulemd_module_get_rpm_filter (ModulemdModule *self) -{ - return modulemd_module_peek_rpm_filter (self); -} - - -/** - * modulemd_module_peek_rpm_filter: - * - * Retrieves the "rpm_filter" for modulemd - * - * Returns: (transfer none): a #SimpleSet containing the set of binary RPMs - * filtered out of this module. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_module_peek_rpm_filter (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_rpm_filter (self->stream); -} - - -/** - * modulemd_module_dup_rpm_filter: - * - * Retrieves a copy of the "rpm_filter" for modulemd - * - * Returns: (transfer full): a #SimpleSet containing the set of binary RPMs - * filtered out of this module. - * - * Since: 1.1 - */ -ModulemdSimpleSet * -modulemd_module_dup_rpm_filter (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - return modulemd_modulestream_get_rpm_filter (self->stream); - ; -} - - -/** - * modulemd_module_clear_servicelevels: - * - * Remove all entries from the "servicelevels" hash table - * - * Since: 1.0 - */ -void -modulemd_module_clear_servicelevels (ModulemdModule *self) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_clear_servicelevels (self->stream); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_SL]); -} - - -/** - * modulemd_module_set_servicelevels: - * @servicelevels: (nullable) (element-type utf8 ModulemdServiceLevel): A hash table of #ServiceLevel objects - * - * Sets the service levels for the module. - * - * Since: 1.0 - */ -void -modulemd_module_set_servicelevels (ModulemdModule *self, - GHashTable *servicelevels) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_servicelevels (self->stream, servicelevels); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_SL]); -} - - -/** - * modulemd_module_add_servicelevel: - * @servicelevel: A #ServiceLevel object to add to the hash table - * - * Adds a service levels to the module. If the name already exists, it will be - * replaced by this entry and will release a reference on the previous entry. - * - * Since: 1.0 - */ -void -modulemd_module_add_servicelevel (ModulemdModule *self, - ModulemdServiceLevel *servicelevel) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_add_servicelevel (self->stream, servicelevel); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_SL]); -} - - -/** - * modulemd_module_get_servicelevels: - * - * Retrieves the service levels for the module - * - * Returns: (element-type utf8 ModulemdServiceLevel) (transfer none): A - * hash table containing the service levels. - * - * Since: 1.0 - */ -GHashTable * -modulemd_module_get_servicelevels (ModulemdModule *self) -{ - return modulemd_module_peek_servicelevels (self); -} - - -/** - * modulemd_module_peek_servicelevels: - * - * Retrieves the service levels for the module - * - * Returns: (element-type utf8 ModulemdServiceLevel) (transfer none): A - * hash table containing the service levels. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_peek_servicelevels (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_servicelevels (self->stream); -} - - -/** - * modulemd_module_dup_servicelevels: - * - * Retrieves the service levels for the module - * - * Returns: (element-type utf8 ModulemdServiceLevel) (transfer container): A - * hash table containing the service levels. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_dup_servicelevels (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_servicelevels (self->stream); -} - - -/** - * modulemd_module_set_stream: - * @stream: (nullable): the module stream. - * - * Sets the "stream" property. - * - * Since: 1.0 - */ -void -modulemd_module_set_stream (ModulemdModule *self, const gchar *stream) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_stream (self->stream, stream); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_STREAM]); -} - - -/** - * modulemd_module_get_stream: - * - * Retrieves the "stream" for modulemd. - * - * Returns: A string containing the "stream" property. - * - * Since: 1.0 - */ -const gchar * -modulemd_module_get_stream (ModulemdModule *self) -{ - return modulemd_module_peek_stream (self); -} - - -/** - * modulemd_module_peek_stream: - * - * Retrieves the "stream" for modulemd. - * - * Returns: A string containing the "stream" property. - * - * Since: 1.1 - */ -const gchar * -modulemd_module_peek_stream (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_stream (self->stream); -} - - -/** - * modulemd_module_dup_stream: - * - * Retrieves a copy of the "stream" for modulemd. - * - * Returns: A copy of the string containing the "stream" property. - * - * Since: 1.1 - */ -gchar * -modulemd_module_dup_stream (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_stream (self->stream); -} - - -/** - * modulemd_module_set_summary: - * @summary: (nullable): the module summary. - * - * Sets the "summary" property. - * - * Since: 1.0 - */ -void -modulemd_module_set_summary (ModulemdModule *self, const gchar *summary) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_summary (self->stream, summary); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_SUMMARY]); -} - - -/** - * modulemd_module_get_summary: - * - * Retrieves the "summary" for modulemd. - * - * Returns: A string containing the "summary" property. - * - * Since: 1.0 - */ -const gchar * -modulemd_module_get_summary (ModulemdModule *self) -{ - return modulemd_module_peek_summary (self); -} - - -/** - * modulemd_module_peek_summary: - * - * Retrieves the "summary" for modulemd. - * - * Returns: A string containing the "summary" property. - * - * Since: 1.1 - */ -const gchar * -modulemd_module_peek_summary (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_summary (self->stream); -} - - -/** - * modulemd_module_dup_summary: - * - * Retrieves a copy of the "summary" for modulemd. - * - * Returns: A copy of the string containing the "summary" property. - * - * Since: 1.1 - */ -gchar * -modulemd_module_dup_summary (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_summary (self->stream); -} - - -/** - * modulemd_module_set_tracker: - * @tracker: (nullable): the module tracker. - * - * Sets the "tracker" property. - * - * Since: 1.0 - */ -void -modulemd_module_set_tracker (ModulemdModule *self, const gchar *tracker) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_tracker (self->stream, tracker); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_TRACKER]); -} - - -/** - * modulemd_module_get_tracker: - * - * Retrieves the "tracker" for modulemd. - * - * Returns: A string containing the "tracker" property. - * - * Since: 1.0 - */ -const gchar * -modulemd_module_get_tracker (ModulemdModule *self) -{ - return modulemd_module_peek_tracker (self); -} - - -/** - * modulemd_module_peek_tracker: - * - * Retrieves the "tracker" for modulemd. - * - * Returns: A string containing the "tracker" property. - * - * Since: 1.1 - */ -const gchar * -modulemd_module_peek_tracker (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_tracker (self->stream); -} - - -/** - * modulemd_module_dup_tracker: - * - * Retrieves a copy of the "tracker" for modulemd. - * - * Returns: A copy of the string containing the "tracker" property. - * - * Since: 1.1 - */ -gchar * -modulemd_module_dup_tracker (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_tracker (self->stream); -} - - -/** - * modulemd_module_set_version - * @version: the module version - * - * Sets the "version" property. - * - * Since: 1.0 - */ -void -modulemd_module_set_version (ModulemdModule *self, const guint64 version) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_version (self->stream, version); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_VERSION]); -} - - -/** - * modulemd_module_get_version: - * - * Retrieves the "version" for modulemd. - * - * Returns: A 64-bit unsigned integer containing the "version" property. - * - * Since: 1.0 - */ -const guint64 -modulemd_module_get_version (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), 0); - - return modulemd_module_peek_version (self); -} - - -/** - * modulemd_module_peek_version: - * - * Retrieves the "version" for modulemd. - * - * Returns: A 64-bit unsigned integer containing the "version" property. - * - * Since: 1.1 - */ -guint64 -modulemd_module_peek_version (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), 0); - - return modulemd_modulestream_get_version (self->stream); -} - - -/** - * modulemd_module_set_xmd: - * @xmd: (nullable) (element-type utf8 GVariant): Extensible metadata block - * - * Sets the 'xmd' property. - * - * Since: 1.0 - */ -void -modulemd_module_set_xmd (ModulemdModule *self, GHashTable *xmd) -{ - g_return_if_fail (MODULEMD_IS_MODULE (self)); - - modulemd_modulestream_set_xmd (self->stream, xmd); - - g_object_notify_by_pspec (G_OBJECT (self), md_properties[MD_PROP_XMD]); -} - - -/** - * modulemd_module_get_xmd: - * - * Retrieves the "xmd" for modulemd. - * - * Returns: (element-type utf8 GVariant) (transfer none): A hash table - * containing the "xmd" property. - * - * Since: 1.0 - */ -GHashTable * -modulemd_module_get_xmd (ModulemdModule *self) -{ - return modulemd_module_peek_xmd (self); -} - - -/** - * modulemd_module_peek_xmd: - * - * Retrieves the "xmd" for modulemd. - * - * Returns: (element-type utf8 GVariant) (transfer none): A hash table - * containing the "xmd" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_peek_xmd (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_peek_xmd (self->stream); - ; -} - - -/** - * modulemd_module_dup_xmd: - * - * Retrieves a copy of the "xmd" for modulemd. - * - * Returns: (element-type utf8 GVariant) (transfer container): A hash table - * containing the "xmd" property. - * - * Since: 1.1 - */ -GHashTable * -modulemd_module_dup_xmd (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - return modulemd_modulestream_get_xmd (self->stream); -} - - -/** - * modulemd_module_copy: - * - * Make a copy of the current module - * - * Returns: (transfer full): A deep copy of this #ModulemdModule - * - * Since: 1.1 - */ -ModulemdModule * -modulemd_module_copy (ModulemdModule *self) -{ - ModulemdModule *copy = NULL; - - if (!self) - return NULL; - - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - - copy = modulemd_module_new (); - - g_clear_pointer (©->stream, g_object_unref); - copy->stream = modulemd_modulestream_copy (self->stream); - - return copy; -} - - -/** - * modulemd_module_dup_nsvc: - * - * Return the unique module identifier. - * - * Returns: a string describing the unique module identifier in the form: - * "NAME:STREAM:VERSION[:CONTEXT]". This string is owned by the caller and - * must be freed with g_free(). - */ -gchar * -modulemd_module_dup_nsvc (ModulemdModule *self) -{ - return modulemd_modulestream_get_nsvc (self->stream); -} - - -static void -modulemd_module_set_property (GObject *gobject, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - ModulemdModule *self = MODULEMD_MODULE (gobject); - G_GNUC_BEGIN_IGNORE_DEPRECATIONS - switch (property_id) - { - case MD_PROP_ARCH: - modulemd_module_set_arch (self, g_value_get_string (value)); - break; - - case MD_PROP_BUILDOPTS: - modulemd_module_set_buildopts (self, g_value_get_object (value)); - break; - - case MD_PROP_BUILDREQUIRES: - modulemd_module_set_buildrequires (self, g_value_get_boxed (value)); - break; - - case MD_PROP_COMMUNITY: - modulemd_module_set_community (self, g_value_get_string (value)); - break; - - case MD_PROP_CONTENT_LIC: - modulemd_module_set_content_licenses (self, g_value_get_object (value)); - break; - - case MD_PROP_CONTEXT: - modulemd_module_set_context (self, g_value_get_string (value)); - break; - - case MD_PROP_DEPS: - modulemd_module_set_dependencies (self, g_value_get_boxed (value)); - break; - - case MD_PROP_DESC: - modulemd_module_set_description (self, g_value_get_string (value)); - break; - - case MD_PROP_DOCS: - modulemd_module_set_documentation (self, g_value_get_string (value)); - break; - - case MD_PROP_EOL: - modulemd_module_set_eol (self, g_value_get_boxed (value)); - break; - - case MD_PROP_MDVERSION: - modulemd_module_set_mdversion (self, g_value_get_uint64 (value)); - break; - - case MD_PROP_MODULE_COMPONENTS: - modulemd_module_set_module_components (self, g_value_get_boxed (value)); - break; - - case MD_PROP_MODULE_LIC: - modulemd_module_set_module_licenses (self, g_value_get_object (value)); - break; - - case MD_PROP_NAME: - modulemd_module_set_name (self, g_value_get_string (value)); - break; - - case MD_PROP_PROFILES: - modulemd_module_set_profiles (self, g_value_get_boxed (value)); - break; - - case MD_PROP_REQUIRES: - modulemd_module_set_requires (self, g_value_get_boxed (value)); - break; - - case MD_PROP_RPM_API: - modulemd_module_set_rpm_api (self, g_value_get_object (value)); - break; - - case MD_PROP_RPM_ARTIFACTS: - modulemd_module_set_rpm_artifacts (self, g_value_get_object (value)); - break; - - case MD_PROP_RPM_BUILDOPTS: - G_GNUC_BEGIN_IGNORE_DEPRECATIONS - modulemd_module_set_rpm_buildopts (self, g_value_get_boxed (value)); - G_GNUC_END_IGNORE_DEPRECATIONS - break; - - case MD_PROP_RPM_COMPONENTS: - modulemd_module_set_rpm_components (self, g_value_get_boxed (value)); - break; - - case MD_PROP_RPM_FILTER: - modulemd_module_set_rpm_filter (self, g_value_get_object (value)); - break; - - case MD_PROP_SL: - modulemd_module_set_servicelevels (self, g_value_get_boxed (value)); - break; - - case MD_PROP_STREAM: - modulemd_module_set_stream (self, g_value_get_string (value)); - break; - - case MD_PROP_SUMMARY: - modulemd_module_set_summary (self, g_value_get_string (value)); - break; - - case MD_PROP_TRACKER: - modulemd_module_set_tracker (self, g_value_get_string (value)); - break; - - case MD_PROP_VERSION: - modulemd_module_set_version (self, g_value_get_uint64 (value)); - break; - - case MD_PROP_XMD: - modulemd_module_set_xmd (self, g_value_get_boxed (value)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec); - break; - } - G_GNUC_END_IGNORE_DEPRECATIONS -} - -static void -modulemd_module_get_property (GObject *gobject, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdModule *self = MODULEMD_MODULE (gobject); - G_GNUC_BEGIN_IGNORE_DEPRECATIONS - switch (property_id) - { - case MD_PROP_ARCH: - g_value_take_string (value, modulemd_module_dup_arch (self)); - break; - - case MD_PROP_BUILDOPTS: - g_value_take_object (value, modulemd_module_get_buildopts (self)); - break; - - case MD_PROP_BUILDREQUIRES: - g_value_take_boxed (value, modulemd_module_dup_buildrequires (self)); - break; - - case MD_PROP_COMMUNITY: - g_value_take_string (value, modulemd_module_dup_community (self)); - break; - - case MD_PROP_CONTENT_LIC: - g_value_take_object (value, modulemd_module_dup_content_licenses (self)); - break; - - case MD_PROP_CONTEXT: - g_value_take_string (value, modulemd_module_dup_context (self)); - break; - - case MD_PROP_DEPS: - g_value_set_boxed (value, modulemd_module_peek_dependencies (self)); - break; - - case MD_PROP_DESC: - g_value_take_string (value, modulemd_module_dup_description (self)); - break; - - case MD_PROP_DOCS: - g_value_take_string (value, modulemd_module_dup_documentation (self)); - break; - - case MD_PROP_EOL: - g_value_take_boxed (value, modulemd_module_dup_eol (self)); - break; - - case MD_PROP_MDVERSION: - g_value_set_uint64 (value, modulemd_module_peek_mdversion (self)); - break; - - case MD_PROP_MODULE_COMPONENTS: - g_value_take_boxed (value, modulemd_module_dup_module_components (self)); - break; - - case MD_PROP_MODULE_LIC: - g_value_take_object (value, modulemd_module_dup_module_licenses (self)); - break; - - case MD_PROP_NAME: - g_value_take_string (value, modulemd_module_dup_name (self)); - break; - - case MD_PROP_PROFILES: - g_value_take_boxed (value, modulemd_module_dup_profiles (self)); - break; - - case MD_PROP_REQUIRES: - g_value_take_boxed (value, modulemd_module_dup_requires (self)); - break; - - case MD_PROP_RPM_API: - g_value_take_object (value, modulemd_module_dup_rpm_api (self)); - break; - - case MD_PROP_RPM_ARTIFACTS: - g_value_take_object (value, modulemd_module_dup_rpm_artifacts (self)); - break; - - case MD_PROP_RPM_BUILDOPTS: - G_GNUC_BEGIN_IGNORE_DEPRECATIONS - g_value_take_boxed (value, modulemd_module_dup_rpm_buildopts (self)); - G_GNUC_END_IGNORE_DEPRECATIONS - break; - - case MD_PROP_RPM_COMPONENTS: - g_value_take_boxed (value, modulemd_module_dup_rpm_components (self)); - break; - - case MD_PROP_RPM_FILTER: - g_value_take_object (value, modulemd_module_dup_rpm_filter (self)); - break; - - case MD_PROP_SL: - g_value_take_boxed (value, modulemd_module_dup_servicelevels (self)); - break; - - case MD_PROP_STREAM: - g_value_take_string (value, modulemd_module_dup_stream (self)); - break; - - case MD_PROP_SUMMARY: - g_value_take_string (value, modulemd_module_dup_summary (self)); - break; - - case MD_PROP_TRACKER: - g_value_take_string (value, modulemd_module_dup_tracker (self)); - break; - - case MD_PROP_VERSION: - g_value_set_uint64 (value, modulemd_module_peek_version (self)); - break; - - case MD_PROP_XMD: - g_value_take_boxed (value, modulemd_module_dup_xmd (self)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec); - break; - } - G_GNUC_END_IGNORE_DEPRECATIONS -} - -static void -modulemd_module_finalize (GObject *gobject) -{ - ModulemdModule *self = (ModulemdModule *)gobject; - - g_clear_pointer (&self->rpm_buildopts, g_hash_table_unref); - g_clear_pointer (&self->stream, g_object_unref); - - G_OBJECT_CLASS (modulemd_module_parent_class)->finalize (gobject); -} - -static void -modulemd_module_class_init (ModulemdModuleClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->set_property = modulemd_module_set_property; - object_class->get_property = modulemd_module_get_property; - - object_class->finalize = modulemd_module_finalize; - - md_properties[MD_PROP_ARCH] = - g_param_spec_string ("arch", - "Module Artifact Architecture", - "Contains a string describing the module's " - "artifacts' main hardware architecture " - "compatibility, distinguishing the module artifact, " - "e.g. a repository, from others with the same name, " - "stream, version and context. This is not a generic " - "hardware family (i.e. basearch). Examples: i386, " - "i486, armv7hl, x86_64. Filled in by the buildsystem " - "during the compose stage.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_BUILDOPTS] = - g_param_spec_object ("buildopts", - "Build options for the module", - "Assorted instructions for the build system on how " - "to build this module.", - MODULEMD_TYPE_BUILDOPTS, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdModule:buildrequires: (type GLib.HashTable(utf8,utf8)) - */ - md_properties[MD_PROP_BUILDREQUIRES] = - g_param_spec_boxed ("buildrequires", - "Module BuildRequires", - "A dictionary property representing the required " - "build dependencies of the module. Keys are the " - "required module names (strings), values are their " - "required stream names (also strings).", - G_TYPE_HASH_TABLE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_COMMUNITY] = - g_param_spec_string ("community", - "Module Community", - "A string property representing a link to the " - "upstream community for this module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_CONTENT_LIC] = - g_param_spec_object ("content-licenses", - "Module Content Licenses", - "The set of licenses under which the contents " - "of this module are released.", - MODULEMD_TYPE_SIMPLESET, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_CONTEXT] = - g_param_spec_string ("context", - "Module Context", - "The context flag serves to distinguish module " - "builds with the same name, stream and version and " - "plays an important role in future automatic module " - "stream name expansion. Filled in by the " - "buildsystem. A short hash of the module's name, " - "stream, version and its expanded runtime " - "dependencies.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdModule:dependencies: (type GLib.PtrArray(ModulemdDependencies)) - */ - md_properties[MD_PROP_DEPS] = - g_param_spec_boxed ("dependencies", - "Module Dependencies", - "A list of build and runtime requirements needed by " - "this module.", - G_TYPE_PTR_ARRAY, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_DESC] = - g_param_spec_string ("description", - "Module Description", - "A string property representing a detailed " - "description of the module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_DOCS] = - g_param_spec_string ("documentation", - "Module Documentation", - "A string property representing a link to the " - "upstream documentation for this module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdModule:eol: (type GLib.Date) - */ - md_properties[MD_PROP_EOL] = - g_param_spec_boxed ("eol", - "End of Life", - "An ISO-8601 compatible YYYY-MM-DD value representing " - "the end-of-life date of this module. This field is " - "obsolete; use 'servicelevels' instead.", - G_TYPE_DATE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_MDVERSION] = - g_param_spec_uint64 ("mdversion", - "Module Metadata Version", - "An int property representing the metadata " - "format version used.", - 0, - G_MAXUINT64, - 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdModule:components-module: (type GLib.HashTable(utf8,ModulemdComponentModule)) - */ - md_properties[MD_PROP_MODULE_COMPONENTS] = - g_param_spec_boxed ("components-module", - "Module Components", - "The module components that define this module.", - G_TYPE_HASH_TABLE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_MODULE_LIC] = - g_param_spec_object ("module-licenses", - "Module Licenses", - "The set of licenses under which this module is " - "released.", - MODULEMD_TYPE_SIMPLESET, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_NAME] = - g_param_spec_string ("name", - "Module Name", - "A string property representing the name of " - "the module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdModule:profiles: (type GLib.HashTable(utf8,ModulemdProfile)) - */ - md_properties[MD_PROP_PROFILES] = - g_param_spec_boxed ("profiles", - "Module Profiles", - "A dictionary property representing the module " - "profiles.", - G_TYPE_HASH_TABLE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdModule:requires: (type GLib.HashTable(utf8,utf8)) - */ - md_properties[MD_PROP_REQUIRES] = - g_param_spec_boxed ("requires", - "Module Requires", - "A dictionary property representing the required " - "dependencies of the module. Keys are the " - "required module names (strings), values are their " - "required stream names (also strings).", - G_TYPE_HASH_TABLE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_RPM_API] = - g_param_spec_object ("rpm-api", - "Module API - RPMs", - "The RPMs that make up the public API of this " - "module.", - MODULEMD_TYPE_SIMPLESET, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_RPM_ARTIFACTS] = - g_param_spec_object ("rpm-artifacts", - "Module artifacts - RPMs", - "The RPMs that make up the output artifacts for " - "this module.", - MODULEMD_TYPE_SIMPLESET, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdModule:rpm-buildopts: (type GLib.HashTable(utf8,utf8)) - */ - md_properties[MD_PROP_RPM_BUILDOPTS] = - g_param_spec_boxed ("rpm-buildopts", - "RPM build options", - "A dictionary of options to pass to RPM build. " - "Currently the only supported key is \"macros\" " - "which is used for specifying custom RPM build " - "macros.", - G_TYPE_HASH_TABLE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdModule:components-rpm: (type GLib.HashTable(utf8,ModulemdComponentRpm)) - */ - md_properties[MD_PROP_RPM_COMPONENTS] = - g_param_spec_boxed ("components-rpm", - "RPM Components", - "The RPM components that define this module.", - G_TYPE_HASH_TABLE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_RPM_FILTER] = - g_param_spec_object ("rpm-filter", - "Module filter - RPMs", - "The RPMs that are explicitly filtered out of " - "this module.", - MODULEMD_TYPE_SIMPLESET, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdModule:servicelevels: (type GLib.HashTable(utf8,ModulemdServiceLevel)) - */ - md_properties[MD_PROP_SL] = - g_param_spec_boxed ("servicelevels", - "Service Levels", - "A dictionary of service levels that apply to this " - "module.", - G_TYPE_HASH_TABLE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_STREAM] = - g_param_spec_string ("stream", - "Module Stream", - "A string property representing the stream name " - "of the module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_SUMMARY] = - g_param_spec_string ("summary", - "Module Short Description", - "A string property representing a short summary " - "of the module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_TRACKER] = - g_param_spec_string ("tracker", - "Module Bug Tracker", - "A string property representing a link to the " - "upstream bug tracker for this module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - md_properties[MD_PROP_VERSION] = - g_param_spec_uint64 ("version", - "Module Version", - "An integer property representing the version of " - "the module.", - 0, - G_MAXUINT64, - 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdModule:xmd: (type GLib.HashTable(utf8,GVariant)) - */ - md_properties[MD_PROP_XMD] = - g_param_spec_boxed ("xmd", - "Extensible Metadata Block", - "A dictionary of user-defined keys and values. " - "Optional. Defaults to an empty dictionary. ", - G_TYPE_HASH_TABLE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties ( - object_class, MD_N_PROPERTIES, md_properties); -} - -static void -modulemd_module_init (ModulemdModule *self) -{ - /* Allocate the ModulemdStream that lives under the hood */ - self->stream = modulemd_modulestream_new (); - - self->rpm_buildopts = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); -} - -/** - * modulemd_module_new: - * - * Allocates a new #ModulemdModule. - * - * Return value: a new #ModulemdModule. - * - * Since: 1.0 - * - * Deprecated: 1.6 - * This object is being replaced by #ModulemdModuleStream - * - */ -G_DEPRECATED_FOR (modulemd_modulestream_new) -ModulemdModule * -modulemd_module_new (void) -{ - return g_object_new (MODULEMD_TYPE_MODULE, NULL); -} - - -ModulemdModule * -modulemd_module_new_from_modulestream (ModulemdModuleStream *stream) -{ - ModulemdModule *module = g_object_new (MODULEMD_TYPE_MODULE, NULL); - - g_clear_pointer (&module->stream, g_object_unref); - module->stream = modulemd_modulestream_copy (stream); - - return module; -} - - -ModulemdModuleStream * -modulemd_module_peek_modulestream (ModulemdModule *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULE (self), NULL); - return self->stream; -} - - -/** - * modulemd_module_new_from_file: - * @yaml_file: A YAML file containing the module metadata. If this file - * contains more than one module, only the first will be loaded. - * - * Allocates a new #ModulemdModule from a file. - * - * Return value: a new #ModulemdModule. When no longer needed, free it with - * g_object_unref(). - * - * Since: 1.0 - */ -ModulemdModule * -modulemd_module_new_from_file (const gchar *yaml_file) -{ - return modulemd_module_new_from_file_ext (yaml_file, NULL, NULL); -} - - -/** - * modulemd_module_new_from_file_ext: - * @yaml_file: A YAML file containing the module metadata. If this file - * contains more than one subdocument, only the first will be loaded (if it is - * a module stream document). - * @failures: (element-type ModulemdSubdocument) (transfer container) (out): - * An array containing any subdocuments from the YAML file that failed to - * parse. This must be freed with g_ptr_array_unref(). - * - * Allocates a new #ModulemdModule from a file. - * - * Return value: a new #ModulemdModule. When no longer needed, free it with - * g_object_unref(). - * - * Since: 1.4 - */ -ModulemdModule * -modulemd_module_new_from_file_ext (const gchar *yaml_file, - GPtrArray **failures, - GError **error) -{ - ModulemdModule *module = NULL; - g_autoptr (GPtrArray) data = NULL; - - if (!parse_yaml_file (yaml_file, &data, failures, error)) - { - return NULL; - } - - if (data->len && MODULEMD_IS_MODULESTREAM (g_ptr_array_index (data, 0))) - { - module = modulemd_module_new_from_modulestream ( - MODULEMD_MODULESTREAM (g_ptr_array_index (data, 0))); - } - - if (!module) - { - g_set_error (error, - MODULEMD_MODULE_ERROR, - MODULEMD_MODULE_ERROR_MISSING_CONTENT, - "Provided YAML file contained no valid module objects"); - } - - return module; -} - -/** - * modulemd_module_new_all_from_file: - * @yaml_file: A YAML file containing the module metadata. - * @_modules: (out) (array zero-terminated=1) (element-type ModulemdModule) (transfer container): - * A zero-terminated array of modules contained in this document. - * - * Allocates a list of new #ModulemdModule from a file. - * - * Since: 1.0 - */ -void -modulemd_module_new_all_from_file (const gchar *yaml_file, - ModulemdModule ***_modules) -{ - GError *error = NULL; - GPtrArray *data = NULL; - - if (!parse_yaml_file (yaml_file, &data, NULL, &error)) - { - g_debug ("Error parsing YAML: %s", error->message); - g_error_free (error); - return; - } - - *_modules = mmd_yaml_dup_modules (data); - - /* This old implementation needs to ignore extra_data, so just free it. */ - g_clear_pointer (&data, g_ptr_array_unref); -} - - -/** - * modulemd_module_new_all_from_file_ext: - * @yaml_file: A YAML file containing the module metadata. - * @data: (out) (array zero-terminated=1) (element-type GObject) (transfer container): - * A #GPtrArray of objects read from the YAML stream. - * - * Allocates a #GPtrArray of various supported subdocuments from a file. - * - * Since: 1.1 - */ -void -modulemd_module_new_all_from_file_ext (const gchar *yaml_file, - GPtrArray **data) -{ - g_autoptr (GError) error = NULL; - g_autoptr (GPtrArray) to_convert = NULL; - - if (!parse_yaml_file (yaml_file, &to_convert, NULL, &error)) - { - g_debug ("Error parsing YAML: %s", error->message); - return; - } - - /* For backwards-compatibility, we need to return Modulemd.Module objects, - * not Modulemd.ModuleStream objects - */ - if (data) - *data = mmd_yaml_convert_modulestreams (to_convert); -} - - -/** - * modulemd_module_new_from_string: - * @yaml_string: A YAML string containing the module metadata. If this string - * contains more than one module, only the first will be loaded. - * - * Allocates a new #ModulemdModule from a string. - * - * Return value: a new #ModulemdModule. - * - * Since: 1.0 - */ -ModulemdModule * -modulemd_module_new_from_string (const gchar *yaml_string) -{ - return modulemd_module_new_from_string_ext (yaml_string, NULL, NULL); -} - - -/** - * modulemd_module_new_from_string_ext: - * @yaml_string: A YAML string containing the module metadata. If this string - * contains more than one module, only the first will be loaded. - * @failures: (element-type ModulemdSubdocument) (transfer container) (out): - * An array containing any subdocuments from the YAML file that failed to - * parse. This must be freed with g_ptr_array_unref(). - * - * Allocates a new #ModulemdModule from a string. - * - * Return value: a new #ModulemdModule. - * - * Since: 1.4 - */ -ModulemdModule * -modulemd_module_new_from_string_ext (const gchar *yaml_string, - GPtrArray **failures, - GError **error) -{ - ModulemdModule *module = NULL; - g_autoptr (GPtrArray) data = NULL; - - if (!parse_yaml_string (yaml_string, &data, failures, error)) - { - return NULL; - } - - if (data->len && MODULEMD_IS_MODULESTREAM (g_ptr_array_index (data, 0))) - { - module = modulemd_module_new_from_modulestream ( - MODULEMD_MODULESTREAM (g_ptr_array_index (data, 0))); - } - - if (!module) - { - g_set_error (error, - MODULEMD_MODULE_ERROR, - MODULEMD_MODULE_ERROR_MISSING_CONTENT, - "Provided YAML string contained no valid module objects"); - } - - return module; -} - - -/** - * modulemd_module_new_all_from_string: - * @yaml_string: A YAML string containing the module metadata. - * @_modules: (out) (array zero-terminated=1) (element-type ModulemdModule) (transfer container): - * A zero-terminated array of modules contained in this document. - * - * Allocates a list of new #ModulemdModule from a string. - * - * Since: 1.0 - */ -void -modulemd_module_new_all_from_string (const gchar *yaml_string, - ModulemdModule ***_modules) -{ - GError *error = NULL; - GPtrArray *data = NULL; - - if (!parse_yaml_string (yaml_string, &data, NULL, &error)) - { - g_debug ("Error parsing YAML: %s", error->message); - g_error_free (error); - return; - } - - *_modules = mmd_yaml_dup_modules (data); - - /* This old implementation needs to ignore extra_data, so just free it. */ - g_clear_pointer (&data, g_ptr_array_unref); -} - - -/** - * modulemd_module_new_all_from_string_ext: - * @yaml_string: A YAML string containing the module metadata. - * @data: (out) (array zero-terminated=1) (element-type GObject) (transfer container): - * A #GPtrArray of objects read from the YAML stream. - * - * Allocates a #GPtrArray of various supported subdocuments from a file. - * - * Since: 1.1 - */ -void -modulemd_module_new_all_from_string_ext (const gchar *yaml_string, - GPtrArray **data) -{ - g_autoptr (GError) error = NULL; - g_autoptr (GPtrArray) to_convert = NULL; - - if (!parse_yaml_string (yaml_string, &to_convert, NULL, &error)) - { - g_debug ("Error parsing YAML: %s", error->message); - return; - } - - /* For backwards-compatibility, we need to return Modulemd.Module objects, - * not Modulemd.ModuleStream objects - */ - if (data) - *data = mmd_yaml_convert_modulestreams (to_convert); -} - - -/** - * modulemd_module_new_from_stream: - * @stream: A YAML stream containing the module metadata. If this file - * contains more than one module, only the first will be loaded. - * - * Allocates a new #ModulemdModule from a file. - * - * Return value: a new #ModulemdModule. When no longer needed, free it with - * g_object_unref(). - * - * Since: 1.4 - */ -ModulemdModule * -modulemd_module_new_from_stream (FILE *stream, GError **error) -{ - return modulemd_module_new_from_stream_ext (stream, NULL, error); -} - - -/** - * modulemd_module_new_from_stream_ext: - * @stream: A YAML stream containing the module metadata. If this file - * contains more than one module, only the first will be loaded. - * @failures: (element-type ModulemdSubdocument) (transfer container) (out): - * An array containing any subdocuments from the YAML file that failed to - * parse. This must be freed with g_ptr_array_unref(). - * - * Allocates a new #ModulemdModule from a file. - * - * Return value: a new #ModulemdModule. When no longer needed, free it with - * g_object_unref(). - * - * Since: 1.4 - */ -ModulemdModule * -modulemd_module_new_from_stream_ext (FILE *stream, - GPtrArray **failures, - GError **error) -{ - ModulemdModule *module = NULL; - g_autoptr (GPtrArray) data = NULL; - - if (!parse_yaml_stream (stream, &data, failures, error)) - { - return NULL; - } - - if (data->len && MODULEMD_IS_MODULESTREAM (g_ptr_array_index (data, 0))) - { - module = modulemd_module_new_from_modulestream ( - MODULEMD_MODULESTREAM (g_ptr_array_index (data, 0))); - } - - if (!module) - { - g_set_error (error, - MODULEMD_MODULE_ERROR, - MODULEMD_MODULE_ERROR_MISSING_CONTENT, - "Provided YAML stream contained no valid module objects"); - } - - return module; -} - - -/** - * modulemd_module_dump: - * @yaml_file: A string containing the path to the output file - * - * Writes this module out to a YAML document on disk. - * - * Since: 1.0 - */ -void -modulemd_module_dump (ModulemdModule *self, const gchar *yaml_file) -{ - GError *error = NULL; - GPtrArray *objects = g_ptr_array_new (); - - g_ptr_array_add (objects, self); - - if (!emit_yaml_file (objects, yaml_file, &error)) - { - g_debug ("Error emitting YAML file: %s", error->message); - g_error_free (error); - } - - g_ptr_array_unref (objects); -} - -/** - * modulemd_module_dumps: - * - * Writes this module out to a YAML document string. - * - * Return value: A string containing a YAML representation of this module. - * - * Since: 1.0 - */ -gchar * -modulemd_module_dumps (ModulemdModule *self) -{ - GError *error = NULL; - gchar *yaml = NULL; - GPtrArray *objects = g_ptr_array_new (); - - g_ptr_array_add (objects, self); - - if (!emit_yaml_string (objects, &yaml, &error)) - { - g_debug ("Error emitting YAML string: %s", error->message); - g_error_free (error); - yaml = NULL; - } - - g_ptr_array_unref (objects); - return yaml; -} - -/** - * modulemd_module_dump_all: - * @module_array: (array zero-terminated=1) (element-type GObject) (transfer none): - * A zero-terminated array of modules to be output - * - * This function writes out a file containing one or more YAML documents - * generated from the supplied modules. - * - * Since: 1.0 - */ -void -modulemd_module_dump_all (GPtrArray *module_array, const gchar *yaml_file) -{ - GError *error = NULL; - - if (!emit_yaml_file (module_array, yaml_file, &error)) - { - g_debug ("Error emitting YAML file: %s", error->message); - g_error_free (error); - } -} - -/** - * modulemd_module_dumps_all: - * @module_array: (array zero-terminated=1) (element-type GObject) (transfer none): - * A zero-terminated array of modules to be output - * - * This function returns an allocated string containing one or more YAML - * documents generated from the supplied modules. - * - * Return value: A string containing a YAML representation of all provided modules. - * - * Since: 1.0 - */ -gchar * -modulemd_module_dumps_all (GPtrArray *module_array) -{ - GError *error = NULL; - gchar *yaml = NULL; - - if (!emit_yaml_string (module_array, &yaml, &error)) - { - g_debug ("Error emitting YAML string: %s", error->message); - g_error_free (error); - yaml = NULL; - } - - return yaml; -} - -/** - * modulemd_module_upgrade: - * Upgrade the module to the latest supported version - * - * This function takes content imported from earlier versions of the modulemd - * format and upgrades it into the most recent version. - * - * Return value: TRUE if the upgrade was performed successfully. If this - * function returns FALSE, the internal state of the data is undefined and - * should not be used further. - * - * Since: 1.0 - */ - -gboolean -modulemd_module_upgrade (ModulemdModule *self) -{ - gboolean result = FALSE; - - g_return_val_if_fail (MODULEMD_IS_MODULE (self), FALSE); - - result = modulemd_modulestream_upgrade (self->stream); - - return result; -} diff --git a/modulemd-1.8.16/modulemd/modulemd-modulestream.c b/modulemd-1.8.16/modulemd/modulemd-modulestream.c deleted file mode 100644 index 2c555bd..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-modulestream.c +++ /dev/null @@ -1,2264 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - - -#include "modulemd.h" -#include "modulemd-modulestream.h" -#include "private/modulemd-yaml.h" -#include "private/modulemd-util.h" -#include "private/modulemd-private.h" -#include "private/modulemd-profile-private.h" - -#include -#include -#include -#include - -GQuark -modulemd_modulestream_error_quark (void) -{ - return g_quark_from_static_string ("modulemd-module-error-quark"); -} - -enum -{ - PROP_0, - - PROP_ARCH, - PROP_BUILDOPTS, - PROP_COMMUNITY, - PROP_CONTENT_LIC, - PROP_CONTEXT, - PROP_DEPS, - PROP_DESC, - PROP_DOCS, - PROP_EOL, - PROP_MDVERSION, - PROP_MODULE_LIC, - PROP_NAME, - PROP_RPM_API, - PROP_RPM_ARTIFACTS, - PROP_RPM_FILTER, - PROP_STREAM, - PROP_SUMMARY, - PROP_TRACKER, - PROP_VERSION, - - MD_N_PROPERTIES -}; - -static GParamSpec *properties[MD_N_PROPERTIES] = { - NULL, -}; - -struct _ModulemdModuleStream -{ - GObject parent_instance; - - /* == Members == */ - gchar *arch; - ModulemdBuildopts *buildopts; - GHashTable *buildrequires; - gchar *community; - ModulemdSimpleSet *content_licenses; - gchar *context; - GPtrArray *dependencies; - gchar *description; - gchar *documentation; - GDate *eol; - guint64 mdversion; - GHashTable *module_components; - ModulemdSimpleSet *module_licenses; - gchar *name; - GHashTable *profiles; - GHashTable *requires; - ModulemdSimpleSet *rpm_api; - ModulemdSimpleSet *rpm_artifacts; - GHashTable *rpm_components; - ModulemdSimpleSet *rpm_filter; - GHashTable *servicelevels; - gchar *stream; - gchar *summary; - gchar *tracker; - ModulemdTranslation *translation; - guint64 version; - GHashTable *xmd; -}; - -G_DEFINE_TYPE (ModulemdModuleStream, modulemd_modulestream, G_TYPE_OBJECT) - - -ModulemdModuleStream * -modulemd_modulestream_new (void) -{ - return g_object_new (MODULEMD_TYPE_MODULESTREAM, NULL); -} - - -static void -_modulemd_modulestream_copy_internal (ModulemdModuleStream *dest, - ModulemdModuleStream *src) -{ - /* Set mdversion first */ - modulemd_modulestream_set_mdversion (dest, src->mdversion); - - modulemd_modulestream_set_arch (dest, src->arch); - - modulemd_modulestream_set_buildopts (dest, src->buildopts); - - modulemd_modulestream_set_community (dest, src->community); - - modulemd_modulestream_set_content_licenses (dest, src->content_licenses); - - modulemd_modulestream_set_context (dest, src->context); - - modulemd_modulestream_set_description (dest, src->description); - - modulemd_modulestream_set_documentation (dest, src->documentation); - - modulemd_modulestream_set_module_components (dest, src->module_components); - - modulemd_modulestream_set_module_licenses (dest, src->module_licenses); - - modulemd_modulestream_set_name (dest, src->name); - - modulemd_modulestream_set_profiles (dest, src->profiles); - - modulemd_modulestream_set_rpm_api (dest, src->rpm_api); - - modulemd_modulestream_set_rpm_artifacts (dest, src->rpm_artifacts); - - modulemd_modulestream_set_rpm_components (dest, src->rpm_components); - - modulemd_modulestream_set_rpm_filter (dest, src->rpm_filter); - - modulemd_modulestream_set_servicelevels (dest, src->servicelevels); - - modulemd_modulestream_set_stream (dest, src->stream); - - modulemd_modulestream_set_summary (dest, src->summary); - - modulemd_modulestream_set_tracker (dest, src->tracker); - - modulemd_modulestream_set_translation (dest, src->translation); - - modulemd_modulestream_set_version (dest, src->version); - - modulemd_modulestream_set_xmd (dest, src->xmd); - - - /* Version-specific content */ - if (src->mdversion == MD_VERSION_1) - { - modulemd_modulestream_set_buildrequires (dest, src->buildrequires); - modulemd_modulestream_set_requires (dest, src->requires); - if (modulemd_modulestream_peek_eol (src)) - { - modulemd_modulestream_set_eol (dest, src->eol); - } - } - else if (src->mdversion >= MD_VERSION_2) - { - modulemd_modulestream_set_dependencies (dest, src->dependencies); - } -} - - -ModulemdModuleStream * -modulemd_modulestream_copy (ModulemdModuleStream *self) -{ - guint64 mdversion; - g_autoptr (ModulemdModuleStream) copy = NULL; - - if (!self) - return NULL; - - mdversion = modulemd_modulestream_get_mdversion (self); - - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - g_return_val_if_fail (mdversion, NULL); - - copy = modulemd_modulestream_new (); - - _modulemd_modulestream_copy_internal (copy, self); - - return g_object_ref (copy); -} - - -gboolean -modulemd_modulestream_import_from_file (ModulemdModuleStream *self, - const gchar *yaml_file, - GPtrArray **failures, - GError **error) -{ - g_autoptr (GPtrArray) data = NULL; - - if (!parse_yaml_file (yaml_file, &data, failures, error)) - { - return FALSE; - } - - if (data->len < 1) - { - g_set_error (error, - MODULEMD_MODULESTREAM_ERROR, - MODULEMD_MODULESTREAM_ERROR_MISSING_CONTENT, - "Provided YAML contained no valid subdocuments"); - return FALSE; - } - else if (!MODULEMD_IS_MODULESTREAM (g_ptr_array_index (data, 0))) - { - g_set_error (error, - MODULEMD_MODULESTREAM_ERROR, - MODULEMD_MODULESTREAM_ERROR_MISSING_CONTENT, - "Provided YAML did not begin with a module document"); - return FALSE; - } - - _modulemd_modulestream_copy_internal (self, g_ptr_array_index (data, 0)); - - return TRUE; -} - - -gboolean -modulemd_modulestream_dump (ModulemdModuleStream *self, - const gchar *yaml_file, - GError **error) -{ - g_autoptr (GPtrArray) objects = g_ptr_array_new (); - - g_ptr_array_add (objects, self); - - if (!emit_yaml_file (objects, yaml_file, error)) - { - g_debug ("Error emitting YAML file: %s", (*error)->message); - return FALSE; - } - - return TRUE; -} - - -gboolean -modulemd_modulestream_import_from_string (ModulemdModuleStream *self, - const gchar *yaml_string, - GPtrArray **failures, - GError **error) -{ - g_autoptr (GPtrArray) data = NULL; - - if (!parse_yaml_string (yaml_string, &data, failures, error)) - { - return FALSE; - } - - if (data->len < 1 || !MODULEMD_IS_MODULESTREAM (g_ptr_array_index (data, 0))) - { - g_set_error (error, - MODULEMD_MODULESTREAM_ERROR, - MODULEMD_MODULESTREAM_ERROR_MISSING_CONTENT, - "Provided YAML did not begin with a module document"); - return FALSE; - } - - _modulemd_modulestream_copy_internal (self, g_ptr_array_index (data, 0)); - - return TRUE; -} - - -gchar * -modulemd_modulestream_dumps (ModulemdModuleStream *self, GError **error) -{ - gchar *yaml = NULL; - g_autoptr (GPtrArray) objects = g_ptr_array_new (); - - g_ptr_array_add (objects, self); - - if (!emit_yaml_string (objects, &yaml, error)) - { - g_debug ("Error emitting YAML file: %s", (*error)->message); - g_clear_pointer (&yaml, g_free); - } - - return yaml; -} - - -gboolean -modulemd_modulestream_import_from_stream (ModulemdModuleStream *self, - FILE *stream, - GPtrArray **failures, - GError **error) -{ - g_autoptr (GPtrArray) data = NULL; - - if (!parse_yaml_stream (stream, &data, failures, error)) - { - return FALSE; - } - - if (data->len < 1 || !MODULEMD_IS_MODULESTREAM (g_ptr_array_index (data, 0))) - { - g_set_error (error, - MODULEMD_MODULESTREAM_ERROR, - MODULEMD_MODULESTREAM_ERROR_MISSING_CONTENT, - "Provided YAML did not begin with a module document"); - return FALSE; - } - - _modulemd_modulestream_copy_internal (self, g_ptr_array_index (data, 0)); - - return TRUE; -} - - -static gboolean -_modulemd_upgrade_v1_to_v2 (ModulemdModuleStream *self) -{ - const GDate *eol = NULL; - g_autoptr (ModulemdServiceLevel) sl = NULL; - g_autoptr (GHashTable) buildrequires = NULL; - g_autoptr (GHashTable) requires = NULL; - g_autoptr (ModulemdDependencies) v2_dep = NULL; - GHashTableIter iter; - gpointer key, value; - g_autoptr (GPtrArray) deps = NULL; - - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), FALSE); - - /* Upgrade the EOL field to a "rawhide" servicelevel*/ - eol = modulemd_modulestream_peek_eol (self); - if (eol && g_date_valid (eol)) - { - sl = modulemd_servicelevel_new (); - modulemd_servicelevel_set_eol (sl, eol); - modulemd_servicelevel_set_name (sl, "rawhide"); - - modulemd_modulestream_add_servicelevel (self, sl); - } - - /* Upgrade the build and runtime requirements */ - v2_dep = modulemd_dependencies_new (); - - - /* First do BuildRequires */ - buildrequires = modulemd_modulestream_get_buildrequires (self); - g_hash_table_iter_init (&iter, buildrequires); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - modulemd_dependencies_add_buildrequires_single ( - v2_dep, (const gchar *)key, (const gchar *)value); - } - - /* Now add runtime Requires */ - requires = modulemd_modulestream_get_requires (self); - g_hash_table_iter_init (&iter, requires); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - modulemd_dependencies_add_requires_single ( - v2_dep, (const gchar *)key, (const gchar *)value); - } - - deps = g_ptr_array_new (); - g_ptr_array_add (deps, v2_dep); - - modulemd_modulestream_set_mdversion (self, MD_VERSION_2); - modulemd_modulestream_set_dependencies (self, deps); - - return TRUE; -} - - -static gboolean -modulemd_modulestream_upgrade_full (ModulemdModuleStream *self, - guint64 version) -{ - gboolean result = FALSE; - guint64 mdversion; - - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), FALSE); - - mdversion = modulemd_modulestream_get_mdversion (self); - - while (mdversion < version) - { - switch (mdversion + 1) - { - case MD_VERSION_1: - /* No upgrade needed for v1 */ - break; - - case MD_VERSION_2: - result = _modulemd_upgrade_v1_to_v2 (self); - if (!result) - goto done; - break; - - /* Future upgrades go here */ - - default: - g_error ("Programming error: no such version %" PRIx64, version); - result = FALSE; - goto done; - } - mdversion++; - } - - result = TRUE; -done: - return result; -} - - -gboolean -modulemd_modulestream_upgrade (ModulemdModuleStream *self) -{ - gboolean result = FALSE; - - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), FALSE); - - result = modulemd_modulestream_upgrade_full (self, MD_VERSION_LATEST); - - return result; -} - - -void -modulemd_modulestream_set_arch (ModulemdModuleStream *self, const gchar *arch) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if (g_strcmp0 (self->arch, arch) != 0) - { - g_free (self->arch); - self->arch = g_strdup (arch); - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_ARCH]); - } -} - - -gchar * -modulemd_modulestream_get_arch (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return g_strdup (self->arch); -} - - -const gchar * -modulemd_modulestream_peek_arch (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->arch; -} - - -void -modulemd_modulestream_set_buildopts (ModulemdModuleStream *self, - ModulemdBuildopts *buildopts) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - g_return_if_fail (!buildopts || MODULEMD_IS_BUILDOPTS (buildopts)); - - g_clear_pointer (&self->buildopts, g_object_unref); - if (buildopts) - { - self->buildopts = modulemd_buildopts_copy (buildopts); - } - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_BUILDOPTS]); -} - - -ModulemdBuildopts * -modulemd_modulestream_get_buildopts (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return modulemd_buildopts_copy (self->buildopts); -} - - -ModulemdBuildopts * -modulemd_modulestream_peek_buildopts (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->buildopts; -} - - -void -modulemd_modulestream_set_buildrequires (ModulemdModuleStream *self, - GHashTable *buildrequires) -{ - GHashTableIter iter; - gpointer module_name, stream_name; - guint64 version; - - version = modulemd_modulestream_get_mdversion (self); - - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - g_return_if_fail (self->buildrequires != buildrequires); - - if (version > MD_VERSION_1) - { - g_debug ("Incompatible modulemd version"); - return; - } - - g_hash_table_remove_all (self->buildrequires); - - if (buildrequires) - { - g_hash_table_iter_init (&iter, buildrequires); - while (g_hash_table_iter_next (&iter, &module_name, &stream_name)) - { - g_hash_table_replace (self->buildrequires, - g_strdup ((const gchar *)module_name), - g_strdup ((const gchar *)stream_name)); - } - } -} - - -GHashTable * -modulemd_modulestream_get_buildrequires (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return _modulemd_hash_table_deep_str_copy (self->buildrequires); -} - - -GHashTable * -modulemd_modulestream_peek_buildrequires (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->buildrequires; -} - - -void -modulemd_modulestream_set_community (ModulemdModuleStream *self, - const gchar *community) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if (g_strcmp0 (self->community, community) != 0) - { - g_free (self->community); - self->community = g_strdup (community); - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_COMMUNITY]); - } -} - - -gchar * -modulemd_modulestream_get_community (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return g_strdup (self->community); -} - - -const gchar * -modulemd_modulestream_peek_community (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->community; -} - - -void -modulemd_modulestream_set_content_licenses (ModulemdModuleStream *self, - ModulemdSimpleSet *licenses) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - g_return_if_fail (!licenses || MODULEMD_IS_SIMPLESET (licenses)); - - modulemd_simpleset_copy (licenses, &self->content_licenses); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_CONTENT_LIC]); -} - - -ModulemdSimpleSet * -modulemd_modulestream_get_content_licenses (ModulemdModuleStream *self) -{ - ModulemdSimpleSet *set = NULL; - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - modulemd_simpleset_copy (self->content_licenses, &set); - - return set; -} - - -ModulemdSimpleSet * -modulemd_modulestream_peek_content_licenses (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->content_licenses; -} - - -void -modulemd_modulestream_set_context (ModulemdModuleStream *self, - const gchar *context) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if (g_strcmp0 (self->context, context) != 0) - { - g_free (self->context); - self->context = g_strdup (context); - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_CONTEXT]); - } -} - - -gchar * -modulemd_modulestream_get_context (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return g_strdup (self->context); -} - - -const gchar * -modulemd_modulestream_peek_context (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->context; -} - - -void -modulemd_modulestream_set_dependencies (ModulemdModuleStream *self, - GPtrArray *deps) -{ - gsize i = 0; - ModulemdDependencies *copy = NULL; - guint64 mdversion; - - mdversion = modulemd_modulestream_get_mdversion (self); - - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if (mdversion && mdversion < MD_VERSION_2) - { - g_debug ("Incompatible modulemd version"); - return; - } - - g_ptr_array_set_size (self->dependencies, 0); - - if (deps) - { - for (i = 0; i < deps->len; i++) - { - modulemd_dependencies_copy (g_ptr_array_index (deps, i), ©); - g_ptr_array_add (self->dependencies, g_object_ref (copy)); - g_clear_pointer (©, g_object_unref); - } - } - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_DEPS]); -} - - -void -modulemd_modulestream_add_dependencies (ModulemdModuleStream *self, - ModulemdDependencies *dep) -{ - ModulemdDependencies *copy = NULL; - - guint64 mdversion; - - mdversion = modulemd_modulestream_get_mdversion (self); - - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if (mdversion && mdversion < MD_VERSION_2) - { - g_debug ("Incompatible modulemd version"); - return; - } - - modulemd_dependencies_copy (dep, ©); - g_ptr_array_add (self->dependencies, g_object_ref (copy)); - g_clear_pointer (©, g_object_unref); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_DEPS]); -} - - -GPtrArray * -modulemd_modulestream_get_dependencies (ModulemdModuleStream *self) -{ - GPtrArray *dependencies = NULL; - ModulemdDependencies *copy = NULL; - - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - dependencies = - g_ptr_array_new_full (self->dependencies->len, g_object_unref); - - for (gsize i = 0; i < self->dependencies->len; i++) - { - copy = NULL; - modulemd_dependencies_copy (g_ptr_array_index (self->dependencies, i), - ©); - g_ptr_array_add (dependencies, copy); - } - - return dependencies; -} - - -GPtrArray * -modulemd_modulestream_peek_dependencies (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->dependencies; -} - - -void -modulemd_modulestream_set_description (ModulemdModuleStream *self, - const gchar *description) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if (g_strcmp0 (self->description, description) != 0) - { - g_free (self->description); - self->description = g_strdup (description); - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_DESC]); - } -} - - -gchar * -modulemd_modulestream_get_description (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return g_strdup (self->description); -} - - -gchar * -modulemd_modulestream_get_localized_description (ModulemdModuleStream *self, - const gchar *locale) -{ - g_autoptr (ModulemdTranslationEntry) entry = NULL; - - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - entry = _get_locale_entry (self->translation, locale); - - /* Check whether a translation exists for this locale */ - if (entry) - { - return modulemd_translation_entry_get_description (entry); - } - - /* No matching translation existed. Return the standard description */ - return modulemd_modulestream_get_description (self); -} - - -const gchar * -modulemd_modulestream_peek_description (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->description; -} - - -void -modulemd_modulestream_set_documentation (ModulemdModuleStream *self, - const gchar *documentation) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if (g_strcmp0 (self->documentation, documentation) != 0) - { - g_free (self->documentation); - self->documentation = g_strdup (documentation); - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_DOCS]); - } -} - - -gchar * -modulemd_modulestream_get_documentation (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return g_strdup (self->documentation); -} - - -const gchar * -modulemd_modulestream_peek_documentation (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->documentation; -} - - -void -modulemd_modulestream_set_eol (ModulemdModuleStream *self, const GDate *date) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - g_return_if_fail (modulemd_modulestream_get_mdversion (self) < 2); - - if (!date) - { - gboolean previously_valid = g_date_valid (self->eol); - - g_date_clear (self->eol, 1); - - if (previously_valid) - { - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_EOL]); - } - - return; - } - - g_return_if_fail (g_date_valid (date)); - - if (!g_date_valid (self->eol) || g_date_compare (date, self->eol) != 0) - { - /* Date is changing. Update it */ - g_date_set_year (self->eol, g_date_get_year (date)); - g_date_set_month (self->eol, g_date_get_month (date)); - g_date_set_day (self->eol, g_date_get_day (date)); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_EOL]); - } -} - - -GDate * -modulemd_modulestream_get_eol (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - if (!g_date_valid (self->eol)) - { - return NULL; - } - - return g_date_new_dmy (g_date_get_day (self->eol), - g_date_get_month (self->eol), - g_date_get_year (self->eol)); -} - - -const GDate * -modulemd_modulestream_peek_eol (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - if (!g_date_valid (self->eol)) - { - return NULL; - } - - return self->eol; -} - - -void -modulemd_modulestream_set_mdversion (ModulemdModuleStream *self, - const guint64 mdversion) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if (self->mdversion != mdversion) - { - self->mdversion = mdversion; - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MDVERSION]); - } -} - - -guint64 -modulemd_modulestream_get_mdversion (ModulemdModuleStream *self) -{ - return self->mdversion; -} - - -void -modulemd_modulestream_add_module_component (ModulemdModuleStream *self, - ModulemdComponentModule *component) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - g_return_if_fail (MODULEMD_IS_COMPONENT_MODULE (component)); - - g_hash_table_replace ( - self->module_components, - modulemd_component_dup_name ((ModulemdComponent *)component), - MODULEMD_COMPONENT_MODULE ( - modulemd_component_copy (MODULEMD_COMPONENT (component)))); -} - - -void -modulemd_modulestream_clear_module_components (ModulemdModuleStream *self) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - g_hash_table_remove_all (self->module_components); -} - - -void -modulemd_modulestream_set_module_components (ModulemdModuleStream *self, - GHashTable *components) -{ - GHashTableIter iter; - gpointer key, value; - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if ((!components || g_hash_table_size (components) == 0) && - g_hash_table_size (self->module_components) == 0) - { - /* Nothing to do; don't send notification */ - return; - } - - /* For any other case, we'll assume a full replacement */ - modulemd_modulestream_clear_module_components (self); - - if (components) - { - g_hash_table_iter_init (&iter, components); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - /* Throw an error if the name of the key and the name the component - * has internally are different. - */ - g_hash_table_replace ( - self->module_components, - modulemd_component_dup_name ((ModulemdComponent *)value), - MODULEMD_COMPONENT_MODULE ( - modulemd_component_copy (MODULEMD_COMPONENT (value)))); - } - } -} - - -GHashTable * -modulemd_modulestream_get_module_components (ModulemdModuleStream *self) -{ - GHashTable *components = NULL; - GHashTableIter iter; - gpointer key, value; - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - components = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - g_hash_table_iter_init (&iter, self->module_components); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - g_hash_table_replace ( - components, - g_strdup ((gchar *)key), - modulemd_component_copy (MODULEMD_COMPONENT (value))); - } - - return components; -} - - -GHashTable * -modulemd_modulestream_peek_module_components (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->module_components; -} - - -void -modulemd_modulestream_set_module_licenses (ModulemdModuleStream *self, - ModulemdSimpleSet *licenses) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - g_return_if_fail (!licenses || MODULEMD_IS_SIMPLESET (licenses)); - - modulemd_simpleset_copy (licenses, &self->module_licenses); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MODULE_LIC]); -} - - -ModulemdSimpleSet * -modulemd_modulestream_get_module_licenses (ModulemdModuleStream *self) -{ - ModulemdSimpleSet *licenses = NULL; - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - modulemd_simpleset_copy (self->module_licenses, &licenses); - - return licenses; -} - - -ModulemdSimpleSet * -modulemd_modulestream_peek_module_licenses (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->module_licenses; -} - - -void -modulemd_modulestream_set_name (ModulemdModuleStream *self, const gchar *name) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if (g_strcmp0 (self->name, name) != 0) - { - g_free (self->name); - self->name = g_strdup (name); - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_NAME]); - } -} - - -gchar * -modulemd_modulestream_get_name (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return g_strdup (self->name); -} - - -const gchar * -modulemd_modulestream_peek_name (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->name; -} - - -void -modulemd_modulestream_add_profile (ModulemdModuleStream *self, - ModulemdProfile *profile) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - g_return_if_fail (MODULEMD_IS_PROFILE (profile)); - - /* Associate translations with this profile */ - if (self->translation) - modulemd_profile_associate_translation (profile, self->translation); - - - g_hash_table_replace (self->profiles, - modulemd_profile_dup_name ((ModulemdProfile *)profile), - modulemd_profile_copy (profile)); -} - - -void -modulemd_modulestream_clear_profiles (ModulemdModuleStream *self) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - g_hash_table_remove_all (self->profiles); -} - - -void -modulemd_modulestream_set_profiles (ModulemdModuleStream *self, - GHashTable *profiles) -{ - GHashTableIter iter; - gpointer key, value; - - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if ((!profiles || g_hash_table_size (profiles) == 0) && - g_hash_table_size (self->profiles) == 0) - { - /* Nothing to do; don't send notification */ - return; - } - - /* For any other case, we'll assume a full replacement */ - modulemd_modulestream_clear_profiles (self); - - if (profiles) - { - g_hash_table_iter_init (&iter, profiles); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - modulemd_modulestream_add_profile (self, (MODULEMD_PROFILE (value))); - } - } -} - - -GHashTable * -modulemd_modulestream_get_profiles (ModulemdModuleStream *self) -{ - GHashTable *profiles = NULL; - GHashTableIter iter; - gpointer key, value; - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - profiles = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - g_hash_table_iter_init (&iter, self->profiles); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - g_hash_table_replace (profiles, - g_strdup ((gchar *)key), - modulemd_profile_copy (MODULEMD_PROFILE (value))); - } - - return profiles; -} - - -GHashTable * -modulemd_modulestream_peek_profiles (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->profiles; -} - - -void -modulemd_modulestream_set_requires (ModulemdModuleStream *self, - GHashTable *requires) -{ - GHashTableIter iter; - gpointer module_name, stream_name; - guint64 version; - - version = modulemd_modulestream_get_mdversion (self); - - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - g_return_if_fail (self->requires != requires); - - if (version > MD_VERSION_1) - { - g_debug ("Incompatible modulemd version"); - return; - } - - g_hash_table_remove_all (self->requires); - - if (requires) - { - g_hash_table_iter_init (&iter, requires); - while (g_hash_table_iter_next (&iter, &module_name, &stream_name)) - { - g_hash_table_replace (self->requires, - g_strdup ((const gchar *)module_name), - g_strdup ((const gchar *)stream_name)); - } - } -} - - -GHashTable * -modulemd_modulestream_get_requires (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return _modulemd_hash_table_deep_str_copy (self->requires); -} - - -GHashTable * -modulemd_modulestream_peek_requires (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->requires; -} - - -void -modulemd_modulestream_set_rpm_api (ModulemdModuleStream *self, - ModulemdSimpleSet *apis) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - g_return_if_fail (!apis || MODULEMD_IS_SIMPLESET (apis)); - - modulemd_simpleset_copy (apis, &self->rpm_api); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_RPM_API]); -} - - -ModulemdSimpleSet * -modulemd_modulestream_get_rpm_api (ModulemdModuleStream *self) -{ - ModulemdSimpleSet *api = NULL; - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - modulemd_simpleset_copy (self->rpm_api, &api); - return api; -} - - -ModulemdSimpleSet * -modulemd_modulestream_peek_rpm_api (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->rpm_api; -} - - -void -modulemd_modulestream_set_rpm_artifacts (ModulemdModuleStream *self, - ModulemdSimpleSet *artifacts) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - g_return_if_fail (!artifacts || MODULEMD_IS_SIMPLESET (artifacts)); - - modulemd_simpleset_copy (artifacts, &self->rpm_artifacts); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_RPM_ARTIFACTS]); -} - - -ModulemdSimpleSet * -modulemd_modulestream_get_rpm_artifacts (ModulemdModuleStream *self) -{ - ModulemdSimpleSet *artifacts = NULL; - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - modulemd_simpleset_copy (self->rpm_artifacts, &artifacts); - - return artifacts; -} - - -ModulemdSimpleSet * -modulemd_modulestream_peek_rpm_artifacts (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->rpm_artifacts; -} - - -void -modulemd_modulestream_add_rpm_component (ModulemdModuleStream *self, - ModulemdComponentRpm *component) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - g_return_if_fail (MODULEMD_IS_COMPONENT_RPM (component)); - - g_hash_table_replace ( - self->rpm_components, - modulemd_component_dup_name (MODULEMD_COMPONENT (component)), - MODULEMD_COMPONENT_RPM ( - modulemd_component_copy (MODULEMD_COMPONENT (component)))); -} - - -void -modulemd_modulestream_clear_rpm_components (ModulemdModuleStream *self) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - g_hash_table_remove_all (self->rpm_components); -} - - -void -modulemd_modulestream_set_rpm_components (ModulemdModuleStream *self, - GHashTable *components) -{ - GHashTableIter iter; - gpointer key, value; - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if ((!components || g_hash_table_size (components) == 0) && - g_hash_table_size (self->rpm_components) == 0) - { - /* Nothing to do; don't send notification */ - return; - } - - /* For any other case, we'll assume a full replacement */ - modulemd_modulestream_clear_rpm_components (self); - - if (components) - { - g_hash_table_iter_init (&iter, components); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - /* Throw an error if the name of the key and the name the component - * has internally are different. - */ - g_hash_table_replace ( - self->rpm_components, - modulemd_component_dup_name (MODULEMD_COMPONENT (value)), - - MODULEMD_COMPONENT_RPM ( - modulemd_component_copy (MODULEMD_COMPONENT (value)))); - } - } -} - - -GHashTable * -modulemd_modulestream_get_rpm_components (ModulemdModuleStream *self) -{ - GHashTable *components = NULL; - GHashTableIter iter; - gpointer key, value; - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - components = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - g_hash_table_iter_init (&iter, self->rpm_components); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - g_hash_table_replace ( - components, - g_strdup ((gchar *)key), - modulemd_component_copy (MODULEMD_COMPONENT (value))); - } - - return components; -} - - -GHashTable * -modulemd_modulestream_peek_rpm_components (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->rpm_components; -} - - -void -modulemd_modulestream_set_rpm_filter (ModulemdModuleStream *self, - ModulemdSimpleSet *filter) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - g_return_if_fail (!filter || MODULEMD_IS_SIMPLESET (filter)); - - modulemd_simpleset_copy (filter, &self->rpm_filter); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_RPM_FILTER]); -} - - -ModulemdSimpleSet * -modulemd_modulestream_get_rpm_filter (ModulemdModuleStream *self) -{ - ModulemdSimpleSet *filters = NULL; - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - modulemd_simpleset_copy (self->rpm_filter, &filters); - - return filters; -} - - -ModulemdSimpleSet * -modulemd_modulestream_peek_rpm_filter (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->rpm_filter; -} - - -void -modulemd_modulestream_clear_servicelevels (ModulemdModuleStream *self) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - g_hash_table_remove_all (self->servicelevels); -} - - -void -modulemd_modulestream_set_servicelevels (ModulemdModuleStream *self, - GHashTable *servicelevels) -{ - GHashTableIter iter; - gpointer key, value; - const gchar *name = NULL; - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if ((!servicelevels || g_hash_table_size (servicelevels) == 0) && - g_hash_table_size (self->servicelevels)) - { - /* Nothing to do; don't send notification */ - return; - } - - /* For any other case, we'll assume a full replacement */ - modulemd_modulestream_clear_servicelevels (self); - - if (servicelevels) - { - g_hash_table_iter_init (&iter, servicelevels); - - while (g_hash_table_iter_next (&iter, &key, &value)) - { - /* Always use the servicelevel object's name property for the key. - * This will protect against coding mistakes where the hash table and - * its entries have different views of the name. - */ - name = - modulemd_servicelevel_peek_name ((ModulemdServiceLevel *)value); - if (!name) - { - /* Uh oh; this servicelevel is missing its name. - * We will have to skip it - */ - g_warning ( - "Attempted to add a servicelevel with a NULL name. " - "The hashtable had key '%s'\n", - (const gchar *)key); - continue; - } - - g_hash_table_replace ( - self->servicelevels, - g_strdup (name), - modulemd_servicelevel_copy (MODULEMD_SERVICELEVEL (value))); - } - } -} - - -void -modulemd_modulestream_add_servicelevel (ModulemdModuleStream *self, - ModulemdServiceLevel *servicelevel) -{ - const gchar *name = NULL; - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if (!servicelevel) - { - return; - } - - name = modulemd_servicelevel_peek_name (servicelevel); - if (!name) - { - /* Uh oh; this servicelevel is missing its name. - * We will log a warning when those are enabled and then skip it. - */ - g_warning ("Attempted to add a servicelevel with a NULL name"); - return; - } - - g_hash_table_replace (self->servicelevels, - g_strdup (name), - modulemd_servicelevel_copy (servicelevel)); -} - - -GHashTable * -modulemd_modulestream_get_servicelevels (ModulemdModuleStream *self) -{ - GHashTable *servicelevels = NULL; - GHashTableIter iter; - gpointer key, value; - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - servicelevels = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - g_hash_table_iter_init (&iter, self->servicelevels); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - g_hash_table_replace ( - servicelevels, - g_strdup ((gchar *)key), - modulemd_servicelevel_copy (MODULEMD_SERVICELEVEL (value))); - } - - return servicelevels; -} - - -GHashTable * -modulemd_modulestream_peek_servicelevels (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->servicelevels; -} - - -void -modulemd_modulestream_set_stream (ModulemdModuleStream *self, - const gchar *stream) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if (g_strcmp0 (self->stream, stream) != 0) - { - g_free (self->stream); - self->stream = g_strdup (stream); - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_STREAM]); - } -} - - -gchar * -modulemd_modulestream_get_stream (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return g_strdup (self->stream); -} - - -const gchar * -modulemd_modulestream_peek_stream (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->stream; -} - - -void -modulemd_modulestream_set_summary (ModulemdModuleStream *self, - const gchar *summary) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if (g_strcmp0 (self->summary, summary) != 0) - { - g_free (self->summary); - self->summary = g_strdup (summary); - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_SUMMARY]); - } -} - - -gchar * -modulemd_modulestream_get_summary (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return g_strdup (self->summary); -} - - -const gchar * -modulemd_modulestream_peek_summary (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->summary; -} - - -gchar * -modulemd_modulestream_get_localized_summary (ModulemdModuleStream *self, - const gchar *locale) -{ - g_autoptr (ModulemdTranslationEntry) entry = NULL; - - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - entry = _get_locale_entry (self->translation, locale); - - /* Check whether a translation exists for this locale */ - if (entry) - { - return modulemd_translation_entry_get_summary (entry); - } - - /* No matching translation existed. Return the standard summary */ - return modulemd_modulestream_get_summary (self); -} - - -void -modulemd_modulestream_set_tracker (ModulemdModuleStream *self, - const gchar *tracker) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if (g_strcmp0 (self->tracker, tracker) != 0) - { - g_free (self->tracker); - self->tracker = g_strdup (tracker); - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_TRACKER]); - } -} - - -gchar * -modulemd_modulestream_get_tracker (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return g_strdup (self->tracker); -} - - -const gchar * -modulemd_modulestream_peek_tracker (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->tracker; -} - - -void -modulemd_modulestream_set_translation (ModulemdModuleStream *self, - ModulemdTranslation *translation) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - g_return_if_fail (!translation || MODULEMD_IS_TRANSLATION (translation)); - - const gchar *module_name = NULL; - const gchar *module_stream = NULL; - GHashTableIter iter; - gpointer key, value; - - if (!translation) - { - /* If we were passed NULL, just clear the value and return */ - g_clear_pointer (&self->translation, g_object_unref); - return; - } - - - module_name = modulemd_translation_peek_module_name (translation); - module_stream = modulemd_translation_peek_module_stream (translation); - - if (g_strcmp0 (self->name, module_name) || - g_strcmp0 (self->stream, module_stream)) - { - g_warning ( - "Attempting to assign translations of %s:%s to module stream " - "%s:%s", - module_name, - module_stream, - self->name, - self->stream); - return; - } - - /* Only set this to a new value if the modified value is higher */ - if (!self->translation || - modulemd_translation_get_modified (translation) > - modulemd_translation_get_modified (self->translation)) - { - g_clear_pointer (&self->translation, g_object_unref); - self->translation = modulemd_translation_copy (translation); - - /* Associate this translation with profiles */ - g_hash_table_iter_init (&iter, self->profiles); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - modulemd_profile_associate_translation (MODULEMD_PROFILE (value), - self->translation); - } - } -} - - -ModulemdTranslation * -modulemd_modulestream_get_translation (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return modulemd_translation_copy (self->translation); -} - - -void -modulemd_modulestream_set_version (ModulemdModuleStream *self, - const guint64 version) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - if (self->version != version) - { - self->version = version; - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_VERSION]); - } -} - - -guint64 -modulemd_modulestream_get_version (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), 0); - - return self->version; -} - - -void -modulemd_modulestream_set_xmd (ModulemdModuleStream *self, GHashTable *xmd) -{ - g_return_if_fail (MODULEMD_IS_MODULESTREAM (self)); - - if (xmd != self->xmd) - { - if (self->xmd) - { - g_hash_table_unref (self->xmd); - } - - if (xmd) - { - self->xmd = _modulemd_hash_table_deep_variant_copy (xmd); - } - else - { - self->xmd = NULL; - } - } -} - - -GHashTable * -modulemd_modulestream_get_xmd (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return _modulemd_hash_table_deep_variant_copy (self->xmd); -} - - -GHashTable * -modulemd_modulestream_peek_xmd (ModulemdModuleStream *self) -{ - g_return_val_if_fail (MODULEMD_IS_MODULESTREAM (self), NULL); - - return self->xmd; -} - - -gchar * -modulemd_modulestream_get_nsvc (ModulemdModuleStream *self) -{ - gchar *nsvc = NULL; - const gchar *name = modulemd_modulestream_peek_name (self); - const gchar *stream = modulemd_modulestream_peek_stream (self); - guint64 version = modulemd_modulestream_get_version (self); - const gchar *context = modulemd_modulestream_peek_context (self); - - if (!name || !stream) - { - /* Mandatory field is missing */ - return NULL; - } - - if (context) - { - nsvc = g_strdup_printf ( - "%s:%s:%" PRIu64 ":%s", name, stream, version, context); - } - else - { - nsvc = g_strdup_printf ("%s:%s:%" PRIu64, name, stream, version); - } - - return nsvc; -} - - -static void -modulemd_modulestream_set_property (GObject *gobject, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - ModulemdModuleStream *self = MODULEMD_MODULESTREAM (gobject); - - switch (property_id) - { - case PROP_ARCH: - modulemd_modulestream_set_arch (self, g_value_get_string (value)); - break; - - case PROP_BUILDOPTS: - modulemd_modulestream_set_buildopts (self, g_value_get_object (value)); - break; - - case PROP_COMMUNITY: - modulemd_modulestream_set_community (self, g_value_get_string (value)); - break; - - case PROP_CONTENT_LIC: - modulemd_modulestream_set_content_licenses (self, - g_value_get_object (value)); - break; - - case PROP_CONTEXT: - modulemd_modulestream_set_context (self, g_value_get_string (value)); - break; - - case PROP_DEPS: - modulemd_modulestream_set_dependencies (self, g_value_get_boxed (value)); - break; - - case PROP_DESC: - modulemd_modulestream_set_description (self, g_value_get_string (value)); - break; - - case PROP_DOCS: - modulemd_modulestream_set_documentation (self, - g_value_get_string (value)); - break; - - case PROP_EOL: - modulemd_modulestream_set_eol (self, g_value_get_boxed (value)); - break; - - case PROP_MDVERSION: - modulemd_modulestream_set_mdversion (self, g_value_get_uint64 (value)); - break; - - case PROP_MODULE_LIC: - modulemd_modulestream_set_module_licenses (self, - g_value_get_object (value)); - break; - - case PROP_NAME: - modulemd_modulestream_set_name (self, g_value_get_string (value)); - break; - - case PROP_RPM_API: - modulemd_modulestream_set_rpm_api (self, g_value_get_object (value)); - break; - - case PROP_RPM_ARTIFACTS: - modulemd_modulestream_set_rpm_artifacts (self, - g_value_get_object (value)); - break; - - case PROP_RPM_FILTER: - modulemd_modulestream_set_rpm_filter (self, g_value_get_object (value)); - break; - - case PROP_STREAM: - modulemd_modulestream_set_stream (self, g_value_get_string (value)); - break; - - case PROP_SUMMARY: - modulemd_modulestream_set_summary (self, g_value_get_string (value)); - break; - - case PROP_TRACKER: - modulemd_modulestream_set_tracker (self, g_value_get_string (value)); - break; - - case PROP_VERSION: - modulemd_modulestream_set_version (self, g_value_get_uint64 (value)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec); - break; - } -} - -static void -modulemd_modulestream_get_property (GObject *gobject, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdModuleStream *self = MODULEMD_MODULESTREAM (gobject); - - switch (property_id) - { - case PROP_ARCH: - g_value_take_string (value, modulemd_modulestream_get_arch (self)); - break; - - case PROP_BUILDOPTS: - g_value_take_object (value, modulemd_modulestream_get_buildopts (self)); - break; - - case PROP_COMMUNITY: - g_value_take_string (value, modulemd_modulestream_get_community (self)); - break; - - case PROP_CONTENT_LIC: - g_value_take_object (value, - modulemd_modulestream_get_content_licenses (self)); - break; - - case PROP_CONTEXT: - g_value_take_string (value, modulemd_modulestream_get_context (self)); - break; - - case PROP_DEPS: - g_value_take_boxed (value, - modulemd_modulestream_get_dependencies (self)); - break; - - case PROP_DESC: - g_value_take_string (value, - modulemd_modulestream_get_description (self)); - break; - - case PROP_DOCS: - g_value_take_string (value, - modulemd_modulestream_get_documentation (self)); - break; - - case PROP_EOL: - g_value_take_boxed (value, modulemd_modulestream_get_eol (self)); - break; - - case PROP_MDVERSION: - g_value_set_uint64 (value, modulemd_modulestream_get_mdversion (self)); - break; - - case PROP_MODULE_LIC: - g_value_take_object (value, - modulemd_modulestream_get_module_licenses (self)); - break; - - case PROP_NAME: - g_value_take_string (value, modulemd_modulestream_get_name (self)); - break; - - case PROP_RPM_API: - g_value_take_object (value, modulemd_modulestream_get_rpm_api (self)); - break; - - case PROP_RPM_ARTIFACTS: - g_value_take_object (value, - modulemd_modulestream_get_rpm_artifacts (self)); - break; - - case PROP_RPM_FILTER: - g_value_take_object (value, modulemd_modulestream_get_rpm_filter (self)); - break; - - case PROP_STREAM: - g_value_take_string (value, modulemd_modulestream_get_stream (self)); - break; - - case PROP_SUMMARY: - g_value_take_string (value, modulemd_modulestream_get_summary (self)); - break; - - case PROP_TRACKER: - g_value_take_string (value, modulemd_modulestream_get_tracker (self)); - break; - - case PROP_VERSION: - g_value_set_uint64 (value, modulemd_modulestream_get_version (self)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec); - break; - } -} - -static void -modulemd_modulestream_finalize (GObject *gobject) -{ - ModulemdModuleStream *self = (ModulemdModuleStream *)gobject; - - g_clear_pointer (&self->arch, g_free); - g_clear_pointer (&self->buildopts, g_object_unref); - g_clear_pointer (&self->buildrequires, g_hash_table_unref); - g_clear_pointer (&self->community, g_free); - g_clear_pointer (&self->content_licenses, g_object_unref); - g_clear_pointer (&self->context, g_free); - g_clear_pointer (&self->dependencies, g_ptr_array_unref); - g_clear_pointer (&self->description, g_free); - g_clear_pointer (&self->documentation, g_free); - g_clear_pointer (&self->eol, g_date_free); - g_clear_pointer (&self->module_components, g_hash_table_unref); - g_clear_pointer (&self->module_licenses, g_object_unref); - g_clear_pointer (&self->name, g_free); - g_clear_pointer (&self->profiles, g_hash_table_unref); - g_clear_pointer (&self->requires, g_hash_table_unref); - g_clear_pointer (&self->rpm_api, g_object_unref); - g_clear_pointer (&self->rpm_artifacts, g_object_unref); - g_clear_pointer (&self->rpm_components, g_hash_table_unref); - g_clear_pointer (&self->rpm_filter, g_object_unref); - g_clear_pointer (&self->servicelevels, g_hash_table_unref); - g_clear_pointer (&self->stream, g_free); - g_clear_pointer (&self->summary, g_free); - g_clear_pointer (&self->tracker, g_free); - g_clear_pointer (&self->translation, g_object_unref); - g_clear_pointer (&self->xmd, g_hash_table_unref); - - G_OBJECT_CLASS (modulemd_modulestream_parent_class)->finalize (gobject); -} - -static void -modulemd_modulestream_class_init (ModulemdModuleStreamClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->set_property = modulemd_modulestream_set_property; - object_class->get_property = modulemd_modulestream_get_property; - - object_class->finalize = modulemd_modulestream_finalize; - - properties[PROP_ARCH] = - g_param_spec_string ("arch", - "Module Artifact Architecture", - "Contains a string describing the module's " - "artifacts' main hardware architecture " - "compatibility, distinguishing the module artifact, " - "e.g. a repository, from others with the same name, " - "stream, version and context. This is not a generic " - "hardware family (i.e. basearch). Examples: i386, " - "i486, armv7hl, x86_64. Filled in by the buildsystem " - "during the compose stage.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_BUILDOPTS] = - g_param_spec_object ("buildopts", - "Build options for the module", - "Assorted instructions for the build system on how " - "to build this module.", - MODULEMD_TYPE_BUILDOPTS, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_COMMUNITY] = - g_param_spec_string ("community", - "Module Community", - "A string property representing a link to the " - "upstream community for this module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_CONTENT_LIC] = - g_param_spec_object ("content-licenses", - "Module Content Licenses", - "The set of licenses under which the contents " - "of this module are released.", - MODULEMD_TYPE_SIMPLESET, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_CONTEXT] = - g_param_spec_string ("context", - "Module Context", - "The context flag serves to distinguish module " - "builds with the same name, stream and version and " - "plays an important role in future automatic module " - "stream name expansion. Filled in by the " - "buildsystem. A short hash of the module's name, " - "stream, version and its expanded runtime " - "dependencies.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdModuleStream:dependencies: (type GLib.PtrArray(ModulemdDependencies)) - */ - properties[PROP_DEPS] = - g_param_spec_boxed ("dependencies", - "Module Dependencies", - "A list of build and runtime requirements needed by " - "this module.", - G_TYPE_PTR_ARRAY, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_DESC] = - g_param_spec_string ("description", - "Module Description", - "A string property representing a detailed " - "description of the module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_DOCS] = - g_param_spec_string ("documentation", - "Module Documentation", - "A string property representing a link to the " - "upstream documentation for this module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - /** - * ModulemdModuleStream:eol: (type GLib.Date) - */ - properties[PROP_EOL] = - g_param_spec_boxed ("eol", - "End of Life", - "An ISO-8601 compatible YYYY-MM-DD value representing " - "the end-of-life date of this module. This field is " - "obsolete; use 'servicelevels' instead.", - G_TYPE_DATE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_MDVERSION] = - g_param_spec_uint64 ("mdversion", - "Module Metadata Version", - "An int property representing the metadata " - "format version used.", - 0, - G_MAXUINT64, - 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_MODULE_LIC] = - g_param_spec_object ("module-licenses", - "Module Licenses", - "The set of licenses under which this module is " - "released.", - MODULEMD_TYPE_SIMPLESET, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_NAME] = - g_param_spec_string ("name", - "Module Name", - "A string property representing the name of " - "the module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_RPM_API] = - g_param_spec_object ("rpm-api", - "Module API - RPMs", - "The RPMs that make up the public API of this " - "module.", - MODULEMD_TYPE_SIMPLESET, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_RPM_ARTIFACTS] = - g_param_spec_object ("rpm-artifacts", - "Module artifacts - RPMs", - "The RPMs that make up the output artifacts for " - "this module.", - MODULEMD_TYPE_SIMPLESET, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_RPM_FILTER] = - g_param_spec_object ("rpm-filter", - "Module filter - RPMs", - "The RPMs that are explicitly filtered out of " - "this module.", - MODULEMD_TYPE_SIMPLESET, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_STREAM] = - g_param_spec_string ("stream", - "Module Stream", - "A string property representing the stream name " - "of the module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_SUMMARY] = - g_param_spec_string ("summary", - "Module Short Description", - "A string property representing a short summary " - "of the module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_TRACKER] = - g_param_spec_string ("tracker", - "Module Bug Tracker", - "A string property representing a link to the " - "upstream bug tracker for this module.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_VERSION] = - g_param_spec_uint64 ("version", - "Module Version", - "An integer property representing the version of " - "the module.", - 0, - G_MAXUINT64, - 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties ( - object_class, MD_N_PROPERTIES, properties); -} - -static void -modulemd_modulestream_init (ModulemdModuleStream *self) -{ - /* Allocate the members */ - self->buildopts = modulemd_buildopts_new (); - - self->buildrequires = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); - - self->module_components = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - self->rpm_components = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - - self->dependencies = g_ptr_array_new_with_free_func (g_object_unref); - - self->eol = g_date_new (); - - self->content_licenses = modulemd_simpleset_new (); - self->module_licenses = modulemd_simpleset_new (); - - self->profiles = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - - self->requires = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); - - self->rpm_api = modulemd_simpleset_new (); - self->rpm_artifacts = modulemd_simpleset_new (); - self->rpm_filter = modulemd_simpleset_new (); - - self->servicelevels = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - - self->xmd = g_hash_table_new_full ( - g_str_hash, g_str_equal, g_free, modulemd_variant_unref); -} diff --git a/modulemd-1.8.16/modulemd/modulemd-prioritizer.c b/modulemd-1.8.16/modulemd/modulemd-prioritizer.c deleted file mode 100644 index 7763910..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-prioritizer.c +++ /dev/null @@ -1,485 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include -#include "modulemd.h" -#include "modulemd-prioritizer.h" -#include "private/modulemd-util.h" - - -GQuark -modulemd_prioritizer_error_quark (void) -{ - return g_quark_from_static_string ("modulemd-prioritizer-error-quark"); -} - -struct _ModulemdPrioritizer -{ - GObject parent_instance; - - GHashTable *priorities; -}; - -G_DEFINE_TYPE (ModulemdPrioritizer, modulemd_prioritizer, G_TYPE_OBJECT) - -ModulemdPrioritizer * -modulemd_prioritizer_new (void) -{ - return g_object_new (MODULEMD_TYPE_PRIORITIZER, NULL); -} - -static void -modulemd_prioritizer_finalize (GObject *object) -{ - ModulemdPrioritizer *self = (ModulemdPrioritizer *)object; - - g_clear_pointer (&self->priorities, g_hash_table_unref); - - G_OBJECT_CLASS (modulemd_prioritizer_parent_class)->finalize (object); -} - -static void -modulemd_prioritizer_class_init (ModulemdPrioritizerClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->finalize = modulemd_prioritizer_finalize; - - /* This class has no public properties */ - object_class->get_property = NULL; - object_class->set_property = NULL; -} - -static GPtrArray * -_deduplicate_module_streams (const GPtrArray *first, - const GPtrArray *second, - GError **error); -static GPtrArray * -_latest_module_streams (const GPtrArray *streams, GError **error); - -static void -_modulemd_ptr_array_unref (gpointer ptr) -{ - g_ptr_array_unref ((GPtrArray *)ptr); -} - -static void -modulemd_prioritizer_init (ModulemdPrioritizer *self) -{ - self->priorities = g_hash_table_new_full ( - g_int64_hash, g_int64_equal, g_free, _modulemd_ptr_array_unref); -} - - -gboolean -modulemd_prioritizer_add (ModulemdPrioritizer *self, - GPtrArray *objects, - gint64 priority, - GError **error) -{ - GPtrArray *current_objects = NULL; - g_autoptr (GPtrArray) concat_objects = NULL; - g_autoptr (GPtrArray) deduped_objects = NULL; - g_autoptr (GPtrArray) merged_objects = NULL; - g_autoptr (ModulemdSimpleSet) nsvcs = modulemd_simpleset_new (); - g_autofree gchar *nsvc = NULL; - gint64 *prio = NULL; - gsize i; - - g_return_val_if_fail (MODULEMD_IS_PRIORITIZER (self), FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - if (priority < MODULEMD_PRIORITIZER_PRIORITY_MIN) - { - g_set_error (error, - MODULEMD_PRIORITIZER_ERROR, - MODULEMD_PRIORITIZER_PRIORITY_OUT_OF_RANGE, - "Priority %" PRIi64 " below the minimum value %d", - priority, - MODULEMD_PRIORITIZER_PRIORITY_MIN); - return FALSE; - } - else if (priority > MODULEMD_PRIORITIZER_PRIORITY_MAX) - { - g_set_error (error, - MODULEMD_PRIORITIZER_ERROR, - MODULEMD_PRIORITIZER_PRIORITY_OUT_OF_RANGE, - "Priority %" PRIi64 " above the maximum value %d", - priority, - MODULEMD_PRIORITIZER_PRIORITY_MAX); - return FALSE; - } - - prio = g_new0 (gint64, 1); - *prio = priority; - - current_objects = g_hash_table_lookup (self->priorities, prio); - - /* All values at the same priority level can be concatenated together - * because the merge routine will handle it cleanly that way and with - * less memory-usage. Any duplication will be cleaned up as part of the - * merge logic. For performance reasons, we'll assume the common case that - * there is no deduplication to happen and allocate enough memory for all - * of the possible elements of the array up front. - */ - if (current_objects) - { - concat_objects = g_ptr_array_new_full ( - current_objects->len + objects->len, g_object_unref); - } - else - { - concat_objects = g_ptr_array_new_full (objects->len, g_object_unref); - } - - if (current_objects) - { - for (i = 0; i < current_objects->len; i++) - { - g_ptr_array_add ( - concat_objects, - g_object_ref (g_ptr_array_index (current_objects, i))); - } - } - - deduped_objects = - _deduplicate_module_streams (concat_objects, objects, error); - if (!deduped_objects) - { - /* Something went wrong. Return the error here. */ - g_clear_pointer (&prio, g_free); - return FALSE; - } - - merged_objects = - modulemd_merge_defaults (deduped_objects, NULL, FALSE, error); - if (!merged_objects) - { - /* Something went wrong. Return the error here. */ - g_clear_pointer (&prio, g_free); - return FALSE; - } - - /* Replace or insert the new objects at this priority level */ - g_hash_table_replace ( - self->priorities, prio, g_ptr_array_ref (merged_objects)); - - return TRUE; -} - -gboolean -modulemd_prioritizer_add_index (ModulemdPrioritizer *self, - GHashTable *index, - gint64 priority, - GError **error) -{ - g_autoptr (GPtrArray) objects = NULL; - - g_return_val_if_fail (MODULEMD_IS_PRIORITIZER (self), FALSE); - g_return_val_if_fail (index, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - objects = _modulemd_index_serialize (index, error); - if (!objects) - return FALSE; - - return modulemd_prioritizer_add (self, objects, priority, error); -} - - -GPtrArray * -modulemd_prioritizer_resolve (ModulemdPrioritizer *self, GError **error) -{ - g_autoptr (GPtrArray) current = NULL; - g_autoptr (GPtrArray) prev = NULL; - g_autoptr (GPtrArray) tmp = NULL; - g_autoptr (GPtrArray) deduped_objects = NULL; - g_autoptr (GPtrArray) latest_objects = NULL; - g_autoptr (GList) priority_levels = NULL; - GList *current_level = NULL; - - g_return_val_if_fail (MODULEMD_IS_PRIORITIZER (self), FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - priority_levels = _modulemd_ordered_int64_keys (self->priorities); - - if (!priority_levels) - { - /* Nothing has been added to the resolver. */ - g_set_error (error, - MODULEMD_PRIORITIZER_ERROR, - MODULEMD_PRIORITIZER_NOTHING_TO_PRIORITIZE, - "No module objects have been added to the prioritizer. Use " - "modulemd_prioritizer_add() first."); - return NULL; - } - - /* Go through the merge from highest priority down to lowest. */ - current_level = g_list_last (priority_levels); - - current = g_ptr_array_ref ( - g_hash_table_lookup (self->priorities, current_level->data)); - - while (current_level->prev) - { - prev = g_ptr_array_ref ( - g_hash_table_lookup (self->priorities, current_level->prev->data)); - - /* Merge the values, replacing any conflicts */ - tmp = modulemd_merge_defaults (prev, current, TRUE, error); - if (!tmp) - { - /* Something went wrong with the merge. Return the error */ - return NULL; - } - - /* Deduplicate after the merge */ - deduped_objects = _deduplicate_module_streams (tmp, NULL, error); - if (!deduped_objects) - { - /* Something went wrong. Return the error here. */ - return NULL; - } - - g_clear_pointer (¤t, g_ptr_array_unref); - current = g_ptr_array_ref (deduped_objects); - g_clear_pointer (&tmp, g_ptr_array_unref); - g_clear_pointer (&deduped_objects, g_ptr_array_unref); - g_clear_pointer (&prev, g_ptr_array_unref); - - current_level = current_level->prev; - } - - /* Ensure that we have only the highest Version for each - * (module_name, module_stream, context) object in the list - */ - latest_objects = _latest_module_streams (current, error); - - /* TODO: Sort items */ - - return g_ptr_array_ref (latest_objects); -} - -static GPtrArray * -_deduplicate_module_streams (const GPtrArray *first, - const GPtrArray *second, - GError **error) -{ - GObject *object = NULL; - g_autoptr (GPtrArray) deduplicated = NULL; - g_autoptr (ModulemdSimpleSet) nsvcs = modulemd_simpleset_new (); - g_autofree gchar *nsvc = NULL; - gssize reserved_size, i; - - g_return_val_if_fail (first, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - /* Assume the common case that there are no duplicates and preallocate - * space to hold the entire set. - */ - reserved_size = first->len; - if (second) - { - reserved_size += second->len; - } - - deduplicated = g_ptr_array_new_full (reserved_size, g_object_unref); - - /* We check the second list here as a preventative measure. In a proper - * implementation of this, we'd do a full check of the module stream entries - * to ensure that they don't have the same NSVC but different content. For - * now, however, we'll just assume that the second list has the right data - * since it's likely to be newer. - */ - if (second) - for (i = 0; i < second->len; i++) - { - object = g_ptr_array_index (second, i); - - if (MODULEMD_IS_MODULE (object)) - { - nsvc = modulemd_module_dup_nsvc (MODULEMD_MODULE (object)); - } - else if (MODULEMD_IS_MODULESTREAM (object)) - { - nsvc = - modulemd_modulestream_get_nsvc (MODULEMD_MODULESTREAM (object)); - } - if (nsvc) - { - if (modulemd_simpleset_contains (nsvcs, nsvc)) - { - /* We've seen this NSVC before; skip it */ - continue; - } - - /* Save this NSVC so we don't add it twice */ - modulemd_simpleset_add (nsvcs, nsvc); - g_clear_pointer (&nsvc, g_free); - } - - g_ptr_array_add (deduplicated, g_object_ref (object)); - } - - /* For the 'first' list, go through in reverse order, because this may be - * called after the modulemd_merge_defaults() routine has already - * concatenated the higher-priority list. This will ensure that the - * other list wins any merge disputes. - */ - for (i = (gsize)first->len - 1; i >= 0; i--) - { - object = g_ptr_array_index (first, i); - - if (MODULEMD_IS_MODULE (object)) - { - nsvc = modulemd_module_dup_nsvc (MODULEMD_MODULE (object)); - } - else if (MODULEMD_IS_MODULESTREAM (object)) - { - nsvc = - modulemd_modulestream_get_nsvc (MODULEMD_MODULESTREAM (object)); - } - - if (nsvc) - { - if (modulemd_simpleset_contains (nsvcs, nsvc)) - { - /* We've seen this NSVC before; skip it */ - continue; - } - - /* Save this NSVC so we don't add it twice */ - modulemd_simpleset_add (nsvcs, nsvc); - g_clear_pointer (&nsvc, g_free); - } - - g_ptr_array_add (deduplicated, g_object_ref (object)); - } - - return g_ptr_array_ref (deduplicated); -} - - -static GPtrArray * -_latest_module_streams (const GPtrArray *streams, GError **error) -{ - GObject *item = NULL; - GObject *prev_item = NULL; - g_autoptr (GPtrArray) prio_streams = NULL; - g_autoptr (GHashTable) nsc_index = NULL; - g_autofree gchar *nsc = NULL; - guint64 version, prev_version; - gsize i, idx; - GHashTableIter iter; - gpointer key; - - g_return_val_if_fail (streams, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - prio_streams = g_ptr_array_new_full (streams->len, g_object_unref); - - nsc_index = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); - for (i = 0; i < streams->len; i++) - { - item = g_ptr_array_index (streams, i); - g_return_val_if_fail (item && G_IS_OBJECT (item), NULL); - - if (!MODULEMD_IS_MODULE (item) && !MODULEMD_IS_MODULESTREAM (item)) - { - /* No special handling for other object types */ - g_ptr_array_add (prio_streams, g_object_ref (item)); - continue; - } - - if (MODULEMD_IS_MODULE (item)) - { - nsc = g_strdup_printf ( - "%s:%s:%s", - modulemd_module_peek_name (MODULEMD_MODULE (item)), - modulemd_module_peek_stream (MODULEMD_MODULE (item)), - modulemd_module_peek_context (MODULEMD_MODULE (item))); - version = modulemd_module_get_version (MODULEMD_MODULE (item)); - } - - else if (MODULEMD_IS_MODULESTREAM (item)) - { - nsc = g_strdup_printf ( - "%s:%s:%s", - modulemd_modulestream_peek_name (MODULEMD_MODULESTREAM (item)), - modulemd_modulestream_peek_stream (MODULEMD_MODULESTREAM (item)), - modulemd_modulestream_peek_context (MODULEMD_MODULESTREAM (item))); - version = - modulemd_modulestream_get_version (MODULEMD_MODULESTREAM (item)); - } - - if (g_hash_table_lookup_extended (nsc_index, nsc, NULL, (void *)&idx)) - { - prev_item = g_ptr_array_index (streams, idx); - - if (MODULEMD_IS_MODULE (item)) - { - prev_version = - modulemd_module_get_version (MODULEMD_MODULE (prev_item)); - } - else if (MODULEMD_IS_MODULESTREAM (item)) - { - prev_version = modulemd_modulestream_get_version ( - MODULEMD_MODULESTREAM (prev_item)); - } - else - { - /* This should never happen */ - g_return_val_if_reached (NULL); - } - - if (version > prev_version) - { - /* Update the hash table with the index of the newer version */ - g_hash_table_replace (nsc_index, g_strdup (nsc), (void *)i); - } - } - else - { - /* This is the first time we've seen this name, stream and context */ - g_hash_table_replace (nsc_index, g_strdup (nsc), (void *)i); - } - - g_clear_pointer (&nsc, g_free); - } - - - g_hash_table_iter_init (&iter, nsc_index); - while (g_hash_table_iter_next (&iter, &key, (void *)&idx)) - { - g_ptr_array_add (prio_streams, - g_object_ref (g_ptr_array_index (streams, idx))); - } - - return g_ptr_array_ref (prio_streams); -} - - -GHashTable * -modulemd_prioritizer_resolve_index (ModulemdPrioritizer *self, GError **error) -{ - g_autoptr (GPtrArray) objects = NULL; - - g_return_val_if_fail (MODULEMD_IS_PRIORITIZER (self), FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - objects = modulemd_prioritizer_resolve (self, error); - if (!objects) - return NULL; - - return module_index_from_data (objects, error); -} diff --git a/modulemd-1.8.16/modulemd/modulemd-profile.c b/modulemd-1.8.16/modulemd/modulemd-profile.c deleted file mode 100644 index 85eba41..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-profile.c +++ /dev/null @@ -1,379 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include "modulemd-profile.h" -#include "private/modulemd-profile-private.h" -#include "private/modulemd-util.h" -#include - - -enum -{ - PROFILE_PROP_0, - - PROFILE_PROP_NAME, - PROFILE_PROP_DESC, - PROFILE_PROP_RPMS, - - PROFILE_N_PROPERTIES -}; - -static GParamSpec *profile_properties[PROFILE_N_PROPERTIES] = { - NULL, -}; - -struct _ModulemdProfile -{ - GObject parent_instance; - - gchar *description; - gchar *name; - - ModulemdSimpleSet *rpms; - - ModulemdTranslation *translation; -}; - -G_DEFINE_TYPE (ModulemdProfile, modulemd_profile, G_TYPE_OBJECT) - - -void -modulemd_profile_set_description (ModulemdProfile *self, - const gchar *description) -{ - g_return_if_fail (MODULEMD_IS_PROFILE (self)); - - if (g_strcmp0 (self->description, description) != 0) - { - g_free (self->description); - self->description = g_strdup (description); - g_object_notify_by_pspec (G_OBJECT (self), - profile_properties[PROFILE_PROP_DESC]); - } -} - - -const gchar * -modulemd_profile_get_description (ModulemdProfile *self) -{ - return modulemd_profile_peek_description (self); -} - - -gchar * -modulemd_profile_get_localized_description (ModulemdProfile *self, - const gchar *locale) -{ - g_autoptr (ModulemdTranslationEntry) entry = NULL; - - g_return_val_if_fail (MODULEMD_IS_PROFILE (self), NULL); - - entry = _get_locale_entry (self->translation, locale); - - /* Check whether a translation exists for this locale */ - if (entry) - { - return modulemd_translation_entry_get_profile_description ( - entry, modulemd_profile_peek_name (self)); - } - - /* No matching translation existed. Return the standard description */ - return modulemd_profile_dup_description (self); -} - - -const gchar * -modulemd_profile_peek_description (ModulemdProfile *self) -{ - g_return_val_if_fail (MODULEMD_IS_PROFILE (self), NULL); - - return self->description; -} - - -gchar * -modulemd_profile_dup_description (ModulemdProfile *self) -{ - g_return_val_if_fail (MODULEMD_IS_PROFILE (self), NULL); - - return g_strdup (self->description); -} - - -void -modulemd_profile_set_name (ModulemdProfile *self, const gchar *name) -{ - g_return_if_fail (MODULEMD_IS_PROFILE (self)); - - if (g_strcmp0 (self->name, name) != 0) - { - g_free (self->name); - self->name = g_strdup (name); - g_object_notify_by_pspec (G_OBJECT (self), - profile_properties[PROFILE_PROP_NAME]); - } -} - - -const gchar * -modulemd_profile_get_name (ModulemdProfile *self) -{ - return modulemd_profile_peek_name (self); -} - - -const gchar * -modulemd_profile_peek_name (ModulemdProfile *self) -{ - g_return_val_if_fail (MODULEMD_IS_PROFILE (self), NULL); - - return self->name; -} - - -gchar * -modulemd_profile_dup_name (ModulemdProfile *self) -{ - g_return_val_if_fail (MODULEMD_IS_PROFILE (self), NULL); - - return g_strdup (self->name); -} - - -void -modulemd_profile_set_rpms (ModulemdProfile *self, ModulemdSimpleSet *rpms) -{ - g_return_if_fail (MODULEMD_IS_PROFILE (self)); - g_return_if_fail (!rpms || MODULEMD_IS_SIMPLESET (rpms)); - - modulemd_simpleset_copy (rpms, &self->rpms); - - g_object_notify_by_pspec (G_OBJECT (self), - profile_properties[PROFILE_PROP_RPMS]); -} - - -ModulemdSimpleSet * -modulemd_profile_get_rpms (ModulemdProfile *self) -{ - return modulemd_profile_peek_rpms (self); -} - - -ModulemdSimpleSet * -modulemd_profile_peek_rpms (ModulemdProfile *self) -{ - g_return_val_if_fail (MODULEMD_IS_PROFILE (self), NULL); - - return self->rpms; -} - - -ModulemdSimpleSet * -modulemd_profile_dup_rpms (ModulemdProfile *self) -{ - ModulemdSimpleSet *rpms = NULL; - g_return_val_if_fail (MODULEMD_IS_PROFILE (self), NULL); - - modulemd_simpleset_copy (self->rpms, &rpms); - - return rpms; -} - - -void -modulemd_profile_add_rpm (ModulemdProfile *self, const gchar *rpm) -{ - g_return_if_fail (MODULEMD_IS_PROFILE (self)); - - modulemd_simpleset_add (self->rpms, rpm); - - g_object_notify_by_pspec (G_OBJECT (self), - profile_properties[PROFILE_PROP_RPMS]); -} - -void -modulemd_profile_remove_rpm (ModulemdProfile *self, const gchar *rpm) -{ - g_return_if_fail (MODULEMD_IS_PROFILE (self)); - - modulemd_simpleset_remove (self->rpms, rpm); - - g_object_notify_by_pspec (G_OBJECT (self), - profile_properties[PROFILE_PROP_RPMS]); -} - - -void -modulemd_profile_associate_translation (ModulemdProfile *self, - ModulemdTranslation *translation) -{ - if (translation != self->translation) - { - /* Don't associate an older translation. Shouldn't ever reach this, but - * let's be safe. - */ - if (self->translation && - modulemd_translation_get_modified (self->translation) >= - modulemd_translation_get_modified (translation)) - return; - - /* Add a reference to the translation. We don't want a full copy here */ - g_clear_pointer (&self->translation, g_object_unref); - self->translation = g_object_ref (translation); - } -} - - -ModulemdProfile * -modulemd_profile_copy (ModulemdProfile *self) -{ - ModulemdProfile *new_profile = NULL; - - if (!self) - return NULL; - - g_return_val_if_fail (MODULEMD_IS_PROFILE (self), NULL); - - new_profile = modulemd_profile_new (); - - modulemd_profile_set_description (new_profile, - modulemd_profile_peek_description (self)); - modulemd_profile_set_name (new_profile, modulemd_profile_peek_name (self)); - modulemd_profile_set_rpms (new_profile, modulemd_profile_peek_rpms (self)); - - if (self->translation) - modulemd_profile_associate_translation (new_profile, self->translation); - - return new_profile; -} - - -static void -modulemd_profile_set_property (GObject *gobject, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - ModulemdProfile *self = MODULEMD_PROFILE (gobject); - - switch (property_id) - { - case PROFILE_PROP_DESC: - modulemd_profile_set_description (self, g_value_get_string (value)); - break; - - case PROFILE_PROP_NAME: - modulemd_profile_set_name (self, g_value_get_string (value)); - break; - - case PROFILE_PROP_RPMS: - modulemd_profile_set_rpms (self, g_value_get_object (value)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec); - break; - } -} - -static void -modulemd_profile_get_property (GObject *gobject, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdProfile *self = MODULEMD_PROFILE (gobject); - - switch (property_id) - { - case PROFILE_PROP_DESC: - g_value_set_string (value, modulemd_profile_peek_description (self)); - break; - - case PROFILE_PROP_NAME: - g_value_set_string (value, modulemd_profile_peek_name (self)); - break; - - case PROFILE_PROP_RPMS: - g_value_set_object (value, modulemd_profile_peek_rpms (self)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec); - break; - } -} - -static void -modulemd_profile_finalize (GObject *gobject) -{ - ModulemdProfile *self = (ModulemdProfile *)gobject; - - g_clear_pointer (&self->description, g_free); - g_clear_pointer (&self->name, g_free); - g_clear_pointer (&self->rpms, g_object_unref); - g_clear_pointer (&self->translation, g_object_unref); - - G_OBJECT_CLASS (modulemd_profile_parent_class)->finalize (gobject); -} - -static void -modulemd_profile_class_init (ModulemdProfileClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->set_property = modulemd_profile_set_property; - object_class->get_property = modulemd_profile_get_property; - object_class->finalize = modulemd_profile_finalize; - - profile_properties[PROFILE_PROP_DESC] = - g_param_spec_string ("description", - "Profile description", - "A string property representing a detailed " - "description of the profile.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - profile_properties[PROFILE_PROP_NAME] = - g_param_spec_string ("name", - "Profile name", - "A string property representing a short name of the " - "profile.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - profile_properties[PROFILE_PROP_RPMS] = - g_param_spec_object ("rpms", - "Set of RPMs", - "A set of RPMs that will be installed when this " - "profile is activated.", - MODULEMD_TYPE_SIMPLESET, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties ( - object_class, PROFILE_N_PROPERTIES, profile_properties); -} - -static void -modulemd_profile_init (ModulemdProfile *self) -{ - self->rpms = modulemd_simpleset_new (); -} - -ModulemdProfile * -modulemd_profile_new (void) -{ - return g_object_new (MODULEMD_TYPE_PROFILE, NULL); -} diff --git a/modulemd-1.8.16/modulemd/modulemd-servicelevel.c b/modulemd-1.8.16/modulemd/modulemd-servicelevel.c deleted file mode 100644 index f15507a..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-servicelevel.c +++ /dev/null @@ -1,278 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include - - -enum -{ - SL_PROP_0, - - SL_PROP_EOL, - SL_PROP_NAME, - - SL_N_PROPERTIES -}; - -static GParamSpec *servicelevel_properties[SL_N_PROPERTIES] = { - NULL, -}; - -struct _ModulemdServiceLevel -{ - GObject parent_instance; - - GDate *eol; - gchar *name; -}; - -G_DEFINE_TYPE (ModulemdServiceLevel, modulemd_servicelevel, G_TYPE_OBJECT) - - -void -modulemd_servicelevel_set_eol (ModulemdServiceLevel *self, const GDate *date) -{ - g_return_if_fail (MODULEMD_IS_SERVICELEVEL (self)); - g_return_if_fail (!date || g_date_valid (date)); - - if (!date || !g_date_valid (date)) - { - g_date_clear (self->eol, 1); - g_object_notify_by_pspec (G_OBJECT (self), - servicelevel_properties[SL_PROP_EOL]); - return; - } - - if (!g_date_valid (self->eol) || g_date_compare (date, self->eol) != 0) - { - /* Date is changing. Update it */ - g_date_set_year (self->eol, g_date_get_year (date)); - g_date_set_month (self->eol, g_date_get_month (date)); - g_date_set_day (self->eol, g_date_get_day (date)); - } - - g_object_notify_by_pspec (G_OBJECT (self), - servicelevel_properties[SL_PROP_EOL]); -} - - -const GDate * -modulemd_servicelevel_get_eol (ModulemdServiceLevel *self) -{ - return modulemd_servicelevel_peek_eol (self); -} - - -const GDate * -modulemd_servicelevel_peek_eol (ModulemdServiceLevel *self) -{ - g_return_val_if_fail (MODULEMD_IS_SERVICELEVEL (self), NULL); - - if (!g_date_valid (self->eol)) - { - return NULL; - } - - return self->eol; -} - - -GDate * -modulemd_servicelevel_dup_eol (ModulemdServiceLevel *self) -{ - g_return_val_if_fail (MODULEMD_IS_SERVICELEVEL (self), NULL); - - if (!g_date_valid (self->eol)) - { - return NULL; - } - - return g_date_new_dmy (g_date_get_day (self->eol), - g_date_get_month (self->eol), - g_date_get_year (self->eol)); -} - - -void -modulemd_servicelevel_set_name (ModulemdServiceLevel *self, const gchar *name) -{ - g_return_if_fail (MODULEMD_IS_SERVICELEVEL (self)); - - g_clear_pointer (&self->name, g_free); - if (name) - { - self->name = g_strdup (name); - } - - g_object_notify_by_pspec (G_OBJECT (self), - servicelevel_properties[SL_PROP_NAME]); -} - - -const gchar * -modulemd_servicelevel_get_name (ModulemdServiceLevel *self) -{ - return modulemd_servicelevel_peek_name (self); -} - - -const gchar * -modulemd_servicelevel_peek_name (ModulemdServiceLevel *self) -{ - g_return_val_if_fail (MODULEMD_IS_SERVICELEVEL (self), NULL); - - if (!self->name) - { - g_warning ("Servicelevel name requested, but has not been set"); - } - - return self->name; -} - - -gchar * -modulemd_servicelevel_dup_name (ModulemdServiceLevel *self) -{ - g_return_val_if_fail (MODULEMD_IS_SERVICELEVEL (self), NULL); - - if (!self->name) - { - g_warning ("Servicelevel name requested, but has not been set"); - return NULL; - } - - return g_strdup (self->name); -} - - -ModulemdServiceLevel * -modulemd_servicelevel_copy (ModulemdServiceLevel *self) -{ - ModulemdServiceLevel *new_sl = NULL; - - if (!self) - return NULL; - - g_return_val_if_fail (MODULEMD_IS_SERVICELEVEL (self), NULL); - - new_sl = modulemd_servicelevel_new (); - - modulemd_servicelevel_set_eol (new_sl, - modulemd_servicelevel_peek_eol (self)); - modulemd_servicelevel_set_name (new_sl, - modulemd_servicelevel_peek_name (self)); - - return new_sl; -} - - -static void -modulemd_servicelevel_set_property (GObject *gobject, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - ModulemdServiceLevel *self = MODULEMD_SERVICELEVEL (gobject); - - switch (property_id) - { - case SL_PROP_EOL: - modulemd_servicelevel_set_eol (self, g_value_get_boxed (value)); - break; - - case SL_PROP_NAME: - modulemd_servicelevel_set_name (self, g_value_get_string (value)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec); - break; - } -} - -static void -modulemd_servicelevel_get_property (GObject *gobject, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdServiceLevel *self = MODULEMD_SERVICELEVEL (gobject); - - switch (property_id) - { - case SL_PROP_EOL: - g_value_set_boxed (value, modulemd_servicelevel_peek_eol (self)); - break; - - case SL_PROP_NAME: - g_value_set_string (value, modulemd_servicelevel_peek_name (self)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec); - break; - } -} - -static void -modulemd_servicelevel_finalize (GObject *gobject) -{ - ModulemdServiceLevel *self = (ModulemdServiceLevel *)gobject; - - g_clear_pointer (&self->eol, g_date_free); - g_clear_pointer (&self->name, g_free); - - G_OBJECT_CLASS (modulemd_servicelevel_parent_class)->finalize (gobject); -} - -static void -modulemd_servicelevel_class_init (ModulemdServiceLevelClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->set_property = modulemd_servicelevel_set_property; - object_class->get_property = modulemd_servicelevel_get_property; - object_class->finalize = modulemd_servicelevel_finalize; - - servicelevel_properties[SL_PROP_EOL] = - g_param_spec_boxed ("eol", - "End of Life", - "An ISO-8601 compatible YYYY-MM-DD value " - "representing the end-of-life date of this service " - "level.", - G_TYPE_DATE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - servicelevel_properties[SL_PROP_NAME] = - g_param_spec_string ("name", - "Name", - "A human-readable name for this servicelevel", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties ( - object_class, SL_N_PROPERTIES, servicelevel_properties); -} - -static void -modulemd_servicelevel_init (ModulemdServiceLevel *self) -{ - self->eol = g_date_new (); -} - -ModulemdServiceLevel * -modulemd_servicelevel_new (void) -{ - return g_object_new (MODULEMD_TYPE_SERVICELEVEL, NULL); -} diff --git a/modulemd-1.8.16/modulemd/modulemd-simpleset.c b/modulemd-1.8.16/modulemd/modulemd-simpleset.c deleted file mode 100644 index 8fe3c23..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-simpleset.c +++ /dev/null @@ -1,368 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include -#include -#include "modulemd-simpleset.h" -#include "private/modulemd-util.h" - - -enum -{ - SET_PROP_0, - - SET_PROP_SET, - - SET_N_PROPERTIES -}; - -static GParamSpec *set_properties[SET_N_PROPERTIES] = { - NULL, -}; - -struct _ModulemdSimpleSet -{ - GObject parent_instance; - - GHashTable *set; -}; - -G_DEFINE_TYPE (ModulemdSimpleSet, modulemd_simpleset, G_TYPE_OBJECT) - -gboolean -modulemd_simpleset_contains (ModulemdSimpleSet *self, const gchar *value) -{ - g_return_val_if_fail (MODULEMD_IS_SIMPLESET (self), 0); - - return g_hash_table_contains (self->set, value); -} - - -guint -modulemd_simpleset_size (ModulemdSimpleSet *self) -{ - g_return_val_if_fail (MODULEMD_IS_SIMPLESET (self), 0); - - return g_hash_table_size (self->set); -} - -static gboolean -modulemd_simpleset_remove_from_array (gpointer key, - gpointer value, - gpointer user_data) -{ - gchar **array; - g_return_val_if_fail (key, FALSE); - g_return_val_if_fail (user_data, FALSE); - - array = (gchar **)user_data; - - for (gsize i = 0; array[i]; i++) - { - if (g_strcmp0 ((gchar *)key, array[i]) == 0) - { - /* This value should stay in the set */ - return FALSE; - } - } - - /* This value wasn't in the array, so remove it */ - return TRUE; -} - - -void -modulemd_simpleset_set (ModulemdSimpleSet *self, gchar **set) -{ - gboolean do_notify = FALSE; - guint num_removed; - - g_return_if_fail (MODULEMD_IS_SIMPLESET (self)); - g_return_if_fail (set); - - /* Remove any values that are not part of the new set */ - num_removed = g_hash_table_foreach_remove ( - self->set, modulemd_simpleset_remove_from_array, set); - if (num_removed > 0) - { - /* At least one value was removed, so we will need to notify */ - do_notify = TRUE; - } - - /* Add in the whole new set to make sure we have everything */ - for (gsize i = 0; set[i]; i++) - { - if (g_hash_table_add (self->set, g_strdup (set[i]))) - { - /* This key didn't previously exist */ - do_notify = TRUE; - } - } - - if (do_notify) - { - g_object_notify_by_pspec (G_OBJECT (self), set_properties[SET_PROP_SET]); - } -} - - -gchar ** -modulemd_simpleset_get (ModulemdSimpleSet *self) -{ - return modulemd_simpleset_dup (self); -} - - -gchar ** -modulemd_simpleset_dup (ModulemdSimpleSet *self) -{ - GPtrArray *sorted_keys = NULL; - gchar **keys = NULL; - g_return_val_if_fail (MODULEMD_IS_SIMPLESET (self), NULL); - - sorted_keys = _modulemd_ordered_str_keys (self->set, _modulemd_strcmp_sort); - - keys = g_malloc0_n (sorted_keys->len + 1, sizeof (char *)); - for (gsize i = 0; i < sorted_keys->len; i++) - { - keys[i] = g_strdup (g_ptr_array_index (sorted_keys, i)); - } - keys[sorted_keys->len] = NULL; - g_ptr_array_unref (sorted_keys); - - return keys; -} - - -void -modulemd_simpleset_add (ModulemdSimpleSet *self, const gchar *value) -{ - if (g_hash_table_add (self->set, g_strdup (value))) - { - /* This key didn't previously exist */ - g_object_notify_by_pspec (G_OBJECT (self), set_properties[SET_PROP_SET]); - } -} - - -void -modulemd_simpleset_remove (ModulemdSimpleSet *self, const gchar *value) -{ - gchar *key = g_strdup (value); - if (g_hash_table_remove (self->set, key)) - { - /* This key existed */ - g_object_notify_by_pspec (G_OBJECT (self), set_properties[SET_PROP_SET]); - } - g_free (key); -} - - -void -modulemd_simpleset_copy (ModulemdSimpleSet *self, ModulemdSimpleSet **dest) -{ - gchar **keys = NULL; - - g_return_if_fail (!self || MODULEMD_IS_SIMPLESET (self)); - g_return_if_fail (dest); - g_return_if_fail (*dest == NULL || - (*dest != NULL && MODULEMD_IS_SIMPLESET (*dest))); - - /* Allocate a SimpleSet if needed */ - if (*dest == NULL) - { - *dest = modulemd_simpleset_new (); - } - - if (self) - { - /* Get the set of keys so we can just use the set() function */ - keys = (gchar **)g_hash_table_get_keys_as_array (self->set, NULL); - } - else - { - /* If the source is NULL, treat it as empty */ - keys = g_new0 (gchar *, 1); - } - - /* set() them. This will also handle the object notification */ - modulemd_simpleset_set (*dest, keys); - - g_free (keys); -} - - -static void -modulemd_simpleset_set_property (GObject *gobject, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - ModulemdSimpleSet *self = MODULEMD_SIMPLESET (gobject); - - switch (property_id) - { - case SET_PROP_SET: - modulemd_simpleset_set (self, g_value_get_boxed (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec); - break; - } -} - -static void -modulemd_simpleset_get_property (GObject *gobject, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdSimpleSet *self = MODULEMD_SIMPLESET (gobject); - - switch (property_id) - { - case SET_PROP_SET: - g_value_take_boxed (value, modulemd_simpleset_dup (self)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec); - break; - } -} - -static void -modulemd_simpleset_finalize (GObject *gobject) -{ - ModulemdSimpleSet *self = (ModulemdSimpleSet *)gobject; - - g_clear_pointer (&self->set, g_hash_table_unref); - - G_OBJECT_CLASS (modulemd_simpleset_parent_class)->finalize (gobject); -} - -static void -modulemd_simpleset_class_init (ModulemdSimpleSetClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->set_property = modulemd_simpleset_set_property; - object_class->get_property = modulemd_simpleset_get_property; - - object_class->finalize = modulemd_simpleset_finalize; - - set_properties[SET_PROP_SET] = - g_param_spec_boxed ("set", - "The set represented as an array of strings.", - "An ordered list of unique strings in this set", - G_TYPE_STRV, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties ( - object_class, SET_N_PROPERTIES, set_properties); -} - -static void -modulemd_simpleset_init (ModulemdSimpleSet *self) -{ - /* Allocate the hash table */ - /* Free only once, since the key and value will be the same */ - self->set = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); -} - -ModulemdSimpleSet * -modulemd_simpleset_new (void) -{ - return g_object_new (MODULEMD_TYPE_SIMPLESET, NULL); -} - - -gboolean -modulemd_simpleset_is_equal (ModulemdSimpleSet *self, ModulemdSimpleSet *other) -{ - g_auto (GStrv) set_a = NULL; - g_auto (GStrv) set_b = NULL; - gsize i = 0; - - if (modulemd_simpleset_size (self) != modulemd_simpleset_size (other)) - { - /* If they have a different number of strings in the set, they can't - * be identical. - */ - return FALSE; - } - - set_a = modulemd_simpleset_dup (self); - set_b = modulemd_simpleset_dup (other); - - for (i = 0; set_a[i] && set_b[i]; i++) - { - /* These are guaranteed to be returned ordered, so we can - * assume that any difference at any index means that the - * lists are not identical. - */ - if (g_strcmp0 (set_a[i], set_b[i])) - { - /* No match, so this simpleset is not equal */ - return FALSE; - } - } - - /* If we made it here, everything must have matched */ - return TRUE; -} - - -/** - * modulemd_simpleset_validate_contents: - * @func: (scope call): a #SimpleSetValidationFn that will be run against each - * entry in the set. - * @failures: (array zero-terminated=1) (element-type utf8) (out) (nullable): - * An array of strings in the set that failed the validation function. If this - * returns non-NULL, it must be freed with g_ptr_array_unref(). - * - * Returns: TRUE if all members of the set passed the validation. If any of the - * set fails validation, they will be returned via failures. - * - * Since: 1.4 - */ -gboolean -modulemd_simpleset_validate_contents (ModulemdSimpleSet *self, - ModulemdSimpleSetValidationFn func, - GPtrArray **failures) -{ - gboolean passing = TRUE; - GHashTableIter iter; - g_autoptr (GPtrArray) _failed = NULL; - gpointer key, value; - - _failed = g_ptr_array_new_with_free_func (g_free); - - g_hash_table_iter_init (&iter, self->set); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - if (!func ((const gchar *)key)) - { - passing = FALSE; - g_ptr_array_add (_failed, g_strdup (key)); - } - } - - if (!passing && failures) - { - *failures = g_ptr_array_ref (_failed); - } - - return passing; -} diff --git a/modulemd-1.8.16/modulemd/modulemd-subdocument.c b/modulemd-1.8.16/modulemd/modulemd-subdocument.c deleted file mode 100644 index b3b9b66..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-subdocument.c +++ /dev/null @@ -1,210 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include "modulemd-subdocument.h" -#include "private/modulemd-subdocument-private.h" - - -struct _ModulemdSubdocument -{ - GObject parent_instance; - - GType doctype; - guint64 version; - gchar *yaml; - GError *gerror; -}; - -G_DEFINE_TYPE (ModulemdSubdocument, modulemd_subdocument, G_TYPE_OBJECT) - -enum -{ - PROP_0, - PROP_YAML, - PROP_GERROR, - N_PROPS -}; - -static GParamSpec *properties[N_PROPS]; - -ModulemdSubdocument * -modulemd_subdocument_new (void) -{ - return g_object_new (MODULEMD_TYPE_SUBDOCUMENT, NULL); -} - -static void -modulemd_subdocument_finalize (GObject *object) -{ - ModulemdSubdocument *self = (ModulemdSubdocument *)object; - - g_clear_pointer (&self->yaml, g_free); - g_clear_error (&self->gerror); - - G_OBJECT_CLASS (modulemd_subdocument_parent_class)->finalize (object); -} - -void -modulemd_subdocument_set_doctype (ModulemdSubdocument *self, const GType type) -{ - g_return_if_fail (MODULEMD_IS_SUBDOCUMENT (self)); - - self->doctype = type; -} - - -const GType -modulemd_subdocument_get_doctype (ModulemdSubdocument *self) -{ - g_return_val_if_fail (MODULEMD_IS_SUBDOCUMENT (self), G_TYPE_INVALID); - - return self->doctype; -} - -void -modulemd_subdocument_set_version (ModulemdSubdocument *self, - const guint64 version) -{ - g_return_if_fail (MODULEMD_IS_SUBDOCUMENT (self)); - - self->version = version; -} - - -guint64 -modulemd_subdocument_get_version (ModulemdSubdocument *self) -{ - g_return_val_if_fail (MODULEMD_IS_SUBDOCUMENT (self), 0); - - return self->version; -} - - -void -modulemd_subdocument_set_yaml (ModulemdSubdocument *self, const gchar *yaml) -{ - g_return_if_fail (MODULEMD_IS_SUBDOCUMENT (self)); - - g_clear_pointer (&self->yaml, g_free); - - if (yaml) - { - self->yaml = g_strdup (yaml); - } - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_YAML]); -} - - -const gchar * -modulemd_subdocument_get_yaml (ModulemdSubdocument *self) -{ - g_return_val_if_fail (MODULEMD_IS_SUBDOCUMENT (self), NULL); - - return self->yaml; -} - - -void -modulemd_subdocument_set_gerror (ModulemdSubdocument *self, - const GError *gerror) -{ - g_return_if_fail (MODULEMD_IS_SUBDOCUMENT (self)); - - g_clear_error (&self->gerror); - if (gerror) - self->gerror = g_error_copy (gerror); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_GERROR]); -} - - -const GError * -modulemd_subdocument_get_gerror (ModulemdSubdocument *self) -{ - g_return_val_if_fail (MODULEMD_IS_SUBDOCUMENT (self), NULL); - - return self->gerror; -} - - -static void -modulemd_subdocument_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdSubdocument *self = MODULEMD_SUBDOCUMENT (object); - - switch (prop_id) - { - case PROP_YAML: - g_value_set_string (value, modulemd_subdocument_get_yaml (self)); - break; - - case PROP_GERROR: - g_value_set_boxed (value, modulemd_subdocument_get_gerror (self)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; - } -} - - -static void -modulemd_subdocument_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - switch (prop_id) - { - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; - } -} - - -static void -modulemd_subdocument_class_init (ModulemdSubdocumentClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->finalize = modulemd_subdocument_finalize; - object_class->get_property = modulemd_subdocument_get_property; - object_class->set_property = modulemd_subdocument_set_property; - - properties[PROP_YAML] = - g_param_spec_string ("yaml", - "YAML document string", - "A string containing the YAML subdocument", - NULL, - G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); - - properties[PROP_GERROR] = - g_param_spec_boxed ("gerror", - "Error information", - "A GError containing an error code and message about " - "why this subdocument failed parsing", - G_TYPE_ERROR, - G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties (object_class, N_PROPS, properties); -} - -static void -modulemd_subdocument_init (ModulemdSubdocument *self) -{ - self->doctype = G_TYPE_INVALID; - self->version = 0; -} diff --git a/modulemd-1.8.16/modulemd/modulemd-translation-entry.c b/modulemd-1.8.16/modulemd/modulemd-translation-entry.c deleted file mode 100644 index 5968de3..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-translation-entry.c +++ /dev/null @@ -1,366 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include "modulemd-translation-entry.h" -#include "private/modulemd-util.h" - -struct _ModulemdTranslationEntry -{ - GObject parent_instance; - - gchar *locale; - gchar *summary; - gchar *description; - - GHashTable *profile_descriptions; -}; - -G_DEFINE_TYPE (ModulemdTranslationEntry, - modulemd_translation_entry, - G_TYPE_OBJECT) - -enum -{ - PROP_0, - - PROP_LOCALE, - PROP_SUMMARY, - PROP_DESC, - - N_PROPS -}; - -static GParamSpec *properties[N_PROPS]; - -ModulemdTranslationEntry * -modulemd_translation_entry_new (const gchar *locale) -{ - return g_object_new ( - MODULEMD_TYPE_TRANSLATION_ENTRY, "locale", locale, NULL); -} - - -static void -modulemd_translation_entry_finalize (GObject *object) -{ - ModulemdTranslationEntry *self = (ModulemdTranslationEntry *)object; - - g_clear_pointer (&self->locale, g_free); - g_clear_pointer (&self->summary, g_free); - g_clear_pointer (&self->description, g_free); - g_clear_pointer (&self->profile_descriptions, g_hash_table_unref); - - G_OBJECT_CLASS (modulemd_translation_entry_parent_class)->finalize (object); -} - - -ModulemdTranslationEntry * -modulemd_translation_entry_copy (ModulemdTranslationEntry *self) -{ - ModulemdTranslationEntry *copy = NULL; - - g_return_val_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (self), NULL); - - // clang-format off - copy = g_object_new ( - MODULEMD_TYPE_TRANSLATION_ENTRY, - "locale", modulemd_translation_entry_peek_locale (self), - "summary", modulemd_translation_entry_peek_summary (self), - "description", modulemd_translation_entry_peek_description (self), - NULL); - // clang-format on - - g_hash_table_unref (copy->profile_descriptions); - copy->profile_descriptions = - _modulemd_hash_table_deep_str_copy (self->profile_descriptions); - - return copy; -} - - -void -modulemd_translation_entry_set_locale (ModulemdTranslationEntry *self, - const gchar *locale) -{ - g_return_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (self)); - - g_clear_pointer (&self->locale, g_free); - self->locale = g_strdup (locale); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_LOCALE]); -} - - -gchar * -modulemd_translation_entry_get_locale (ModulemdTranslationEntry *self) -{ - g_return_val_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (self), NULL); - - return g_strdup (self->locale); -} - - -const gchar * -modulemd_translation_entry_peek_locale (ModulemdTranslationEntry *self) -{ - g_return_val_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (self), NULL); - - return self->locale; -} - - -void -modulemd_translation_entry_set_summary (ModulemdTranslationEntry *self, - const gchar *summary) -{ - g_return_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (self)); - - g_clear_pointer (&self->summary, g_free); - self->summary = g_strdup (summary); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_SUMMARY]); -} - - -gchar * -modulemd_translation_entry_get_summary (ModulemdTranslationEntry *self) -{ - g_return_val_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (self), NULL); - - return g_strdup (self->summary); -} - - -const gchar * -modulemd_translation_entry_peek_summary (ModulemdTranslationEntry *self) -{ - g_return_val_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (self), NULL); - - return self->summary; -} - - -void -modulemd_translation_entry_set_description (ModulemdTranslationEntry *self, - const gchar *description) -{ - g_return_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (self)); - - g_clear_pointer (&self->description, g_free); - self->description = g_strdup (description); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_DESC]); -} - - -gchar * -modulemd_translation_entry_get_description (ModulemdTranslationEntry *self) -{ - g_return_val_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (self), NULL); - - return g_strdup (self->description); -} - - -const gchar * -modulemd_translation_entry_peek_description (ModulemdTranslationEntry *self) -{ - g_return_val_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (self), NULL); - - return self->description; -} - - -void -modulemd_translation_entry_set_profile_description ( - ModulemdTranslationEntry *self, - const gchar *profile_name, - const gchar *profile_description) -{ - g_return_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (self)); - g_return_if_fail (profile_name); - - if (profile_description) - { - g_hash_table_replace (self->profile_descriptions, - g_strdup (profile_name), - g_strdup (profile_description)); - } - else - { - /* Remove this profile from the list */ - g_hash_table_remove (self->profile_descriptions, profile_name); - } -} - - -gchar * -modulemd_translation_entry_get_profile_description ( - ModulemdTranslationEntry *self, const gchar *profile_name) -{ - gchar *profile_description = NULL; - g_return_val_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (self), NULL); - g_return_val_if_fail (profile_name, NULL); - - profile_description = - g_hash_table_lookup (self->profile_descriptions, profile_name); - if (!profile_description) - return NULL; - - return g_strdup (profile_description); -} - - -const gchar * -modulemd_translation_entry_peek_profile_description ( - ModulemdTranslationEntry *self, const gchar *profile_name) -{ - g_return_val_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (self), NULL); - g_return_val_if_fail (profile_name, NULL); - - return g_hash_table_lookup (self->profile_descriptions, profile_name); -} - - -GHashTable * -modulemd_translation_entry_get_all_profile_descriptions ( - ModulemdTranslationEntry *self) -{ - g_return_val_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (self), NULL); - - return _modulemd_hash_table_deep_str_copy (self->profile_descriptions); -} - - -static void -modulemd_translation_entry_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdTranslationEntry *self = MODULEMD_TRANSLATION_ENTRY (object); - - switch (prop_id) - { - case PROP_LOCALE: - g_value_take_string (value, - modulemd_translation_entry_get_locale (self)); - break; - - case PROP_SUMMARY: - g_value_take_string (value, - modulemd_translation_entry_get_summary (self)); - break; - - case PROP_DESC: - g_value_take_string (value, - modulemd_translation_entry_get_description (self)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - -static void -modulemd_translation_entry_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - ModulemdTranslationEntry *self = MODULEMD_TRANSLATION_ENTRY (object); - - switch (prop_id) - { - case PROP_LOCALE: - modulemd_translation_entry_set_locale (self, g_value_get_string (value)); - break; - - case PROP_SUMMARY: - modulemd_translation_entry_set_summary (self, - g_value_get_string (value)); - break; - - case PROP_DESC: - modulemd_translation_entry_set_description (self, - g_value_get_string (value)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - - -static void -modulemd_translation_entry_defaults (GObject *object) -{ - ModulemdTranslationEntry *self = MODULEMD_TRANSLATION_ENTRY (object); - - g_return_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (object)); - - /* Set a default of C.UTF-8 for the locale */ - if (!self->locale) - { - self->locale = g_strdup ("C.UTF-8"); - } - - - G_OBJECT_CLASS (modulemd_translation_entry_parent_class) - ->constructed (object); -} - - -static void -modulemd_translation_entry_class_init (ModulemdTranslationEntryClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->finalize = modulemd_translation_entry_finalize; - object_class->get_property = modulemd_translation_entry_get_property; - object_class->set_property = modulemd_translation_entry_set_property; - object_class->constructed = modulemd_translation_entry_defaults; - - properties[PROP_LOCALE] = g_param_spec_string ( - "locale", - "Translation Locale", - "Specifies the language and dialect of this translation. Must be be " - "specified as described by " - "https://www.gnu.org/software/libc/manual/html_node/Locale-Names.html", - NULL, - G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_SUMMARY] = - g_param_spec_string ("summary", - "Stream Summary", - "A short description of the module stream, " - "translated into the specified language.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_DESC] = - g_param_spec_string ("description", - "Stream Description", - "A detailed description of the module stream, " - "translated into the specified language.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties (object_class, N_PROPS, properties); -} - -static void -modulemd_translation_entry_init (ModulemdTranslationEntry *self) -{ - self->profile_descriptions = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); -} diff --git a/modulemd-1.8.16/modulemd/modulemd-translation.c b/modulemd-1.8.16/modulemd/modulemd-translation.c deleted file mode 100644 index 92ceec7..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-translation.c +++ /dev/null @@ -1,518 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include "modulemd-translation.h" -#include "private/modulemd-util.h" -#include "private/modulemd-yaml.h" - -GQuark -modulemd_translation_error_quark (void) -{ - return g_quark_from_static_string ("modulemd-translation-error-quark"); -} - -struct _ModulemdTranslation -{ - GObject parent_instance; - - guint64 mdversion; - - gchar *module_name; - - gchar *module_stream; - - guint64 modified; - - GHashTable *translations; -}; - -G_DEFINE_TYPE (ModulemdTranslation, modulemd_translation, G_TYPE_OBJECT) - -enum -{ - PROP_0, - - PROP_MDVERSION, - PROP_MODNAME, - PROP_MODSTREAM, - PROP_MODIFIED, - - N_PROPS -}; - -static GParamSpec *properties[N_PROPS]; - - -ModulemdTranslation * -modulemd_translation_new (void) -{ - return g_object_new (MODULEMD_TYPE_TRANSLATION, NULL); -} - - -ModulemdTranslation * -modulemd_translation_new_full (const gchar *module_name, - const gchar *module_stream, - guint64 mdversion, - guint64 modified) -{ - // clang-format off - return g_object_new (MODULEMD_TYPE_TRANSLATION, - "module-name", module_name, - "module-stream", module_stream, - "mdversion", mdversion, - "modified", modified, - NULL); - // clang-format on -} - - -static void -_modulemd_translation_copy_internal (ModulemdTranslation *dest, - ModulemdTranslation *src) -{ - GHashTableIter iter; - gpointer key, value; - - modulemd_translation_set_mdversion (dest, src->mdversion); - modulemd_translation_set_module_name (dest, src->module_name); - modulemd_translation_set_module_stream (dest, src->module_stream); - modulemd_translation_set_modified (dest, src->modified); - - g_hash_table_iter_init (&iter, src->translations); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - modulemd_translation_add_entry (dest, - MODULEMD_TRANSLATION_ENTRY (value)); - } -} - - -ModulemdTranslation * -modulemd_translation_copy (ModulemdTranslation *self) -{ - ModulemdTranslation *copy = NULL; - - if (!self) - return NULL; - - g_return_val_if_fail (MODULEMD_IS_TRANSLATION (self), NULL); - - copy = g_object_new (MODULEMD_TYPE_TRANSLATION, NULL); - _modulemd_translation_copy_internal (copy, self); - - return copy; -} - - -gboolean -modulemd_translation_import_from_file (ModulemdTranslation *self, - const gchar *yaml_file, - GError **error) -{ - g_autoptr (GPtrArray) data = NULL; - - if (!parse_yaml_file (yaml_file, &data, NULL, error)) - return FALSE; - - if (data->len < 1) - { - g_set_error (error, - MODULEMD_TRANSLATION_ERROR, - MODULEMD_TRANSLATION_ERROR_MISSING_CONTENT, - "Provided YAML contained no valid subdocuments"); - return FALSE; - } - else if (!MODULEMD_IS_TRANSLATION (g_ptr_array_index (data, 0))) - { - g_set_error (error, - MODULEMD_TRANSLATION_ERROR, - MODULEMD_TRANSLATION_ERROR_MISSING_CONTENT, - "Provided YAML was not a valid translation document"); - return FALSE; - } - - _modulemd_translation_copy_internal (self, g_ptr_array_index (data, 0)); - - return TRUE; -} - - -gboolean -modulemd_translation_import_from_string (ModulemdTranslation *self, - const gchar *yaml, - GError **error) -{ - g_autoptr (GPtrArray) data = NULL; - - if (!parse_yaml_string (yaml, &data, NULL, error)) - return FALSE; - - if (data->len < 1) - { - g_set_error (error, - MODULEMD_TRANSLATION_ERROR, - MODULEMD_TRANSLATION_ERROR_MISSING_CONTENT, - "Provided YAML contained no valid subdocuments"); - return FALSE; - } - else if (!MODULEMD_IS_TRANSLATION (g_ptr_array_index (data, 0))) - { - g_set_error (error, - MODULEMD_TRANSLATION_ERROR, - MODULEMD_TRANSLATION_ERROR_MISSING_CONTENT, - "Provided YAML was not a valid translation document"); - return FALSE; - } - - _modulemd_translation_copy_internal (self, g_ptr_array_index (data, 0)); - - return TRUE; -} - - -gboolean -modulemd_translation_import_from_stream (ModulemdTranslation *self, - FILE *yaml_stream, - GError **error) -{ - g_autoptr (GPtrArray) data = NULL; - - if (!parse_yaml_stream (yaml_stream, &data, NULL, error)) - return FALSE; - - if (data->len < 1) - { - g_set_error (error, - MODULEMD_TRANSLATION_ERROR, - MODULEMD_TRANSLATION_ERROR_MISSING_CONTENT, - "Provided YAML contained no valid subdocuments"); - return FALSE; - } - else if (!MODULEMD_IS_TRANSLATION (g_ptr_array_index (data, 0))) - { - g_set_error (error, - MODULEMD_TRANSLATION_ERROR, - MODULEMD_TRANSLATION_ERROR_MISSING_CONTENT, - "Provided YAML was not a valid translation document"); - return FALSE; - } - - _modulemd_translation_copy_internal (self, g_ptr_array_index (data, 0)); - - return TRUE; -} - - -gboolean -modulemd_translation_dump (ModulemdTranslation *self, - const gchar *yaml_file, - GError **error) -{ - g_autoptr (GPtrArray) objects = g_ptr_array_new (); - - g_ptr_array_add (objects, self); - - if (!emit_yaml_file (objects, yaml_file, error)) - { - g_debug ("Error emitting YAML file: %s", (*error)->message); - return FALSE; - } - - return TRUE; -} - - -gchar * -modulemd_translation_dumps (ModulemdTranslation *self, GError **error) -{ - gchar *yaml = NULL; - g_autoptr (GPtrArray) objects = g_ptr_array_new (); - - g_ptr_array_add (objects, self); - - if (!emit_yaml_string (objects, &yaml, error)) - { - g_debug ("Error emitting YAML file: %s", (*error)->message); - g_clear_pointer (&yaml, g_free); - } - - return yaml; -} - - -static void -modulemd_translation_finalize (GObject *object) -{ - ModulemdTranslation *self = (ModulemdTranslation *)object; - - g_clear_pointer (&self->module_name, g_free); - g_clear_pointer (&self->module_stream, g_free); - g_clear_pointer (&self->translations, g_hash_table_unref); - - G_OBJECT_CLASS (modulemd_translation_parent_class)->finalize (object); -} - - -void -modulemd_translation_set_mdversion (ModulemdTranslation *self, - guint64 mdversion) -{ - g_return_if_fail (MODULEMD_IS_TRANSLATION (self)); - - self->mdversion = mdversion; - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MDVERSION]); -} - - -guint64 -modulemd_translation_get_mdversion (ModulemdTranslation *self) -{ - g_return_val_if_fail (MODULEMD_IS_TRANSLATION (self), 0); - - return self->mdversion; -} - - -void -modulemd_translation_set_module_name (ModulemdTranslation *self, - const gchar *module_name) -{ - g_return_if_fail (MODULEMD_IS_TRANSLATION (self)); - - g_clear_pointer (&self->module_name, g_free); - self->module_name = g_strdup (module_name); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MODNAME]); -} - - -gchar * -modulemd_translation_get_module_name (ModulemdTranslation *self) -{ - g_return_val_if_fail (MODULEMD_IS_TRANSLATION (self), NULL); - - return g_strdup (self->module_name); -} - - -const gchar * -modulemd_translation_peek_module_name (ModulemdTranslation *self) -{ - g_return_val_if_fail (MODULEMD_IS_TRANSLATION (self), NULL); - - return self->module_name; -} - - -void -modulemd_translation_set_module_stream (ModulemdTranslation *self, - const gchar *module_stream) -{ - g_return_if_fail (MODULEMD_IS_TRANSLATION (self)); - - g_clear_pointer (&self->module_stream, g_free); - self->module_stream = g_strdup (module_stream); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MODSTREAM]); -} - - -gchar * -modulemd_translation_get_module_stream (ModulemdTranslation *self) -{ - g_return_val_if_fail (MODULEMD_IS_TRANSLATION (self), NULL); - - return g_strdup (self->module_stream); -} - - -const gchar * -modulemd_translation_peek_module_stream (ModulemdTranslation *self) -{ - g_return_val_if_fail (MODULEMD_IS_TRANSLATION (self), NULL); - - return self->module_stream; -} - - -void -modulemd_translation_set_modified (ModulemdTranslation *self, guint64 modified) -{ - g_return_if_fail (MODULEMD_IS_TRANSLATION (self)); - - self->modified = modified; - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MODIFIED]); -} - - -guint64 -modulemd_translation_get_modified (ModulemdTranslation *self) -{ - g_return_val_if_fail (MODULEMD_IS_TRANSLATION (self), 0); - - return self->modified; -} - - -void -modulemd_translation_add_entry (ModulemdTranslation *self, - ModulemdTranslationEntry *entry) -{ - g_return_if_fail (MODULEMD_IS_TRANSLATION (self)); - g_return_if_fail (MODULEMD_IS_TRANSLATION_ENTRY (entry)); - - g_hash_table_replace (self->translations, - modulemd_translation_entry_get_locale (entry), - modulemd_translation_entry_copy (entry)); -} - - -ModulemdTranslationEntry * -modulemd_translation_get_entry_by_locale (ModulemdTranslation *self, - const gchar *locale) -{ - ModulemdTranslationEntry *entry = NULL; - g_return_val_if_fail (MODULEMD_IS_TRANSLATION (self), NULL); - - entry = g_hash_table_lookup (self->translations, locale); - if (!entry) - return NULL; - - return modulemd_translation_entry_copy (entry); -} - - -GPtrArray * -modulemd_translation_get_locales (ModulemdTranslation *self) -{ - return _modulemd_ordered_str_keys (self->translations, - _modulemd_strcmp_sort); -} - - -static void -modulemd_translation_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - ModulemdTranslation *self = MODULEMD_TRANSLATION (object); - - switch (prop_id) - { - case PROP_MDVERSION: - g_value_set_uint64 (value, modulemd_translation_get_mdversion (self)); - break; - - case PROP_MODNAME: - g_value_take_string (value, modulemd_translation_get_module_name (self)); - break; - - case PROP_MODSTREAM: - g_value_take_string (value, - modulemd_translation_get_module_stream (self)); - break; - - case PROP_MODIFIED: - g_value_set_uint64 (value, modulemd_translation_get_modified (self)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - -static void -modulemd_translation_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - ModulemdTranslation *self = MODULEMD_TRANSLATION (object); - - switch (prop_id) - { - case PROP_MDVERSION: - modulemd_translation_set_mdversion (self, g_value_get_uint64 (value)); - break; - - case PROP_MODNAME: - modulemd_translation_set_module_name (self, g_value_get_string (value)); - break; - - case PROP_MODSTREAM: - modulemd_translation_set_module_stream (self, - g_value_get_string (value)); - break; - - case PROP_MODIFIED: - modulemd_translation_set_modified (self, g_value_get_uint64 (value)); - break; - - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - -static void -modulemd_translation_class_init (ModulemdTranslationClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->finalize = modulemd_translation_finalize; - object_class->get_property = modulemd_translation_get_property; - object_class->set_property = modulemd_translation_set_property; - - properties[PROP_MDVERSION] = - g_param_spec_uint64 ("mdversion", - "Metadata Version", - "The metadata version of this modulemd-translation", - 0, - G_MAXUINT64, - 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_MODNAME] = g_param_spec_string ( - "module-name", - "Module Name", - "The name of the module to which these translations apply.", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_MODSTREAM] = g_param_spec_string ( - "module-stream", - "Module Stream", - "The name of the module stream to which these translations apply", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - properties[PROP_MODIFIED] = - g_param_spec_uint64 ("modified", - "Last Modified", - "The last modification time", - 0, - G_MAXUINT64, - 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties (object_class, N_PROPS, properties); -} - -static void -modulemd_translation_init (ModulemdTranslation *self) -{ - self->translations = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); -} diff --git a/modulemd-1.8.16/modulemd/modulemd-util.c b/modulemd-1.8.16/modulemd/modulemd-util.c deleted file mode 100644 index 33f781c..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-util.c +++ /dev/null @@ -1,505 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include -#include "private/modulemd-util.h" -#include "private/modulemd-improvedmodule-private.h" -#include - - -GQuark -modulemd_error_quark (void) -{ - return g_quark_from_static_string ("modulemd-error-quark"); -} - -GHashTable * -_modulemd_hash_table_deep_str_copy (GHashTable *orig) -{ - GHashTable *new; - GHashTableIter iter; - gpointer key, value; - - g_return_val_if_fail (orig, NULL); - - new = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); - - g_hash_table_iter_init (&iter, orig); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - g_hash_table_insert ( - new, g_strdup ((const gchar *)key), g_strdup ((const gchar *)value)); - } - - return new; -} - -GHashTable * -_modulemd_hash_table_deep_obj_copy (GHashTable *orig) -{ - GHashTable *new; - GHashTableIter iter; - gpointer key, value; - - g_return_val_if_fail (orig, NULL); - - new = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - - g_hash_table_iter_init (&iter, orig); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - g_hash_table_insert ( - new, g_strdup ((const gchar *)key), g_object_ref ((GObject *)value)); - } - - return new; -} - -GHashTable * -_modulemd_hash_table_deep_variant_copy (GHashTable *orig) -{ - GHashTable *new; - GHashTableIter iter; - gpointer key, value; - - g_return_val_if_fail (orig, NULL); - - new = g_hash_table_new_full ( - g_str_hash, g_str_equal, g_free, modulemd_variant_unref); - - g_hash_table_iter_init (&iter, orig); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - g_hash_table_insert ( - new, g_strdup ((const gchar *)key), g_variant_ref ((GVariant *)value)); - } - - return new; -} - -gint -_modulemd_strcmp_sort (gconstpointer a, gconstpointer b) -{ - return g_strcmp0 (*(const gchar **)a, *(const gchar **)b); -} - -GPtrArray * -_modulemd_ordered_str_keys (GHashTable *htable, GCompareFunc compare_func) -{ - GPtrArray *keys; - GHashTableIter iter; - gpointer key, value; - - keys = g_ptr_array_new_full (g_hash_table_size (htable), g_free); - - g_hash_table_iter_init (&iter, htable); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - g_ptr_array_add (keys, g_strdup ((const gchar *)key)); - } - g_ptr_array_sort (keys, compare_func); - - return keys; -} - -static gint -_modulemd_int64_sort (gconstpointer a, gconstpointer b) -{ - gint retval = *(const gint64 *)a - *(const gint64 *)b; - return retval; -} - -GList * -_modulemd_ordered_int64_keys (GHashTable *htable) -{ - g_autoptr (GList) hash_keys = NULL; - GList *unsorted_keys = NULL; - GList *sorted_keys = NULL; - - /* Get the keys from the hash table */ - hash_keys = g_hash_table_get_keys (htable); - - /* Make a copy of the keys that we can modify */ - unsorted_keys = g_list_copy (hash_keys); - - /* Sort the keys numerically */ - sorted_keys = g_list_sort (unsorted_keys, _modulemd_int64_sort); - - return sorted_keys; -} - -void -modulemd_variant_unref (void *ptr) -{ - g_variant_unref ((GVariant *)ptr); -} - -gboolean -modulemd_validate_nevra (const gchar *nevra) -{ - g_autofree gchar *tmp = g_strdup (nevra); - gsize len = strlen (nevra); - gchar *i; - gchar *endptr; - - /* Since the "name" portion of a NEVRA can have an infinite number of - * hyphens, we need to parse from the end backwards. - */ - i = &tmp[len - 1]; - - /* Everything after the last '.' must be the architecture */ - while (i >= tmp) - { - if (*i == '.') - { - break; - } - i--; - } - - if (i < tmp) - { - /* We hit the start of the string without hitting '.' */ - return FALSE; - } - - /* - * TODO: Compare the architecture suffix with a list of known-valid ones - * This needs to come from an external source that's kept up to date or - * this will regularly break. - */ - - /* Process the "release" tag */ - while (i >= tmp) - { - if (*i == '-') - { - break; - } - i--; - } - - if (i < tmp) - { - /* We hit the start of the string without hitting '-' */ - return FALSE; - } - - /* No need to validate Release; it's fairly arbitrary */ - - /* Process the version */ - while (i >= tmp) - { - if (*i == ':') - { - break; - } - i--; - } - if (i < tmp) - { - /* We hit the start of the string without hitting ':' */ - return FALSE; - } - - /* Process the epoch */ - *i = '\0'; - while (i >= tmp) - { - if (*i == '-') - { - break; - } - i--; - } - if (i < tmp) - { - /* We hit the start of the string without hitting '-' */ - return FALSE; - } - - /* Validate that this section is a number */ - g_ascii_strtoll (i, &endptr, 10); - if (endptr == i) - { - /* String conversion failed */ - return FALSE; - } - - /* No need to specifically parse the name section here */ - - return TRUE; -} - - -modulemd_tracer * -modulemd_trace_init (const gchar *function_name) -{ - modulemd_tracer *self = g_malloc0_n (1, sizeof (modulemd_tracer)); - self->function_name = g_strdup (function_name); - - g_debug ("TRACE: Entering %s", self->function_name); - - return self; -} - - -void -modulemd_trace_free (modulemd_tracer *tracer) -{ - g_debug ("TRACE: Exiting %s", tracer->function_name); - g_clear_pointer (&tracer->function_name, g_free); - g_free (tracer); -} - - -ModulemdTranslationEntry * -_get_locale_entry (ModulemdTranslation *translation, const gchar *_locale) -{ - ModulemdTranslationEntry *entry = NULL; - g_autofree gchar *locale = NULL; - - if (!translation) - return NULL; - - g_return_val_if_fail (MODULEMD_IS_TRANSLATION (translation), NULL); - - if (_locale) - { - if (g_strcmp0 (_locale, "C") == 0 || g_strcmp0 (_locale, "C.UTF-8") == 0) - { - /* If the locale is "C" or "C.UTF-8", always return the standard value */ - return NULL; - } - - locale = g_strdup (_locale); - } - else - { - /* If the locale was NULL, use the locale of this process */ - locale = g_strdup (setlocale (LC_MESSAGES, NULL)); - } - - entry = modulemd_translation_get_entry_by_locale (translation, locale); - - return entry; -} - - -GPtrArray * -_modulemd_index_serialize (GHashTable *index, GError **error) -{ - GHashTableIter iter; - gpointer key, value; - gsize i; - g_autoptr (GPtrArray) objects = NULL; - g_autoptr (GPtrArray) sub_objects = NULL; - - - if (!index) - { - g_set_error ( - error, MODULEMD_ERROR, MODULEMD_ERROR_PROGRAMMING, "Index was NULL."); - return NULL; - } - - objects = g_ptr_array_new_with_free_func (g_object_unref); - g_hash_table_iter_init (&iter, index); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - if (!value || !MODULEMD_IS_IMPROVEDMODULE (value)) - { - g_set_error (error, - MODULEMD_ERROR, - MODULEMD_ERROR_PROGRAMMING, - "Index value was not a ModulemdImprovedModule."); - return NULL; - } - - sub_objects = - modulemd_improvedmodule_serialize (MODULEMD_IMPROVEDMODULE (value)); - - for (i = 0; i < sub_objects->len; i++) - { - g_ptr_array_add (objects, - g_object_ref (g_ptr_array_index (sub_objects, i))); - } - g_clear_pointer (&sub_objects, g_ptr_array_unref); - } - - return g_ptr_array_ref (objects); -} - - -static ModulemdImprovedModule * -get_or_create_module_from_index (GHashTable *htable, const gchar *module_name) -{ - ModulemdImprovedModule *stored_module = NULL; - ModulemdImprovedModule *module = NULL; - - stored_module = g_hash_table_lookup (htable, module_name); - if (stored_module) - { - module = modulemd_improvedmodule_copy (stored_module); - } - else - { - /* This is the first encounter of this module */ - module = modulemd_improvedmodule_new (module_name); - } - return module; -} - - -GHashTable * -module_index_from_data (GPtrArray *data, GError **error) -{ - GObject *item = NULL; - gsize i = 0; - gsize j = 0; - g_autofree gchar *module_name = NULL; - g_autofree gchar *stream_name = NULL; - g_autoptr (ModulemdImprovedModule) module = NULL; - ModulemdImprovedModule *stored_module = NULL; - ModulemdModuleStream *stream = NULL; - g_autoptr (GPtrArray) retrieved_streams = NULL; - ModulemdModuleStream *retrieved_stream = NULL; - ModulemdDefaults *defaults = NULL; - g_autoptr (GHashTable) module_index = NULL; - GError *merge_error = NULL; - g_autoptr (GPtrArray) clean_data = NULL; - g_autoptr (GPtrArray) translations = - g_ptr_array_new_with_free_func (g_object_unref); - ModulemdTranslation *translation = NULL; - - /* Deduplicate and merge any ModulemdDefaults objects in the list */ - clean_data = modulemd_merge_defaults (data, NULL, FALSE, &merge_error); - if (!clean_data) - { - g_debug ("Error merging defaults: %s", merge_error->message); - g_propagate_error (error, merge_error); - return NULL; - } - - module_index = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - - /* Iterate through the data and add the entries to the module_index */ - for (i = 0; i < clean_data->len; i++) - { - item = g_ptr_array_index (clean_data, i); - - if (MODULEMD_IS_MODULESTREAM (item)) - { - stream = MODULEMD_MODULESTREAM (item); - module_name = modulemd_modulestream_get_name (stream); - stream_name = modulemd_modulestream_get_stream (stream); - - if (!module_name || !stream_name) - { - g_set_error (error, - MODULEMD_ERROR, - MODULEMD_ERROR_MISSING_CONTENT, - "Module streams without a module name or stream " - "name may not be read into an index."); - return NULL; - } - - module = get_or_create_module_from_index (module_index, module_name); - - /* Add the stream to this module. Note: if the same stream name - * appears in the data more than once, the last one encountered wins. - */ - modulemd_improvedmodule_add_stream (module, stream); - - /* Save it back to the index */ - g_hash_table_replace (module_index, - g_strdup (module_name), - modulemd_improvedmodule_copy (module)); - } - else if (MODULEMD_IS_DEFAULTS (item)) - { - defaults = MODULEMD_DEFAULTS (item); - module_name = modulemd_defaults_dup_module_name (defaults); - module = get_or_create_module_from_index (module_index, module_name); - - /* Update the defaults. */ - modulemd_improvedmodule_set_defaults (module, defaults); - - /* Save it back to the index */ - g_hash_table_replace (module_index, - g_strdup (module_name), - modulemd_improvedmodule_copy (module)); - } - else if (MODULEMD_IS_TRANSLATION (item)) - { - /* Queue these up to process at the end, because we need to ensure - * that the streams they are associated with have been added first - */ - g_ptr_array_add (translations, - g_object_ref (MODULEMD_TRANSLATION (item))); - } - - g_clear_pointer (&module, g_object_unref); - g_clear_pointer (&module_name, g_free); - g_clear_pointer (&stream_name, g_free); - } - - /* Iterate through the translations and associate them to the appropriate - * streams. - */ - for (i = 0; i < translations->len; i++) - { - translation = g_ptr_array_index (translations, i); - stored_module = g_hash_table_lookup ( - module_index, modulemd_translation_peek_module_name (translation)); - if (!stored_module) - { - /* No streams of this module were processed, so ignore this set of - * translations. - */ - continue; - } - - retrieved_streams = modulemd_improvedmodule_get_streams_by_name ( - stored_module, modulemd_translation_peek_module_stream (translation)); - if (!retrieved_streams) - { - /* This stream of this module wasn't processed, so ignore this set of - * translations. - */ - continue; - } - - for (j = 0; j < retrieved_streams->len; j++) - { - retrieved_stream = g_ptr_array_index (retrieved_streams, j); - - /* Assign this translation to the object. - * Note: This will be ignored if there is a higher modified value already - * assigned to this object. - */ - modulemd_modulestream_set_translation (retrieved_stream, - translation); - - /* Save the updated stream back to the index */ - modulemd_improvedmodule_add_stream (stored_module, retrieved_stream); - } - g_clear_pointer (&retrieved_streams, g_ptr_array_unref); - } - - - return g_hash_table_ref (module_index); -} diff --git a/modulemd-1.8.16/modulemd/modulemd-validator.c b/modulemd-1.8.16/modulemd/modulemd-validator.c deleted file mode 100644 index 0f2dcd2..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-validator.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include "private/modulemd-yaml.h" - -#include -#include - -/* TODO: implement internationalization */ - -#ifndef _ -#ifdef HAVE_GETTEXT -#define _(STRING) gettext (STRING) -#else -#define _(STRING) STRING -#endif /* HAVE_GETTEXT */ -#endif /* _ */ - -enum mmd_verbosity -{ - MMD_QUIET = -1, - MMD_DEFAULT, - MMD_VERBOSE, - MMD_DEBUG -}; - -struct validator_options -{ - enum mmd_verbosity verbosity; - gchar **filenames; -}; - -struct validator_options options = { 0, NULL }; - -static gboolean -set_verbosity (const gchar *option_name, - const gchar *value, - gpointer data, - GError **error) -{ - g_autofree gchar *debugging_env = NULL; - if (g_strcmp0 ("-v", option_name) == 0 || - g_strcmp0 ("--verbose", option_name) == 0) - { - if (options.verbosity < MMD_VERBOSE) - { - options.verbosity = MMD_VERBOSE; - } - } - else if (g_strcmp0 ("--debug", option_name) == 0) - { - if (options.verbosity < MMD_DEBUG) - { - options.verbosity = MMD_DEBUG; - const gchar *old_debug = g_getenv ("G_MESSAGES_DEBUG"); - if (old_debug != NULL) - { - debugging_env = - g_strdup_printf ("%s,%s", old_debug, G_LOG_DOMAIN); - } - else - { - debugging_env = g_strdup (G_LOG_DOMAIN); - } - g_setenv ("G_MESSAGES_DEBUG", debugging_env, TRUE); - } - } - else if (g_strcmp0 ("-q", option_name) == 0 || - g_strcmp0 ("--quiet", option_name) == 0) - { - options.verbosity = MMD_QUIET; - } - else - { - /* We shouldn't be called under any other circumstance */ - g_set_error (error, - G_OPTION_ERROR, - G_OPTION_ERROR_FAILED, - "Called for unknown option \"%s\"", - option_name); - return FALSE; - } - return TRUE; -} - -static GOptionEntry entries[] = { { "quiet", - 'q', - G_OPTION_FLAG_NO_ARG, - G_OPTION_ARG_CALLBACK, - set_verbosity, - "Print no output", - NULL }, - { "verbose", - 'v', - G_OPTION_FLAG_NO_ARG, - G_OPTION_ARG_CALLBACK, - set_verbosity, - "Be verbose", - NULL }, - { "debug", - 0, - G_OPTION_FLAG_NO_ARG, - G_OPTION_ARG_CALLBACK, - set_verbosity, - "Output debugging messages", - NULL }, - { G_OPTION_REMAINING, - 0, - 0, - G_OPTION_ARG_FILENAME_ARRAY, - &options.filenames, - "Files to be validated", - NULL }, - { NULL } }; - -int -main (int argc, char *argv[]) -{ - const char *filename; - GOptionContext *context; - g_autoptr (GError) error = NULL; - gboolean all_valid = TRUE; - g_autoptr (GPtrArray) objects = NULL; - g_autoptr (GPtrArray) failures = NULL; - ModulemdSubdocument *doc = NULL; - setlocale (LC_ALL, ""); - - context = g_option_context_new ("FILES - Simple modulemd YAML validator"); - g_option_context_add_main_entries (context, entries, "modulemd-validator"); - if (!g_option_context_parse (context, &argc, &argv, &error)) - { - g_print ("option parsing failed: %s\n", error->message); - exit (1); - } - - if (!(options.filenames && options.filenames[0])) - { - fprintf (stderr, - "At least one file must be specified on the command-line\n"); - return EXIT_FAILURE; - } - - for (gsize i = 0; options.filenames[i]; i++) - { - filename = options.filenames[i]; - if (options.verbosity >= MMD_VERBOSE) - { - fprintf (stdout, "Validating %s\n", filename); - } - - objects = modulemd_objects_from_file_ext (filename, &failures, &error); - if (!objects) - { - if (options.verbosity >= MMD_DEFAULT) - { - fprintf (stderr, "%s was not valid YAML\n", filename); - fprintf (stdout, "ERROR: %s\n", error->message); - } - all_valid = FALSE; - } - - else if (failures->len > 0) - { - if (options.verbosity >= MMD_DEFAULT) - { - fprintf (stderr, "%s failed to validate\n", filename); - for (gsize i = 0; i < failures->len; i++) - { - doc = (ModulemdSubdocument *)g_ptr_array_index (failures, i); - fprintf (stdout, - "\nFailed subdocument (%s): \n%s\n", - modulemd_subdocument_get_gerror (doc)->message, - modulemd_subdocument_get_yaml (doc)); - } - } - all_valid = FALSE; - } - - g_clear_pointer (&objects, g_ptr_array_unref); - g_clear_pointer (&error, g_error_free); - } - - if (all_valid) - { - return EXIT_SUCCESS; - } - - return EXIT_FAILURE; -} diff --git a/modulemd-1.8.16/modulemd/modulemd-yaml-emitter-defaults.c b/modulemd-1.8.16/modulemd/modulemd-yaml-emitter-defaults.c deleted file mode 100644 index 528221a..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-yaml-emitter-defaults.c +++ /dev/null @@ -1,418 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include -#include -#include -#include -#include -#include "private/modulemd-yaml.h" -#include "private/modulemd-util.h" - -static gboolean -_emit_defaults_root (yaml_emitter_t *emitter, - ModulemdDefaults *defaults, - GError **error); - -static gboolean -_emit_defaults_data (yaml_emitter_t *emitter, - ModulemdDefaults *defaults, - GError **error); - -static gboolean -_emit_defaults_profiles (yaml_emitter_t *emitter, - ModulemdDefaults *defaults, - GError **error); - -static gboolean -_emit_defaults_intents (yaml_emitter_t *emitter, - ModulemdDefaults *defaults, - GError **error); - -static gboolean -_emit_intent (yaml_emitter_t *emitter, ModulemdIntent *intent, GError **error); - -static gboolean -_emit_intent_profiles (yaml_emitter_t *emitter, - ModulemdIntent *intent, - GError **error); - -gboolean -_emit_defaults (yaml_emitter_t *emitter, - ModulemdDefaults *defaults, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - - g_debug ("TRACE: entering _emit_defaults"); - yaml_document_start_event_initialize (&event, NULL, NULL, NULL, 0); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting document"); - - if (!_emit_defaults_root (emitter, defaults, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to process root"); - } - - yaml_document_end_event_initialize (&event, 0); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending document"); - - result = TRUE; - -error: - - g_debug ("TRACE: exiting _emit_defaults"); - return result; -} - -static gboolean -_emit_defaults_root (yaml_emitter_t *emitter, - ModulemdDefaults *defaults, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - guint64 mdversion = modulemd_defaults_peek_version (defaults); - const gchar *module_name = modulemd_defaults_peek_module_name (defaults); - gchar *name = NULL; - gchar *value = NULL; - - g_debug ("TRACE: entering _emit_defaults_root"); - if (mdversion < 1) - { - /* The mdversion is required and has not been specified. - * This module is invalid - */ - MMD_YAML_EMITTER_ERROR_RETURN ( - error, "Module Metadata version unspecified. Module is invalid."); - } - - if (!module_name || !(module_name[0])) - { - /* The module name is required and is missing */ - MMD_YAML_EMITTER_ERROR_RETURN (error, "Module name is missing"); - } - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting root mapping"); - - - /* document: modulemd */ - name = g_strdup ("document"); - value = g_strdup ("modulemd-defaults"); - MMD_YAML_EMIT_STR_STR_DICT (&event, name, value, YAML_PLAIN_SCALAR_STYLE); - - - /* The modulemd version */ - name = g_strdup ("version"); - value = g_strdup_printf ("%" PRIu64, mdversion); - MMD_YAML_EMIT_STR_STR_DICT (&event, name, value, YAML_PLAIN_SCALAR_STYLE); - - - /* The data */ - name = g_strdup ("data"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_defaults_data (emitter, defaults, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to emit data"); - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending root mapping"); - - result = TRUE; - -error: - g_clear_pointer (&name, g_free); - g_clear_pointer (&value, g_free); - - g_debug ("TRACE: exiting _emit_defaults_root"); - return result; -} - -static gboolean -_emit_defaults_data (yaml_emitter_t *emitter, - ModulemdDefaults *defaults, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - gchar *name = NULL; - gchar *value = NULL; - guint64 modified; - - g_debug ("TRACE: entering _emit_defaults_data"); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting data mapping"); - - - /* Module name */ - name = g_strdup ("module"); - value = modulemd_defaults_dup_module_name (defaults); - MMD_YAML_EMIT_STR_STR_DICT (&event, name, value, YAML_PLAIN_SCALAR_STYLE); - - /* Modified field */ - modified = modulemd_defaults_get_modified (defaults); - if (modified) - { - name = g_strdup ("modified"); - value = g_strdup_printf ("%" PRIu64, modified); - - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - /* Module default stream */ - value = modulemd_defaults_dup_default_stream (defaults); - if (value) - { - name = g_strdup ("stream"); - - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - - /* Profile Defaults */ - if (!_emit_defaults_profiles (emitter, defaults, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, - "Could not write out profile defaults"); - } - - /* Intents */ - - if (!_emit_defaults_intents (emitter, defaults, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Could not write out intents"); - } - - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending data mapping"); - - result = TRUE; -error: - g_clear_pointer (&name, g_free); - g_clear_pointer (&value, g_free); - - g_debug ("TRACE: exiting _emit_defaults_data"); - return result; -} - -static gboolean -_emit_defaults_profiles (yaml_emitter_t *emitter, - ModulemdDefaults *defaults, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - gchar *name = NULL; - GHashTable *profile_defaults = NULL; - GPtrArray *keys = NULL; - ModulemdSimpleSet *set = NULL; - - g_debug ("TRACE: entering _emit_defaults_profiles"); - - name = g_strdup ("profiles"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - /* Start the map */ - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting profile default mapping"); - - profile_defaults = modulemd_defaults_peek_profile_defaults (defaults); - keys = _modulemd_ordered_str_keys (profile_defaults, _modulemd_strcmp_sort); - for (gsize i = 0; i < keys->len; i++) - { - name = g_strdup (g_ptr_array_index (keys, i)); - set = g_hash_table_lookup (profile_defaults, name); - - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - _emit_modulemd_simpleset (emitter, set, YAML_FLOW_SEQUENCE_STYLE, error); - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending profile default mapping"); - - - result = TRUE; - -error: - g_clear_pointer (&name, g_free); - g_clear_pointer (&keys, g_ptr_array_unref); - - g_debug ("TRACE: exiting _emit_defaults_profiles"); - return result; -} - - -static gboolean -_emit_defaults_intents (yaml_emitter_t *emitter, - ModulemdDefaults *defaults, - GError **error) -{ - MODULEMD_INIT_TRACE - g_autofree gchar *name = NULL; - MMD_INIT_YAML_EVENT (event); - GHashTable *intents = NULL; - g_autoptr (GPtrArray) keys = NULL; - ModulemdIntent *intent = NULL; - - g_debug ("TRACE: entering _emit_defaults_intents"); - intents = modulemd_defaults_peek_intents (defaults); - if (!intents || !g_hash_table_size (intents)) - return TRUE; - - - name = g_strdup ("intents"); - MMD_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - /* Start the map */ - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - MMD_EMIT_WITH_EXIT ( - emitter, &event, error, "Error starting intents mapping"); - - keys = _modulemd_ordered_str_keys (intents, _modulemd_strcmp_sort); - - for (gsize i = 0; i < keys->len; i++) - { - name = g_strdup (g_ptr_array_index (keys, i)); - intent = g_hash_table_lookup (intents, name); - MMD_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_intent (emitter, intent, error)) - return FALSE; - } - - - /* End the map */ - yaml_mapping_end_event_initialize (&event); - MMD_EMIT_WITH_EXIT (emitter, &event, error, "Error ending intents mapping"); - - return TRUE; -} - - -static gboolean -_emit_intent (yaml_emitter_t *emitter, ModulemdIntent *intent, GError **error) -{ - gboolean result = FALSE; - g_autofree gchar *name = NULL; - g_autofree gchar *value = NULL; - yaml_event_t event; - - g_debug ("TRACE: entering _emit_intent"); - - /* Start the map */ - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting intent mapping"); - - /* Emit the default stream, if any */ - value = modulemd_intent_dup_default_stream (intent); - if (value) - { - name = g_strdup ("stream"); - - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - if (!_emit_intent_profiles (emitter, intent, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW ( - error, "Could not write out intent profile defaults"); - } - - - /* End the map */ - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending intents mapping"); - - result = TRUE; -error: - yaml_event_delete (&event); - - g_debug ("TRACE: exiting _emit_intent"); - return result; -} - -static gboolean -_emit_intent_profiles (yaml_emitter_t *emitter, - ModulemdIntent *intent, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - gchar *name = NULL; - GHashTable *profile_defaults = NULL; - GPtrArray *keys = NULL; - ModulemdSimpleSet *set = NULL; - - g_debug ("TRACE: entering _emit_intent_profiles"); - - name = g_strdup ("profiles"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - /* Start the map */ - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting profile default mapping"); - - profile_defaults = modulemd_intent_peek_profile_defaults (intent); - keys = _modulemd_ordered_str_keys (profile_defaults, _modulemd_strcmp_sort); - for (gsize i = 0; i < keys->len; i++) - { - name = g_strdup (g_ptr_array_index (keys, i)); - set = g_hash_table_lookup (profile_defaults, name); - - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - _emit_modulemd_simpleset (emitter, set, YAML_FLOW_SEQUENCE_STYLE, error); - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending intent profile default mapping"); - - - result = TRUE; - -error: - g_clear_pointer (&name, g_free); - g_clear_pointer (&keys, g_ptr_array_unref); - - g_debug ("TRACE: exiting _emit_intent_profiles"); - return result; -} diff --git a/modulemd-1.8.16/modulemd/modulemd-yaml-emitter-modulemd.c b/modulemd-1.8.16/modulemd/modulemd-yaml-emitter-modulemd.c deleted file mode 100644 index 43fbf8e..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-yaml-emitter-modulemd.c +++ /dev/null @@ -1,1551 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include -#include -#include -#include -#include -#include "private/modulemd-yaml.h" -#include "private/modulemd-util.h" - -static gboolean -_emit_modulemd_root (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error); -static gboolean -_emit_modulemd_data (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error); -static gboolean -_emit_modulemd_servicelevels (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error); -static gboolean -_emit_modulemd_servicelevel_entry (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - gchar *key, - ModulemdServiceLevel *sl, - GError **error); -static gboolean -_emit_modulemd_licenses (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error); -static gboolean -_emit_modulemd_xmd (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error); -static gboolean -_emit_modulemd_deps_v1 (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error); -static gboolean -_emit_modulemd_deps_v2 (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error); - -static gboolean -_emit_modulemd_refs (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error); -static gboolean -_emit_modulemd_profiles (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error); -static gboolean -_emit_modulemd_api (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error); -static gboolean -_emit_modulemd_filters (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error); -static gboolean -_emit_modulemd_buildopts (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error); - -static gboolean -_emit_modulemd_rpm_buildopts (yaml_emitter_t *emitter, - ModulemdBuildopts *buildopts, - GError **error); - -static gboolean -_emit_modulemd_components (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error); -static gboolean -_emit_modulemd_artifacts (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error); - - -gboolean -_emit_modulestream (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - - g_debug ("TRACE: entering _emit_modulemd"); - yaml_document_start_event_initialize (&event, NULL, NULL, NULL, 0); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting document"); - - if (!_emit_modulemd_root (emitter, modulestream, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to process root"); - } - - yaml_document_end_event_initialize (&event, 0); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending document"); - - result = TRUE; - -error: - - g_debug ("TRACE: exiting _emit_modulemd"); - return result; -} - -static gboolean -_emit_modulemd_root (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - guint64 mdversion = modulemd_modulestream_get_mdversion (modulestream); - gchar *name = NULL; - gchar *value = NULL; - - g_debug ("TRACE: entering _emit_modulemd_root"); - if (mdversion < 1) - { - /* The mdversion is required and has not been specified. - * This module is invalid - */ - MMD_YAML_EMITTER_ERROR_RETURN ( - error, "Module Metadata version unspecified. Module is invalid."); - } - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting root mapping"); - - - /* document: modulemd */ - name = g_strdup ("document"); - value = g_strdup ("modulemd"); - MMD_YAML_EMIT_STR_STR_DICT (&event, name, value, YAML_PLAIN_SCALAR_STYLE); - - - /* The modulemd version */ - name = g_strdup ("version"); - value = g_strdup_printf ("%" PRIu64, mdversion); - MMD_YAML_EMIT_STR_STR_DICT (&event, name, value, YAML_PLAIN_SCALAR_STYLE); - - - /* The data */ - name = g_strdup ("data"); - - yaml_scalar_event_initialize (&event, - NULL, - NULL, - (yaml_char_t *)name, - (int)strlen (name), - 1, - 1, - YAML_PLAIN_SCALAR_STYLE); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error writing data"); - g_clear_pointer (&name, g_free); - - if (!_emit_modulemd_data (emitter, modulestream, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to emit data"); - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending root mapping"); - - result = TRUE; - -error: - g_free (name); - g_free (value); - - g_debug ("TRACE: exiting _emit_modulemd_root"); - return result; -} - -static gboolean -_emit_modulemd_data (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - gchar *name = NULL; - gchar *value = NULL; - guint64 version = 0; - const GDate *eol; - - g_debug ("TRACE: entering _emit_modulemd_data"); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting data mapping"); - - - /* Module name */ - value = modulemd_modulestream_get_name (modulestream); - if (value) - { - name = g_strdup ("name"); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - - /* Module stream */ - value = modulemd_modulestream_get_stream (modulestream); - if (value) - { - name = g_strdup ("stream"); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - - /* Module version */ - version = modulemd_modulestream_get_version (modulestream); - if (version) - { - name = g_strdup ("version"); - value = g_strdup_printf ("%" PRIu64, version); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - /* Module Context */ - value = modulemd_modulestream_get_context (modulestream); - if (value) - { - name = g_strdup ("context"); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - - /* Module Artifact Architecture */ - value = modulemd_modulestream_get_arch (modulestream); - if (value) - { - name = g_strdup ("arch"); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - - /* Module summary */ - value = modulemd_modulestream_get_summary (modulestream); - if (!value) - { - /* Summary is mandatory */ - MMD_YAML_EMITTER_ERROR_RETURN (error, - "Missing required option data.summary"); - } - name = g_strdup ("summary"); - MMD_YAML_EMIT_STR_STR_DICT (&event, name, value, YAML_PLAIN_SCALAR_STYLE); - - - /* Module description */ - value = modulemd_modulestream_get_description (modulestream); - if (!value) - { - /* Description is mandatory */ - MMD_YAML_EMITTER_ERROR_RETURN ( - error, "Missing required option data.description"); - } - name = g_strdup ("description"); - MMD_YAML_EMIT_STR_STR_DICT (&event, name, value, YAML_FOLDED_SCALAR_STYLE); - - /* Module EOL (obsolete */ - - if (modulemd_modulestream_get_mdversion (modulestream) == 1) - { - /* EOL is removed from mdversion 2+ */ - eol = modulemd_modulestream_peek_eol (modulestream); - if (eol) - { - name = g_strdup ("eol"); - value = g_strdup_printf ("%.2u-%.2u-%.2u", - g_date_get_year (eol), - g_date_get_month (eol), - g_date_get_day (eol)); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - } - - /* Module Service Levels */ - if (!_emit_modulemd_servicelevels (emitter, modulestream, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to emit service levels"); - } - - /* Module Licenses */ - if (!_emit_modulemd_licenses (emitter, modulestream, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to emit licenses"); - } - - - /* Extensible Metadata Block */ - if (!_emit_modulemd_xmd (emitter, modulestream, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to emit xmd"); - } - - - /* Dependencies */ - if (modulemd_modulestream_get_mdversion (modulestream) == 1) - { - if (!_emit_modulemd_deps_v1 (emitter, modulestream, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to emit dependencies"); - } - } - else - { - if (!_emit_modulemd_deps_v2 (emitter, modulestream, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to emit dependencies"); - } - } - - /* References */ - if (!_emit_modulemd_refs (emitter, modulestream, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to emit references"); - } - - - /* Profiles */ - if (!_emit_modulemd_profiles (emitter, modulestream, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to emit references"); - } - - - /* API */ - if (!_emit_modulemd_api (emitter, modulestream, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to emit API"); - } - - - /* Filters */ - if (!_emit_modulemd_filters (emitter, modulestream, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to emit filters"); - } - - - /* Build options */ - if (!_emit_modulemd_buildopts (emitter, modulestream, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to emit buildopts"); - } - - - /* Components */ - if (!_emit_modulemd_components (emitter, modulestream, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to emit buildopts"); - } - - - /* Artifacts */ - if (!_emit_modulemd_artifacts (emitter, modulestream, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Failed to emit buildopts"); - } - - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending data mapping"); - - result = TRUE; -error: - g_free (name); - g_free (value); - - g_debug ("TRACE: exiting _emit_modulemd_data"); - return result; -} - -static gboolean -_emit_modulemd_servicelevels (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - gchar *name = NULL; - gchar *key; - g_autoptr (GHashTable) servicelevels = NULL; - ModulemdServiceLevel *sl = NULL; - GPtrArray *keys = NULL; - - g_debug ("TRACE: entering _emit_modulemd_servicelevels"); - - servicelevels = modulemd_modulestream_get_servicelevels (modulestream); - - if (!servicelevels || g_hash_table_size (servicelevels) < 1) - { - /* No profiles for this module. */ - result = TRUE; - goto error; - } - - name = g_strdup ("servicelevels"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting servicelevel mapping"); - - keys = _modulemd_ordered_str_keys (servicelevels, _modulemd_strcmp_sort); - for (gsize i = 0; i < keys->len; i++) - { - key = g_ptr_array_index (keys, i); - sl = g_hash_table_lookup (servicelevels, key); - if (!_emit_modulemd_servicelevel_entry ( - emitter, modulestream, key, sl, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, - "Could not process service levels"); - } - } - g_clear_pointer (&keys, g_ptr_array_unref); - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending reference mapping"); - - result = TRUE; -error: - g_free (name); - if (keys) - { - g_ptr_array_unref (keys); - } - - g_debug ("TRACE: exiting _emit_modulemd_servicelevels"); - return result; -} - - -static gboolean -_emit_modulemd_servicelevel_entry (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - gchar *key, - ModulemdServiceLevel *sl, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - - gchar *name = NULL; - gchar *value = NULL; - const GDate *eol = modulemd_servicelevel_peek_eol (sl); - - name = g_strdup (key); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting servicelevel inner mapping"); - - /* EOL */ - if (eol && g_date_valid (eol)) - { - name = g_strdup ("eol"); - value = g_strdup_printf ("%.2u-%.2u-%.2u", - g_date_get_year (eol), - g_date_get_month (eol), - g_date_get_day (eol)); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending servicelevel inner mapping"); - - result = TRUE; -error: - g_free (name); - g_free (value); - - return result; -} - -static gboolean -_emit_modulemd_licenses (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - gchar *name = NULL; - g_autoptr (ModulemdSimpleSet) set = NULL; - - g_debug ("TRACE: entering _emit_modulemd_licenses"); - - name = g_strdup ("license"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting license mapping"); - - - /* Module Licenses */ - set = modulemd_modulestream_get_module_licenses (modulestream); - if (!set || modulemd_simpleset_size (set) < 1) - { - /* Module license is mandatory */ - MMD_YAML_EMITTER_ERROR_RETURN ( - error, "Missing required option data.license.module"); - } - name = g_strdup ("module"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_modulemd_simpleset ( - emitter, set, YAML_BLOCK_SEQUENCE_STYLE, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Error writing module licenses"); - } - g_clear_pointer (&set, g_object_unref); - - - /* Content licenses */ - set = modulemd_modulestream_get_content_licenses (modulestream); - if (set && modulemd_simpleset_size (set) > 0) - { - /* Content licenses are optional */ - name = g_strdup ("content"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_modulemd_simpleset ( - emitter, set, YAML_BLOCK_SEQUENCE_STYLE, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, - "Error writing module licenses"); - } - } - g_clear_pointer (&set, g_object_unref); - - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending license mapping"); - - result = TRUE; -error: - g_free (name); - - g_debug ("TRACE: exiting _emit_modulemd_licenses"); - return result; -} - -static gboolean -_emit_modulemd_xmd (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - gchar *name = NULL; - g_autoptr (GHashTable) htable = NULL; - - g_debug ("TRACE: entering _emit_modulemd_xmd"); - - htable = modulemd_modulestream_get_xmd (modulestream); - if (htable && g_hash_table_size (htable) > 0) - { - name = g_strdup ("xmd"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - /* Start the YAML mapping */ - if (!_emit_modulemd_variant_hashtable (emitter, htable, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, - "Error emitting variant hashtable"); - } - } - result = TRUE; -error: - g_free (name); - - g_debug ("TRACE: exiting _emit_modulemd_xmd"); - return result; -} - -static gboolean -_emit_modulemd_deps_v1 (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - gchar *name = NULL; - g_autoptr (GHashTable) buildrequires = NULL; - g_autoptr (GHashTable) requires = NULL; - - g_debug ("TRACE: entering _emit_modulemd_deps_v1"); - - buildrequires = modulemd_modulestream_get_buildrequires (modulestream); - requires = modulemd_modulestream_get_requires (modulestream); - if (!(buildrequires && g_hash_table_size (buildrequires) > 0) && - !(requires && g_hash_table_size (requires) > 0)) - { - /* No dependencies for this module. - * Unlikely, but not impossible - */ - result = TRUE; - goto error; - } - - name = g_strdup ("dependencies"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting dependency mapping"); - - if (buildrequires) - { - name = g_strdup ("buildrequires"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_modulemd_hashtable ( - emitter, buildrequires, YAML_PLAIN_SCALAR_STYLE, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, - "Error writing module build deps"); - } - } - - if (requires) - { - name = g_strdup ("requires"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_modulemd_hashtable ( - emitter, requires, YAML_PLAIN_SCALAR_STYLE, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, - "Error writing module runtime deps"); - } - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending dependency mapping"); - - result = TRUE; -error: - g_free (name); - - g_debug ("TRACE: exiting _emit_modulemd_deps_v1"); - return result; -} - -static gboolean -_modulemd_emit_dep_stream_mapping (yaml_emitter_t *emitter, - GHashTable *reqs, - GError **error); -static gboolean -_emit_modulemd_deps_v2 (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - gchar *name = NULL; - g_autoptr (GPtrArray) dependencies = NULL; - ModulemdDependencies *dep = NULL; - g_autoptr (GHashTable) reqs = NULL; - - g_debug ("TRACE: entering _emit_modulemd_deps_v2"); - - dependencies = modulemd_modulestream_get_dependencies (modulestream); - if (!(dependencies && dependencies->len > 0)) - { - /* Unlikely, but not impossible */ - result = TRUE; - goto error; - } - - name = g_strdup ("dependencies"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_sequence_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_SEQUENCE_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting dependency sequence"); - - - for (gsize i = 0; i < dependencies->len; i++) - { - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting internal dependency mapping"); - - dep = MODULEMD_DEPENDENCIES (g_ptr_array_index (dependencies, i)); - - /* Write out the BuildRequires first */ - reqs = modulemd_dependencies_dup_buildrequires (dep); - if (reqs && g_hash_table_size (reqs) > 0) - { - name = g_strdup ("buildrequires"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - if (!_modulemd_emit_dep_stream_mapping (emitter, reqs, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, - "Could not parse stream mapping"); - } - } - g_clear_pointer (&reqs, g_hash_table_unref); - - /* Then write out the Requires */ - reqs = modulemd_dependencies_dup_requires (dep); - if (reqs && g_hash_table_size (reqs) > 0) - { - name = g_strdup ("requires"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_modulemd_emit_dep_stream_mapping (emitter, reqs, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, - "Could not parse stream mapping"); - } - } - g_clear_pointer (&reqs, g_hash_table_unref); - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending internal dependency mapping"); - } - - yaml_sequence_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending dependency sequence"); - - result = TRUE; -error: - g_free (name); - - g_debug ("TRACE: exiting _emit_modulemd_deps_v2"); - return result; -} - -static gboolean -_modulemd_emit_dep_stream_mapping (yaml_emitter_t *emitter, - GHashTable *reqs, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - GPtrArray *keys; - gchar *name; - ModulemdSimpleSet *val; - - g_debug ("TRACE: entering _modulemd_emit_dep_stream_mapping"); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting dep stream mapping"); - - keys = _modulemd_ordered_str_keys (reqs, _modulemd_strcmp_sort); - - for (gsize i = 0; i < keys->len; i++) - { - name = g_strdup (g_ptr_array_index (keys, i)); - val = g_object_ref (g_hash_table_lookup (reqs, name)); - - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_modulemd_simpleset ( - emitter, val, YAML_FLOW_SEQUENCE_STYLE, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, - "Could not parse stream simpleset"); - } - g_object_unref (val); - } - g_ptr_array_unref (keys); - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending dep stream mapping"); - - result = TRUE; -error: - - g_debug ("TRACE: exiting _modulemd_emit_dep_stream_mapping"); - return result; -} - - -static gboolean -_emit_modulemd_refs (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - g_autofree gchar *name = NULL; - g_autofree gchar *community = NULL; - g_autofree gchar *documentation = NULL; - g_autofree gchar *tracker = NULL; - - g_debug ("TRACE: entering _emit_modulemd_refs"); - - community = modulemd_modulestream_get_community (modulestream); - documentation = modulemd_modulestream_get_documentation (modulestream); - tracker = modulemd_modulestream_get_tracker (modulestream); - - if (!(community || documentation || tracker)) - { - /* No references for this module. */ - result = TRUE; - goto error; - } - - name = g_strdup ("references"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting reference mapping"); - - if (community) - { - name = g_strdup ("community"); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, community, YAML_PLAIN_SCALAR_STYLE); - } - - if (documentation) - { - name = g_strdup ("documentation"); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, documentation, YAML_PLAIN_SCALAR_STYLE); - } - - if (tracker) - { - name = g_strdup ("tracker"); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, tracker, YAML_PLAIN_SCALAR_STYLE); - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending reference mapping"); - - result = TRUE; -error: - - g_debug ("TRACE: exiting _emit_modulemd_refs"); - return result; -} - -static gboolean -_emit_modulemd_profile_entry (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - gchar *key, - ModulemdProfile *profile, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - - g_autofree gchar *name = NULL; - g_autofree gchar *description = NULL; - g_autoptr (ModulemdSimpleSet) rpms = NULL; - - name = g_strdup (key); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting profile inner mapping"); - - /* Description */ - description = modulemd_profile_dup_description (profile); - if (description) - { - name = g_strdup ("description"); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, description, YAML_PLAIN_SCALAR_STYLE); - } - - /* RPMs */ - rpms = modulemd_profile_dup_rpms (profile); - if (rpms && modulemd_simpleset_size (rpms) > 0) - { - name = g_strdup ("rpms"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_modulemd_simpleset ( - emitter, rpms, YAML_BLOCK_SEQUENCE_STYLE, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Error writing profile rpms"); - } - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending profile inner mapping"); - - result = TRUE; -error: - return result; -} - -static gboolean -_emit_modulemd_profiles (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - gchar *name = NULL; - gchar *key; - g_autoptr (GHashTable) profiles = NULL; - ModulemdProfile *profile = NULL; - GPtrArray *keys = NULL; - - g_debug ("TRACE: entering _emit_modulemd_profiles"); - - profiles = modulemd_modulestream_get_profiles (modulestream); - - if (!(profiles && g_hash_table_size (profiles) > 0)) - { - /* No profiles for this module. */ - result = TRUE; - goto error; - } - - name = g_strdup ("profiles"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting profile mapping"); - - keys = _modulemd_ordered_str_keys (profiles, _modulemd_strcmp_sort); - for (gsize i = 0; i < keys->len; i++) - { - key = g_ptr_array_index (keys, i); - profile = g_hash_table_lookup (profiles, key); - if (!_emit_modulemd_profile_entry ( - emitter, modulestream, key, profile, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Could not process profiles"); - } - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending reference mapping"); - - result = TRUE; -error: - g_clear_pointer (&keys, g_ptr_array_unref); - g_clear_pointer (&name, g_free); - - g_debug ("TRACE: exiting _emit_modulemd_profiles"); - return result; -} - -static gboolean -_emit_modulemd_api (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - g_autofree gchar *name = NULL; - g_autoptr (ModulemdSimpleSet) api = NULL; - - g_debug ("TRACE: entering _emit_modulemd_api"); - api = modulemd_modulestream_get_rpm_api (modulestream); - - if (!(api && modulemd_simpleset_size (api) > 0)) - { - /* No API for this module */ - result = TRUE; - goto error; - } - - name = g_strdup ("api"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting API mapping"); - - name = g_strdup ("rpms"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_modulemd_simpleset ( - emitter, api, YAML_BLOCK_SEQUENCE_STYLE, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Error writing API rpms"); - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending API mapping"); - - result = TRUE; -error: - - g_debug ("TRACE: exiting _emit_modulemd_api"); - return result; -} - -static gboolean -_emit_modulemd_filters (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - g_autofree gchar *name = NULL; - g_autoptr (ModulemdSimpleSet) filters = NULL; - - g_debug ("TRACE: entering _emit_modulemd_filters"); - filters = modulemd_modulestream_get_rpm_filter (modulestream); - - if (!(filters && modulemd_simpleset_size (filters) > 0)) - { - /* No filters for this module */ - result = TRUE; - goto error; - } - - name = g_strdup ("filter"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting filter mapping"); - - name = g_strdup ("rpms"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_modulemd_simpleset ( - emitter, filters, YAML_BLOCK_SEQUENCE_STYLE, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Error writing filter rpms"); - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending filter mapping"); - - result = TRUE; -error: - - g_debug ("TRACE: exiting _emit_modulemd_filters"); - return result; -} - -static gboolean -_emit_modulemd_buildopts (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error) -{ - MODULEMD_INIT_TRACE - MMD_INIT_YAML_EVENT (event); - g_autofree gchar *name = NULL; - g_autofree gchar *rpm_macros = NULL; - g_autoptr (ModulemdSimpleSet) set = NULL; - g_autoptr (ModulemdBuildopts) buildopts = NULL; - - g_debug ("TRACE: entering _emit_modulemd_buildopts"); - buildopts = modulemd_modulestream_get_buildopts (modulestream); - if (!buildopts) - return TRUE; - - rpm_macros = modulemd_buildopts_get_rpm_macros (buildopts); - set = modulemd_buildopts_get_rpm_whitelist_simpleset (buildopts); - if (!rpm_macros && !set) - { - /* There is no content for buildopts, so suppress the section */ - return TRUE; - } - - name = g_strdup ("buildopts"); - MMD_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - MMD_EMIT_WITH_EXIT ( - emitter, &event, error, "Error starting buildopt mapping"); - - if (!_emit_modulemd_rpm_buildopts (emitter, buildopts, error)) - return FALSE; - - yaml_mapping_end_event_initialize (&event); - MMD_EMIT_WITH_EXIT (emitter, &event, error, "Error ending buildopt mapping"); - - - return TRUE; -} - -static gboolean -_emit_modulemd_rpm_buildopts (yaml_emitter_t *emitter, - ModulemdBuildopts *buildopts, - GError **error) -{ - MODULEMD_INIT_TRACE - MMD_INIT_YAML_EVENT (event); - g_autofree gchar *name = NULL; - g_autofree gchar *rpm_macros = NULL; - g_autoptr (ModulemdSimpleSet) set = NULL; - - name = g_strdup ("rpms"); - MMD_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - MMD_EMIT_WITH_EXIT ( - emitter, &event, error, "Error starting RPM buildopt mapping"); - - rpm_macros = modulemd_buildopts_get_rpm_macros (buildopts); - if (rpm_macros) - { - name = g_strdup ("macros"); - MMD_EMIT_STR_STR_DICT ( - &event, name, rpm_macros, YAML_LITERAL_SCALAR_STYLE); - } - - set = modulemd_buildopts_get_rpm_whitelist_simpleset (buildopts); - if (set) - { - name = g_strdup ("whitelist"); - MMD_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - if (!_emit_modulemd_simpleset ( - emitter, set, YAML_BLOCK_SEQUENCE_STYLE, error)) - return FALSE; - } - - yaml_mapping_end_event_initialize (&event); - MMD_EMIT_WITH_EXIT ( - emitter, &event, error, "Error ending RPM buildopt mapping"); - - return TRUE; -} - -static gboolean -_emit_modulemd_rpm_components (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - gchar *key, - ModulemdComponentRpm *rpm_component, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - g_autofree gchar *value = NULL; - guint64 buildorder; - ModulemdSimpleSet *set = NULL; - - gchar *name = g_strdup (key); - - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting RPM component inner mapping"); - - /* Rationale */ - value = - modulemd_component_dup_rationale ((MODULEMD_COMPONENT (rpm_component))); - if (!value) - { - MMD_YAML_EMITTER_ERROR_RETURN (error, - "Missing required option: rationale"); - } - name = g_strdup ("rationale"); - MMD_YAML_EMIT_STR_STR_DICT (&event, name, value, YAML_PLAIN_SCALAR_STYLE); - - /* Repository */ - value = modulemd_component_rpm_dup_repository (rpm_component); - if (value) - { - name = g_strdup ("repository"); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - /* Cache */ - value = modulemd_component_rpm_dup_cache (rpm_component); - if (value) - { - name = g_strdup ("cache"); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - /* Ref */ - value = modulemd_component_rpm_dup_ref (rpm_component); - if (value) - { - name = g_strdup ("ref"); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - /* Buildorder */ - buildorder = - modulemd_component_peek_buildorder (MODULEMD_COMPONENT (rpm_component)); - if (buildorder) - { - name = g_strdup ("buildorder"); - value = g_strdup_printf ("%" PRIu64, buildorder); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - /* Arches */ - set = modulemd_component_rpm_peek_arches (rpm_component); - if (set && modulemd_simpleset_size (set) > 0) - { - name = g_strdup ("arches"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_modulemd_simpleset ( - emitter, set, YAML_FLOW_SEQUENCE_STYLE, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, - "Error writing RPM component arches"); - } - } - - - /* Multilib */ - set = modulemd_component_rpm_peek_multilib (rpm_component); - if (set && modulemd_simpleset_size (set) > 0) - { - name = g_strdup ("multilib"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_modulemd_simpleset ( - emitter, set, YAML_FLOW_SEQUENCE_STYLE, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW ( - error, "Error writing RPM component multilib"); - } - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending RPM component inner mapping"); - - result = TRUE; -error: - return result; -} - -static gboolean -_emit_modulemd_module_components (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - gchar *key, - ModulemdComponentModule *module_component, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - g_autofree gchar *name = NULL; - g_autofree gchar *value = NULL; - guint64 buildorder; - - name = g_strdup (key); - - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting module component inner mapping"); - - /* Rationale */ - value = - modulemd_component_dup_rationale ((MODULEMD_COMPONENT (module_component))); - if (!value) - { - MMD_YAML_EMITTER_ERROR_RETURN (error, - "Missing required option: rationale"); - } - name = g_strdup ("rationale"); - MMD_YAML_EMIT_STR_STR_DICT (&event, name, value, YAML_PLAIN_SCALAR_STYLE); - - /* Repository */ - value = modulemd_component_module_dup_repository (module_component); - if (value) - { - name = g_strdup ("repository"); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - /* Ref */ - value = modulemd_component_module_dup_ref (module_component); - if (value) - { - name = g_strdup ("ref"); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - /* Buildorder */ - buildorder = - modulemd_component_peek_buildorder (MODULEMD_COMPONENT (module_component)); - if (buildorder) - { - name = g_strdup ("buildorder"); - value = g_strdup_printf ("%" PRIu64, buildorder); - MMD_YAML_EMIT_STR_STR_DICT ( - &event, name, value, YAML_PLAIN_SCALAR_STYLE); - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending module component inner mapping"); - - result = TRUE; -error: - - return result; -} - -static gboolean -_emit_modulemd_components (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - g_autofree gchar *name = NULL; - gchar *key; - ModulemdComponentRpm *rpm_component; - ModulemdComponentModule *module_component; - g_autoptr (GHashTable) rpm_components; - g_autoptr (GHashTable) module_components; - g_autoptr (GPtrArray) rpm_keys = NULL; - g_autoptr (GPtrArray) module_keys = NULL; - gsize i; - - g_debug ("TRACE: entering _emit_modulemd_components"); - - rpm_components = modulemd_modulestream_get_rpm_components (modulestream); - if (rpm_components && g_hash_table_size (rpm_components) < 1) - { - g_clear_pointer (&rpm_components, g_hash_table_unref); - } - - module_components = - modulemd_modulestream_get_module_components (modulestream); - if (module_components && g_hash_table_size (module_components) < 1) - { - g_clear_pointer (&module_components, g_hash_table_unref); - } - - if (!(rpm_components || module_components)) - { - /* Omit this section */ - result = TRUE; - goto error; - } - - name = g_strdup ("components"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting component mapping"); - - if (rpm_components) - { - name = g_strdup ("rpms"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting RPM component mapping"); - - rpm_keys = - _modulemd_ordered_str_keys (rpm_components, _modulemd_strcmp_sort); - for (i = 0; i < rpm_keys->len; i++) - { - key = g_ptr_array_index (rpm_keys, i); - rpm_component = g_hash_table_lookup (rpm_components, key); - if (!_emit_modulemd_rpm_components ( - emitter, modulestream, key, rpm_component, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW ( - error, "Could not process RPM components"); - } - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending RPM component mapping"); - } - - if (module_components) - { - name = g_strdup ("modules"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting module component mapping"); - - module_keys = - _modulemd_ordered_str_keys (module_components, _modulemd_strcmp_sort); - for (i = 0; i < module_keys->len; i++) - { - key = g_ptr_array_index (module_keys, i); - module_component = g_hash_table_lookup (module_components, key); - if (!_emit_modulemd_module_components ( - emitter, modulestream, key, module_component, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW ( - error, "Could not process module components"); - } - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending module component mapping"); - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending component mapping"); - - result = TRUE; -error: - - g_debug ("TRACE: exiting _emit_modulemd_components"); - return result; -} - -static gboolean -_emit_modulemd_artifacts (yaml_emitter_t *emitter, - ModulemdModuleStream *modulestream, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - g_autofree gchar *name = NULL; - g_autoptr (ModulemdSimpleSet) artifacts = NULL; - - g_debug ("TRACE: entering _emit_modulemd_artifacts"); - - artifacts = modulemd_modulestream_get_rpm_artifacts (modulestream); - if (!(artifacts && modulemd_simpleset_size (artifacts) > 0)) - { - /* No artifacts for this module */ - result = TRUE; - goto error; - } - - name = g_strdup ("artifacts"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting artifact mapping"); - - name = g_strdup ("rpms"); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_modulemd_simpleset ( - emitter, artifacts, YAML_BLOCK_SEQUENCE_STYLE, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Error writing artifact rpms"); - } - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending artifact mapping"); - - result = TRUE; -error: - - g_debug ("TRACE: exiting _emit_modulemd_artifacts"); - return result; -} diff --git a/modulemd-1.8.16/modulemd/modulemd-yaml-emitter-translation.c b/modulemd-1.8.16/modulemd/modulemd-yaml-emitter-translation.c deleted file mode 100644 index d5a3827..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-yaml-emitter-translation.c +++ /dev/null @@ -1,290 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include -#include -#include -#include -#include -#include "private/modulemd-yaml.h" -#include "private/modulemd-util.h" - - -static gboolean -_emit_translation_root (yaml_emitter_t *emitter, - ModulemdTranslation *translation, - GError **error); - -static gboolean -_emit_translation_data (yaml_emitter_t *emitter, - ModulemdTranslation *translation, - GError **error); - -static gboolean -_emit_translation_entries (yaml_emitter_t *emitter, - ModulemdTranslation *translation, - GError **error); - -static gboolean -_emit_translation_entry (yaml_emitter_t *emitter, - ModulemdTranslationEntry *entry, - GError **error); - - -gboolean -_emit_translation (yaml_emitter_t *emitter, - ModulemdTranslation *translation, - GError **error) -{ - MODULEMD_INIT_TRACE - MMD_INIT_YAML_EVENT (event); - - yaml_document_start_event_initialize (&event, NULL, NULL, NULL, 0); - MMD_EMIT_WITH_EXIT (emitter, &event, error, "Error starting document"); - - if (!_emit_translation_root (emitter, translation, error)) - return FALSE; - - yaml_document_end_event_initialize (&event, 0); - MMD_EMIT_WITH_EXIT (emitter, &event, error, "Error ending document"); - - return TRUE; -} - - -static gboolean -_emit_translation_root (yaml_emitter_t *emitter, - ModulemdTranslation *translation, - GError **error) -{ - MODULEMD_INIT_TRACE - MMD_INIT_YAML_EVENT (event); - guint64 mdversion = modulemd_translation_get_mdversion (translation); - const gchar *module_name = - modulemd_translation_peek_module_name (translation); - const gchar *module_stream = - modulemd_translation_peek_module_stream (translation); - guint64 modified = modulemd_translation_get_modified (translation); - g_autofree gchar *name = NULL; - g_autofree gchar *value = NULL; - - if (mdversion < 1) - { - /* The mdversion is required and has not been specified. - * This translatino is invalid - */ - MMD_EMITTER_SET_ERROR ( - error, "Metadata version unspecified. Translation is invalid."); - return FALSE; - } - - if (!module_name || !(module_name[0])) - { - /* The module name is required and is missing */ - MMD_EMITTER_SET_ERROR (error, "Module name is missing"); - return FALSE; - } - - if (!module_stream || !(module_stream[0])) - { - /* The module stream is required and is missing */ - MMD_EMITTER_SET_ERROR (error, "Module stream is missing"); - return FALSE; - } - - if (modified < 1) - { - /* The modified time is required and has not been specified. - * This translation is invalid - */ - MMD_EMITTER_SET_ERROR ( - error, "Modified value unspecified. Translation is invalid."); - return FALSE; - } - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - MMD_EMIT_WITH_EXIT (emitter, &event, error, "Error starting root mapping"); - - - /* Emit document: modulemd-translations */ - name = g_strdup ("document"); - value = g_strdup ("modulemd-translations"); - MMD_EMIT_STR_STR_DICT (&event, name, value, YAML_PLAIN_SCALAR_STYLE); - - /* Emit the metadata version */ - name = g_strdup ("version"); - value = g_strdup_printf ("%" PRIu64, mdversion); - MMD_EMIT_STR_STR_DICT (&event, name, value, YAML_PLAIN_SCALAR_STYLE); - - /* Emit the data section */ - name = g_strdup ("data"); - MMD_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_translation_data (emitter, translation, error)) - return FALSE; - - - yaml_mapping_end_event_initialize (&event); - MMD_EMIT_WITH_EXIT (emitter, &event, error, "Error ending root mapping"); - - return TRUE; -} - - -static gboolean -_emit_translation_data (yaml_emitter_t *emitter, - ModulemdTranslation *translation, - GError **error) -{ - MODULEMD_INIT_TRACE - MMD_INIT_YAML_EVENT (event); - g_autofree gchar *name = NULL; - g_autofree gchar *value = NULL; - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - MMD_EMIT_WITH_EXIT (emitter, &event, error, "Error starting data mapping"); - - /* Module Name */ - name = g_strdup ("module"); - value = modulemd_translation_get_module_name (translation); - MMD_EMIT_STR_STR_DICT (&event, name, value, YAML_PLAIN_SCALAR_STYLE); - - /* Module Stream */ - name = g_strdup ("stream"); - value = modulemd_translation_get_module_stream (translation); - MMD_EMIT_STR_STR_DICT (&event, name, value, YAML_PLAIN_SCALAR_STYLE); - - /* Modified */ - name = g_strdup ("modified"); - value = g_strdup_printf ("%" PRIu64, - modulemd_translation_get_modified (translation)); - MMD_EMIT_STR_STR_DICT (&event, name, value, YAML_PLAIN_SCALAR_STYLE); - - - /* Translations */ - name = g_strdup ("translations"); - MMD_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_translation_entries (emitter, translation, error)) - return FALSE; - - yaml_mapping_end_event_initialize (&event); - MMD_EMIT_WITH_EXIT (emitter, &event, error, "Error ending data mapping"); - - return TRUE; -} - - -static gboolean -_emit_translation_entries (yaml_emitter_t *emitter, - ModulemdTranslation *translation, - GError **error) -{ - MODULEMD_INIT_TRACE - MMD_INIT_YAML_EVENT (event); - g_autofree gchar *name = NULL; - g_autoptr (GPtrArray) keys = NULL; - g_autoptr (ModulemdTranslationEntry) entry = NULL; - - keys = modulemd_translation_get_locales (translation); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - MMD_EMIT_WITH_EXIT ( - emitter, &event, error, "Error starting translations mapping"); - - for (gsize i = 0; i < keys->len; i++) - { - entry = modulemd_translation_get_entry_by_locale ( - translation, g_ptr_array_index (keys, i)); - - /* Add the locale */ - name = modulemd_translation_entry_get_locale (entry); - MMD_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_translation_entry (emitter, entry, error)) - return FALSE; - - g_clear_pointer (&entry, g_object_unref); - } - - yaml_mapping_end_event_initialize (&event); - MMD_EMIT_WITH_EXIT ( - emitter, &event, error, "Error ending translations mapping"); - return TRUE; -} - -static gboolean -_emit_translation_entry (yaml_emitter_t *emitter, - ModulemdTranslationEntry *entry, - GError **error) -{ - MODULEMD_INIT_TRACE - MMD_INIT_YAML_EVENT (event); - g_autofree gchar *name = NULL; - g_autofree gchar *value = NULL; - g_autoptr (GHashTable) profile_descriptions = NULL; - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - MMD_EMIT_WITH_EXIT ( - emitter, &event, error, "Error starting translation entry mapping"); - - name = g_strdup ("summary"); - value = modulemd_translation_entry_get_summary (entry); - if (!value) - { - g_set_error (error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_MISSING_REQUIRED, - "Translation entry missing summary field."); - return FALSE; - } - MMD_EMIT_STR_STR_DICT (&event, name, value, YAML_PLAIN_SCALAR_STYLE); - - name = g_strdup ("description"); - value = modulemd_translation_entry_get_description (entry); - if (!value) - { - g_set_error (error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_MISSING_REQUIRED, - "Translation entry missing description field."); - return FALSE; - } - MMD_EMIT_STR_STR_DICT (&event, name, value, YAML_PLAIN_SCALAR_STYLE); - - /* Profile Descriptions */ - profile_descriptions = - modulemd_translation_entry_get_all_profile_descriptions (entry); - if (profile_descriptions) - { - name = g_strdup ("profiles"); - MMD_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - if (!_emit_modulemd_hashtable ( - emitter, profile_descriptions, YAML_PLAIN_SCALAR_STYLE, error)) - { - return FALSE; - } - } - - yaml_mapping_end_event_initialize (&event); - MMD_EMIT_WITH_EXIT ( - emitter, &event, error, "Error ending translation entry mapping"); - - return TRUE; -} diff --git a/modulemd-1.8.16/modulemd/modulemd-yaml-emitter.c b/modulemd-1.8.16/modulemd/modulemd-yaml-emitter.c deleted file mode 100644 index b643b99..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-yaml-emitter.c +++ /dev/null @@ -1,312 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include -#include -#include -#include -#include -#include "private/modulemd-private.h" -#include "private/modulemd-yaml.h" -#include "private/modulemd-util.h" - -gboolean -emit_yaml (yaml_emitter_t *emitter, GPtrArray *objects, GError **error); - -gboolean -emit_yaml_file (GPtrArray *objects, const gchar *path, GError **error) -{ - MODULEMD_INIT_TRACE - g_autoptr (FILE) yaml_file = NULL; - g_auto (yaml_emitter_t) emitter; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_return_val_if_fail (objects, FALSE); - - yaml_emitter_initialize (&emitter); - - errno = 0; - yaml_file = g_fopen (path, "wb"); - if (!yaml_file) - { - g_set_error (error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_OPEN, - "Failed to open file: %s", - g_strerror (errno)); - return FALSE; - } - - yaml_emitter_set_output_file (&emitter, yaml_file); - - if (!emit_yaml (&emitter, objects, error)) - { - return FALSE; - } - - return TRUE; -} - -gboolean -emit_yaml_string (GPtrArray *objects, gchar **_yaml, GError **error) -{ - MODULEMD_INIT_TRACE - g_auto (yaml_emitter_t) emitter; - g_autoptr (modulemd_yaml_string) yaml_string = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_return_val_if_fail (objects, FALSE); - - yaml_string = g_malloc0_n (1, sizeof (modulemd_yaml_string)); - - yaml_emitter_initialize (&emitter); - - yaml_emitter_set_output (&emitter, _write_yaml_string, (void *)yaml_string); - - if (!emit_yaml (&emitter, objects, error)) - { - return FALSE; - } - - /* Steal the final string to return */ - *_yaml = yaml_string->str; - yaml_string->str = NULL; - - return TRUE; -} - - -gboolean -emit_yaml (yaml_emitter_t *emitter, GPtrArray *objects, GError **error) -{ - MMD_INIT_YAML_EVENT (event); - GObject *object = NULL; - - yaml_emitter_set_unicode (emitter, TRUE); - - yaml_stream_start_event_initialize (&event, YAML_UTF8_ENCODING); - MMD_EMIT_WITH_EXIT (emitter, &event, error, "Error starting stream"); - - for (gsize i = 0; i < objects->len; i++) - { - object = g_ptr_array_index (objects, i); - - /* Write out the YAML */ - if (MODULEMD_IS_MODULE (object)) - { - if (!_emit_modulestream ( - emitter, - modulemd_module_peek_modulestream (MODULEMD_MODULE (object)), - error)) - { - g_debug ("Could not emit module stream YAML: %s", - (*error)->message); - return FALSE; - } - } - else if (MODULEMD_IS_MODULESTREAM (object)) - { - if (!_emit_modulestream ( - emitter, MODULEMD_MODULESTREAM (object), error)) - { - g_debug ("Could not emit YAML: %s", (*error)->message); - return FALSE; - } - } - else if (MODULEMD_IS_DEFAULTS (object)) - { - if (!_emit_defaults (emitter, MODULEMD_DEFAULTS (object), error)) - { - g_debug ("Could not emit YAML: %s", (*error)->message); - return FALSE; - } - } - else if (MODULEMD_IS_TRANSLATION (object)) - { - if (!_emit_translation ( - emitter, MODULEMD_TRANSLATION (object), error)) - { - g_debug ("Could not emit translation YAML: %s", - (*error)->message); - return FALSE; - } - } - /* Emitters for other types go here */ - /* else if (document->type == <...>) */ - else - { - /* Unknown document type */ - g_set_error (error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PARSE, - "Unknown document type: %s", - G_OBJECT_TYPE_NAME (object)); - return FALSE; - } - } - - yaml_stream_end_event_initialize (&event); - MMD_EMIT_WITH_EXIT (emitter, &event, error, "Error ending stream"); - - return TRUE; -} - - -gboolean -_emit_modulemd_simpleset (yaml_emitter_t *emitter, - ModulemdSimpleSet *set, - yaml_sequence_style_t style, - GError **error) -{ - gboolean result = FALSE; - gsize i; - yaml_event_t event; - gchar **array = modulemd_simpleset_dup (set); - gchar *item; - - g_debug ("TRACE: entering _emit_modulemd_simpleset"); - - yaml_sequence_start_event_initialize (&event, NULL, NULL, 1, style); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting simpleset sequence"); - - for (i = 0; array[i]; i++) - { - item = g_strdup (array[i]); - MMD_YAML_EMIT_SCALAR (&event, item, YAML_PLAIN_SCALAR_STYLE); - } - - yaml_sequence_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending simpleset sequence"); - - result = TRUE; -error: - for (i = 0; array[i]; i++) - { - g_free (array[i]); - } - g_free (array); - - g_debug ("TRACE: exiting _emit_modulemd_simpleset"); - return result; -} - - -gboolean -_emit_modulemd_hashtable (yaml_emitter_t *emitter, - GHashTable *htable, - yaml_scalar_style_t style, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - GPtrArray *keys; - GHashTableIter iter; - gpointer key, value; - gchar *name; - gchar *val; - - g_debug ("TRACE: entering _emit_modulemd_hashtable"); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting hashtable mapping"); - - keys = g_ptr_array_new_full (g_hash_table_size (htable), g_free); - - g_hash_table_iter_init (&iter, htable); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - g_ptr_array_add (keys, g_strdup ((const gchar *)key)); - } - g_ptr_array_sort (keys, _modulemd_strcmp_sort); - - - for (gsize i = 0; i < keys->len; i++) - { - name = g_strdup (g_ptr_array_index (keys, i)); - val = g_strdup (g_hash_table_lookup (htable, name)); - MMD_YAML_EMIT_STR_STR_DICT (&event, name, val, style); - } - g_ptr_array_unref (keys); - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending hashtable mapping"); - - result = TRUE; -error: - - g_debug ("TRACE: exiting _emit_modulemd_hashtable"); - return result; -} - -gboolean -_emit_modulemd_variant_hashtable (yaml_emitter_t *emitter, - GHashTable *htable, - GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - GPtrArray *keys; - GHashTableIter iter; - gpointer key, value; - gchar *name; - GVariant *val; - - g_debug ("TRACE: entering _emit_modulemd_variant_hashtable"); - - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting variant hashtable mapping"); - - keys = g_ptr_array_new_full (g_hash_table_size (htable), g_free); - - g_hash_table_iter_init (&iter, htable); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - g_ptr_array_add (keys, g_strdup ((const gchar *)key)); - } - g_ptr_array_sort (keys, _modulemd_strcmp_sort); - - - for (gsize i = 0; i < keys->len; i++) - { - /* Write out the key as a scalar */ - name = g_strdup (g_ptr_array_index (keys, i)); - val = g_hash_table_lookup (htable, name); - MMD_YAML_EMIT_SCALAR (&event, name, YAML_PLAIN_SCALAR_STYLE); - - /* Write out the values as a variant, recursing as needed */ - if (!emit_yaml_variant (emitter, val, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, - "Error writing arbitrary mapping"); - } - } - g_ptr_array_unref (keys); - - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending variant hashtable mapping"); - - result = TRUE; -error: - - g_debug ("TRACE: exiting _emit_modulemd_variant_hashtable"); - return result; -} diff --git a/modulemd-1.8.16/modulemd/modulemd-yaml-parser-defaults.c b/modulemd-1.8.16/modulemd/modulemd-yaml-parser-defaults.c deleted file mode 100644 index 56cd9cc..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-yaml-parser-defaults.c +++ /dev/null @@ -1,667 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include -#include -#include -#include -#include "private/modulemd-yaml.h" -#include "private/modulemd-util.h" - -#define _yaml_parser_defaults_recurse_down(fn) \ - do \ - { \ - result = fn (defaults, parser, error); \ - if (!result) \ - { \ - goto error; \ - } \ - } \ - while (0) - -static gboolean -_parse_defaults_data (ModulemdDefaults *defaults, - yaml_parser_t *parser, - GError **error); -static gboolean -_parse_defaults_profiles (ModulemdDefaults *defaults, - yaml_parser_t *parser, - GError **error); - -static gboolean -_parse_defaults_intents (ModulemdDefaults *defaults, - yaml_parser_t *parser, - GError **error); -static gboolean -_parse_intent (yaml_parser_t *parser, - const gchar *name, - ModulemdIntent **intent, - GError **error); - -static gboolean -_parse_intent_profiles (ModulemdIntent *intent, - yaml_parser_t *parser, - GError **error); - - -gboolean -_parse_defaults (yaml_parser_t *parser, - GObject **object, - guint64 version, - GError **error) -{ - MMD_INIT_YAML_EVENT (event); - MMD_INIT_YAML_EVENT (value_event); - gboolean done = FALSE; - gboolean result = FALSE; - const gchar *module_name = NULL; - guint64 mdversion; - ModulemdDefaults *defaults = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_defaults"); - - defaults = modulemd_defaults_new (); - - /* Use the pre-processed version */ - if (version && version <= MD_DEFAULTS_VERSION_LATEST) - { - modulemd_defaults_set_version (defaults, version); - } - else - { - /* No mdversion was discovered during pre-processing */ - MMD_YAML_ERROR_RETURN (error, "Unknown modulemd defaults version"); - } - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the main document content */ - break; - - case YAML_MAPPING_END_EVENT: - /* This is the end of the main document content. */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - - /* Handle "document: modulemd-defaults" */ - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "document")) - { - g_debug ("TRACE: root entry [document]"); - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT || - g_strcmp0 ((const gchar *)value_event.data.scalar.value, - "modulemd-defaults")) - { - yaml_event_delete (&value_event); - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Document type mismatch"); - } - yaml_event_delete (&value_event); - } - /* Record the modulemd version for the parser */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "version")) - { - g_debug ("TRACE: root entry [version]"); - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Unknown modulemd version"); - } - - mdversion = g_ascii_strtoull ( - (const gchar *)value_event.data.scalar.value, NULL, 10); - yaml_event_delete (&value_event); - if (!mdversion) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unknown modulemd defaults version"); - } - - if (mdversion != version) - { - /* Preprocessing and real parser don't match! - * This should be impossible - */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, - event, - "ModuleMD defaults version doesn't match preprocessing"); - } - modulemd_defaults_set_version (defaults, mdversion); - } - - /* Process the data section */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "data")) - { - g_debug ("TRACE: root entry [data]"); - _yaml_parser_defaults_recurse_down (_parse_defaults_data); - } - - else - { - g_debug ("Unexpected key in root: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - } - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in root"); - break; - } - - yaml_event_delete (&event); - } - - - /* We need to validate some things once we have the complete content - * imported - */ - - /* Ensure that the module name is set */ - module_name = modulemd_defaults_peek_module_name (defaults); - if (!module_name || !(module_name[0])) - { - MMD_YAML_ERROR_RETURN (error, "Module name not specified"); - } - - *object = g_object_ref (G_OBJECT (defaults)); - result = TRUE; - -error: - g_clear_pointer (&defaults, g_object_unref); - - g_debug ("TRACE: exiting _parse_defaults"); - return result; -} - -static gboolean -_parse_defaults_data (ModulemdDefaults *defaults, - yaml_parser_t *parser, - GError **error) -{ - MMD_INIT_YAML_EVENT (event); - MMD_INIT_YAML_EVENT (value_event); - gboolean done = FALSE; - gboolean result = FALSE; - guint64 modified; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_debug ("TRACE: entering _parse_defaults_data"); - - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the data content. */ - break; - - case YAML_MAPPING_END_EVENT: - /* This is the end of the data content. */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - /* Module Name */ - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "module")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse module name"); - } - - modulemd_defaults_set_module_name ( - defaults, (const gchar *)value_event.data.scalar.value); - yaml_event_delete (&value_event); - } - - /* Modified field */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "modified")) - { - YAML_PARSER_PARSE_WITH_EXIT (parser, &value_event, error); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_SET_ERROR (error, "Failed to parse modified value"); - return FALSE; - } - - modified = g_ascii_strtoull ( - (const gchar *)value_event.data.scalar.value, NULL, 10); - yaml_event_delete (&value_event); - - if (!modified) - { - MMD_YAML_SET_ERROR (error, "Unknown modified version"); - return FALSE; - } - - modulemd_defaults_set_modified (defaults, modified); - } - - /* Module default stream */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "stream")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse module stream"); - } - - modulemd_defaults_set_default_stream ( - defaults, (const gchar *)value_event.data.scalar.value); - yaml_event_delete (&value_event); - } - - /* Profile defaults */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "profiles")) - { - _yaml_parser_defaults_recurse_down (_parse_defaults_profiles); - } - - /* Intents (Not currently supported) */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "intents")) - { - _yaml_parser_defaults_recurse_down (_parse_defaults_intents); - } - - /* Other keys */ - else - { - g_debug ("Unexpected key in data: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - } - break; - - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in data"); - break; - } - - yaml_event_delete (&event); - } - - result = TRUE; - -error: - if (!result) - { - g_clear_pointer (&defaults, g_object_unref); - } - - g_debug ("TRACE: exiting _parse_defaults_data"); - return result; -} - -static gboolean -_parse_defaults_profiles (ModulemdDefaults *defaults, - yaml_parser_t *parser, - GError **error) -{ - MMD_INIT_YAML_EVENT (event); - gboolean result = FALSE; - gboolean done = FALSE; - gboolean in_map = FALSE; - gchar *stream_name = NULL; - ModulemdSimpleSet *set = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_defaults_profiles"); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the profile content. */ - in_map = TRUE; - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the profile content */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - if (!in_map) - { - /* We got a scalar where we expected a map */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Malformed YAML in intent profiles"); - break; - } - - /* Each scalar event represents a profile */ - stream_name = g_strdup ((const gchar *)event.data.scalar.value); - - if (!_simpleset_from_sequence (parser, &set, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Invalid sequence"); - } - modulemd_defaults_assign_profiles_for_stream ( - defaults, stream_name, set); - g_clear_pointer (&set, g_object_unref); - g_clear_pointer (&stream_name, g_free); - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in default profiles"); - break; - } - yaml_event_delete (&event); - } - - result = TRUE; - -error: - g_clear_pointer (&set, g_object_unref); - g_clear_pointer (&stream_name, g_free); - g_debug ("TRACE: exiting _parse_defaults_profiles"); - return result; -} - - -static gboolean -_parse_defaults_intents (ModulemdDefaults *defaults, - yaml_parser_t *parser, - GError **error) -{ - MMD_INIT_YAML_EVENT (event); - gboolean in_map = FALSE; - gboolean result = FALSE; - gboolean done = FALSE; - g_autoptr (ModulemdIntent) intent = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_defaults_intents"); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the intent content. */ - in_map = TRUE; - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the intent content */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - if (!in_map) - { - /* We got a scalar where we expected a map */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Malformed YAML in intents"); - break; - } - - /* Each scalar event represents an intent */ - if (!_parse_intent (parser, - (const gchar *)event.data.scalar.value, - &intent, - error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Could not parse intent"); - break; - } - - modulemd_defaults_add_intent (defaults, intent); - g_clear_pointer (&intent, g_object_unref); - - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Malformed YAML in intents"); - break; - } - yaml_event_delete (&event); - } - - result = TRUE; - -error: - g_debug ("TRACE: exiting _parse_defaults_intents"); - return result; -} - -static gboolean -_parse_intent (yaml_parser_t *parser, - const gchar *name, - ModulemdIntent **intent, - GError **error) -{ - gboolean result = FALSE; - gboolean done = FALSE; - gboolean in_map = FALSE; - MMD_INIT_YAML_EVENT (event); - MMD_INIT_YAML_EVENT (value_event); - g_autoptr (ModulemdIntent) _intent = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_debug ("TRACE: entering _parse_intent"); - - _intent = modulemd_intent_new (name); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the intent content. */ - in_map = TRUE; - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the intent content */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - if (!in_map) - { - /* We got a scalar where we expected a map */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Malformed YAML in intents"); - break; - } - - /* Default Stream */ - - if (g_strcmp0 ("stream", (const gchar *)event.data.scalar.value) == - 0) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, - value_event, - "Failed to parse default module stream"); - } - - modulemd_intent_set_default_stream ( - _intent, (const gchar *)value_event.data.scalar.value); - - yaml_event_delete (&value_event); - } - else if (g_strcmp0 ("profiles", - (const gchar *)event.data.scalar.value) == 0) - { - if (!_parse_intent_profiles (_intent, parser, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Could not parse intent profiles"); - } - } - else - { - /* Unexpected key in the map */ - g_debug ("Unexpected key in intent: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - break; - } - - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Malformed YAML in intents"); - break; - } - yaml_event_delete (&event); - } - - result = TRUE; - if (intent) - { - *intent = g_object_ref (_intent); - } - -error: - g_debug ("TRACE: exiting _parse_intent"); - return result; -} - - -static gboolean -_parse_intent_profiles (ModulemdIntent *intent, - yaml_parser_t *parser, - GError **error) -{ - MMD_INIT_YAML_EVENT (event); - gboolean result = FALSE; - gboolean done = FALSE; - gboolean in_map = FALSE; - gchar *stream_name = NULL; - ModulemdSimpleSet *set = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_intent_profiles"); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the profile content. */ - in_map = TRUE; - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the profile content */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - if (!in_map) - { - /* We got a scalar where we expected a map */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Malformed YAML in intent profiles"); - break; - } - - /* Each scalar event represents a profile */ - stream_name = g_strdup ((const gchar *)event.data.scalar.value); - - if (!_simpleset_from_sequence (parser, &set, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Invalid sequence"); - } - modulemd_intent_assign_profiles_for_stream ( - intent, stream_name, set); - g_clear_pointer (&set, g_object_unref); - g_clear_pointer (&stream_name, g_free); - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in intent profiles"); - break; - } - yaml_event_delete (&event); - } - - result = TRUE; - -error: - g_clear_pointer (&set, g_object_unref); - g_clear_pointer (&stream_name, g_free); - g_debug ("TRACE: exiting _parse_intent_profiles"); - return result; -} diff --git a/modulemd-1.8.16/modulemd/modulemd-yaml-parser-modulemd.c b/modulemd-1.8.16/modulemd/modulemd-yaml-parser-modulemd.c deleted file mode 100644 index 24f5833..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-yaml-parser-modulemd.c +++ /dev/null @@ -1,2318 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include -#include -#include -#include -#include "private/modulemd-private.h" -#include "private/modulemd-yaml.h" -#include "private/modulemd-util.h" - - -enum ModulemdReqType -{ - MODULEMD_REQ_REQUIRES, - MODULEMD_REQ_BUILDREQUIRES -}; - -#define _yaml_parser_modulemd_recurse_down(fn) \ - do \ - { \ - if (!fn (modulestream, parser, error)) \ - { \ - goto error; \ - } \ - } \ - while (0) - -static gboolean -_parse_modulemd_data (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error); -static gboolean -_parse_modulemd_licenses (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error); -static gboolean -_parse_modulemd_xmd (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error); -static gboolean -_parse_modulemd_deps (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error); -static gboolean -_parse_modulemd_refs (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error); -static gboolean -_parse_modulemd_profiles (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error); -static gboolean -_parse_modulemd_profile (yaml_parser_t *parser, - const gchar *name, - ModulemdProfile **_profile, - GError **error); -static gboolean -_parse_modulemd_api (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error); -static gboolean -_parse_modulemd_filters (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error); -static gboolean -_parse_modulemd_buildopts (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error); -static gboolean -_parse_modulemd_rpm_buildopts (ModulemdBuildopts *buildopts, - yaml_parser_t *parser, - GError **error); -static gboolean -_parse_modulemd_components (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error); -static gboolean -_parse_modulemd_rpm_components (yaml_parser_t *parser, - GHashTable **_components, - GError **error); -static gboolean -_parse_modulemd_rpm_component (yaml_parser_t *parser, - const gchar *name, - ModulemdComponentRpm **_components, - GError **error); -static gboolean -_parse_modulemd_modulestream_components (yaml_parser_t *parser, - GHashTable **_components, - GError **error); -static gboolean -_parse_modulemd_modulestream_component (yaml_parser_t *parser, - const gchar *name, - ModulemdComponentModule **_components, - GError **error); -static gboolean -_parse_modulemd_artifacts (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error); -static gboolean -_parse_modulemd_servicelevels (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error); -static gboolean -_parse_modulemd_servicelevel (yaml_parser_t *parser, - const gchar *name, - ModulemdServiceLevel **_servicelevel, - GError **error); - -gboolean -_parse_module_stream (yaml_parser_t *parser, - GObject **object, - guint64 version, - GError **error) -{ - MMD_INIT_YAML_EVENT (event); - MMD_INIT_YAML_EVENT (value_event); - gboolean done = FALSE; - gboolean result = FALSE; - guint64 mdversion; - g_autoptr (ModulemdModuleStream) modulestream = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_module_stream"); - - modulestream = modulemd_modulestream_new (); - - /* Use the pre-processed mdversion */ - if (version && version <= MD_VERSION_LATEST) - { - modulemd_modulestream_set_mdversion (modulestream, version); - } - else - { - /* No mdversion was discovered during pre-processing */ - MMD_YAML_ERROR_RETURN (error, "Unknown modulemd version"); - } - - /* Parse until the end of this document */ - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the main document content. */ - break; - - case YAML_MAPPING_END_EVENT: - /* This is the end of the main document content. */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - - /* Handle "document: modulemd" */ - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "document")) - { - g_debug ("TRACE: root entry [document]"); - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT || - g_strcmp0 ((const gchar *)value_event.data.scalar.value, - "modulemd")) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Unknown document type"); - } - yaml_event_delete (&value_event); - } - - /* Record the modulemd version for the parser */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "version")) - { - g_debug ("TRACE: root entry [mdversion]"); - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Unknown modulemd version"); - } - - mdversion = g_ascii_strtoull ( - (const gchar *)value_event.data.scalar.value, NULL, 10); - if (!mdversion) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Unknown modulemd version"); - } - yaml_event_delete (&value_event); - - if (mdversion != version) - { - /* Preprocessing and real parser don't match! - * This should be impossible - */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, - event, - "ModuleMD version doesn't match preprocessing"); - } - modulemd_modulestream_set_mdversion (modulestream, mdversion); - } - - /* Process the data section */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "data")) - { - g_debug ("TRACE: root entry [data]"); - _yaml_parser_modulemd_recurse_down (_parse_modulemd_data); - } - - else - { - g_debug ("Unexpected key in root: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - } - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in root"); - break; - } - yaml_event_delete (&event); - } - - result = TRUE; - *object = g_object_ref ((GObject *)modulestream); - -error: - g_debug ("TRACE: exiting _parse_module_stream"); - return result; -} - -static gboolean -_parse_modulemd_data (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - MMD_INIT_YAML_EVENT (value_event); - gboolean done = FALSE; - guint64 version; - GDate *eol = NULL; - char *endptr = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_debug ("TRACE: entering _parse_modulemd_data"); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the data content. */ - break; - - case YAML_MAPPING_END_EVENT: - /* This is the end of the data content. */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - /* Module name */ - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "name")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse module name"); - } - - modulemd_modulestream_set_name ( - modulestream, (const gchar *)value_event.data.scalar.value); - yaml_event_delete (&value_event); - } - - /* Module stream */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "stream")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse module stream"); - } - - modulemd_modulestream_set_stream ( - modulestream, (const gchar *)value_event.data.scalar.value); - yaml_event_delete (&value_event); - } - - /* Module version */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "version")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse module version"); - } - - version = g_ascii_strtoull ( - (const gchar *)value_event.data.scalar.value, &endptr, 10); - if (!version && - endptr == (const gchar *)value_event.data.scalar.value) - { - /* Could not convert to an integer */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Unknown module version"); - } - - modulemd_modulestream_set_version (modulestream, version); - yaml_event_delete (&value_event); - } - - /* Module Context */ - - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "context")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse module context"); - } - - modulemd_modulestream_set_context ( - modulestream, (const gchar *)value_event.data.scalar.value); - yaml_event_delete (&value_event); - } - - /* Module Artifact Architecture */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "arch")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, - value_event, - "Failed to parse module artifact architecture"); - } - - modulemd_modulestream_set_arch ( - modulestream, (const gchar *)value_event.data.scalar.value); - - yaml_event_delete (&value_event); - } - - /* Module summary */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "summary")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse module summary"); - } - - modulemd_modulestream_set_summary ( - modulestream, (const gchar *)value_event.data.scalar.value); - - yaml_event_delete (&value_event); - } - - /* Module description */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "description")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse module description"); - } - - modulemd_modulestream_set_description ( - modulestream, (const gchar *)value_event.data.scalar.value); - - yaml_event_delete (&value_event); - } - - /* Module EOL (obsolete) */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "eol")) - { - if (modulemd_modulestream_get_mdversion (modulestream) > - MD_VERSION_1) - { - /* EOL is not supported in v2 or later; use servicelevel */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, - event, - "EOL is not supported in v2 or later; use servicelevel"); - } - - /* Get the EOL date */ - if (!_parse_modulemd_date (parser, &eol, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Failed to parse module EOL date"); - } - - modulemd_modulestream_set_eol (modulestream, eol); - g_date_free (eol); - } - - /* Service Levels */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "servicelevels")) - { - _yaml_parser_modulemd_recurse_down ( - _parse_modulemd_servicelevels); - } - - /* licenses */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "license")) - { - /* Process the module and content licenses */ - _yaml_parser_modulemd_recurse_down (_parse_modulemd_licenses); - } - - /* xmd */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "xmd")) - { - /* Process the extensible metadata block */ - _yaml_parser_modulemd_recurse_down (_parse_modulemd_xmd); - } - - /* dependencies */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "dependencies")) - { - /* Process the build and runtime dependencies of this module */ - _yaml_parser_modulemd_recurse_down (_parse_modulemd_deps); - } - - /* references */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "references")) - { - /* Process the reference links for this module */ - _yaml_parser_modulemd_recurse_down (_parse_modulemd_refs); - } - - /* profiles */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "profiles")) - { - /* Process the install profiles for this module */ - _yaml_parser_modulemd_recurse_down (_parse_modulemd_profiles); - } - - /* api */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "api")) - { - /* Process the API list */ - _yaml_parser_modulemd_recurse_down (_parse_modulemd_api); - } - - /* filter */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "filter")) - { - /* Process the filtered-out output components */ - _yaml_parser_modulemd_recurse_down (_parse_modulemd_filters); - } - - /* buildopts */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "buildopts")) - { - /* Process special build options for this module */ - _yaml_parser_modulemd_recurse_down (_parse_modulemd_buildopts); - } - - /* Components */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "components")) - { - /* Process the components that comprise this module */ - _yaml_parser_modulemd_recurse_down (_parse_modulemd_components); - } - - /* Artifacts */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "artifacts")) - { - /* Process the output artifacts of this module */ - _yaml_parser_modulemd_recurse_down (_parse_modulemd_artifacts); - } - - else - { - g_debug ("Unexpected key in data: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - } - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in data"); - break; - } - - yaml_event_delete (&event); - } - - result = TRUE; - -error: - - g_debug ("TRACE: exiting _parse_modulemd_data"); - return result; -} - -static gboolean -_parse_modulemd_licenses (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error) -{ - MMD_INIT_YAML_EVENT (event); - gboolean result = FALSE; - gboolean done = FALSE; - ModulemdSimpleSet *set = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_licenses"); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the license content. */ - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the license content */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - /* Each scalar event represents a license type */ - if (!g_str_equal ((const gchar *)event.data.scalar.value, - "module") && - !g_str_equal ((const gchar *)event.data.scalar.value, "content")) - { - g_debug ("Unexpected key in licenses: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - break; - } - - if (!_simpleset_from_sequence (parser, &set, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Invalid sequence"); - } - - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "module")) - { - modulemd_modulestream_set_module_licenses (modulestream, set); - } - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "content")) - { - modulemd_modulestream_set_content_licenses (modulestream, set); - } - - g_clear_pointer (&set, g_object_unref); - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in licenses"); - break; - } - - yaml_event_delete (&event); - } - - result = TRUE; -error: - g_clear_pointer (&set, g_object_unref); - - g_debug ("TRACE: exiting _parse_modulemd_licenses"); - return result; -} - -static gboolean -_parse_modulemd_xmd (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error) -{ - gboolean result = FALSE; - g_autoptr (GHashTable) xmd = NULL; - MMD_INIT_YAML_EVENT (event); - g_autoptr (GVariant) variant = NULL; - GVariantIter iter; - gchar *key; - GVariant *value; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_debug ("TRACE: entering _parse_modulemd_xmd"); - - YAML_PARSER_PARSE_WITH_ERROR_RETURN (parser, &event, error, "Parser error"); - if (!(event.type == YAML_MAPPING_START_EVENT)) - { - MMD_YAML_ERROR_EVENT_RETURN (error, event, "Invalid mapping"); - } - yaml_event_delete (&event); - - if (!parse_raw_yaml_mapping (parser, &variant, error)) - { - MMD_YAML_ERROR_EVENT_RETURN (error, event, "Invalid raw mapping"); - } - - if (!g_variant_is_of_type (variant, G_VARIANT_TYPE_DICTIONARY)) - { - MMD_YAML_ERROR_EVENT_RETURN (error, event, "XMD wasn't a dictionary"); - } - - xmd = g_hash_table_new_full ( - g_str_hash, g_str_equal, g_free, modulemd_variant_unref); - g_variant_iter_init (&iter, variant); - while (g_variant_iter_next (&iter, "{sv}", &key, &value)) - { - g_hash_table_insert (xmd, g_strdup (key), value); - g_free (key); - } - - /* Save this hash table as the xmd property */ - modulemd_modulestream_set_xmd (modulestream, xmd); - - result = TRUE; - -error: - g_debug ("TRACE: exiting _parse_modulemd_xmd"); - return result; -} - - -static gboolean -_parse_modulemd_deps_v1 (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - gboolean done = FALSE; - GHashTable *reqs = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_deps_v1"); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the dependency content. */ - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the dependency content */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - if (!g_str_equal ((const gchar *)event.data.scalar.value, - "buildrequires") && - !g_str_equal ((const gchar *)event.data.scalar.value, - "requires")) - { - g_debug ("Unexpected key in v1 dependencies: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - break; - } - - if (!_hashtable_from_mapping (parser, &reqs, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Invalid mapping"); - } - - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "buildrequires")) - { - modulemd_modulestream_set_buildrequires (modulestream, reqs); - } - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "requires")) - { - modulemd_modulestream_set_requires (modulestream, reqs); - } - - g_clear_pointer (&reqs, g_hash_table_unref); - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in deps"); - break; - } - - yaml_event_delete (&event); - } - - result = TRUE; -error: - g_clear_pointer (&reqs, g_hash_table_unref); - - g_debug ("TRACE: exiting _parse_modulemd_deps_v1"); - return result; -} - - -static gboolean -_parse_modulemd_v2_dep (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error); - -static gboolean -_parse_modulemd_deps_v2 (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - gboolean done = FALSE; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_deps_v2"); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_SEQUENCE_START_EVENT: - /* This is the start of the dependency content. */ - break; - - case YAML_SEQUENCE_END_EVENT: - /* We're done processing the dependency content */ - done = TRUE; - break; - - case YAML_MAPPING_START_EVENT: - if (!_parse_modulemd_v2_dep (modulestream, parser, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Failed to parse requires/buildrequires"); - break; - } - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in deps"); - break; - } - - yaml_event_delete (&event); - } - - result = TRUE; - -error: - - g_debug ("TRACE: exiting _parse_modulemd_deps_v2"); - return result; -} - - -static gboolean -_parse_modulemd_v2_dep_map (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - enum ModulemdReqType reqtype, - ModulemdDependencies *dep, - GError **error); - -static gboolean -_parse_modulemd_v2_dep (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error) -{ - gboolean result = FALSE; - gboolean done = FALSE; - MMD_INIT_YAML_EVENT (event); - enum ModulemdReqType reqtype; - g_autoptr (ModulemdDependencies) dep = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_v2_dep"); - - dep = modulemd_dependencies_new (); - if (dep == NULL) - { - event.type = YAML_NO_EVENT; - MMD_YAML_ERROR_RETURN ( - error, "Could not allocate new Modulemd.Dependencies object"); - } - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_END_EVENT: - /* We've processed the whole map */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - if (g_strcmp0 ((const gchar *)event.data.scalar.value, - "buildrequires") == 0) - { - reqtype = MODULEMD_REQ_BUILDREQUIRES; - } - else if (g_strcmp0 ((const gchar *)event.data.scalar.value, - "requires") == 0) - { - reqtype = MODULEMD_REQ_REQUIRES; - } - else - { - g_debug ("Unexpected key in v2 dependencies: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - break; - } - - if (!_parse_modulemd_v2_dep_map ( - modulestream, parser, reqtype, dep, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Error processing dependency map."); - } - - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in v2_dep"); - break; - } - - yaml_event_delete (&event); - } - - modulemd_modulestream_add_dependencies (modulestream, dep); - - - result = TRUE; -error: - g_debug ("TRACE: exiting _parse_modulemd_v2_dep"); - return result; -} - - -static gboolean -_parse_modulemd_v2_dep_map (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - enum ModulemdReqType reqtype, - ModulemdDependencies *dep, - GError **error) -{ - gboolean result = FALSE; - gboolean done = FALSE; - gboolean in_map = FALSE; - MMD_INIT_YAML_EVENT (event); - gchar *module_name = NULL; - ModulemdSimpleSet *set = NULL; - const gchar **dep_set = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_v2_dep_map"); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* Start processing the available modules and streams */ - in_map = TRUE; - break; - - case YAML_MAPPING_END_EVENT: - /* We've received them all */ - done = TRUE; - in_map = FALSE; - break; - - case YAML_SCALAR_EVENT: - if (!in_map) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in v2_dep_map"); - } - - module_name = g_strdup ((const gchar *)event.data.scalar.value); - - if (!_simpleset_from_sequence (parser, &set, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Could not parse set of streams"); - } - dep_set = (const gchar **)modulemd_simpleset_dup (set); - - switch (reqtype) - { - case MODULEMD_REQ_BUILDREQUIRES: - modulemd_dependencies_add_buildrequires ( - dep, module_name, dep_set); - break; - case MODULEMD_REQ_REQUIRES: - modulemd_dependencies_add_requires (dep, module_name, dep_set); - break; - } - - g_clear_pointer (&module_name, g_free); - - for (gsize i = 0; i < modulemd_simpleset_size (set); i++) - { - g_clear_pointer (&dep_set[i], g_free); - } - g_clear_pointer (&dep_set, g_free); - g_clear_pointer (&set, g_object_unref); - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in v2_dep_map"); - break; - } - - yaml_event_delete (&event); - } - - result = TRUE; -error: - g_clear_pointer (&module_name, g_free); - g_debug ("TRACE: exiting _parse_modulemd_v2_dep_map"); - return result; -} - - -static gboolean -_parse_modulemd_deps (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error) -{ - gboolean result = FALSE; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_deps"); - - if (modulemd_modulestream_get_mdversion (modulestream) == MD_VERSION_1) - { - result = _parse_modulemd_deps_v1 (modulestream, parser, error); - goto error; - } - else if (modulemd_modulestream_get_mdversion (modulestream) >= MD_VERSION_2) - { - result = _parse_modulemd_deps_v2 (modulestream, parser, error); - goto error; - } - else - { - MMD_YAML_NOEVENT_ERROR_RETURN (error, "Incompatible modulemd version"); - } - -error: - g_debug ("TRACE: exiting _parse_modulemd_deps"); - return result; -} - - -static gboolean -_parse_modulemd_refs (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error) -{ - gboolean result = FALSE; - GHashTable *refs = NULL; - gpointer value; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_refs"); - - if (!_hashtable_from_mapping (parser, &refs, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Invalid mapping"); - } - - if ((value = g_hash_table_lookup (refs, "community"))) - { - modulemd_modulestream_set_community (modulestream, (const gchar *)value); - g_hash_table_remove (refs, "community"); - } - - if ((value = g_hash_table_lookup (refs, "documentation"))) - { - modulemd_modulestream_set_documentation (modulestream, - (const gchar *)value); - g_hash_table_remove (refs, "documentation"); - } - - if ((value = g_hash_table_lookup (refs, "tracker"))) - { - modulemd_modulestream_set_tracker (modulestream, (const gchar *)value); - g_hash_table_remove (refs, "tracker"); - } - - /* Make sure there were no other entries */ - if (g_hash_table_size (refs) > 0) - { - g_debug ("Unexpected key found in references."); - } - - result = TRUE; - -error: - g_clear_pointer (&refs, g_hash_table_unref); - g_debug ("TRACE: exiting _parse_modulemd_refs"); - return result; -} - -static gboolean -_parse_modulemd_profiles (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - gboolean done = FALSE; - GHashTable *profiles = NULL; - gchar *name = NULL; - ModulemdProfile *profile = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_profiles"); - - profiles = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the profiles. */ - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the profiles */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - /* Each entry is the key for a dictionary of ModulemdProfile - * objects - */ - name = g_strdup ((const gchar *)event.data.scalar.value); - if (!_parse_modulemd_profile (parser, name, &profile, error)) - { - g_free (name); - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Invalid profile"); - } - g_hash_table_insert (profiles, name, profile); - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in profiles"); - break; - } - - yaml_event_delete (&event); - } - modulemd_modulestream_set_profiles (modulestream, profiles); - - result = TRUE; - -error: - g_hash_table_unref (profiles); - - g_debug ("TRACE: exiting _parse_modulemd_profiles"); - return result; -} - -static gboolean -_parse_modulemd_profile (yaml_parser_t *parser, - const gchar *name, - ModulemdProfile **_profile, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - MMD_INIT_YAML_EVENT (value_event); - gboolean done = FALSE; - ModulemdSimpleSet *set = NULL; - ModulemdProfile *profile = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_profile"); - - profile = modulemd_profile_new (); - modulemd_profile_set_name (profile, name); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the profile content. */ - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the profile content */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - /* Each entry must be one of "rpms" or "description" */ - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "rpms")) - { - /* Get the set of RPMs */ - if (!_simpleset_from_sequence (parser, &set, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Could not parse profile RPMs"); - } - modulemd_profile_set_rpms (profile, set); - g_object_unref (set); - } - - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "description")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "No value for description"); - } - - modulemd_profile_set_description ( - profile, (const gchar *)value_event.data.scalar.value); - - yaml_event_delete (&value_event); - } - else - { - /* Unknown field in profile */ - g_debug ("Unexpected key in profile: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - } - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in profiles"); - break; - } - - yaml_event_delete (&event); - } - - *_profile = g_object_ref (profile); - - result = TRUE; - -error: - g_object_unref (profile); - - g_debug ("TRACE: exiting _parse_modulemd_profile"); - return result; -} - -static gboolean -_parse_modulemd_api (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - gboolean done = FALSE; - g_autoptr (ModulemdSimpleSet) set = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_api"); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the API. */ - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the API */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - /* Currently, we only support "rpms" here */ - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "rpms")) - { - if (!_simpleset_from_sequence (parser, &set, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Parse error in API"); - } - modulemd_modulestream_set_rpm_api (modulestream, set); - } - else - { - g_debug ("Unexpected API type: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - } - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in api"); - break; - } - - yaml_event_delete (&event); - } - - result = TRUE; - -error: - g_debug ("TRACE: exiting _parse_modulemd_api"); - return result; -} - -static gboolean -_parse_modulemd_filters (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - gboolean done = FALSE; - ModulemdSimpleSet *set = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_filters"); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the filters. */ - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the filters */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - /* Currently, we only support "rpms" here */ - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "rpms")) - { - if (!_simpleset_from_sequence (parser, &set, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Parse error in filters"); - } - modulemd_modulestream_set_rpm_filter (modulestream, set); - } - else - { - g_debug ("Unexpected filter type: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - } - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in filters"); - break; - } - - yaml_event_delete (&event); - } - - result = TRUE; - -error: - g_clear_pointer (&set, g_object_unref); - - g_debug ("TRACE: exiting _parse_modulemd_filters"); - return result; -} - -static gboolean -_parse_modulemd_buildopts (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - gboolean done = FALSE; - g_autoptr (ModulemdBuildopts) buildopts = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_buildopts"); - - buildopts = modulemd_buildopts_new (); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the buildopts. */ - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the buildopts */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - /* Currently, we only support "rpms" here */ - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "rpms")) - { - if (!_parse_modulemd_rpm_buildopts (buildopts, parser, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Parse error in RPM buildopts"); - } - } - else - { - g_debug ("Unexpected key in buildopts: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - } - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in buildopts"); - break; - } - - yaml_event_delete (&event); - } - - modulemd_modulestream_set_buildopts (modulestream, buildopts); - - result = TRUE; - -error: - - g_debug ("TRACE: exiting _parse_modulemd_buildopts"); - return result; -} - -static gboolean -_parse_modulemd_rpm_buildopts (ModulemdBuildopts *buildopts, - yaml_parser_t *parser, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - MMD_INIT_YAML_EVENT (value_event); - gboolean done = FALSE; - gboolean in_mapping = FALSE; - g_autoptr (ModulemdSimpleSet) set = NULL; - - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_rpm_buildopts"); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the RPM buildopts. */ - in_mapping = TRUE; - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the RPM buildopts */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - if (!in_mapping) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Received a scalar when a map was expected."); - break; - } - - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "macros")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse RPM macros"); - } - modulemd_buildopts_set_rpm_macros ( - buildopts, (const gchar *)value_event.data.scalar.value); - yaml_event_delete (&value_event); - } - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "whitelist")) - { - if (!_simpleset_from_sequence (parser, &set, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Parse error in RPM whitelist"); - } - modulemd_buildopts_set_rpm_whitelist_simpleset (buildopts, set); - } - else - { - g_debug ("Unexpected key in RPM buildopts: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - } - - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in RPM buildopts"); - break; - } - yaml_event_delete (&event); - } - - result = TRUE; -error: - - g_debug ("TRACE: exiting _parse_modulemd_rpm_buildopts"); - return result; -} - -static gboolean -_parse_modulemd_components (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - gboolean done = FALSE; - GHashTable *components = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_components"); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the component content. */ - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the component content */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - /* Each key is a type of component */ - g_debug ("Component type: %s", - (const gchar *)event.data.scalar.value); - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "rpms")) - { - if (!_parse_modulemd_rpm_components (parser, &components, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Could not parse RPM components"); - } - modulemd_modulestream_set_rpm_components (modulestream, - components); - g_hash_table_unref (components); - } - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "modules")) - { - if (!_parse_modulemd_modulestream_components ( - parser, &components, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Could not parse module components"); - } - modulemd_modulestream_set_module_components (modulestream, - components); - g_hash_table_unref (components); - } - else - { - g_debug ("Unexpected key in module components: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - } - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in components"); - break; - } - - yaml_event_delete (&event); - } - - result = TRUE; - -error: - - g_debug ("TRACE: exiting _parse_modulemd_components"); - return result; -} - -static gboolean -_parse_modulemd_rpm_components (yaml_parser_t *parser, - GHashTable **_components, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - gboolean done = FALSE; - GHashTable *components = NULL; - gchar *name = NULL; - ModulemdComponentRpm *component = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_debug ("TRACE: entering _parse_modulemd_rpm_components"); - - components = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* The dictionary has begun */ - break; - - case YAML_MAPPING_END_EVENT: - /* We've processed the whole dictionary */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - name = g_strdup ((const gchar *)event.data.scalar.value); - if (!_parse_modulemd_rpm_component (parser, name, &component, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Parse error in RPM component"); - } - - /* Set this key and value to the hash table */ - g_hash_table_insert (components, name, component); - - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in sequence"); - break; - } - - yaml_event_delete (&event); - } - *_components = g_hash_table_ref (components); - - result = TRUE; - -error: - g_hash_table_unref (components); - - g_debug ("TRACE: exiting _parse_modulemd_rpm_components"); - return result; -} - -static gboolean -_parse_modulemd_rpm_component (yaml_parser_t *parser, - const gchar *name, - ModulemdComponentRpm **_component, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - MMD_INIT_YAML_EVENT (value_event); - gboolean done = FALSE; - ModulemdComponentRpm *component = NULL; - ModulemdSimpleSet *set = NULL; - guint64 buildorder = 0; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_debug ("TRACE: entering _parse_modulemd_rpm_component"); - - component = modulemd_component_rpm_new (); - modulemd_component_set_name (MODULEMD_COMPONENT (component), name); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* The dictionary has begun */ - break; - - case YAML_MAPPING_END_EVENT: - /* We've processed the whole dictionary */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "buildorder")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse buildorder value"); - } - - buildorder = g_ascii_strtoull ( - (const gchar *)value_event.data.scalar.value, NULL, 10); - modulemd_component_set_buildorder ( - MODULEMD_COMPONENT (component), buildorder); - - yaml_event_delete (&value_event); - } - - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "rationale")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse rationale value"); - } - - modulemd_component_set_rationale ( - MODULEMD_COMPONENT (component), - (const gchar *)value_event.data.scalar.value); - - yaml_event_delete (&value_event); - } - - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "arches")) - { - if (!_simpleset_from_sequence (parser, &set, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Error parsing component arches"); - } - modulemd_component_rpm_set_arches (component, set); - } - - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "cache")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse cache value"); - } - - modulemd_component_rpm_set_cache ( - component, (const gchar *)value_event.data.scalar.value); - - yaml_event_delete (&value_event); - } - - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "multilib")) - { - if (!_simpleset_from_sequence (parser, &set, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Error parsing multilib arches"); - } - modulemd_component_rpm_set_multilib (component, set); - } - - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "ref")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse ref value"); - } - - modulemd_component_rpm_set_ref ( - component, (const gchar *)value_event.data.scalar.value); - - yaml_event_delete (&value_event); - } - - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "repository")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse repository value"); - } - - modulemd_component_rpm_set_repository ( - component, (const gchar *)value_event.data.scalar.value); - - yaml_event_delete (&value_event); - } - - else - { - g_debug ("Unexpected key in RPM component: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - } - - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in component"); - break; - } - - g_clear_pointer (&set, g_object_unref); - yaml_event_delete (&event); - } - *_component = g_object_ref (component); - - result = TRUE; - -error: - g_object_unref (component); - - g_debug ("TRACE: exiting _parse_modulemd_modulestream_components"); - return result; -} - -static gboolean -_parse_modulemd_modulestream_components (yaml_parser_t *parser, - GHashTable **_components, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - gboolean done = FALSE; - GHashTable *components = NULL; - gchar *name = NULL; - ModulemdComponentModule *component = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_debug ("TRACE: entering _parse_modulemd_modulestream_components"); - - components = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* The dictionary has begun */ - break; - - case YAML_MAPPING_END_EVENT: - /* We've processed the whole dictionary */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - name = g_strdup ((const gchar *)event.data.scalar.value); - if (!_parse_modulemd_modulestream_component ( - parser, name, &component, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Parse error in module component"); - } - - /* Set this key and value to the hash table */ - g_hash_table_insert (components, name, component); - - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in sequence"); - break; - } - - yaml_event_delete (&event); - } - *_components = g_hash_table_ref (components); - - result = TRUE; - -error: - g_hash_table_unref (components); - - g_debug ("TRACE: exiting _parse_modulemd_modulestream_components"); - return result; -} - -static gboolean -_parse_modulemd_modulestream_component (yaml_parser_t *parser, - const gchar *name, - ModulemdComponentModule **_component, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - MMD_INIT_YAML_EVENT (value_event); - gboolean done = FALSE; - ModulemdComponentModule *component = NULL; - guint64 buildorder = 0; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_debug ("TRACE: entering _parse_modulemd_rpm_component"); - - component = modulemd_component_module_new (); - modulemd_component_set_name (MODULEMD_COMPONENT (component), name); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* The dictionary has begun */ - break; - - case YAML_MAPPING_END_EVENT: - /* We've processed the whole dictionary */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "buildorder")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse buildorder value"); - } - - buildorder = g_ascii_strtoull ( - (const gchar *)value_event.data.scalar.value, NULL, 10); - modulemd_component_set_buildorder ( - MODULEMD_COMPONENT (component), buildorder); - - yaml_event_delete (&value_event); - } - - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "rationale")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse rationale value"); - } - - modulemd_component_set_rationale ( - MODULEMD_COMPONENT (component), - (const gchar *)value_event.data.scalar.value); - - yaml_event_delete (&value_event); - } - - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "ref")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse ref value"); - } - - modulemd_component_module_set_ref ( - component, (const gchar *)value_event.data.scalar.value); - - yaml_event_delete (&value_event); - } - - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "repository")) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Failed to parse repository value"); - } - - modulemd_component_module_set_repository ( - component, (const gchar *)value_event.data.scalar.value); - - yaml_event_delete (&value_event); - } - - else - { - g_debug ("Unexpected key in component: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - } - - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in component"); - break; - } - - yaml_event_delete (&event); - } - *_component = g_object_ref (component); - - result = TRUE; - -error: - g_object_unref (component); - - g_debug ("TRACE: exiting _parse_modulemd_modulestream_component"); - return result; -} - -static gboolean -_parse_modulemd_artifacts (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - gboolean done = FALSE; - g_autoptr (ModulemdSimpleSet) set = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_artifacts"); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the artifacts. */ - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the artifacts */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - /* Currently, we only support "rpms" here */ - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "rpms")) - { - if (!_simpleset_from_sequence (parser, &set, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Parse error in artifacts"); - } - - if (!modulemd_simpleset_validate_contents ( - set, modulemd_validate_nevra, NULL)) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "RPM artifacts not in NEVRA format"); - } - - modulemd_modulestream_set_rpm_artifacts (modulestream, set); - } - else - { - g_debug ("Unexpected artifacts type: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - } - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in artifacts"); - break; - } - - yaml_event_delete (&event); - } - - result = TRUE; - -error: - g_debug ("TRACE: exiting _parse_modulemd_artifacts"); - return result; -} - -static gboolean -_parse_modulemd_servicelevels (ModulemdModuleStream *modulestream, - yaml_parser_t *parser, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - gboolean done = FALSE; - GHashTable *servicelevels = NULL; - gchar *name = NULL; - ModulemdServiceLevel *sl = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_servicelevels"); - - servicelevels = - g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the service levels. */ - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the service levels. */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - /* Each entry is the key for a dictionary of ModulemdServiceLevel - * objects - */ - name = g_strdup ((const gchar *)event.data.scalar.value); - if (!_parse_modulemd_servicelevel (parser, name, &sl, error)) - { - g_free (name); - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Invalid service level"); - } - g_hash_table_insert (servicelevels, name, sl); - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in service levels"); - break; - } - - yaml_event_delete (&event); - } - modulemd_modulestream_set_servicelevels (modulestream, servicelevels); - - result = TRUE; - -error: - g_hash_table_unref (servicelevels); - - g_debug ("TRACE: exiting _parse_modulemd_servicelevels"); - return result; -} - -static gboolean -_parse_modulemd_servicelevel (yaml_parser_t *parser, - const gchar *name, - ModulemdServiceLevel **_servicelevel, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - gboolean done = FALSE; - ModulemdServiceLevel *sl = NULL; - GDate *eol = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _parse_modulemd_servicelevel"); - - sl = modulemd_servicelevel_new (); - modulemd_servicelevel_set_name (sl, name); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the service level content. */ - break; - - case YAML_MAPPING_END_EVENT: - /* We're done processing the service level content */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - /* Only "eol" is supported right now */ - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "eol")) - { - /* Get the EOL date */ - if (!_parse_modulemd_date (parser, &eol, error)) - { - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Failed to parse EOL date in service level"); - } - - modulemd_servicelevel_set_eol (sl, eol); - g_date_free (eol); - } - - else - { - /* Unknown field in service level */ - g_debug ("Unexpected key in service level: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - goto error; - } - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in service level"); - break; - } - - yaml_event_delete (&event); - } - - *_servicelevel = g_object_ref (sl); - - result = TRUE; - -error: - g_object_unref (sl); - - g_debug ("TRACE: exiting _parse_modulemd_servicelevel"); - return result; -} diff --git a/modulemd-1.8.16/modulemd/modulemd-yaml-parser-translation.c b/modulemd-1.8.16/modulemd/modulemd-yaml-parser-translation.c deleted file mode 100644 index d0d4f8c..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-yaml-parser-translation.c +++ /dev/null @@ -1,497 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include -#include -#include -#include -#include "private/modulemd-yaml.h" -#include "private/modulemd-util.h" - -#define _yaml_parser_translation_recurse_down(fn) \ - do \ - { \ - if (!fn (translation, parser, error)) \ - return FALSE; \ - } \ - while (0) - -static gboolean -_parse_translation_data (ModulemdTranslation *translation, - yaml_parser_t *parser, - GError **error); - -static gboolean -_parse_translation_entries (ModulemdTranslation *translation, - yaml_parser_t *parser, - GError **error); -static ModulemdTranslationEntry * -_parse_translation_entry (yaml_parser_t *parser, - const gchar *locale, - GError **error); - -gboolean -_parse_translation (yaml_parser_t *parser, - GObject **object, - guint64 version, - GError **error) -{ - g_autoptr (ModulemdTranslation) translation = NULL; - MODULEMD_INIT_TRACE - MMD_INIT_YAML_EVENT (event); - MMD_INIT_YAML_EVENT (value_event); - gboolean done = FALSE; - gboolean in_map = FALSE; - guint64 mdversion; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - /* Use the pre-processed version */ - if (version && version <= MD_TRANSLATION_VERSION_LATEST) - { - // clang-format off - translation = g_object_new (MODULEMD_TYPE_TRANSLATION, - "mdversion", version, - NULL); - // clang-format on - } - else - { - /* No mdversion was discovered during pre-processing */ - MMD_YAML_SET_ERROR (error, "Unknown modulemd translation version"); - return FALSE; - } - - while (!done) - { - YAML_PARSER_PARSE_WITH_EXIT (parser, &event, error); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the main document content */ - in_map = TRUE; - break; - - - case YAML_MAPPING_END_EVENT: - /* This is the end of the main document content. */ - if (!in_map) - { - MMD_YAML_SET_ERROR (error, "Map end received before map start."); - return FALSE; - } - done = TRUE; - break; - - - case YAML_SCALAR_EVENT: - if (!in_map) - { - MMD_YAML_SET_ERROR (error, "Scalar received before map start."); - return FALSE; - } - - /* Handle "document: modulemd-translations" */ - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "document")) - { - g_debug ("TRACE: root entry [document]"); - - YAML_PARSER_PARSE_WITH_EXIT (parser, &value_event, error); - - if (value_event.type != YAML_SCALAR_EVENT || - g_strcmp0 ((const gchar *)value_event.data.scalar.value, - "modulemd-translations")) - { - yaml_event_delete (&value_event); - MMD_YAML_SET_ERROR (error, "Document type mismatch"); - return FALSE; - } - yaml_event_delete (&value_event); - } - - /* Record the modulemd version for the parser */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "version")) - { - g_debug ("TRACE: root entry [version]"); - YAML_PARSER_PARSE_WITH_EXIT (parser, &value_event, error); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_SET_ERROR (error, "Unknown modulemd version"); - return FALSE; - } - - mdversion = g_ascii_strtoull ( - (const gchar *)value_event.data.scalar.value, NULL, 10); - yaml_event_delete (&value_event); - if (!mdversion) - { - MMD_YAML_SET_ERROR (error, - "Unknown modulemd defaults version"); - return FALSE; - } - - if (mdversion != version) - { - /* Preprocessing and real parser don't match! - * This should be impossible - */ - MMD_YAML_SET_ERROR (error, - "Modulemd translations version doesn't " - "match preprocessing"); - return FALSE; - } - } - - /* Process the data section */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "data")) - { - _yaml_parser_translation_recurse_down (_parse_translation_data); - } - - else - { - g_debug ("Unexpected key in root: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - return FALSE; - } - break; - - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_SET_ERROR (error, - "Unexpected YAML event in root: %s", - mmd_yaml_get_event_name (event.type)); - return FALSE; - } - yaml_event_delete (&event); - } - - *object = g_object_ref (G_OBJECT (translation)); - return TRUE; -} - - -static gboolean -_parse_translation_data (ModulemdTranslation *translation, - yaml_parser_t *parser, - GError **error) -{ - MMD_INIT_YAML_EVENT (event); - MMD_INIT_YAML_EVENT (value_event); - gboolean done = FALSE; - gboolean in_map = FALSE; - guint64 modified; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - while (!done) - { - YAML_PARSER_PARSE_WITH_EXIT (parser, &event, error); - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the main document content */ - in_map = TRUE; - break; - - - case YAML_MAPPING_END_EVENT: - /* This is the end of the main document content. */ - if (!in_map) - { - MMD_YAML_SET_ERROR (error, "Map end received before map start."); - return FALSE; - } - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - if (!in_map) - { - MMD_YAML_SET_ERROR (error, "Scalar received before map start."); - return FALSE; - } - - /* Module Name */ - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "module")) - { - YAML_PARSER_PARSE_WITH_EXIT (parser, &value_event, error); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_SET_ERROR (error, "Failed to parse module name"); - return FALSE; - } - - modulemd_translation_set_module_name ( - translation, (const gchar *)value_event.data.scalar.value); - yaml_event_delete (&value_event); - } - - /* Module stream */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "stream")) - { - YAML_PARSER_PARSE_WITH_EXIT (parser, &value_event, error); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_SET_ERROR (error, "Failed to parse module stream"); - return FALSE; - } - - modulemd_translation_set_module_stream ( - translation, (const gchar *)value_event.data.scalar.value); - yaml_event_delete (&value_event); - } - - /* Modified */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "modified")) - { - YAML_PARSER_PARSE_WITH_EXIT (parser, &value_event, error); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_SET_ERROR (error, "Failed to parse modified value"); - return FALSE; - } - - modified = g_ascii_strtoull ( - (const gchar *)value_event.data.scalar.value, NULL, 10); - yaml_event_delete (&value_event); - - if (!modified) - { - MMD_YAML_SET_ERROR (error, - "Unknown modulemd defaults version"); - return FALSE; - } - - modulemd_translation_set_modified (translation, modified); - } - - /* Translation Entries */ - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "translations")) - { - _yaml_parser_translation_recurse_down ( - _parse_translation_entries); - } - - else - { - g_debug ("Unexpected key in data: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - return FALSE; - } - - break; - - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_SET_ERROR (error, - "Unexpected YAML event in data: %s", - mmd_yaml_get_event_name (event.type)); - return FALSE; - } - - yaml_event_delete (&event); - } - - return TRUE; -} - -static gboolean -_parse_translation_entries (ModulemdTranslation *translation, - yaml_parser_t *parser, - GError **error) -{ - MMD_INIT_YAML_EVENT (event); - gboolean done = FALSE; - gboolean in_map = FALSE; - const gchar *locale = NULL; - g_autoptr (ModulemdTranslationEntry) entry = NULL; - - while (!done) - { - YAML_PARSER_PARSE_WITH_EXIT (parser, &event, error); - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the main document content */ - in_map = TRUE; - break; - - - case YAML_MAPPING_END_EVENT: - /* This is the end of the main document content. */ - if (!in_map) - { - MMD_YAML_SET_ERROR (error, "Map end received before map start."); - return FALSE; - } - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - if (!in_map) - { - MMD_YAML_SET_ERROR (error, "Scalar received before map start."); - return FALSE; - } - - locale = (const gchar *)event.data.scalar.value; - entry = _parse_translation_entry (parser, locale, error); - if (!entry) - return FALSE; - - modulemd_translation_add_entry (translation, entry); - g_clear_pointer (&entry, g_object_unref); - - break; - - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_SET_ERROR (error, - "Unexpected YAML event in translations: %s", - mmd_yaml_get_event_name (event.type)); - return FALSE; - } - - yaml_event_delete (&event); - } - - return TRUE; -} - -static ModulemdTranslationEntry * -_parse_translation_entry (yaml_parser_t *parser, - const gchar *locale, - GError **error) -{ - MMD_INIT_YAML_EVENT (event); - MMD_INIT_YAML_EVENT (value_event); - gboolean done = FALSE; - gboolean in_map = FALSE; - g_autoptr (GHashTable) profiles = NULL; - GHashTableIter iter; - gpointer key, value; - g_autoptr (ModulemdTranslationEntry) entry = - g_object_new (MODULEMD_TYPE_TRANSLATION_ENTRY, "locale", locale, NULL); - - - while (!done) - { - YAML_PARSER_PARSE_WITH_EXIT (parser, &event, error); - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* This is the start of the main document content */ - in_map = TRUE; - break; - - - case YAML_MAPPING_END_EVENT: - /* This is the end of the main document content. */ - if (!in_map) - { - MMD_YAML_SET_ERROR (error, "Map end received before map start."); - return NULL; - } - done = TRUE; - break; - - - case YAML_SCALAR_EVENT: - if (!in_map) - { - MMD_YAML_SET_ERROR (error, "Scalar received before map start."); - return NULL; - } - - /* Summary */ - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, "summary")) - { - YAML_PARSER_PARSE_WITH_EXIT (parser, &value_event, error); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_SET_ERROR (error, "Failed to parse summary"); - return NULL; - } - - modulemd_translation_entry_set_summary ( - entry, (const gchar *)value_event.data.scalar.value); - yaml_event_delete (&value_event); - } - - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "description")) - { - YAML_PARSER_PARSE_WITH_EXIT (parser, &value_event, error); - if (value_event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_SET_ERROR (error, "Failed to parse description"); - return NULL; - } - - modulemd_translation_entry_set_description ( - entry, (const gchar *)value_event.data.scalar.value); - yaml_event_delete (&value_event); - } - - else if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "profiles")) - { - if (!_hashtable_from_mapping (parser, &profiles, error)) - return NULL; - - g_hash_table_iter_init (&iter, profiles); - while (g_hash_table_iter_next (&iter, &key, &value)) - { - modulemd_translation_entry_set_profile_description ( - entry, (const gchar *)key, (const gchar *)value); - } - g_clear_pointer (&profiles, g_hash_table_unref); - } - - else - { - g_debug ("Unexpected key in entries: %s", - (const gchar *)event.data.scalar.value); - if (!skip_unknown_yaml (parser, error)) - return NULL; - } - - break; - - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_SET_ERROR ( - error, - "Unexpected YAML event in translation entry %s: %s", - locale, - mmd_yaml_get_event_name (event.type)); - return FALSE; - } - yaml_event_delete (&event); - } - - return g_object_ref (entry); -} diff --git a/modulemd-1.8.16/modulemd/modulemd-yaml-parser.c b/modulemd-1.8.16/modulemd/modulemd-yaml-parser.c deleted file mode 100644 index 8183b43..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-yaml-parser.c +++ /dev/null @@ -1,1054 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include -#include -#include -#include -#include -#include "private/modulemd-yaml.h" -#include "private/modulemd-util.h" -#include "private/modulemd-subdocument-private.h" - -GQuark -modulemd_yaml_error_quark (void) -{ - return g_quark_from_static_string ("modulemd-yaml-error-quark"); -} - - -static gboolean -_parse_yaml (yaml_parser_t *parser, - GPtrArray **data, - GPtrArray **failures, - GError **error); - -static gboolean -_read_yaml_and_type (yaml_parser_t *parser, ModulemdSubdocument **subdocument); - -static gboolean -_parse_subdocument (ModulemdSubdocument *subdocument, - ModulemdParsingFunc parse_func, - GObject **data, - guint64 version, - GError **error); - - -gboolean -parse_yaml_file (const gchar *path, - GPtrArray **data, - GPtrArray **failures, - GError **error) -{ - gboolean result = FALSE; - FILE *yaml_file = NULL; - yaml_parser_t parser; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_return_val_if_fail (path, FALSE); - - g_debug ("TRACE: entering parse_yaml_file"); - - yaml_parser_initialize (&parser); - - errno = 0; - yaml_file = g_fopen (path, "rb"); - if (!yaml_file) - { - g_set_error (error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_OPEN, - "Failed to open file: %s", - g_strerror (errno)); - goto error; - } - - yaml_parser_set_input_file (&parser, yaml_file); - - if (!_parse_yaml (&parser, data, failures, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Could not parse YAML"); - } - - result = TRUE; - -error: - yaml_parser_delete (&parser); - if (yaml_file) - { - fclose (yaml_file); - } - g_debug ("TRACE: exiting parse_yaml_file"); - return result; -} - -gboolean -parse_yaml_string (const gchar *yaml, - GPtrArray **data, - GPtrArray **failures, - GError **error) -{ - gboolean result = FALSE; - yaml_parser_t parser; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_return_val_if_fail (yaml, FALSE); - - g_debug ("TRACE: entering parse_yaml_string"); - - yaml_parser_initialize (&parser); - - yaml_parser_set_input_string ( - &parser, (const unsigned char *)yaml, strlen (yaml)); - - if (!_parse_yaml (&parser, data, failures, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Could not parse YAML"); - } - - result = TRUE; - -error: - yaml_parser_delete (&parser); - - g_debug ("TRACE: exiting parse_yaml_string"); - return result; -} - - -gboolean -parse_yaml_stream (FILE *stream, - GPtrArray **data, - GPtrArray **failures, - GError **error) -{ - gboolean result = FALSE; - yaml_parser_t parser; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_return_val_if_fail (stream, FALSE); - - g_debug ("TRACE: entering parse_yaml_stream"); - - yaml_parser_initialize (&parser); - - yaml_parser_set_input_file (&parser, stream); - - if (!_parse_yaml (&parser, data, failures, error)) - { - MMD_YAML_ERROR_RETURN_RETHROW (error, "Could not parse YAML"); - } - - result = TRUE; - -error: - yaml_parser_delete (&parser); - g_debug ("TRACE: exiting parse_yaml_stream"); - return result; -} - - -GHashTable * -parse_module_index_from_file (const gchar *path, - GPtrArray **failures, - GError **error) -{ - g_autoptr (FILE) yaml_file = NULL; - g_autoptr (GPtrArray) data = NULL; - g_auto (yaml_parser_t) parser; - GHashTable *module_index = NULL; - g_autoptr (GError) nested_error = NULL; - - g_debug ("TRACE: entering parse_module_index_from_file"); - yaml_parser_initialize (&parser); - - if (error != NULL && *error != NULL) - { - g_set_error_literal (error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PROGRAMMING, - "GError is initialized."); - return NULL; - } - - if (!path) - { - g_set_error_literal (error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PROGRAMMING, - "Path not supplied."); - return NULL; - } - - errno = 0; - yaml_file = g_fopen (path, "rb"); - if (!yaml_file) - { - g_set_error (error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_OPEN, - "Failed to open file: %s", - g_strerror (errno)); - return NULL; - } - - yaml_parser_set_input_file (&parser, yaml_file); - - if (!_parse_yaml (&parser, &data, failures, &nested_error)) - { - g_debug ("Could not parse YAML: %s", nested_error->message); - g_propagate_error (error, g_steal_pointer (&nested_error)); - return NULL; - } - - module_index = module_index_from_data (data, &nested_error); - if (!module_index) - { - g_debug ("Could not get module_index: %s", nested_error->message); - g_propagate_error (error, g_steal_pointer (&nested_error)); - return NULL; - } - - g_debug ("TRACE: exiting parse_module_index_from_file"); - return module_index; -} - - -GHashTable * -parse_module_index_from_string (const gchar *yaml, - GPtrArray **failures, - GError **error) -{ - g_autoptr (GPtrArray) data = NULL; - g_auto (yaml_parser_t) parser; - GHashTable *module_index = NULL; - g_autoptr (GError) nested_error = NULL; - - g_debug ("TRACE: entering parse_module_index_from_string"); - yaml_parser_initialize (&parser); - - if (error != NULL && *error != NULL) - { - g_set_error_literal (error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PROGRAMMING, - "GError is initialized."); - return NULL; - } - - if (!yaml) - { - g_set_error_literal (error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PROGRAMMING, - "String not supplied."); - return NULL; - } - - - yaml_parser_set_input_string ( - &parser, (const unsigned char *)yaml, strlen (yaml)); - - if (!_parse_yaml (&parser, &data, failures, &nested_error)) - { - g_debug ("Could not parse YAML: %s", nested_error->message); - g_propagate_error (error, g_steal_pointer (&nested_error)); - return NULL; - } - - module_index = module_index_from_data (data, &nested_error); - if (!module_index) - { - g_debug ("Could not get module_index: %s", nested_error->message); - g_propagate_error (error, g_steal_pointer (&nested_error)); - return NULL; - } - - g_debug ("TRACE: exiting parse_module_index_from_string"); - return module_index; -} - - -GHashTable * -parse_module_index_from_stream (FILE *iostream, - GPtrArray **failures, - GError **error) -{ - g_autoptr (GPtrArray) data = NULL; - g_auto (yaml_parser_t) parser; - GHashTable *module_index = NULL; - g_autoptr (GError) nested_error = NULL; - - g_debug ("TRACE: entering parse_module_index_from_stream"); - yaml_parser_initialize (&parser); - - if (error != NULL && *error != NULL) - { - g_set_error_literal (error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PROGRAMMING, - "GError is initialized."); - return NULL; - } - - if (!iostream) - { - g_set_error_literal (error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PROGRAMMING, - "Stream not supplied."); - return NULL; - } - - yaml_parser_set_input_file (&parser, iostream); - - if (!_parse_yaml (&parser, &data, failures, &nested_error)) - { - g_debug ("Could not parse YAML: %s", nested_error->message); - g_propagate_error (error, g_steal_pointer (&nested_error)); - return NULL; - } - - module_index = module_index_from_data (data, &nested_error); - if (!module_index) - { - g_debug ("Could not get module_index: %s", nested_error->message); - g_propagate_error (error, g_steal_pointer (&nested_error)); - return NULL; - } - - g_debug ("TRACE: exiting parse_module_index_from_stream"); - - return module_index; -} - - -static gboolean -_parse_yaml (yaml_parser_t *parser, - GPtrArray **data, - GPtrArray **failures, - GError **error) -{ - gboolean result = FALSE; - gboolean done = FALSE; - MMD_INIT_YAML_EVENT (event); - g_autoptr (GPtrArray) subdocuments = NULL; - g_autoptr (GPtrArray) failed_subdocuments = NULL; - g_autoptr (GPtrArray) objects = NULL; - ModulemdSubdocument *document = NULL; - ModulemdSubdocument *subdocument = NULL; - g_autoptr (GError) subdocument_error = NULL; - - GObject *object = NULL; - - g_debug ("TRACE: entering _parse_yaml"); - - /* Read through the complete stream once, separating subdocuments and - * identifying their types - */ - subdocuments = g_ptr_array_new_full (1, g_object_unref); - failed_subdocuments = g_ptr_array_new_with_free_func (g_object_unref); - objects = g_ptr_array_new_full (1, g_object_unref); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_STREAM_START_EVENT: - /* The beginning of the YAML stream */ - break; - - case YAML_STREAM_END_EVENT: - /* All of the subdocuments have been processed */ - done = TRUE; - break; - - case YAML_DOCUMENT_START_EVENT: - if (!_read_yaml_and_type (parser, &document)) - { - g_ptr_array_add (failed_subdocuments, document); - - if (error) - { - *error = - g_error_copy (modulemd_subdocument_get_gerror (document)); - } - MMD_YAML_ERROR_EVENT_RETURN_RETHROW ( - error, event, "Parse error during preprocessing"); - } - - /* Add all valid documents to the list */ - if (modulemd_subdocument_get_doctype (document) != G_TYPE_INVALID) - { - g_ptr_array_add (subdocuments, g_object_ref (document)); - } - else - { - /* Any documents we're skipping should also go into this list */ - g_ptr_array_add (failed_subdocuments, g_object_ref (document)); - } - - g_clear_pointer (&document, g_object_unref); - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_RETURN (error, - "Unexpected YAML event during preprocessing"); - break; - } - - yaml_event_delete (&event); - } - - /* Iterate through the subdocuments and process them by type */ - for (gsize i = 0; i < subdocuments->len; i++) - { - subdocument = g_ptr_array_index (subdocuments, i); - if (modulemd_subdocument_get_doctype (subdocument) == - MODULEMD_TYPE_MODULESTREAM) - { - result = - _parse_subdocument (subdocument, - _parse_module_stream, - &object, - modulemd_subdocument_get_version (subdocument), - &subdocument_error); - } - /* Parsers for other types go here */ - else if (modulemd_subdocument_get_doctype (subdocument) == - MODULEMD_TYPE_DEFAULTS) - { - result = - _parse_subdocument (subdocument, - _parse_defaults, - &object, - modulemd_subdocument_get_version (subdocument), - &subdocument_error); - } - else if (modulemd_subdocument_get_doctype (subdocument) == - MODULEMD_TYPE_TRANSLATION) - { - result = - _parse_subdocument (subdocument, - _parse_translation, - &object, - modulemd_subdocument_get_version (subdocument), - &subdocument_error); - } - /* else if (document->type == <...>) */ - else - { - /* Unknown document type */ - g_set_error_literal (error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PARSE, - "Unknown document type"); - result = FALSE; - } - - if (result) - { - g_ptr_array_add (objects, object); - } - else - { - modulemd_subdocument_set_gerror (subdocument, subdocument_error); - g_clear_error (&subdocument_error); - - g_ptr_array_add (failed_subdocuments, g_object_ref (subdocument)); - - g_debug ("Skipping invalid document"); - g_clear_error (error); - } - } - - if (data) - { - *data = g_ptr_array_ref (objects); - } - - result = TRUE; - -error: - if (failures) - { - *failures = g_ptr_array_ref (failed_subdocuments); - } - - return result; -} - - -static gboolean -_read_yaml_and_type (yaml_parser_t *parser, ModulemdSubdocument **subdocument) -{ - g_autoptr (ModulemdSubdocument) document = NULL; - g_autoptr (GError) error = NULL; - gboolean result = FALSE; - gboolean done = FALSE; - gboolean finish_invalid_document = FALSE; - gsize depth = 0; - g_autoptr (modulemd_yaml_string) yaml_string = NULL; - MMD_INIT_YAML_EVENT (event); - MMD_INIT_YAML_EVENT (value_event); - yaml_emitter_t emitter; - - g_debug ("TRACE: entering _read_yaml_and_type"); - - document = modulemd_subdocument_new (); - - yaml_string = g_malloc0_n (1, sizeof (modulemd_yaml_string)); - yaml_emitter_initialize (&emitter); - - yaml_emitter_set_output (&emitter, _write_yaml_string, (void *)yaml_string); - - yaml_stream_start_event_initialize (&event, YAML_UTF8_ENCODING); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - &emitter, &event, &error, "Error starting stream"); - - yaml_document_start_event_initialize (&event, NULL, NULL, NULL, 0); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - &emitter, &event, &error, "Error starting document"); - - - while (!done) - { - value_event.type = YAML_NO_EVENT; - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, &error, "Parser error"); - - switch (event.type) - { - case YAML_DOCUMENT_END_EVENT: done = TRUE; break; - - case YAML_SEQUENCE_START_EVENT: - case YAML_MAPPING_START_EVENT: depth++; break; - - case YAML_SEQUENCE_END_EVENT: - case YAML_MAPPING_END_EVENT: depth--; break; - - case YAML_SCALAR_EVENT: - if (depth == 1 && !finish_invalid_document) - { - /* If we're in the root of the document, check for the - * document type and version - */ - - if (!g_strcmp0 ((const gchar *)event.data.scalar.value, - "document")) - { - if (modulemd_subdocument_get_doctype (document) != - G_TYPE_INVALID) - { - /* We encountered document-type twice in the same - * document root mapping. This shouldn't ever happen - */ - g_debug ("Document type specified more than once"); - modulemd_subdocument_set_doctype (document, - G_TYPE_INVALID); - - /* - * This is a recoverable parsing error, so we don't want - * to exit with FALSE. - */ - finish_invalid_document = TRUE; - - g_set_error ( - &error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PARSE, - "Document type was specified more than once"); - - break; - } - - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, &error, "Parser error"); - - if (value_event.type != YAML_SCALAR_EVENT) - { - g_debug ("Document type not a scalar"); - modulemd_subdocument_set_doctype (document, - G_TYPE_INVALID); - - switch (value_event.type) - { - case YAML_SEQUENCE_START_EVENT: - case YAML_MAPPING_START_EVENT: depth++; break; - - case YAML_SEQUENCE_END_EVENT: - case YAML_MAPPING_END_EVENT: depth--; break; - - default: break; - } - - /* - * This is a recoverable parsing error, so we don't want - * to exit with FALSE. - */ - finish_invalid_document = TRUE; - - g_set_error (&error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PARSE, - "Document type was not a scalar value"); - - break; - } - - if (g_strcmp0 ((const gchar *)value_event.data.scalar.value, - "modulemd") == 0) - { - modulemd_subdocument_set_doctype ( - document, MODULEMD_TYPE_MODULESTREAM); - } - - else if (g_strcmp0 ( - (const gchar *)value_event.data.scalar.value, - "modulemd-defaults") == 0) - { - modulemd_subdocument_set_doctype ( - document, MODULEMD_TYPE_DEFAULTS); - } - - else if (g_strcmp0 ( - (const gchar *)value_event.data.scalar.value, - "modulemd-translations") == 0) - { - modulemd_subdocument_set_doctype ( - document, MODULEMD_TYPE_TRANSLATION); - } - /* Handle additional types here */ - - else - { - /* Unknown document type */ - modulemd_subdocument_set_doctype (document, - G_TYPE_INVALID); - - finish_invalid_document = TRUE; - - g_set_error (&error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PARSE, - "Document type is not recognized " - "[line %zu col %zu]", - event.start_mark.line, - event.start_mark.column); - } - - g_debug ( - "Document type: %s", - g_type_name (modulemd_subdocument_get_doctype (document))); - } - - else if (g_strcmp0 ((const gchar *)event.data.scalar.value, - "version") == 0) - { - if (modulemd_subdocument_get_version (document) != 0) - { - g_debug ("Document version specified more than once"); - modulemd_subdocument_set_doctype (document, - G_TYPE_INVALID); - - /* - * This is a recoverable parsing error, so we don't want - * to exit with FALSE. - */ - finish_invalid_document = TRUE; - - g_set_error ( - &error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PARSE, - "Document version was specified more than once"); - - break; - } - - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, &error, "Parser error"); - - if (value_event.type != YAML_SCALAR_EVENT) - { - g_debug ("Document version not a scalar"); - modulemd_subdocument_set_doctype (document, - G_TYPE_INVALID); - - /* - * This is a recoverable parsing error, so we don't want - * to exit with FALSE. - */ - finish_invalid_document = TRUE; - - g_set_error (&error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PARSE, - "Document version was not a scalar"); - - switch (value_event.type) - { - case YAML_SEQUENCE_START_EVENT: - case YAML_MAPPING_START_EVENT: depth++; break; - - case YAML_SEQUENCE_END_EVENT: - case YAML_MAPPING_END_EVENT: depth--; break; - - default: break; - } - - break; - } - modulemd_subdocument_set_version ( - document, - g_ascii_strtoull ( - (const gchar *)value_event.data.scalar.value, NULL, 10)); - - g_debug ("Document version: %" PRIx64, - modulemd_subdocument_get_version (document)); - } - } - break; - - default: - /* Just fall through here. */ - break; - } - - /* Copy this event to the string */ - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - &emitter, &event, &error, "Error storing YAML event"); - - if (value_event.type != YAML_NO_EVENT) - { - /* Copy this event to the string */ - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - &emitter, &value_event, &error, "Error storing YAML event"); - } - } - - yaml_stream_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - &emitter, &event, &error, "Error ending stream"); - - /* If we get here with an invalid document type and no error */ - if (modulemd_subdocument_get_doctype (document) == G_TYPE_INVALID && - error == NULL) - { - g_set_error (&error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PARSE, - "Document type was unspecified or unknown"); - } - - result = TRUE; -error: - yaml_emitter_delete (&emitter); - - modulemd_subdocument_set_gerror (document, error); - - /* Copy the string, even if it was only partial because it's still useful - * to know where parsing broke - */ - modulemd_subdocument_set_yaml (document, yaml_string->str); - if (subdocument) - *subdocument = g_object_ref (document); - - g_debug ("TRACE: exiting _read_yaml_and_type"); - return result; -} - -static gboolean -_parse_subdocument (ModulemdSubdocument *subdocument, - ModulemdParsingFunc parse_func, - GObject **data, - guint64 version, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - gboolean done = FALSE; - GObject *object = NULL; - yaml_parser_t parser; - - yaml_parser_initialize (&parser); - yaml_parser_set_input_string ( - &parser, - (const unsigned char *)modulemd_subdocument_get_yaml (subdocument), - strlen (modulemd_subdocument_get_yaml (subdocument))); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - &parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_STREAM_START_EVENT: - /* Starting the stream here */ - break; - - case YAML_DOCUMENT_START_EVENT: - if (!parse_func (&parser, &object, version, error)) - { - goto error; - } - break; - - case YAML_DOCUMENT_END_EVENT: - /* This document is complete. */ - break; - - case YAML_STREAM_END_EVENT: done = TRUE; break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event at toplevel"); - break; - } - - yaml_event_delete (&event); - } - - *data = object; - result = TRUE; - -error: - yaml_parser_delete (&parser); - g_debug ("TRACE: exiting _parse_yaml"); - return result; -} - - -gboolean -_parse_modulemd_date (yaml_parser_t *parser, GDate **_date, GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - g_auto (GStrv) strv = NULL; - - YAML_PARSER_PARSE_WITH_ERROR_RETURN (parser, &event, error, "Parser error"); - if (event.type != YAML_SCALAR_EVENT) - { - MMD_YAML_ERROR_EVENT_RETURN (error, event, "Failed to parse date"); - } - - strv = g_strsplit ((const gchar *)event.data.scalar.value, "-", 4); - - if (!strv[0] || !strv[1] || !strv[2]) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Date not in the form YYYY-MM-DD"); - } - - *_date = g_date_new_dmy (g_ascii_strtoull (strv[2], NULL, 10), /* Day */ - g_ascii_strtoull (strv[1], NULL, 10), /* Month */ - g_ascii_strtoull (strv[0], NULL, 10)); /* Year */ - - result = TRUE; - -error: - return result; -} - -gboolean -_simpleset_from_sequence (yaml_parser_t *parser, - ModulemdSimpleSet **_set, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - gboolean started = FALSE; - gboolean done = FALSE; - g_autoptr (ModulemdSimpleSet) set = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering _simpleset_from_sequence"); - - set = modulemd_simpleset_new (); - - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_SEQUENCE_START_EVENT: - /* Sequence has begun */ - started = TRUE; - break; - - case YAML_SEQUENCE_END_EVENT: - /* Sequence has concluded. Return */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - if (!started) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Received scalar where sequence expected"); - } - modulemd_simpleset_add (set, (const gchar *)event.data.scalar.value); - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in sequence"); - break; - } - yaml_event_delete (&event); - } - - *_set = g_object_ref (set); - result = TRUE; - -error: - g_debug ("TRACE: exiting _simpleset_from_sequence"); - return result; -} - -gboolean -_hashtable_from_mapping (yaml_parser_t *parser, - GHashTable **_htable, - GError **error) -{ - gboolean result = FALSE; - MMD_INIT_YAML_EVENT (event); - MMD_INIT_YAML_EVENT (value_event); - gboolean started = FALSE; - gboolean done = FALSE; - g_autoptr (GHashTable) htable = NULL; - gchar *name = NULL; - gchar *value = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_debug ("TRACE: entering _hashtable_from_mapping"); - - htable = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_START_EVENT: - /* The dictionary has begun */ - started = TRUE; - break; - - case YAML_MAPPING_END_EVENT: - /* We've processed the whole dictionary */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - if (!started) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Received scalar where mapping expected"); - } - name = g_strdup ((const gchar *)event.data.scalar.value); - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - if (value_event.type != YAML_SCALAR_EVENT) - { - g_free (name); - MMD_YAML_ERROR_EVENT_RETURN ( - error, value_event, "Non-scalar value for dictionary."); - } - value = g_strdup ((const gchar *)value_event.data.scalar.value); - yaml_event_delete (&value_event); - - /* Set this key and value to the hash table */ - g_hash_table_insert (htable, name, value); - - break; - - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in sequence"); - break; - } - - yaml_event_delete (&event); - } - *_htable = g_hash_table_ref (htable); - - result = TRUE; - -error: - - g_debug ("TRACE: exiting _hashtable_from_mapping"); - return result; -} - -/* Helper function to skip over sections that aren't yet implemented */ -gboolean -_parse_skip (yaml_parser_t *parser, GError **error) -{ - MMD_INIT_YAML_EVENT (event); - gboolean result = FALSE; - gboolean done = FALSE; - gsize depth = 0; - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_DOCUMENT_END_EVENT: done = TRUE; break; - - case YAML_SEQUENCE_START_EVENT: - case YAML_MAPPING_START_EVENT: depth++; break; - - case YAML_SEQUENCE_END_EVENT: - case YAML_MAPPING_END_EVENT: - depth--; - - if (depth <= 0) - { - /* We've come back up to the original level from which we - * started - */ - done = TRUE; - } - break; - - default: - /* Just fall through here. */ - break; - } - yaml_event_delete (&event); - } - - result = TRUE; -error: - return result; -} diff --git a/modulemd-1.8.16/modulemd/modulemd-yaml-utils.c b/modulemd-1.8.16/modulemd/modulemd-yaml-utils.c deleted file mode 100644 index 456bfea..0000000 --- a/modulemd-1.8.16/modulemd/modulemd-yaml-utils.c +++ /dev/null @@ -1,586 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#include "modulemd.h" -#include "private/modulemd-private.h" -#include "private/modulemd-util.h" -#include "private/modulemd-yaml.h" - -void -modulemd_yaml_string_free (modulemd_yaml_string *yaml_string) -{ - g_clear_pointer (&yaml_string->str, g_free); - g_clear_pointer (&yaml_string, g_free); -} - -int -_write_yaml_string (void *data, unsigned char *buffer, size_t size) -{ - modulemd_yaml_string *yaml_string = (modulemd_yaml_string *)data; - gsize total; - - if (!g_size_checked_add (&total, yaml_string->len, size + 1)) - { - return 0; - } - - yaml_string->str = g_realloc_n (yaml_string->str, total, sizeof (char)); - - memcpy (yaml_string->str + yaml_string->len, buffer, size); - yaml_string->len += size; - yaml_string->str[yaml_string->len] = '\0'; - - return 1; -} - -static GVariant * -mmd_variant_from_scalar (const gchar *scalar) -{ - GVariant *value = NULL; - - /* Treat "TRUE" and "FALSE" as boolean values */ - if (g_strcmp0 (scalar, "TRUE") == 0) - { - value = g_variant_new_boolean (TRUE); - } - else if (g_strcmp0 (scalar, "FALSE") == 0) - { - value = g_variant_new_boolean (FALSE); - } - - else - { - /* Any value we don't handle specifically becomes a string */ - value = g_variant_new_string (scalar); - } - - return value; -} - -gboolean -parse_raw_yaml_mapping (yaml_parser_t *parser, - GVariant **variant, - GError **error) -{ - gboolean result = FALSE; - gboolean done = FALSE; - MMD_INIT_YAML_EVENT (event); - MMD_INIT_YAML_EVENT (value_event); - GVariantDict *dict = NULL; - GVariant *value = NULL; - gchar *key = NULL; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering parse_raw_yaml_mapping"); - - dict = g_variant_dict_new (NULL); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_MAPPING_END_EVENT: - /* We've processed the whole dictionary */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - /* We assume that all mapping keys are scalars */ - key = g_strdup ((const gchar *)event.data.scalar.value); - - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &value_event, error, "Parser error"); - - switch (value_event.type) - { - case YAML_SCALAR_EVENT: - value = mmd_variant_from_scalar ( - (const gchar *)value_event.data.scalar.value); - break; - - case YAML_MAPPING_START_EVENT: - if (!parse_raw_yaml_mapping (parser, &value, error)) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Failed to parse mapping value"); - } - break; - - case YAML_SEQUENCE_START_EVENT: - if (!parse_raw_yaml_sequence (parser, &value, error)) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Failed to parse sequence value"); - } - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in raw mapping"); - break; - } - - yaml_event_delete (&value_event); - g_variant_dict_insert_value (dict, key, value); - g_clear_pointer (&key, g_free); - - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in raw mapping"); - break; - } - - yaml_event_delete (&event); - } - - - *variant = g_variant_dict_end (dict); - result = TRUE; -error: - g_free (key); - g_variant_dict_unref (dict); - - g_debug ("TRACE: exiting parse_raw_yaml_mapping"); - return result; -} - -gboolean -parse_raw_yaml_sequence (yaml_parser_t *parser, - GVariant **variant, - GError **error) -{ - gboolean result = FALSE; - gboolean done = FALSE; - MMD_INIT_YAML_EVENT (event); - GVariant *value = NULL; - GVariant **array = NULL; - gchar *key = NULL; - gsize count = 0; - - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_debug ("TRACE: entering parse_raw_yaml_sequence"); - - while (!done) - { - YAML_PARSER_PARSE_WITH_ERROR_RETURN ( - parser, &event, error, "Parser error"); - - switch (event.type) - { - case YAML_SEQUENCE_END_EVENT: - /* We've processed the whole sequence */ - done = TRUE; - break; - - case YAML_SCALAR_EVENT: - value = g_variant_new_variant ( - mmd_variant_from_scalar ((const gchar *)event.data.scalar.value)); - break; - - case YAML_MAPPING_START_EVENT: - if (!parse_raw_yaml_mapping (parser, &value, error)) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Failed to parse mapping value"); - } - break; - - case YAML_SEQUENCE_START_EVENT: - if (!parse_raw_yaml_sequence (parser, &value, error)) - { - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Failed to parse sequence value"); - } - break; - - default: - /* We received a YAML event we shouldn't expect at this level */ - MMD_YAML_ERROR_EVENT_RETURN ( - error, event, "Unexpected YAML event in raw sequence"); - break; - } - - yaml_event_delete (&event); - - if (!done) - { - count++; - array = g_realloc_n (array, count, sizeof (GVariant *)); - array[count - 1] = value; - value = NULL; - } - - yaml_event_delete (&event); - } - - *variant = g_variant_new_array (G_VARIANT_TYPE_VARIANT, array, count); - - result = TRUE; -error: - g_free (array); - g_free (key); - - g_debug ("TRACE: exiting parse_raw_yaml_sequence"); - return result; -} - - -static gboolean -skip_unknown_yaml_mapping (yaml_parser_t *parser, GError **error); -static gboolean -skip_unknown_yaml_sequence (yaml_parser_t *parser, GError **error); - - -gboolean -skip_unknown_yaml (yaml_parser_t *parser, GError **error) -{ - MMD_INIT_YAML_EVENT (event); - MODULEMD_INIT_TRACE - - /* This function is called when an unknown key appears in a mapping. - * Read the next event and then skip to the end of it. - */ - - YAML_PARSER_PARSE_WITH_EXIT (parser, &event, error); - - switch (event.type) - { - case YAML_SCALAR_EVENT: - /* If we get a scalar key, we can just return here */ - break; - - case YAML_MAPPING_START_EVENT: - return skip_unknown_yaml_mapping (parser, error); - - case YAML_SEQUENCE_START_EVENT: - return skip_unknown_yaml_sequence (parser, error); - - default: - /* We received a YAML event we shouldn't expect at this level */ - g_set_error (error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PARSE, - "Unexpected YAML event %s in skip_unknown_yaml()", - mmd_yaml_get_event_name (event.type)); - return FALSE; - } - - return TRUE; -} - - -static gboolean -skip_unknown_yaml_sequence (yaml_parser_t *parser, GError **error) -{ - MMD_INIT_YAML_EVENT (event); - gsize depth = 0; - gboolean done = FALSE; - - while (!done) - { - YAML_PARSER_PARSE_WITH_EXIT (parser, &event, error); - - switch (event.type) - { - case YAML_SCALAR_EVENT: break; - - case YAML_MAPPING_START_EVENT: - case YAML_SEQUENCE_START_EVENT: depth++; break; - - case YAML_MAPPING_END_EVENT: depth--; break; - - case YAML_SEQUENCE_END_EVENT: - if (depth == 0) - { - done = TRUE; - break; - } - - depth--; - break; - - - default: - /* We received a YAML event we shouldn't expect at this level */ - g_set_error ( - error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PARSE, - "Unexpected YAML event %s in skip_unknown_yaml_sequence()", - mmd_yaml_get_event_name (event.type)); - return FALSE; - } - - yaml_event_delete (&event); - } - - return TRUE; -} - - -static gboolean -skip_unknown_yaml_mapping (yaml_parser_t *parser, GError **error) -{ - MMD_INIT_YAML_EVENT (event); - gsize depth = 0; - gboolean done = FALSE; - - while (!done) - { - YAML_PARSER_PARSE_WITH_EXIT (parser, &event, error); - - switch (event.type) - { - case YAML_SCALAR_EVENT: break; - - case YAML_MAPPING_START_EVENT: - case YAML_SEQUENCE_START_EVENT: depth++; break; - - case YAML_SEQUENCE_END_EVENT: depth--; break; - - case YAML_MAPPING_END_EVENT: - if (depth == 0) - { - done = TRUE; - break; - } - - depth--; - break; - - - default: - /* We received a YAML event we shouldn't expect at this level */ - g_set_error ( - error, - MODULEMD_YAML_ERROR, - MODULEMD_YAML_ERROR_PARSE, - "Unexpected YAML event %s in skip_unknown_yaml_sequence()", - mmd_yaml_get_event_name (event.type)); - return FALSE; - } - - yaml_event_delete (&event); - } - - return TRUE; -} - - -gboolean -emit_yaml_variant (yaml_emitter_t *emitter, GVariant *variant, GError **error) -{ - gboolean result = FALSE; - yaml_event_t event; - gchar *scalar = NULL; - GVariantIter iter; - GVariant *value = NULL; - - if (g_variant_is_of_type (variant, G_VARIANT_TYPE_STRING)) - { - /* Print the string as a scalar */ - scalar = g_strdup (g_variant_get_string (variant, NULL)); - g_debug ("Printing scalar: %s", scalar); - MMD_YAML_EMIT_SCALAR (&event, scalar, YAML_PLAIN_SCALAR_STYLE); - } - - else if (g_variant_is_of_type (variant, G_VARIANT_TYPE_BOOLEAN)) - { - /* Print the boolean as a scalar */ - if (g_variant_get_boolean (variant)) - { - scalar = g_strdup ("TRUE"); - } - else - { - scalar = g_strdup ("FALSE"); - } - g_debug ("Printing boolean: %s", scalar); - MMD_YAML_EMIT_SCALAR (&event, scalar, YAML_PLAIN_SCALAR_STYLE); - } - - else if (g_variant_is_of_type (variant, G_VARIANT_TYPE_DICTIONARY)) - { - /* Start the YAML mapping */ - yaml_mapping_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_MAPPING_STYLE); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting variant mapping"); - - g_variant_iter_init (&iter, variant); - while (g_variant_iter_next (&iter, "{sv}", &scalar, &value)) - { - /* Loop through all entries in this dictionary and parse them - * recursively through this function again - */ - - /* Print the key as a scalar */ - g_debug ("Printing scalar key: %s", scalar); - MMD_YAML_EMIT_SCALAR (&event, scalar, YAML_PLAIN_SCALAR_STYLE); - - /* Recurse into the value */ - emit_yaml_variant (emitter, value, error); - - g_clear_pointer (&value, g_variant_unref); - } - - /* Terminate the YAML mapping */ - yaml_mapping_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending variant mapping"); - } - - else if (g_variant_is_of_type (variant, G_VARIANT_TYPE_ARRAY)) - { - /* Start the YAML sequence */ - yaml_sequence_start_event_initialize ( - &event, NULL, NULL, 1, YAML_BLOCK_SEQUENCE_STYLE); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error starting variant sequence"); - - g_variant_iter_init (&iter, variant); - while (g_variant_iter_next (&iter, "v", &value)) - { - /* Loop through all entries in this array and parse them - * recursively through this function again - */ - emit_yaml_variant (emitter, value, error); - - g_clear_pointer (&value, g_variant_unref); - } - - /* Terminate the YAML sequence */ - yaml_sequence_end_event_initialize (&event); - YAML_EMITTER_EMIT_WITH_ERROR_RETURN ( - emitter, &event, error, "Error ending variant sequence"); - } - - else - { - g_debug ("Unhandled variant type: %s", - g_variant_get_type_string (variant)); - event.type = YAML_NO_EVENT; - MMD_YAML_ERROR_EVENT_RETURN (error, event, "Unhandled variant type"); - } - - result = TRUE; - -error: - g_free (scalar); - if (value) - { - g_variant_unref (value); - } - - return result; -} - -ModulemdModule ** -mmd_yaml_dup_modules (GPtrArray *objects) -{ - GObject *object = NULL; - gsize module_count = 0; - ModulemdModule **modules = NULL; - - g_return_val_if_fail (objects, NULL); - - /* Assume that all objects are modules */ - modules = g_new0 (ModulemdModule *, objects->len + 1); - - for (gsize i = 0; i < objects->len; i++) - { - object = g_ptr_array_index (objects, i); - if (MODULEMD_IS_MODULE (object)) - { - modules[module_count] = - modulemd_module_copy (MODULEMD_MODULE (object)); - module_count++; - } - else if (MODULEMD_IS_MODULESTREAM (object)) - { - modules[module_count] = modulemd_module_new_from_modulestream ( - MODULEMD_MODULESTREAM (object)); - module_count++; - } - } - - return modules; -} - -GPtrArray * -mmd_yaml_convert_modulestreams (GPtrArray *objects) -{ - GPtrArray *compat_data = NULL; - GObject *object = NULL; - gsize i; - - compat_data = g_ptr_array_new_full (objects->len, g_object_unref); - - for (i = 0; i < objects->len; i++) - { - object = g_ptr_array_index (objects, i); - if (MODULEMD_IS_MODULESTREAM (object)) - { - g_ptr_array_add (objects, - modulemd_module_new_from_modulestream ( - MODULEMD_MODULESTREAM (object))); - } - else - { - g_ptr_array_add (compat_data, g_object_ref (object)); - } - } - - return compat_data; -} - -const gchar * -mmd_yaml_get_event_name (yaml_event_type_t type) -{ - switch (type) - { - case YAML_NO_EVENT: return "YAML_NO_EVENT"; - - case YAML_STREAM_START_EVENT: return "YAML_STREAM_START_EVENT"; - - case YAML_STREAM_END_EVENT: return "YAML_STREAM_END_EVENT"; - - case YAML_DOCUMENT_START_EVENT: return "YAML_DOCUMENT_START_EVENT"; - - case YAML_DOCUMENT_END_EVENT: return "YAML_DOCUMENT_END_EVENT"; - - case YAML_ALIAS_EVENT: return "YAML_ALIAS_EVENT"; - - case YAML_SCALAR_EVENT: return "YAML_SCALAR_EVENT"; - - case YAML_SEQUENCE_START_EVENT: return "YAML_SEQUENCE_START_EVENT"; - - case YAML_SEQUENCE_END_EVENT: return "YAML_SEQUENCE_END_EVENT"; - - case YAML_MAPPING_START_EVENT: return "YAML_MAPPING_START_EVENT"; - - case YAML_MAPPING_END_EVENT: return "YAML_MAPPING_END_EVENT"; - } - - /* Should be unreachable */ - return "Unknown YAML Event"; -} diff --git a/modulemd-1.8.16/modulemd/tests/test-dirty.py b/modulemd-1.8.16/modulemd/tests/test-dirty.py deleted file mode 100644 index b6da1fc..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-dirty.py +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/python3 - -# This file is part of libmodulemd -# Copyright (C) 2017-2018 Stephen Gallagher -# -# Fedora-License-Identifier: MIT -# SPDX-2.0-License-Identifier: MIT -# SPDX-3.0-License-Identifier: MIT -# -# This program is free software. -# For more information on the license, see COPYING. -# For more information on free software, see -# . - -import os -import sys -import git -import subprocess - -script_dir = os.path.dirname(os.path.realpath(__file__)) - -# Get the repo we're running in -repo = git.Repo(script_dir, - search_parent_directories=True) - -# When running in CI, the only reason the git repo could -# become "dirty" (files differ from their checkout) is if -# the autoformatter made changes. This should be reported -# back so the submitter can fix this. -if (repo.is_dirty()): - print("Autoformatter was not run before submitting. Please run " - "`ninja test`, amend the commit and resubmit this pull request.") - res = subprocess.run(['git', 'diff'], capture_output=True, text=True) - print(res.stdout, file=sys.stderr) - sys.exit(os.EX_USAGE) - -sys.exit(os.EX_OK) diff --git a/modulemd-1.8.16/modulemd/tests/test-import-headers.sh b/modulemd-1.8.16/modulemd/tests/test-import-headers.sh deleted file mode 100755 index 0431b9a..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-import-headers.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/bash -# This file is part of libmodulemd -# Copyright (C) 2017-2018 Stephen Gallagher -# -# Fedora-License-Identifier: MIT -# SPDX-2.0-License-Identifier: MIT -# SPDX-3.0-License-Identifier: MIT -# -# This program is free software. -# For more information on the license, see COPYING. -# For more information on free software, see -# . - - -set -e - -tempdir=`mktemp -d` -pushd $tempdir - -for arg; do - header=`basename $arg` - cat << EOF > $header.c -#include "$header" - -int main (int argc, char **argv) -{ - return 0; -} -EOF - - cat $header.c - - echo "gcc \`pkg-config --cflags gobject-2.0\` \ - \`pkg-config --cflags yaml-0.1\` \ - -I `dirname $arg` \ - -o $header.out \ - $header.c" - gcc `pkg-config --cflags gobject-2.0` \ - `pkg-config --cflags yaml-0.1` \ - -I `dirname $arg` \ - -o $header.out \ - $header.c - - echo "g++ \`pkg-config --cflags gobject-2.0\` \ - \`pkg-config --cflags yaml-0.1\` \ - -I `dirname $arg` \ - -o $header.out \ - $header.c" - g++ `pkg-config --cflags gobject-2.0` \ - `pkg-config --cflags yaml-0.1` \ - -I `dirname $arg` \ - -o $header.out \ - $header.c -done - -popd -rm -Rf $tempdir \ No newline at end of file diff --git a/modulemd-1.8.16/modulemd/tests/test-modulemd-buildopts.c b/modulemd-1.8.16/modulemd/tests/test-modulemd-buildopts.c deleted file mode 100644 index 1ec64e4..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-modulemd-buildopts.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#define MMD_DISABLE_DEPRECATION_WARNINGS 1 -#include "modulemd.h" -#include "modulemd-buildopts.h" - -#include -#include -#include -#include -#include - -typedef struct _BuildoptsFixture -{ -} BuildoptsFixture; - -static void -modulemd_buildopts_test_basic (BuildoptsFixture *fixture, - gconstpointer user_data) -{ - g_autoptr (ModulemdBuildopts) buildopts = NULL; - g_autoptr (ModulemdBuildopts) copy = NULL; - const gchar *demo_macros = "%demomacro 1\n%demomacro2 %{demomacro}23"; - const gchar *demo_macros2 = "foo"; - g_auto (GStrv) demo_whitelist; - g_auto (GStrv) retrieved_whitelist; - g_auto (GStrv) boxed_whitelist; - g_autofree gchar *retrieved_macros = NULL; - g_autofree gchar *rpm_macros = NULL; - - /* Test standard object construction succeeds */ - buildopts = g_object_new (MODULEMD_TYPE_BUILDOPTS, NULL); - g_assert_nonnull (buildopts); - g_assert_true (MODULEMD_IS_BUILDOPTS (buildopts)); - g_clear_pointer (&buildopts, g_object_unref); - - buildopts = modulemd_buildopts_new (); - g_assert_nonnull (buildopts); - g_assert_true (MODULEMD_IS_BUILDOPTS (buildopts)); - - /* Test set/get methods for RPM macros */ - modulemd_buildopts_set_rpm_macros (buildopts, demo_macros); - retrieved_macros = modulemd_buildopts_get_rpm_macros (buildopts); - g_assert_cmpstr (retrieved_macros, ==, demo_macros); - g_clear_pointer (&retrieved_macros, g_free); - - /* Test GObject properties for RPM macros*/ - g_object_get (G_OBJECT (buildopts), "rpm-macros", &rpm_macros, NULL); - g_assert_cmpstr (rpm_macros, ==, demo_macros); - - /* Assign another value */ - g_object_set (G_OBJECT (buildopts), "rpm-macros", demo_macros2, NULL); - retrieved_macros = modulemd_buildopts_get_rpm_macros (buildopts); - g_assert_cmpstr (retrieved_macros, ==, demo_macros2); - g_clear_pointer (&retrieved_macros, g_free); - - - /* Test set/get methods for RPM whitelist */ - demo_whitelist = g_malloc0_n (3, sizeof (gchar *)); - demo_whitelist[0] = g_strdup ("bar"); - demo_whitelist[1] = g_strdup ("baz"); - - modulemd_buildopts_set_rpm_whitelist (buildopts, demo_whitelist); - retrieved_whitelist = modulemd_buildopts_get_rpm_whitelist (buildopts); - - g_assert_cmpstr (retrieved_whitelist[0], ==, demo_whitelist[0]); - g_assert_cmpstr (retrieved_whitelist[1], ==, demo_whitelist[1]); - g_assert_cmpstr (retrieved_whitelist[2], ==, demo_whitelist[2]); - g_clear_pointer (&retrieved_whitelist, g_strfreev); - - /* Test GObject properties for RPM whitelist */ - boxed_whitelist = g_malloc0_n (2, sizeof (gchar *)); - boxed_whitelist[0] = g_strdup ("jonsnow"); - - g_object_get ( - G_OBJECT (buildopts), "rpm-whitelist", &retrieved_whitelist, NULL); - - g_assert_cmpstr (retrieved_whitelist[0], ==, demo_whitelist[0]); - g_assert_cmpstr (retrieved_whitelist[1], ==, demo_whitelist[1]); - g_assert_null (retrieved_whitelist[2]); - g_clear_pointer (&retrieved_whitelist, g_strfreev); - - g_object_set (G_OBJECT (buildopts), "rpm-whitelist", boxed_whitelist, NULL); - retrieved_whitelist = modulemd_buildopts_get_rpm_whitelist (buildopts); - - g_assert_cmpstr (retrieved_whitelist[0], ==, boxed_whitelist[0]); - g_assert_null (retrieved_whitelist[1]); - g_clear_pointer (&retrieved_whitelist, g_strfreev); - - - /* Test copying */ - copy = modulemd_buildopts_copy (buildopts); - - retrieved_macros = modulemd_buildopts_get_rpm_macros (copy); - g_assert_cmpstr (retrieved_macros, ==, demo_macros2); - - retrieved_whitelist = modulemd_buildopts_get_rpm_whitelist (copy); - g_assert_cmpstr (retrieved_whitelist[0], ==, boxed_whitelist[0]); - g_assert_null (retrieved_whitelist[1]); -} - -int -main (int argc, char *argv[]) -{ - setlocale (LC_ALL, ""); - - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id="); - - g_test_add ("/modulemd/buildopts/modulemd_buildopts_test_basic", - BuildoptsFixture, - NULL, - NULL, - modulemd_buildopts_test_basic, - NULL); - - return g_test_run (); -} diff --git a/modulemd-1.8.16/modulemd/tests/test-modulemd-component.c b/modulemd-1.8.16/modulemd/tests/test-modulemd-component.c deleted file mode 100644 index 7c6f884..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-modulemd-component.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ -#define MMD_DISABLE_DEPRECATION_WARNINGS 1 -#include "modulemd.h" -#include "modulemd-component.h" - -#include -#include - -typedef struct _ComponentFixture -{ - ModulemdComponent *component; -} ComponentFixture; - -static void -modulemd_component_set_up (ComponentFixture *fixture, gconstpointer user_data) -{ - fixture->component = modulemd_component_new (); -} - -static void -modulemd_component_tear_down (ComponentFixture *fixture, - gconstpointer user_data) -{ - g_object_unref (fixture->component); -} - -static void -modulemd_component_test_create (ComponentFixture *fixture, - gconstpointer user_data) -{ - g_assert_true (MODULEMD_IS_COMPONENT (fixture->component)); -} - -int -main (int argc, char *argv[]) -{ - setlocale (LC_ALL, ""); - - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id="); - - // Define the tests. - g_test_add ("/modulemd/component/test_create", - ComponentFixture, - NULL, - modulemd_component_set_up, - modulemd_component_test_create, - modulemd_component_tear_down); - - return g_test_run (); -} diff --git a/modulemd-1.8.16/modulemd/tests/test-modulemd-defaults.c b/modulemd-1.8.16/modulemd/tests/test-modulemd-defaults.c deleted file mode 100644 index c088e87..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-modulemd-defaults.c +++ /dev/null @@ -1,1356 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ -#define MMD_DISABLE_DEPRECATION_WARNINGS 1 -#include "modulemd.h" -#include "private/modulemd-yaml.h" - -#include -#include -#include -#include -#include - -typedef struct _DefaultsFixture -{ -} DefaultsFixture; - -static void -modulemd_defaults_test_good_ex1 (DefaultsFixture *fixture, - gconstpointer user_data) -{ - g_autofree gchar *yaml_path = NULL; - GPtrArray *objects = NULL; - g_autoptr (ModulemdDefaults) defaults = NULL; - g_autoptr (ModulemdDefaults) defaults_reread = NULL; - GHashTable *profile_defaults = NULL; - ModulemdSimpleSet *set = NULL; - GError *error = NULL; - gchar *yaml_string = NULL; - const gchar *module_name = "httpd"; - const gchar *default_stream = "2.6"; - - yaml_path = g_strdup_printf ("%s/mod-defaults/ex1.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_path); - - defaults = modulemd_defaults_new_from_file (yaml_path, &error); - g_assert_nonnull (defaults); - g_assert_null (error); - - g_assert_cmpint ( - modulemd_defaults_peek_version (defaults), ==, MD_DEFAULTS_VERSION_1); - - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, module_name); - - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, default_stream); - - profile_defaults = modulemd_defaults_peek_profile_defaults (defaults); - - g_assert_true (g_hash_table_contains (profile_defaults, default_stream)); - - set = g_hash_table_lookup (profile_defaults, default_stream); - g_assert_true (modulemd_simpleset_contains (set, "client")); - g_assert_true (modulemd_simpleset_contains (set, "server")); - - - /* Test emitting the YAML back out */ - modulemd_defaults_dumps (defaults, &yaml_string); - g_assert_nonnull (yaml_string); - g_debug ("EX1 YAML:\n%s", yaml_string); - - /* Read the YAML back in from the string to ensure the output was valid */ - defaults_reread = modulemd_defaults_new_from_string (yaml_string, &error); - g_assert_nonnull (defaults_reread); - g_clear_pointer (&defaults_reread, g_object_unref); - - g_clear_pointer (&yaml_string, g_free); - g_clear_pointer (&objects, g_ptr_array_unref); -} - - -static void -modulemd_defaults_test_good_ex2 (DefaultsFixture *fixture, - gconstpointer user_data) -{ - gboolean result = FALSE; - gchar *yaml_path = NULL; - GPtrArray *objects = NULL; - GObject *object = NULL; - ModulemdDefaults *defaults = NULL; - g_autoptr (ModulemdDefaults) defaults_reread = NULL; - GHashTable *profile_defaults = NULL; - ModulemdSimpleSet *set = NULL; - GError *error = NULL; - gchar *yaml_string = NULL; - const gchar *module_name = "postgresql"; - const gchar *default_stream = "8.0"; - - yaml_path = g_strdup_printf ("%s/mod-defaults/ex2.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_path); - - result = parse_yaml_file (yaml_path, &objects, NULL, &error); - g_free (yaml_path); - g_assert_true (result); - - g_assert_cmpint (objects->len, ==, 2); - - - /* First of the two subdocuments */ - object = g_ptr_array_index (objects, 0); - g_assert_nonnull (object); - g_assert_true (MODULEMD_IS_DEFAULTS (object)); - - defaults = MODULEMD_DEFAULTS (object); - - g_assert_cmpint ( - modulemd_defaults_peek_version (defaults), ==, MD_DEFAULTS_VERSION_1); - - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, module_name); - - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, default_stream); - - profile_defaults = modulemd_defaults_peek_profile_defaults (defaults); - - g_assert_true (g_hash_table_contains (profile_defaults, default_stream)); - - set = g_hash_table_lookup (profile_defaults, default_stream); - g_assert_true (modulemd_simpleset_contains (set, "server")); - - /* Test emitting the YAML back out */ - modulemd_defaults_dumps (defaults, &yaml_string); - g_assert_nonnull (yaml_string); - g_debug ("EX1 YAML:\n%s", yaml_string); - - /* Read the YAML back in from the string to ensure the output was valid */ - defaults_reread = modulemd_defaults_new_from_string (yaml_string, &error); - g_assert_nonnull (defaults_reread); - g_clear_pointer (&defaults_reread, g_object_unref); - - g_clear_pointer (&yaml_string, g_free); - - - /* Second of the two subdocuments */ - module_name = "nodejs"; - default_stream = "6.0"; - - object = g_ptr_array_index (objects, 1); - g_assert_nonnull (object); - g_assert_true (MODULEMD_IS_DEFAULTS (object)); - - defaults = MODULEMD_DEFAULTS (object); - - g_assert_cmpint ( - modulemd_defaults_peek_version (defaults), ==, MD_DEFAULTS_VERSION_1); - - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, module_name); - - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, default_stream); - - profile_defaults = modulemd_defaults_peek_profile_defaults (defaults); - - g_assert_true (g_hash_table_contains (profile_defaults, default_stream)); - - set = g_hash_table_lookup (profile_defaults, default_stream); - g_assert_true (modulemd_simpleset_contains (set, "default")); - - /* Test emitting the YAML back out */ - modulemd_defaults_dumps (defaults, &yaml_string); - g_assert_nonnull (yaml_string); - g_debug ("EX1 YAML:\n%s", yaml_string); - - /* Read the YAML back in from the string to ensure the output was valid */ - defaults_reread = modulemd_defaults_new_from_string (yaml_string, &error); - g_assert_nonnull (defaults_reread); - g_clear_pointer (&defaults_reread, g_object_unref); - - g_clear_pointer (&yaml_string, g_free); - g_clear_pointer (&objects, g_ptr_array_unref); -} - - -static void -modulemd_defaults_test_good_ex3 (DefaultsFixture *fixture, - gconstpointer user_data) -{ - gboolean result = FALSE; - gchar *yaml_path = NULL; - GPtrArray *objects = NULL; - GObject *object = NULL; - ModulemdDefaults *defaults = NULL; - g_autoptr (ModulemdDefaults) defaults_reread = NULL; - GHashTable *profile_defaults = NULL; - ModulemdSimpleSet *set = NULL; - GError *error = NULL; - gchar *yaml_string = NULL; - const gchar *module_name = "httpd"; - const gchar *default_stream = "2.2"; - - yaml_path = g_strdup_printf ("%s/mod-defaults/ex3.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_path); - - result = parse_yaml_file (yaml_path, &objects, NULL, &error); - g_free (yaml_path); - g_assert_true (result); - - g_assert_cmpint (objects->len, ==, 3); - - /* First of the three subdocuments */ - object = g_ptr_array_index (objects, 0); - g_assert_nonnull (object); - g_assert_true (MODULEMD_IS_DEFAULTS (object)); - - defaults = MODULEMD_DEFAULTS (object); - - g_assert_cmpint ( - modulemd_defaults_peek_version (defaults), ==, MD_DEFAULTS_VERSION_1); - - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, module_name); - - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, default_stream); - - profile_defaults = modulemd_defaults_peek_profile_defaults (defaults); - - g_assert_true (g_hash_table_contains (profile_defaults, default_stream)); - - set = g_hash_table_lookup (profile_defaults, default_stream); - g_assert_true (modulemd_simpleset_contains (set, "client")); - g_assert_true (modulemd_simpleset_contains (set, "server")); - - /* Test emitting the YAML back out */ - modulemd_defaults_dumps (defaults, &yaml_string); - g_assert_nonnull (yaml_string); - g_debug ("EX1 YAML:\n%s", yaml_string); - - /* Read the YAML back in from the string to ensure the output was valid */ - defaults_reread = modulemd_defaults_new_from_string (yaml_string, &error); - g_assert_nonnull (defaults_reread); - g_clear_pointer (&defaults_reread, g_object_unref); - - g_clear_pointer (&yaml_string, g_free); - - - /* Second of the three subdocuments */ - module_name = "postgresql"; - default_stream = "8.1"; - - object = g_ptr_array_index (objects, 1); - g_assert_nonnull (object); - g_assert_true (MODULEMD_IS_DEFAULTS (object)); - - defaults = MODULEMD_DEFAULTS (object); - - g_assert_cmpint ( - modulemd_defaults_peek_version (defaults), ==, MD_DEFAULTS_VERSION_1); - - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, module_name); - - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, default_stream); - - profile_defaults = modulemd_defaults_peek_profile_defaults (defaults); - - g_assert_true (g_hash_table_contains (profile_defaults, default_stream)); - - set = g_hash_table_lookup (profile_defaults, default_stream); - g_assert_true (modulemd_simpleset_contains (set, "client")); - g_assert_true (modulemd_simpleset_contains (set, "server")); - g_assert_true (modulemd_simpleset_contains (set, "foo")); - - /* Test emitting the YAML back out */ - modulemd_defaults_dumps (defaults, &yaml_string); - g_assert_nonnull (yaml_string); - g_debug ("EX1 YAML:\n%s", yaml_string); - - /* Read the YAML back in from the string to ensure the output was valid */ - defaults_reread = modulemd_defaults_new_from_string (yaml_string, &error); - g_assert_nonnull (defaults_reread); - g_clear_pointer (&defaults_reread, g_object_unref); - - g_clear_pointer (&yaml_string, g_free); - - - /* Third of the three subdocuments */ - module_name = "nodejs"; - default_stream = "8.0"; - - object = g_ptr_array_index (objects, 2); - g_assert_nonnull (object); - g_assert_true (MODULEMD_IS_DEFAULTS (object)); - - defaults = MODULEMD_DEFAULTS (object); - - g_assert_cmpint ( - modulemd_defaults_peek_version (defaults), ==, MD_DEFAULTS_VERSION_1); - - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, module_name); - - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, default_stream); - - profile_defaults = modulemd_defaults_peek_profile_defaults (defaults); - - g_assert_true (g_hash_table_contains (profile_defaults, default_stream)); - - set = g_hash_table_lookup (profile_defaults, default_stream); - g_assert_true (modulemd_simpleset_contains (set, "super")); - - set = g_hash_table_lookup (profile_defaults, "6.0"); - g_assert_true (modulemd_simpleset_contains (set, "default")); - - /* Test emitting the YAML back out */ - modulemd_defaults_dumps (defaults, &yaml_string); - g_assert_nonnull (yaml_string); - g_debug ("EX1 YAML:\n%s", yaml_string); - - /* Read the YAML back in from the string to ensure the output was valid */ - defaults_reread = modulemd_defaults_new_from_string (yaml_string, &error); - g_assert_nonnull (defaults_reread); - g_clear_pointer (&defaults_reread, g_object_unref); - - g_clear_pointer (&yaml_string, g_free); - g_clear_pointer (&objects, g_ptr_array_unref); -} - - -static void -modulemd_defaults_test_good_ex4 (DefaultsFixture *fixture, - gconstpointer user_data) -{ - gboolean result = FALSE; - gchar *yaml_path = NULL; - GPtrArray *objects = NULL; - GObject *object = NULL; - ModulemdDefaults *defaults = NULL; - g_autoptr (ModulemdDefaults) defaults_reread = NULL; - GHashTable *profile_defaults = NULL; - ModulemdSimpleSet *set = NULL; - GError *error = NULL; - gchar *yaml_string = NULL; - const gchar *module_name = "httpd"; - const gchar *default_stream = NULL; - - yaml_path = g_strdup_printf ("%s/mod-defaults/ex4.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_path); - - result = parse_yaml_file (yaml_path, &objects, NULL, &error); - g_free (yaml_path); - g_assert_true (result); - - g_assert_cmpint (objects->len, ==, 1); - - object = g_ptr_array_index (objects, 0); - g_assert_nonnull (object); - g_assert_true (MODULEMD_IS_DEFAULTS (object)); - - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (objects, 0)); - - g_assert_cmpint ( - modulemd_defaults_peek_version (defaults), ==, MD_DEFAULTS_VERSION_1); - - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, module_name); - - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, default_stream); - - profile_defaults = modulemd_defaults_peek_profile_defaults (defaults); - g_assert_nonnull (profile_defaults); - - set = g_hash_table_lookup (profile_defaults, "2.6"); - g_assert_nonnull (set); - g_assert_true (modulemd_simpleset_contains (set, "client")); - g_assert_true (modulemd_simpleset_contains (set, "server")); - - - /* Test emitting the YAML back out */ - modulemd_defaults_dumps (defaults, &yaml_string); - g_assert_nonnull (yaml_string); - g_debug ("EX1 YAML:\n%s", yaml_string); - - /* Read the YAML back in from the string to ensure the output was valid */ - defaults_reread = modulemd_defaults_new_from_string (yaml_string, &error); - g_assert_nonnull (defaults_reread); - g_clear_pointer (&defaults_reread, g_object_unref); - - g_clear_pointer (&yaml_string, g_free); - g_clear_pointer (&objects, g_ptr_array_unref); -} - - -static void -modulemd_defaults_test_copy (DefaultsFixture *fixture, gconstpointer user_data) -{ - g_autofree gchar *yaml_path = NULL; - GError *error = NULL; - g_autoptr (ModulemdDefaults) orig = NULL; - g_autoptr (ModulemdDefaults) copy = NULL; - - yaml_path = g_strdup_printf ("%s/mod-defaults/spec.v1.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_path); - orig = modulemd_defaults_new_from_file (yaml_path, &error); - g_assert_nonnull (orig); - - copy = modulemd_defaults_copy (orig); - g_assert_nonnull (copy); - - g_assert_cmpstr (modulemd_defaults_peek_module_name (orig), - ==, - modulemd_defaults_peek_module_name (copy)); - - g_assert_cmpstr (modulemd_defaults_peek_default_stream (orig), - ==, - modulemd_defaults_peek_default_stream (copy)); - - g_assert_cmpint ( - g_hash_table_size (modulemd_defaults_peek_profile_defaults (orig)), - ==, - g_hash_table_size (modulemd_defaults_peek_profile_defaults (copy))); - - g_assert_cmpint ( - g_hash_table_size (modulemd_defaults_peek_intents (orig)), ==, 2); - g_assert_cmpint ( - g_hash_table_size (modulemd_defaults_peek_intents (copy)), ==, 2); - - g_assert_true ( - g_hash_table_contains (modulemd_defaults_peek_intents (orig), "desktop")); - g_assert_true ( - g_hash_table_contains (modulemd_defaults_peek_intents (copy), "desktop")); - - g_assert_true ( - g_hash_table_contains (modulemd_defaults_peek_intents (orig), "server")); - g_assert_true ( - g_hash_table_contains (modulemd_defaults_peek_intents (copy), "server")); -} - - -static void -modulemd_defaults_test_merging (DefaultsFixture *fixture, - gconstpointer user_data) -{ - g_autofree gchar *yaml_path = NULL; - g_autoptr (GPtrArray) objects = NULL; - g_autoptr (GPtrArray) override_objects = NULL; - g_autoptr (GPtrArray) merged_base = NULL; - g_autoptr (GPtrArray) overridden = NULL; - ModulemdDefaults *defaults = NULL; - GError *error = NULL; - - yaml_path = g_strdup_printf ("%s/test_data/defaults/merging-base.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_path); - - objects = modulemd_objects_from_file (yaml_path, &error); - g_clear_pointer (&yaml_path, g_free); - g_assert_nonnull (objects); - g_assert_cmpint (objects->len, ==, 7); - - merged_base = modulemd_merge_defaults (objects, NULL, FALSE, &error); - if (!merged_base) - { - fprintf (stderr, "Error merging defaults: %s\n", error->message); - } - g_assert_nonnull (merged_base); - g_assert_cmpint (merged_base->len, ==, 3); - - /* They should be in alphabetical order now */ - - /* HTTPD */ - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (merged_base, 0)); - g_assert_cmpstr (modulemd_defaults_peek_module_name (defaults), ==, "httpd"); - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, "2.2"); - g_assert_cmpint ( - g_hash_table_size (modulemd_defaults_peek_profile_defaults (defaults)), - ==, - 2); - g_assert_true (g_hash_table_contains ( - modulemd_defaults_peek_profile_defaults (defaults), "2.2")); - g_assert_true (g_hash_table_contains ( - modulemd_defaults_peek_profile_defaults (defaults), "2.8")); - - /* NODEJS */ - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (merged_base, 1)); - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, "nodejs"); - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, "8.0"); - g_assert_cmpint ( - g_hash_table_size (modulemd_defaults_peek_profile_defaults (defaults)), - ==, - 3); - g_assert_true (g_hash_table_contains ( - modulemd_defaults_peek_profile_defaults (defaults), "6.0")); - g_assert_true (g_hash_table_contains ( - modulemd_defaults_peek_profile_defaults (defaults), "8.0")); - g_assert_true (g_hash_table_contains ( - modulemd_defaults_peek_profile_defaults (defaults), "9.0")); - - /* POSTGRESQL */ - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (merged_base, 2)); - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, "postgresql"); - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, "8.1"); - g_assert_cmpint ( - g_hash_table_size (modulemd_defaults_peek_profile_defaults (defaults)), - ==, - 2); - g_assert_true (g_hash_table_contains ( - modulemd_defaults_peek_profile_defaults (defaults), "8.1")); - g_assert_true (g_hash_table_contains ( - modulemd_defaults_peek_profile_defaults (defaults), "8.2")); - - - /* Now test overriding with a higher-priority repo */ - - yaml_path = g_strdup_printf ("%s/test_data/defaults/overriding.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_path); - - override_objects = modulemd_objects_from_file (yaml_path, &error); - g_clear_pointer (&yaml_path, g_free); - g_assert_nonnull (override_objects); - g_assert_cmpint (override_objects->len, ==, 3); - - overridden = - modulemd_merge_defaults (merged_base, override_objects, TRUE, &error); - if (!overridden) - { - fprintf (stderr, "Error merging defaults: %s\n", error->message); - } - g_assert_nonnull (overridden); - g_assert_cmpint (overridden->len, ==, 3); - - - /* They should be in alphabetical order now */ - - /* HTTPD */ - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (overridden, 0)); - g_assert_cmpstr (modulemd_defaults_peek_module_name (defaults), ==, "httpd"); - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, "2.4"); - g_assert_cmpint ( - g_hash_table_size (modulemd_defaults_peek_profile_defaults (defaults)), - ==, - 2); - g_assert_true (g_hash_table_contains ( - modulemd_defaults_peek_profile_defaults (defaults), "2.2")); - g_assert_true (g_hash_table_contains ( - modulemd_defaults_peek_profile_defaults (defaults), "2.4")); - g_assert_false (g_hash_table_contains ( - modulemd_defaults_peek_profile_defaults (defaults), "2.8")); - - /* NODEJS */ - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (overridden, 1)); - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, "nodejs"); - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, "9.0"); - g_assert_cmpint ( - g_hash_table_size (modulemd_defaults_peek_profile_defaults (defaults)), - ==, - 3); - g_assert_true (g_hash_table_contains ( - modulemd_defaults_peek_profile_defaults (defaults), "6.0")); - g_assert_true (g_hash_table_contains ( - modulemd_defaults_peek_profile_defaults (defaults), "8.0")); - g_assert_true (g_hash_table_contains ( - modulemd_defaults_peek_profile_defaults (defaults), "9.0")); - - /* POSTGRESQL */ - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (overridden, 2)); - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, "postgresql"); - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, "8.1"); - g_assert_cmpint ( - g_hash_table_size (modulemd_defaults_peek_profile_defaults (defaults)), - ==, - 1); - g_assert_true (g_hash_table_contains ( - modulemd_defaults_peek_profile_defaults (defaults), "8.1")); -} - - -static void -modulemd_defaults_test_prioritizer (DefaultsFixture *fixture, - gconstpointer user_data) -{ - g_autofree gchar *yaml_base_path = NULL; - g_autofree gchar *yaml_override_path = NULL; - g_autoptr (GPtrArray) base_objects = NULL; - g_autoptr (GPtrArray) override_objects = NULL; - g_autoptr (GPtrArray) override_nodejs_objects = NULL; - g_autoptr (GPtrArray) merged_objects = NULL; - g_autoptr (ModulemdPrioritizer) prioritizer = NULL; - g_autoptr (GError) error = NULL; - GHashTable *htable = NULL; - gint64 prio; - ModulemdDefaults *defaults = NULL; - gboolean result; - - yaml_base_path = g_strdup_printf ("%s/test_data/defaults/merging-base.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_base_path); - - base_objects = modulemd_objects_from_file (yaml_base_path, &error); - g_assert_nonnull (base_objects); - g_assert_cmpint (base_objects->len, ==, 7); - - - yaml_override_path = - g_strdup_printf ("%s/test_data/defaults/overriding-nodejs.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_override_path); - - override_nodejs_objects = - modulemd_objects_from_file (yaml_override_path, &error); - g_clear_pointer (&yaml_override_path, g_free); - g_assert_nonnull (override_nodejs_objects); - g_assert_cmpint (override_nodejs_objects->len, ==, 1); - - yaml_override_path = g_strdup_printf ( - "%s/test_data/defaults/overriding.yaml", g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_override_path); - - override_objects = modulemd_objects_from_file (yaml_override_path, &error); - g_assert_nonnull (override_objects); - g_assert_cmpint (override_objects->len, ==, 3); - - - /* Test that importing the base objects work. These objects include several - * exact duplicates which will be cleaned up by this process. - */ - - /* Pick a random number from 0-99 for the higher priority. - * This will help exercise the sort function and make sure it doesn't - * occasionally fail. - */ - prio = g_test_rand_int_range (0, 99); - g_info ("Random low priority level: %" PRIi64 "\n", prio); - - prioritizer = modulemd_prioritizer_new (); - result = modulemd_prioritizer_add (prioritizer, base_objects, prio, &error); - if (!result) - { - fprintf (stderr, "Merge error: %s", error->message); - } - g_assert_true (result); - - - /* - * Test that importing the base objects works again. This will be a worst- - * case scenario where all of the values being imported are duplicated. - */ - result = modulemd_prioritizer_add (prioritizer, base_objects, prio, &error); - if (!result) - { - fprintf (stderr, "Merge error: %s", error->message); - } - g_assert_true (result); - - - /* - * Test that importing the nodejs overrides at the same priority level fails. - * - * This YAML has a conflicting default stream which should be ignored and set - * to "no default stream". - */ - - result = modulemd_prioritizer_add ( - prioritizer, override_nodejs_objects, prio, &error); - g_assert_true (result); - - merged_objects = modulemd_prioritizer_resolve (prioritizer, &error); - g_assert_nonnull (merged_objects); - g_assert_cmpint (merged_objects->len, ==, 3); - - for (gint i = 0; i < merged_objects->len; i++) - { - if (MODULEMD_IS_DEFAULTS (g_ptr_array_index (merged_objects, i))) - { - defaults = g_ptr_array_index (merged_objects, i); - if (!g_strcmp0 (modulemd_defaults_peek_module_name (defaults), - "nodejs")) - { - g_assert_null (modulemd_defaults_peek_default_stream (defaults)); - } - } - } - - g_clear_pointer (&merged_objects, g_ptr_array_unref); - - - /* Start over and test profile conflicts */ - g_clear_pointer (&prioritizer, g_object_unref); - prioritizer = modulemd_prioritizer_new (); - result = modulemd_prioritizer_add (prioritizer, base_objects, prio, &error); - if (!result) - { - fprintf (stderr, "Merge error: %s", error->message); - } - g_assert_true (result); - - - /* - * Test that importing the overrides at the same priority level fails. - * - * These objects have several conflicts with the base objects that cannot be - * merged. - */ - result = - modulemd_prioritizer_add (prioritizer, override_objects, prio, &error); - g_assert_false (result); - g_assert_cmpstr ( - g_quark_to_string (error->domain), ==, "modulemd-defaults-error-quark"); - g_assert_cmpint ( - error->code, ==, MODULEMD_DEFAULTS_ERROR_CONFLICTING_PROFILES); - g_clear_pointer (&error, g_error_free); - - /* The object's internal state is undefined after an error, so delete it */ - g_clear_pointer (&prioritizer, g_object_unref); - - - /* Start over and add the base */ - prioritizer = modulemd_prioritizer_new (); - result = modulemd_prioritizer_add (prioritizer, base_objects, prio, &error); - if (!result) - { - fprintf (stderr, "Merge error: %s", error->message); - } - g_assert_true (result); - - - /* Test that importing the overrides at a higher priority level succeeds. */ - - /* Pick a random number from 100-999 for the higher priority. - * This will help exercise the sort function and make sure it doesn't - * occasionally fail. - */ - prio = g_test_rand_int_range (100, 999); - g_info ("Random high priority level: %" PRIi64 "\n", prio); - - result = - modulemd_prioritizer_add (prioritizer, override_objects, prio, &error); - g_assert_true (result); - - /* - * Test that re-importing the overrides at the same priority level - * succeeds. - */ - result = - modulemd_prioritizer_add (prioritizer, override_objects, prio, &error); - g_assert_true (result); - - - /* Merge all of the results together */ - merged_objects = modulemd_prioritizer_resolve (prioritizer, &error); - g_assert_nonnull (merged_objects); - g_assert_cmpint (merged_objects->len, ==, 3); - - - /* HTTPD */ - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (merged_objects, 2)); - g_assert_cmpstr (modulemd_defaults_peek_module_name (defaults), ==, "httpd"); - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, "2.4"); - htable = modulemd_defaults_peek_profile_defaults (defaults); - g_assert_cmpint (g_hash_table_size (htable), ==, 2); - g_assert_true (g_hash_table_contains (htable, "2.2")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "2.2"), "client")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "2.2"), "server")); - g_assert_true (g_hash_table_contains (htable, "2.4")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "2.2"), "client")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "2.4"), "server")); - g_assert_false (g_hash_table_contains (htable, "2.8")); - - /* NODEJS */ - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (merged_objects, 1)); - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, "nodejs"); - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, "9.0"); - g_assert_cmpint ( - g_hash_table_size (modulemd_defaults_peek_profile_defaults (defaults)), - ==, - 3); - - htable = modulemd_defaults_peek_profile_defaults (defaults); - g_assert_cmpint (g_hash_table_size (htable), ==, 3); - g_assert_true (g_hash_table_contains (htable, "6.0")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "6.0"), "default")); - g_assert_true (g_hash_table_contains (htable, "8.0")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "8.0"), "minimal")); - g_assert_true (g_hash_table_contains (htable, "9.0")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "9.0"), "supermegaultra")); - - /* POSTGRESQL */ - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (merged_objects, 0)); - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, "postgresql"); - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, "8.1"); - htable = modulemd_defaults_peek_profile_defaults (defaults); - g_assert_cmpint (g_hash_table_size (htable), ==, 1); - g_assert_true (g_hash_table_contains (htable, "8.1")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "8.1"), "client")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "8.1"), "server")); - g_assert_true ( - modulemd_simpleset_contains (g_hash_table_lookup (htable, "8.1"), "foo")); -} - - -static void -modulemd_defaults_test_prioritizer_modified (DefaultsFixture *fixture, - gconstpointer user_data) -{ - g_autofree gchar *yaml_base_path = NULL; - g_autofree gchar *yaml_override_path = NULL; - g_autoptr (GPtrArray) base_objects = NULL; - g_autoptr (GPtrArray) override_objects = NULL; - g_autoptr (GPtrArray) merged_objects = NULL; - g_autoptr (ModulemdPrioritizer) prioritizer = NULL; - g_autoptr (GError) error = NULL; - GHashTable *htable = NULL; - ModulemdDefaults *defaults = NULL; - gboolean result; - - yaml_base_path = g_strdup_printf ("%s/test_data/defaults/merging-base.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_base_path); - - base_objects = modulemd_objects_from_file (yaml_base_path, &error); - g_assert_nonnull (base_objects); - g_assert_cmpint (base_objects->len, ==, 7); - - yaml_override_path = - g_strdup_printf ("%s/test_data/defaults/overriding-modified.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_override_path); - - override_objects = modulemd_objects_from_file (yaml_override_path, &error); - g_assert_nonnull (override_objects); - g_assert_cmpint (override_objects->len, ==, 3); - - - /* Test that importing the base objects work. These objects include several - * exact duplicates which will be cleaned up by this process. - */ - - prioritizer = modulemd_prioritizer_new (); - result = modulemd_prioritizer_add (prioritizer, base_objects, 0, &error); - if (!result) - { - fprintf (stderr, "Merge error: %s", error->message); - } - g_assert_true (result); - - - /* - * Test that importing the base objects works again. This will be a worst- - * case scenario where all of the values being imported are duplicated. - */ - result = modulemd_prioritizer_add (prioritizer, base_objects, 0, &error); - if (!result) - { - fprintf (stderr, "Merge error: %s", error->message); - } - g_assert_true (result); - - - /* - * Test that importing the overrides at the same priority level succeeds. - * - * These objects have several conflicts with the base objects, but the - * modified field overrides it. - */ - result = modulemd_prioritizer_add (prioritizer, override_objects, 0, &error); - g_assert_true (result); - - - /* Merge all of the results together */ - merged_objects = modulemd_prioritizer_resolve (prioritizer, &error); - g_assert_nonnull (merged_objects); - g_assert_cmpint (merged_objects->len, ==, 3); - - - /* HTTPD */ - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (merged_objects, 0)); - g_assert_cmpstr (modulemd_defaults_peek_module_name (defaults), ==, "httpd"); - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, "2.4"); - htable = modulemd_defaults_peek_profile_defaults (defaults); - g_assert_cmpint (g_hash_table_size (htable), ==, 3); - g_assert_true (g_hash_table_contains (htable, "2.2")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "2.2"), "client")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "2.2"), "server")); - g_assert_true (g_hash_table_contains (htable, "2.4")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "2.2"), "client")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "2.4"), "server")); - g_assert_true (g_hash_table_contains (htable, "2.8")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "2.8"), "notreal")); - - - /* NODEJS */ - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (merged_objects, 1)); - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, "nodejs"); - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, "9.0"); - g_assert_cmpint ( - g_hash_table_size (modulemd_defaults_peek_profile_defaults (defaults)), - ==, - 3); - - htable = modulemd_defaults_peek_profile_defaults (defaults); - g_assert_cmpint (g_hash_table_size (htable), ==, 3); - g_assert_true (g_hash_table_contains (htable, "6.0")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "6.0"), "default")); - g_assert_true (g_hash_table_contains (htable, "8.0")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "8.0"), "minimal")); - g_assert_true (g_hash_table_contains (htable, "9.0")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "9.0"), "supermegaultra")); - - /* POSTGRESQL */ - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (merged_objects, 2)); - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, "postgresql"); - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, "8.1"); - htable = modulemd_defaults_peek_profile_defaults (defaults); - g_assert_cmpint (g_hash_table_size (htable), ==, 2); - g_assert_true (g_hash_table_contains (htable, "8.1")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "8.1"), "client")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "8.1"), "server")); - g_assert_false ( - modulemd_simpleset_contains (g_hash_table_lookup (htable, "8.1"), "foo")); - g_assert_true (g_hash_table_contains (htable, "8.2")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "8.2"), "client")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "8.2"), "server")); - g_assert_true ( - modulemd_simpleset_contains (g_hash_table_lookup (htable, "8.2"), "foo")); -} - - -static void -modulemd_defaults_test_index_prioritizer (DefaultsFixture *fixture, - gconstpointer user_data) -{ - g_autofree gchar *yaml_base_path = NULL; - g_autofree gchar *yaml_override_path = NULL; - g_autoptr (GHashTable) index = NULL; - g_autoptr (GHashTable) override_index = NULL; - g_autoptr (GPtrArray) merged_objects = NULL; - g_autoptr (ModulemdPrioritizer) prioritizer = NULL; - g_autoptr (GError) error = NULL; - GHashTable *htable = NULL; - gint64 prio; - ModulemdDefaults *defaults = NULL; - gboolean result; - - yaml_base_path = g_strdup_printf ("%s/test_data/defaults/merging-base.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_base_path); - - index = modulemd_index_from_file (yaml_base_path, NULL, &error); - g_assert_nonnull (index); - g_assert_cmpint (g_hash_table_size (index), ==, 3); - - yaml_override_path = g_strdup_printf ( - "%s/test_data/defaults/overriding.yaml", g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_override_path); - - override_index = modulemd_index_from_file (yaml_override_path, NULL, &error); - g_assert_nonnull (override_index); - g_assert_cmpint (g_hash_table_size (index), ==, 3); - - - /* Test that importing the base objects work. These objects include several - * exact duplicates which will be cleaned up by this process. - */ - - /* Pick a random number from 0-99 for the higher priority. - * This will help exercise the sort function and make sure it doesn't - * occasionally fail. - */ - prio = g_test_rand_int_range (0, 99); - g_info ("Random low priority level: %" PRIi64 "\n", prio); - - prioritizer = modulemd_prioritizer_new (); - result = modulemd_prioritizer_add_index (prioritizer, index, prio, &error); - if (!result) - { - fprintf (stderr, "Merge error: %s", error->message); - } - g_assert_true (result); - - - /* - * Test that importing the base objects works again. This will be a worst- - * case scenario where all of the values being imported are duplicated. - */ - result = modulemd_prioritizer_add_index (prioritizer, index, prio, &error); - if (!result) - { - fprintf (stderr, "Merge error: %s", error->message); - } - g_assert_true (result); - - - /* - * Test that importing the overrides at the same priority level fails. - * - * These objects have several conflicts with the base objects that cannot be - * merged. - */ - result = - modulemd_prioritizer_add_index (prioritizer, override_index, prio, &error); - g_assert_false (result); - g_assert_cmpstr ( - g_quark_to_string (error->domain), ==, "modulemd-defaults-error-quark"); - g_assert_cmpint ( - error->code, ==, MODULEMD_DEFAULTS_ERROR_CONFLICTING_PROFILES); - g_clear_pointer (&error, g_error_free); - - /* The object's internal state is undefined after an error, so delete it */ - g_clear_pointer (&prioritizer, g_object_unref); - - - /* Start over and add the base */ - prioritizer = modulemd_prioritizer_new (); - result = modulemd_prioritizer_add_index (prioritizer, index, prio, &error); - if (!result) - { - fprintf (stderr, "Merge error: %s", error->message); - } - g_assert_true (result); - - - /* Test that importing the overrides at a higher priority level succeeds. */ - - /* Pick a random number from 100-999 for the higher priority. - * This will help exercise the sort function and make sure it doesn't - * occasionally fail. - */ - prio = g_test_rand_int_range (100, 999); - g_info ("Random high priority level: %" PRIi64 "\n", prio); - - result = - modulemd_prioritizer_add_index (prioritizer, override_index, prio, &error); - g_assert_true (result); - - /* - * Test that re-importing the overrides at the same priority level - * succeeds. - */ - result = - modulemd_prioritizer_add_index (prioritizer, override_index, prio, &error); - g_assert_true (result); - - - /* Merge all of the results together */ - merged_objects = modulemd_prioritizer_resolve (prioritizer, &error); - g_assert_nonnull (merged_objects); - g_assert_cmpint (merged_objects->len, ==, 3); - - - /* HTTPD */ - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (merged_objects, 2)); - g_assert_cmpstr (modulemd_defaults_peek_module_name (defaults), ==, "httpd"); - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, "2.4"); - htable = modulemd_defaults_peek_profile_defaults (defaults); - g_assert_cmpint (g_hash_table_size (htable), ==, 2); - g_assert_true (g_hash_table_contains (htable, "2.2")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "2.2"), "client")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "2.2"), "server")); - g_assert_true (g_hash_table_contains (htable, "2.4")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "2.2"), "client")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "2.4"), "server")); - g_assert_false (g_hash_table_contains (htable, "2.8")); - - /* NODEJS */ - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (merged_objects, 1)); - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, "nodejs"); - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, "9.0"); - g_assert_cmpint ( - g_hash_table_size (modulemd_defaults_peek_profile_defaults (defaults)), - ==, - 3); - - htable = modulemd_defaults_peek_profile_defaults (defaults); - g_assert_cmpint (g_hash_table_size (htable), ==, 3); - g_assert_true (g_hash_table_contains (htable, "6.0")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "6.0"), "default")); - g_assert_true (g_hash_table_contains (htable, "8.0")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "8.0"), "minimal")); - g_assert_true (g_hash_table_contains (htable, "9.0")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "9.0"), "supermegaultra")); - - /* POSTGRESQL */ - defaults = MODULEMD_DEFAULTS (g_ptr_array_index (merged_objects, 0)); - g_assert_cmpstr ( - modulemd_defaults_peek_module_name (defaults), ==, "postgresql"); - g_assert_cmpstr ( - modulemd_defaults_peek_default_stream (defaults), ==, "8.1"); - htable = modulemd_defaults_peek_profile_defaults (defaults); - g_assert_cmpint (g_hash_table_size (htable), ==, 1); - g_assert_true (g_hash_table_contains (htable, "8.1")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "8.1"), "client")); - g_assert_true (modulemd_simpleset_contains ( - g_hash_table_lookup (htable, "8.1"), "server")); - g_assert_true ( - modulemd_simpleset_contains (g_hash_table_lookup (htable, "8.1"), "foo")); -} - - -static void -modulemd_regressions_issue42 (DefaultsFixture *fixture, - gconstpointer user_data) -{ - g_autoptr (ModulemdPrioritizer) prioritizer = NULL; - g_autoptr (GPtrArray) objects = NULL; - g_autoptr (GError) error = NULL; - prioritizer = modulemd_prioritizer_new (); - - /* Test that the prioritizer doesn't crash if it resolves zero documents */ - objects = modulemd_prioritizer_resolve (prioritizer, &error); - g_assert_null (objects); - g_assert_nonnull (error); - g_assert_cmpint ( - error->code, ==, MODULEMD_PRIORITIZER_NOTHING_TO_PRIORITIZE); -} - - -static void -modulemd_regressions_issue44 (DefaultsFixture *fixture, - gconstpointer user_data) -{ - gboolean result; - g_autoptr (ModulemdPrioritizer) prioritizer = NULL; - g_autoptr (GPtrArray) base_objects = NULL; - g_autoptr (GPtrArray) conflicting_objects = NULL; - g_autoptr (GError) error = NULL; - g_autofree gchar *yaml_base_path = NULL; - g_autofree gchar *yaml_conflicting_path = NULL; - - prioritizer = modulemd_prioritizer_new (); - - /* Get a simple document */ - yaml_base_path = g_strdup_printf ("%s/test_data/defaults/issue44-1.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_base_path); - - base_objects = modulemd_objects_from_file (yaml_base_path, &error); - g_assert_nonnull (base_objects); - - result = modulemd_prioritizer_add (prioritizer, base_objects, 0, &error); - g_assert_true (result); - - - /* Add another almost-identical document, except with a conflicting default - * stream set. - * - * NOTE: when this was written (for issue 44 on GitHub), this was meant to be - * a hard error. As of 1.8.1 we expect this to just result in having no - * default stream for this module. This test has been slightly modified so - * that the expected result is now a pass. - */ - yaml_conflicting_path = g_strdup_printf ( - "%s/test_data/defaults/issue44-2.yaml", g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_conflicting_path); - - conflicting_objects = - modulemd_objects_from_file (yaml_conflicting_path, &error); - g_assert_nonnull (conflicting_objects); - - result = - modulemd_prioritizer_add (prioritizer, conflicting_objects, 0, &error); - g_assert_true (result); -} - - -static void -modulemd_regressions_issue45 (DefaultsFixture *fixture, - gconstpointer user_data) -{ - gboolean ret; - g_autoptr (ModulemdPrioritizer) prioritizer = NULL; - g_autoptr (GPtrArray) objects = NULL; - g_autoptr (GError) error = NULL; - g_autofree gchar *yaml_base_path = NULL; - prioritizer = modulemd_prioritizer_new (); - - yaml_base_path = g_strdup_printf ("%s/test_data/defaults/merging-base.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_base_path); - objects = modulemd_objects_from_file (yaml_base_path, &error); - - ret = modulemd_prioritizer_add ( - prioritizer, objects, MODULEMD_PRIORITIZER_PRIORITY_MAX + 1, &error); - g_assert_false (ret); - g_assert_nonnull (error); - g_assert_cmpint ( - error->code, ==, MODULEMD_PRIORITIZER_PRIORITY_OUT_OF_RANGE); - g_clear_pointer (&error, g_error_free); - - /* Test that the prioritizer throws an error on a negative priority */ - ret = modulemd_prioritizer_add (prioritizer, objects, -1, &error); - g_assert_false (ret); - g_assert_nonnull (error); - g_assert_cmpint ( - error->code, ==, MODULEMD_PRIORITIZER_PRIORITY_OUT_OF_RANGE); -} - - -int -main (int argc, char *argv[]) -{ - setlocale (LC_ALL, ""); - - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id="); - - - g_test_add ("/modulemd/defaults/modulemd_defaults_test_good_examples/ex1", - DefaultsFixture, - NULL, - NULL, - modulemd_defaults_test_good_ex1, - NULL); - - g_test_add ("/modulemd/defaults/modulemd_defaults_test_good_examples/ex2", - DefaultsFixture, - NULL, - NULL, - modulemd_defaults_test_good_ex2, - NULL); - - g_test_add ("/modulemd/defaults/modulemd_defaults_test_good_examples/ex3", - DefaultsFixture, - NULL, - NULL, - modulemd_defaults_test_good_ex3, - NULL); - - g_test_add ("/modulemd/defaults/modulemd_defaults_test_good_examples/ex4", - DefaultsFixture, - NULL, - NULL, - modulemd_defaults_test_good_ex4, - NULL); - - g_test_add ("/modulemd/defaults/modulemd_defaults_test_copy", - DefaultsFixture, - NULL, - NULL, - modulemd_defaults_test_copy, - NULL); - - - g_test_add ("/modulemd/defaults/modulemd_defaults_test_merging", - DefaultsFixture, - NULL, - NULL, - modulemd_defaults_test_merging, - NULL); - - g_test_add ("/modulemd/defaults/modulemd_defaults_test_prioritizer", - DefaultsFixture, - NULL, - NULL, - modulemd_defaults_test_prioritizer, - NULL); - - g_test_add ("/modulemd/defaults/modulemd_defaults_test_prioritizer_modified", - DefaultsFixture, - NULL, - NULL, - modulemd_defaults_test_prioritizer_modified, - NULL); - - g_test_add ("/modulemd/defaults/modulemd_defaults_test_index_prioritizer", - DefaultsFixture, - NULL, - NULL, - modulemd_defaults_test_index_prioritizer, - NULL); - - g_test_add ("/modulemd/defaults/modulemd_regressions_issue42", - DefaultsFixture, - NULL, - NULL, - modulemd_regressions_issue42, - NULL); - - g_test_add ("/modulemd/defaults/modulemd_regressions_issue44", - DefaultsFixture, - NULL, - NULL, - modulemd_regressions_issue44, - NULL); - - g_test_add ("/modulemd/defaults/modulemd_regressions_issue45", - DefaultsFixture, - NULL, - NULL, - modulemd_regressions_issue45, - NULL); - - return g_test_run (); -}; diff --git a/modulemd-1.8.16/modulemd/tests/test-modulemd-dependencies.c b/modulemd-1.8.16/modulemd/tests/test-modulemd-dependencies.c deleted file mode 100644 index 7e1faff..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-modulemd-dependencies.c +++ /dev/null @@ -1,230 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ -#define MMD_DISABLE_DEPRECATION_WARNINGS 1 -#include "modulemd.h" - -#include -#include - -typedef struct _DependenciesFixture -{ - ModulemdDependencies *dep; -} DependenciesFixture; - -static void -modulemd_dependencies_set_up (DependenciesFixture *fixture, - gconstpointer user_data) -{ - fixture->dep = modulemd_dependencies_new (); -} - -static void -modulemd_dependencies_tear_down (DependenciesFixture *fixture, - gconstpointer user_data) -{ - g_object_unref (fixture->dep); -} - -typedef void (*DepSetSingleFn) (ModulemdDependencies *dep, - const gchar *module, - const gchar *stream); -typedef void (*DepSetMultiFn) (ModulemdDependencies *dep, - const gchar *module, - const gchar **streams); -typedef GHashTable *(*DepGetFn) (ModulemdDependencies *dep); - -static void -_modulemd_dependencies_test_get_set (DependenciesFixture *fixture, - gconstpointer user_data, - DepSetSingleFn dep_set_single_fn, - DepSetMultiFn dep_set_multi_fn, - DepGetFn dep_get_fn) -{ - gboolean copied = *(gboolean *)user_data; - const gchar **streams = g_new0 (const gchar *, 3); - ModulemdSimpleSet *platform = NULL; - ModulemdSimpleSet *empty = NULL; - GList *keys = NULL; - GHashTable *deptable = NULL; - - /* Set an empty stream for requires */ - dep_set_multi_fn (fixture->dep, "empty", streams); - - /* Verify that we have one key in the dictionary */ - deptable = dep_get_fn (fixture->dep); - keys = g_hash_table_get_keys (deptable); - g_assert_cmpuint (g_list_length (keys), ==, 1); - g_list_free (keys); - if (copied) - g_hash_table_unref (deptable); - - /* Verify that this key contains no streams */ - deptable = dep_get_fn (fixture->dep); - empty = g_hash_table_lookup (deptable, "empty"); - g_assert_nonnull (empty); - g_assert_cmpuint (modulemd_simpleset_size (empty), ==, 0); - if (copied) - g_hash_table_unref (deptable); - - /* Set a single stream as a requires */ - dep_set_single_fn (fixture->dep, "platform", "f28"); - - /* Verify that we have two keys in the dictionary */ - deptable = dep_get_fn (fixture->dep); - keys = g_hash_table_get_keys (deptable); - g_assert_cmpuint (g_list_length (keys), ==, 2); - g_list_free (keys); - if (copied) - g_hash_table_unref (deptable); - - /* Set multiple streams as requires */ - streams[0] = g_strdup ("f29"); - streams[1] = g_strdup ("-f30"); - dep_set_multi_fn (fixture->dep, "platform", streams); - - /* Check that each of the expected values are present in the list */ - deptable = dep_get_fn (fixture->dep); - platform = g_hash_table_lookup (deptable, "platform"); - g_assert_nonnull (platform); - - g_assert_true (modulemd_simpleset_contains (platform, "f28")); - g_assert_true (modulemd_simpleset_contains (platform, "f29")); - g_assert_true (modulemd_simpleset_contains (platform, "-f30")); - - g_assert_cmpuint (modulemd_simpleset_size (platform), ==, 3); - - /* Verify that we still have two keys in the dictionary */ - keys = g_hash_table_get_keys (deptable); - g_assert_cmpuint (g_list_length (keys), ==, 2); - g_list_free (keys); - if (copied) - g_hash_table_unref (deptable); - - /* Add duplicates */ - dep_set_multi_fn (fixture->dep, "platform", streams); - - /* Verify that the list hasn't changed */ - deptable = dep_get_fn (fixture->dep); - platform = g_hash_table_lookup (deptable, "platform"); - g_assert_nonnull (platform); - - g_assert_true (modulemd_simpleset_contains (platform, "f28")); - g_assert_true (modulemd_simpleset_contains (platform, "f29")); - g_assert_true (modulemd_simpleset_contains (platform, "-f30")); - - g_assert_cmpuint (modulemd_simpleset_size (platform), ==, 3); - if (copied) - g_hash_table_unref (deptable); - - /* Verify that we still have two keys in the dictionary */ - deptable = dep_get_fn (fixture->dep); - keys = g_hash_table_get_keys (deptable); - g_assert_cmpuint (g_list_length (keys), ==, 2); - g_list_free (keys); - if (copied) - g_hash_table_unref (deptable); - - g_clear_pointer (&streams[0], g_free); - g_clear_pointer (&streams[1], g_free); - g_clear_pointer (&streams, g_free); -} - -static void -modulemd_dependencies_test_get_set_buildrequires (DependenciesFixture *fixture, - gconstpointer user_data) -{ - _modulemd_dependencies_test_get_set ( - fixture, - user_data, - modulemd_dependencies_add_buildrequires_single, - modulemd_dependencies_add_buildrequires, - modulemd_dependencies_get_buildrequires); -} - -static void -modulemd_dependencies_test_get_set_requires (DependenciesFixture *fixture, - gconstpointer user_data) -{ - _modulemd_dependencies_test_get_set ( - fixture, - user_data, - modulemd_dependencies_add_requires_single, - modulemd_dependencies_add_requires, - modulemd_dependencies_get_requires); -} - - -static void -modulemd_dependencies_test_dup_set_buildrequires (DependenciesFixture *fixture, - gconstpointer user_data) -{ - _modulemd_dependencies_test_get_set ( - fixture, - user_data, - modulemd_dependencies_add_buildrequires_single, - modulemd_dependencies_add_buildrequires, - modulemd_dependencies_dup_buildrequires); -} - -static void -modulemd_dependencies_test_dup_set_requires (DependenciesFixture *fixture, - gconstpointer user_data) -{ - _modulemd_dependencies_test_get_set ( - fixture, - user_data, - modulemd_dependencies_add_requires_single, - modulemd_dependencies_add_requires, - modulemd_dependencies_dup_requires); -} - - -int -main (int argc, char *argv[]) -{ - gboolean copied = TRUE; - gboolean uncopied = FALSE; - setlocale (LC_ALL, ""); - - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id="); - - // Define the tests. - g_test_add ("/modulemd/dependencies/test_dependencies_buildrequires", - DependenciesFixture, - &uncopied, - modulemd_dependencies_set_up, - modulemd_dependencies_test_get_set_buildrequires, - modulemd_dependencies_tear_down); - g_test_add ("/modulemd/dependencies/test_dependencies_requires", - DependenciesFixture, - &uncopied, - modulemd_dependencies_set_up, - modulemd_dependencies_test_get_set_requires, - modulemd_dependencies_tear_down); - - g_test_add ("/modulemd/dependencies/test_dependencies_buildrequires_dup", - DependenciesFixture, - &copied, - modulemd_dependencies_set_up, - modulemd_dependencies_test_dup_set_buildrequires, - modulemd_dependencies_tear_down); - g_test_add ("/modulemd/dependencies/test_dependencies_requires_dup", - DependenciesFixture, - &copied, - modulemd_dependencies_set_up, - modulemd_dependencies_test_dup_set_requires, - modulemd_dependencies_tear_down); - - return g_test_run (); -} diff --git a/modulemd-1.8.16/modulemd/tests/test-modulemd-intent.c b/modulemd-1.8.16/modulemd/tests/test-modulemd-intent.c deleted file mode 100644 index 7975b7b..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-modulemd-intent.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ -#define MMD_DISABLE_DEPRECATION_WARNINGS 1 -#include "modulemd.h" - -#include -#include -#include - -typedef struct _IntentFixture -{ -} IntentFixture; - -static void -modulemd_intent_test_init (IntentFixture *fixture, gconstpointer user_data) -{ - g_autoptr (ModulemdIntent) intent = NULL; - g_autoptr (ModulemdIntent) intent_copy = NULL; - - intent = modulemd_intent_new ("intent_a"); - modulemd_intent_set_default_stream (intent, "a_default_stream"); - g_assert_nonnull (intent); - - g_assert_cmpstr (modulemd_intent_peek_intent_name (intent), ==, "intent_a"); - g_assert_cmpstr ( - modulemd_intent_peek_default_stream (intent), ==, "a_default_stream"); - - intent_copy = modulemd_intent_copy (intent); - g_assert_cmpstr ( - modulemd_intent_peek_intent_name (intent_copy), ==, "intent_a"); - g_assert_cmpstr ( - modulemd_intent_peek_default_stream (intent_copy), ==, "a_default_stream"); -} - -int -main (int argc, char *argv[]) -{ - setlocale (LC_ALL, ""); - - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id="); - - - g_test_add ("/modulemd/intent/init", - IntentFixture, - NULL, - NULL, - modulemd_intent_test_init, - NULL); - - return g_test_run (); -}; diff --git a/modulemd-1.8.16/modulemd/tests/test-modulemd-module.c b/modulemd-1.8.16/modulemd/tests/test-modulemd-module.c deleted file mode 100644 index ca865ff..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-modulemd-module.c +++ /dev/null @@ -1,793 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ -#define MMD_DISABLE_DEPRECATION_WARNINGS 1 -#include "private/modulemd-private.h" -#include "modulemd-module.h" -#include "modulemd-simpleset.h" -#include "private/modulemd-util.h" -#include "private/modulemd-yaml.h" - -#include -#include - -typedef struct _ModuleFixture -{ -} ModuleFixture; - -typedef struct _ModulePropString -{ - const gchar *property_name; - const gchar *test_str; -} ModulePropString; - - -static void -modulemd_module_test_string_prop (ModuleFixture *fixture, - gconstpointer user_data) -{ - g_autofree gchar *value = NULL; - ModulemdModule *md = modulemd_module_new (); - ModulePropString *prop_ctx = (ModulePropString *)user_data; - - g_object_get (G_OBJECT (md), prop_ctx->property_name, &value, NULL); - - /* Initial state should be NULL */ - g_assert_cmpstr (value, ==, NULL); - - /* Assign the test value */ - g_object_set ( - G_OBJECT (md), prop_ctx->property_name, prop_ctx->test_str, NULL); - - /* Verify that the value is now set */ - g_object_get (G_OBJECT (md), prop_ctx->property_name, &value, NULL); - g_assert_cmpstr (value, ==, prop_ctx->test_str); - g_object_unref (md); -} - -static void -modulemd_module_test_get_set_buildrequires (ModuleFixture *fixture, - gconstpointer user_data) -{ - ModulemdModule *md = modulemd_module_new (); - GHashTable *htable = NULL; - GHashTable *buildrequires = NULL; - - /* This functionality is only available on v1 */ - modulemd_module_set_mdversion (md, MD_VERSION_1); - - /* Should be initialized to an empty hash table */ - - buildrequires = modulemd_module_dup_buildrequires (md); - g_assert_cmpint (g_hash_table_size (buildrequires), ==, 0); - - /* Add a key and value using set_buildrequires() */ - g_hash_table_insert ( - buildrequires, g_strdup ("MyKey"), g_strdup ("MyValue")); - modulemd_module_set_buildrequires (md, buildrequires); - g_clear_pointer (&buildrequires, g_hash_table_unref); - - /* Verify the key and value with dup_buildrequires() */ - buildrequires = modulemd_module_dup_buildrequires (md); - g_assert_cmpint (g_hash_table_size (buildrequires), ==, 1); - g_assert_true (g_hash_table_contains (buildrequires, "MyKey")); - g_assert_cmpstr ( - g_hash_table_lookup (buildrequires, "MyKey"), ==, "MyValue"); - - /* Verify the key and value with properties */ - g_object_get (G_OBJECT (md), "buildrequires", &htable, NULL); - - g_assert_cmpint (g_hash_table_size (htable), ==, 1); - g_assert_true (g_hash_table_contains (htable, "MyKey")); - g_assert_cmpstr (g_hash_table_lookup (htable, "MyKey"), ==, "MyValue"); - - /* Add a second key and value using set_buildrequires() */ - g_hash_table_insert ( - buildrequires, g_strdup ("MyKey2"), g_strdup ("MyValue2")); - modulemd_module_set_buildrequires (md, buildrequires); - g_clear_pointer (&buildrequires, g_hash_table_unref); - - /* Verify the second key and value with properties */ - g_clear_pointer (&htable, g_hash_table_unref); - g_object_get (G_OBJECT (md), "buildrequires", &htable, NULL); - - g_assert_cmpint (g_hash_table_size (htable), ==, 2); - g_assert_true (g_hash_table_contains (htable, "MyKey2")); - g_assert_cmpstr (g_hash_table_lookup (htable, "MyKey2"), ==, "MyValue2"); - - /* Add a third key using the properties interface */ - g_hash_table_insert (htable, g_strdup ("MyKey3"), g_strdup ("MyValue3")); - g_assert_cmpint (g_hash_table_size (htable), ==, 3); - - g_object_set (G_OBJECT (md), "buildrequires", htable, NULL); - g_clear_pointer (&htable, g_hash_table_unref); - - /* Verify the third key and value with dup_buildrequires() */ - buildrequires = modulemd_module_dup_buildrequires (md); - g_assert_cmpint (g_hash_table_size (buildrequires), ==, 3); - g_assert_true (g_hash_table_contains (buildrequires, "MyKey3")); - g_assert_cmpstr ( - g_hash_table_lookup (buildrequires, "MyKey3"), ==, "MyValue3"); - g_clear_pointer (&buildrequires, g_hash_table_unref); - g_object_unref (md); -} - -static void -modulemd_module_test_get_set_community (ModuleFixture *fixture, - gconstpointer user_data) -{ - ModulemdModule *md = modulemd_module_new (); - - /* Should be initialized to NULL */ - g_assert_cmpstr (modulemd_module_get_community (md), ==, NULL); - - /* Assign a valid string */ - modulemd_module_set_community (md, "MyCommunity"); - g_assert_cmpstr (modulemd_module_get_community (md), ==, "MyCommunity"); - - /* Reassign it to NULL */ - modulemd_module_set_community (md, NULL); - g_assert_cmpstr (modulemd_module_get_community (md), ==, NULL); - g_object_unref (md); -} - -static void -modulemd_module_test_get_set_description (ModuleFixture *fixture, - gconstpointer user_data) -{ - ModulemdModule *md = modulemd_module_new (); - - /* Should be initialized to NULL */ - g_assert_cmpstr (modulemd_module_get_description (md), ==, NULL); - - /* Assign a valid string */ - modulemd_module_set_description (md, "ModuleDesc"); - g_assert_cmpstr (modulemd_module_get_description (md), ==, "ModuleDesc"); - - /* Reassign it to NULL */ - modulemd_module_set_description (md, NULL); - g_assert_cmpstr (modulemd_module_get_description (md), ==, NULL); - g_object_unref (md); -} - -static void -modulemd_module_test_get_set_documentation (ModuleFixture *fixture, - gconstpointer user_data) -{ - ModulemdModule *md = modulemd_module_new (); - - /* Should be initialized to NULL */ - g_assert_cmpstr (modulemd_module_get_documentation (md), ==, NULL); - - /* Assign a valid string */ - modulemd_module_set_documentation (md, "ModuleDocs"); - g_assert_cmpstr (modulemd_module_get_documentation (md), ==, "ModuleDocs"); - - /* Reassign it to NULL */ - modulemd_module_set_documentation (md, NULL); - g_assert_cmpstr (modulemd_module_get_documentation (md), ==, NULL); - g_object_unref (md); -} - -static void -modulemd_module_test_get_set_mdversion (ModuleFixture *fixture, - gconstpointer user_data) -{ - ModulemdModule *md = modulemd_module_new (); - - /* Should be initialized to 0 */ - g_assert_cmpuint (modulemd_module_get_mdversion (md), ==, MD_VERSION_UNSET); - - /* Assign a valid version */ - modulemd_module_set_mdversion (md, MD_VERSION_1); - g_assert_cmpuint (modulemd_module_get_mdversion (md), ==, MD_VERSION_1); - g_object_unref (md); -} - -static void -modulemd_module_test_get_set_name (ModuleFixture *fixture, - gconstpointer user_data) -{ - ModulemdModule *md = modulemd_module_new (); - - /* Should be initialized to NULL */ - g_assert_cmpstr (modulemd_module_get_name (md), ==, NULL); - - /* Assign a valid string */ - modulemd_module_set_name (md, "ModuleName"); - g_assert_cmpstr (modulemd_module_get_name (md), ==, "ModuleName"); - - /* Reassign it to NULL */ - modulemd_module_set_name (md, NULL); - g_assert_cmpstr (modulemd_module_get_name (md), ==, NULL); - g_object_unref (md); -} - -static void -modulemd_module_test_get_set_requires (ModuleFixture *fixture, - gconstpointer user_data) -{ - ModulemdModule *md = modulemd_module_new (); - GHashTable *htable = NULL; - GHashTable *requires = NULL; - - /* This functionality is only available on v1 */ - modulemd_module_set_mdversion (md, MD_VERSION_1); - - /* Should be initialized to an empty hash table */ - - requires = modulemd_module_dup_requires (md); - g_assert_cmpint (g_hash_table_size (requires), ==, 0); - - /* Add a key and value using set_requires() */ - g_hash_table_insert (requires, g_strdup ("MyKey"), g_strdup ("MyValue")); - modulemd_module_set_requires (md, requires); - g_clear_pointer (&requires, g_hash_table_unref); - - /* Verify the key and value with get_requires() */ - requires = modulemd_module_dup_requires (md); - g_assert_cmpint (g_hash_table_size (requires), ==, 1); - g_assert_true (g_hash_table_contains (requires, "MyKey")); - g_assert_cmpstr (g_hash_table_lookup (requires, "MyKey"), ==, "MyValue"); - - /* Verify the key and value with properties */ - g_object_get (G_OBJECT (md), "requires", &htable, NULL); - - g_assert_cmpint (g_hash_table_size (htable), ==, 1); - g_assert_true (g_hash_table_contains (htable, "MyKey")); - g_assert_cmpstr (g_hash_table_lookup (htable, "MyKey"), ==, "MyValue"); - - /* Add a second key and value using set_requires() */ - g_hash_table_insert (requires, g_strdup ("MyKey2"), g_strdup ("MyValue2")); - modulemd_module_set_requires (md, requires); - g_clear_pointer (&requires, g_hash_table_unref); - g_clear_pointer (&htable, g_hash_table_unref); - - /* Verify the second key and value with properties */ - g_object_get (G_OBJECT (md), "requires", &htable, NULL); - - g_assert_cmpint (g_hash_table_size (htable), ==, 2); - g_assert_true (g_hash_table_contains (htable, "MyKey2")); - g_assert_cmpstr (g_hash_table_lookup (htable, "MyKey2"), ==, "MyValue2"); - - /* Add a third key using the properties interface */ - g_hash_table_insert (htable, g_strdup ("MyKey3"), g_strdup ("MyValue3")); - g_assert_cmpint (g_hash_table_size (htable), ==, 3); - - g_object_set (G_OBJECT (md), "requires", htable, NULL); - g_clear_pointer (&htable, g_hash_table_unref); - - /* Verify the third key and value with get_requires() */ - requires = modulemd_module_dup_requires (md); - g_assert_cmpint (g_hash_table_size (requires), ==, 3); - g_assert_true (g_hash_table_contains (requires, "MyKey3")); - g_assert_cmpstr (g_hash_table_lookup (requires, "MyKey3"), ==, "MyValue3"); - g_clear_pointer (&requires, g_hash_table_unref); - - g_object_unref (md); -} - -static void -modulemd_module_test_get_set_stream (ModuleFixture *fixture, - gconstpointer user_data) -{ - ModulemdModule *md = modulemd_module_new (); - - /* Should be initialized to NULL */ - g_assert_cmpstr (modulemd_module_get_stream (md), ==, NULL); - - /* Assign a valid string */ - modulemd_module_set_stream (md, "ModuleStream"); - g_assert_cmpstr (modulemd_module_get_stream (md), ==, "ModuleStream"); - - /* Reassign it to NULL */ - modulemd_module_set_stream (md, NULL); - g_assert_cmpstr (modulemd_module_get_stream (md), ==, NULL); - - g_object_unref (md); -} - -static void -modulemd_module_test_get_set_summary (ModuleFixture *fixture, - gconstpointer user_data) -{ - ModulemdModule *md = modulemd_module_new (); - - /* Should be initialized to NULL */ - g_assert_cmpstr (modulemd_module_get_summary (md), ==, NULL); - - /* Assign a valid string */ - modulemd_module_set_summary (md, "ModuleSummary"); - g_assert_cmpstr (modulemd_module_get_summary (md), ==, "ModuleSummary"); - - /* Reassign it to NULL */ - modulemd_module_set_summary (md, NULL); - g_assert_cmpstr (modulemd_module_get_summary (md), ==, NULL); - - g_object_unref (md); -} - -static void -modulemd_module_test_get_set_tracker (ModuleFixture *fixture, - gconstpointer user_data) -{ - ModulemdModule *md = modulemd_module_new (); - - /* Should be initialized to NULL */ - g_assert_cmpstr (modulemd_module_get_tracker (md), ==, NULL); - - /* Assign a valid string */ - modulemd_module_set_tracker (md, "ModuleTracker"); - g_assert_cmpstr (modulemd_module_get_tracker (md), ==, "ModuleTracker"); - - /* Reassign it to NULL */ - modulemd_module_set_tracker (md, NULL); - g_assert_cmpstr (modulemd_module_get_tracker (md), ==, NULL); - - g_object_unref (md); -} - -static void -modulemd_module_test_get_set_version (ModuleFixture *fixture, - gconstpointer user_data) -{ - ModulemdModule *md = modulemd_module_new (); - - /* Should be initialized to 0 */ - g_assert_cmpuint (modulemd_module_get_version (md), ==, 0); - - /* Assign a valid version */ - modulemd_module_set_version (md, 1); - g_assert_cmpuint (modulemd_module_get_version (md), ==, 1); - - /* Reassign it to 0 */ - modulemd_module_set_version (md, 0); - g_assert_cmpuint (modulemd_module_get_version (md), ==, 0); - - g_object_unref (md); -} - -static void -modulemd_module_test_get_set_dependencies (ModuleFixture *fixture, - gconstpointer user_data) -{ - ModulemdModule *md = modulemd_module_new (); - ModulemdDependencies *dep = NULL; - const GPtrArray *deps = NULL; - const gchar **platforms = g_new0 (const gchar *, 3); - platforms[0] = "f27"; - platforms[1] = "f28"; - - modulemd_module_set_mdversion (md, 2); - - dep = modulemd_dependencies_new (); - modulemd_dependencies_add_buildrequires (dep, "platform", platforms); - modulemd_dependencies_add_requires (dep, "platform", platforms); - - modulemd_module_add_dependencies (md, dep); - modulemd_module_add_dependencies (md, dep); - - g_clear_pointer (&dep, g_object_unref); - - deps = modulemd_module_get_dependencies (md); - g_assert_nonnull (deps); - g_assert_cmpint (deps->len, ==, 2); - - /* We've previously had a bug where repeated get() calls were unrefing - * values, so make sure that doesn't reappear - */ - deps = modulemd_module_get_dependencies (md); - g_assert_nonnull (deps); - g_assert_cmpint (deps->len, ==, 2); - - g_free (platforms); - g_object_unref (md); -} - - -static void -modulemd_module_test_construct_v1 (ModuleFixture *fixture, - gconstpointer user_data) -{ - ModulemdModule *md = modulemd_module_new (); - ModulemdModule *copy = NULL; - GPtrArray *modules = NULL; - ModulemdSimpleSet *licenses = NULL; - GError *error = NULL; - gchar *yaml = NULL; - gboolean result; - - /* Add mdversion (required) */ - modulemd_module_set_mdversion (md, 1); - - /* Add summary (required) */ - modulemd_module_set_summary (md, "The summary"); - - /* Add description (required) */ - modulemd_module_set_description (md, "The description"); - - /* Add module license (required) */ - licenses = modulemd_simpleset_new (); - modulemd_simpleset_add (licenses, "MIT"); - modulemd_module_set_module_licenses (md, licenses); - g_object_unref (licenses); - - /* Dump it to YAML to validate it */ - modules = g_ptr_array_new (); - g_assert_nonnull (modules); - g_ptr_array_add (modules, md); - - result = emit_yaml_string (modules, &yaml, &error); - g_assert_true (result); - g_assert_nonnull (yaml); - - /* Make sure no errors occur when copying it */ - copy = modulemd_module_copy (md); - g_assert_nonnull (copy); - g_assert_cmpuint (modulemd_module_peek_mdversion (copy), ==, 1); - - g_debug ("v1 YAML:\n%s", yaml); - - g_ptr_array_unref (modules); - g_object_unref (copy); - g_free (yaml); - g_object_unref (md); -} - - -static void -modulemd_module_test_construct_v2 (ModuleFixture *fixture, - gconstpointer user_data) -{ - ModulemdModule *md = modulemd_module_new (); - ModulemdModule *copy = NULL; - GPtrArray *modules = NULL; - ModulemdSimpleSet *licenses = NULL; - GError *error = NULL; - gchar *yaml = NULL; - gboolean result; - - modules = g_ptr_array_new (); - g_ptr_array_add (modules, md); - - /* Verify that it fails when mdversion is unset */ - result = emit_yaml_string (modules, &yaml, &error); - g_assert_false (result); - g_clear_pointer (&yaml, g_free); - g_clear_error (&error); - - /* Add mdversion (required) */ - modulemd_module_set_mdversion (md, 2); - - /* Verify that it fails when summary is unset */ - result = emit_yaml_string (modules, &yaml, &error); - g_assert_false (result); - g_clear_pointer (&yaml, g_free); - g_clear_error (&error); - - /* Add summary (required) */ - modulemd_module_set_summary (md, "The summary"); - - /* Verify that it fails when description is unset */ - result = emit_yaml_string (modules, &yaml, &error); - g_assert_false (result); - g_clear_pointer (&yaml, g_free); - g_clear_error (&error); - - /* Add description (required) */ - modulemd_module_set_description (md, "The description"); - - /* Verify that it fails when module license is unset */ - result = emit_yaml_string (modules, &yaml, &error); - g_assert_false (result); - g_clear_pointer (&yaml, g_free); - g_clear_error (&error); - - /* Add module license (required) */ - licenses = modulemd_simpleset_new (); - modulemd_simpleset_add (licenses, "MIT"); - modulemd_module_set_module_licenses (md, licenses); - g_object_unref (licenses); - - /* Dump it to YAML to validate it */ - result = emit_yaml_string (modules, &yaml, &error); - g_assert_true (result); - g_assert_nonnull (yaml); - - /* Make sure no errors occur when copying it */ - copy = modulemd_module_copy (md); - g_assert_nonnull (copy); - g_assert_cmpuint (modulemd_module_peek_mdversion (copy), ==, 2); - - g_debug ("v2 YAML:\n%s", yaml); - - g_ptr_array_unref (modules); - g_object_unref (copy); - g_clear_pointer (&yaml, g_free); - - g_object_unref (md); -} - -static void -modulemd_module_test_upgrade_v2 (ModuleFixture *fixture, - gconstpointer user_data) -{ - ModulemdModule *md = modulemd_module_new (); - GPtrArray *modules = NULL; - ModulemdSimpleSet *licenses = NULL; - GError *error = NULL; - gchar *yaml = NULL; - gboolean result = FALSE; - GDate *eol = NULL; - GHashTable *servicelevels = NULL; - GHashTable *v1_deps = NULL; - GPtrArray *v2_deps = NULL; - - - /* Add mdversion (required) */ - modulemd_module_set_mdversion (md, 1); - - /* Add summary (required) */ - modulemd_module_set_summary (md, "The summary"); - - /* Add description (required) */ - modulemd_module_set_description (md, "The description"); - - /* Add module license (required) */ - licenses = modulemd_simpleset_new (); - modulemd_simpleset_add (licenses, "MIT"); - modulemd_module_set_module_licenses (md, licenses); - g_object_unref (licenses); - - /* Add EOL value */ - eol = g_date_new_dmy (3, 10, 2077); - modulemd_module_set_eol (md, eol); - g_date_free (eol); - - /* There should be no "rawhide" service level yet */ - servicelevels = modulemd_module_get_servicelevels (md); - g_assert_false (g_hash_table_contains (servicelevels, "rawhide")); - servicelevels = NULL; - - v1_deps = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); - g_hash_table_insert (v1_deps, g_strdup ("platform"), g_strdup ("f28")); - - /* Add a BuildRequires */ - modulemd_module_set_buildrequires (md, v1_deps); - - /* Add a runtime Requires */ - modulemd_module_set_requires (md, v1_deps); - - g_hash_table_unref (v1_deps); - - /* Upgrade to v2 */ - result = modulemd_module_upgrade (md); - g_assert_true (result); - - g_assert_cmpuint (modulemd_module_get_mdversion (md), ==, 2); - - /* The module should now contain an entry for rawhide */ - servicelevels = modulemd_module_get_servicelevels (md); - g_assert_true (g_hash_table_contains (servicelevels, "rawhide")); - servicelevels = NULL; - - - /* The module should now contain a single entry in the dependencies array */ - v2_deps = modulemd_module_get_dependencies (md); - g_assert_nonnull (v2_deps); - g_assert_cmpuint (v2_deps->len, ==, 1); - - /* Dump it to YAML to validate it */ - modules = g_ptr_array_new (); - g_ptr_array_add (modules, md); - - result = emit_yaml_string (modules, &yaml, &error); - g_assert_true (result); - g_assert_nonnull (yaml); - - g_debug ("Upgraded YAML:\n%s", yaml); - - g_ptr_array_unref (modules); - g_free (yaml); - g_object_unref (md); -} - - -int -main (int argc, char *argv[]) -{ - setlocale (LC_ALL, ""); - - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id="); - - // Define the tests. - - g_test_add ("/modulemd/module/test_get_set_buildrequires", - ModuleFixture, - NULL, - NULL, - modulemd_module_test_get_set_buildrequires, - NULL); - - g_test_add ("/modulemd/module/test_get_set_community", - ModuleFixture, - NULL, - NULL, - modulemd_module_test_get_set_community, - NULL); - - ModulePropString community; - community.property_name = "community"; - community.test_str = "MyCommunity"; - g_test_add ("/modulemd/module/test_prop_community", - ModuleFixture, - &community, - NULL, - modulemd_module_test_string_prop, - NULL); - - - g_test_add ("/modulemd/module/test_get_set_description", - ModuleFixture, - NULL, - NULL, - modulemd_module_test_get_set_description, - NULL); - - ModulePropString desc; - desc.property_name = "description"; - desc.test_str = "MyDescription"; - g_test_add ("/modulemd/module/test_prop_description", - ModuleFixture, - &desc, - NULL, - modulemd_module_test_string_prop, - NULL); - - g_test_add ("/modulemd/module/test_get_set_documentation", - ModuleFixture, - NULL, - NULL, - modulemd_module_test_get_set_documentation, - NULL); - - ModulePropString doc; - doc.property_name = "documentation"; - doc.test_str = "MyDocumentation"; - g_test_add ("/modulemd/module/test_prop_documentation", - ModuleFixture, - &doc, - NULL, - modulemd_module_test_string_prop, - NULL); - - g_test_add ("/modulemd/module/test_get_set_mdversion", - ModuleFixture, - NULL, - NULL, - modulemd_module_test_get_set_mdversion, - NULL); - - g_test_add ("/modulemd/module/test_get_set_name", - ModuleFixture, - NULL, - NULL, - modulemd_module_test_get_set_name, - NULL); - - ModulePropString name; - name.property_name = "name"; - name.test_str = "MyName"; - g_test_add ("/modulemd/module/test_prop_name", - ModuleFixture, - &name, - NULL, - modulemd_module_test_string_prop, - NULL); - - g_test_add ("/modulemd/module/test_get_set_requires", - ModuleFixture, - NULL, - NULL, - modulemd_module_test_get_set_requires, - NULL); - - g_test_add ("/modulemd/module/test_get_set_stream", - ModuleFixture, - NULL, - NULL, - modulemd_module_test_get_set_stream, - NULL); - - ModulePropString stream; - stream.property_name = "stream"; - stream.test_str = "MyStream"; - g_test_add ("/modulemd/module/test_prop_stream", - ModuleFixture, - &stream, - NULL, - modulemd_module_test_string_prop, - NULL); - - g_test_add ("/modulemd/module/test_get_set_summary", - ModuleFixture, - NULL, - NULL, - modulemd_module_test_get_set_summary, - NULL); - - ModulePropString summary; - summary.property_name = "summary"; - summary.test_str = "MySummary"; - g_test_add ("/modulemd/module/test_prop_summary", - ModuleFixture, - &summary, - NULL, - modulemd_module_test_string_prop, - NULL); - - g_test_add ("/modulemd/module/test_get_set_tracker", - ModuleFixture, - NULL, - NULL, - modulemd_module_test_get_set_tracker, - NULL); - - ModulePropString tracker; - tracker.property_name = "tracker"; - tracker.test_str = "MyTracker"; - g_test_add ("/modulemd/module/test_prop_tracker", - ModuleFixture, - &tracker, - NULL, - modulemd_module_test_string_prop, - NULL); - - g_test_add ("/modulemd/module/test_get_set_version", - ModuleFixture, - NULL, - NULL, - modulemd_module_test_get_set_version, - NULL); - - g_test_add ("/modulemd/module/test_get_set_dependencies", - ModuleFixture, - NULL, - NULL, - modulemd_module_test_get_set_dependencies, - NULL); - - g_test_add ("/modulemd/module/test_construct_v1", - ModuleFixture, - NULL, - NULL, - modulemd_module_test_construct_v1, - NULL); - - g_test_add ("/modulemd/module/test_construct_v2", - ModuleFixture, - NULL, - NULL, - modulemd_module_test_construct_v2, - NULL); - - g_test_add ("/modulemd/module/modulemd_module_test_upgrade_v2", - ModuleFixture, - NULL, - NULL, - modulemd_module_test_upgrade_v2, - NULL); - - - return g_test_run (); -} diff --git a/modulemd-1.8.16/modulemd/tests/test-modulemd-modulestream.c b/modulemd-1.8.16/modulemd/tests/test-modulemd-modulestream.c deleted file mode 100644 index 4c2e40e..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-modulemd-modulestream.c +++ /dev/null @@ -1,282 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ -#define MMD_DISABLE_DEPRECATION_WARNINGS 1 -#include "modulemd.h" -#include "private/modulemd-private.h" - -#include -#include -#include - -typedef struct _StreamFixture -{ -} StreamFixture; - -static void -convert_from_module_to_modulestream (ModulemdModule *module, - ModulemdModuleStream *dest) -{ - g_assert_true (MODULEMD_IS_MODULE (module)); - g_assert_true (MODULEMD_IS_MODULESTREAM (dest)); - - modulemd_modulestream_set_mdversion ( - dest, modulemd_module_peek_mdversion (module)); - - modulemd_modulestream_set_arch (dest, modulemd_module_peek_arch (module)); - - modulemd_modulestream_set_buildopts ( - dest, modulemd_module_peek_buildopts (module)); - - modulemd_modulestream_set_community ( - dest, modulemd_module_peek_community (module)); - - modulemd_modulestream_set_content_licenses ( - dest, modulemd_module_peek_content_licenses (module)); - - modulemd_modulestream_set_context (dest, - modulemd_module_peek_context (module)); - - modulemd_modulestream_set_description ( - dest, modulemd_module_peek_description (module)); - - modulemd_modulestream_set_documentation ( - dest, modulemd_module_peek_documentation (module)); - - modulemd_modulestream_set_module_components ( - dest, modulemd_module_peek_module_components (module)); - - modulemd_modulestream_set_module_licenses ( - dest, modulemd_module_peek_module_licenses (module)); - - modulemd_modulestream_set_name (dest, modulemd_module_peek_name (module)); - - modulemd_modulestream_set_profiles (dest, - modulemd_module_peek_profiles (module)); - - modulemd_modulestream_set_rpm_api (dest, - modulemd_module_peek_rpm_api (module)); - - modulemd_modulestream_set_rpm_artifacts ( - dest, modulemd_module_peek_rpm_artifacts (module)); - - modulemd_modulestream_set_rpm_components ( - dest, modulemd_module_peek_rpm_components (module)); - - modulemd_modulestream_set_rpm_filter ( - dest, modulemd_module_peek_rpm_filter (module)); - - modulemd_modulestream_set_servicelevels ( - dest, modulemd_module_peek_servicelevels (module)); - - modulemd_modulestream_set_stream (dest, - modulemd_module_peek_stream (module)); - - modulemd_modulestream_set_summary (dest, - modulemd_module_peek_summary (module)); - - modulemd_modulestream_set_tracker (dest, - modulemd_module_peek_tracker (module)); - - modulemd_modulestream_set_version (dest, - modulemd_module_peek_version (module)); - - modulemd_modulestream_set_xmd (dest, modulemd_module_peek_xmd (module)); - - - /* Version-specific content */ - if (modulemd_module_peek_mdversion (module) == MD_VERSION_1) - { - modulemd_modulestream_set_buildrequires ( - dest, modulemd_module_peek_buildrequires (module)); - modulemd_modulestream_set_requires ( - dest, modulemd_module_peek_requires (module)); - if (modulemd_module_peek_eol (module)) - { - modulemd_modulestream_set_eol (dest, - (modulemd_module_peek_eol (module))); - } - } - else if (modulemd_module_peek_mdversion (module) >= MD_VERSION_2) - { - modulemd_modulestream_set_dependencies ( - dest, modulemd_module_peek_dependencies (module)); - } -} - -static void -modulemd_stream_test_basic (StreamFixture *fixture, gconstpointer user_data) -{ - g_autoptr (ModulemdModuleStream) modulestream = NULL; - g_autoptr (ModulemdModule) module = NULL; - - /* Properties */ - g_autofree gchar *name = NULL; - g_autofree gchar *stream = NULL; - guint64 version; - g_autofree gchar *context = NULL; - g_autofree gchar *arch = NULL; - g_autofree gchar *summary = NULL; - g_autofree gchar *description = NULL; - g_autoptr (ModulemdSimpleSet) module_licenses = NULL; - g_autoptr (ModulemdSimpleSet) content_licenses = NULL; - g_autoptr (GPtrArray) dependencies = NULL; - g_autofree gchar *community = NULL; - g_autofree gchar *documentation = NULL; - g_autofree gchar *tracker = NULL; - g_autoptr (ModulemdSimpleSet) rpm_api = NULL; - g_autoptr (ModulemdSimpleSet) rpm_filter = NULL; - g_autoptr (ModulemdBuildopts) buildopts = NULL; - g_autoptr (ModulemdSimpleSet) rpm_artifacts = NULL; - - g_autofree gchar *rpm_macros = NULL; - g_autoptr (ModulemdSimpleSet) rpm_whitelist = NULL; - - g_autoptr (GHashTable) rpm_components = NULL; - ModulemdComponentRpm *rpm_component = NULL; - - g_autofree gchar *v2_spec_file = - g_strdup_printf ("%s/spec.v2.yaml", g_getenv ("MESON_SOURCE_ROOT")); - - /* Read in the v2 spec and test its contents */ - module = modulemd_module_new_from_file (v2_spec_file); - g_assert_nonnull (module); - g_assert_true (MODULEMD_IS_MODULE (module)); - - modulestream = modulemd_modulestream_new (); - g_assert_nonnull (modulestream); - g_assert_true (MODULEMD_IS_MODULESTREAM (modulestream)); - - convert_from_module_to_modulestream (module, modulestream); - - // clang-format off - g_object_get (modulestream, - "name", &name, - "stream", &stream, - "version", &version, - "context", &context, - "arch", &arch, - "summary", &summary, - "description", &description, - "module-licenses", &module_licenses, - "content-licenses", &content_licenses, - "dependencies", &dependencies, - "community", &community, - "documentation", &documentation, - "tracker", &tracker, - "rpm-api", &rpm_api, - "rpm-filter", &rpm_filter, - "buildopts", &buildopts, - "rpm-artifacts", &rpm_artifacts, - NULL); - // clang-format on - - g_assert_cmpstr (name, ==, "foo"); - - g_assert_cmpstr (stream, ==, "latest"); - - g_assert_cmpuint (version, ==, 20160927144203); - - g_assert_cmpstr (context, ==, "c0ffee43"); - - g_assert_cmpstr (arch, ==, "x86_64"); - - g_assert_cmpstr (summary, ==, "An example module"); - - g_assert_cmpstr ( - description, - ==, - "A module for the demonstration of the metadata format. Also, the " - "obligatory lorem ipsum dolor sit amet goes right here."); - - g_assert_true (modulemd_simpleset_contains (module_licenses, "MIT")); - - g_assert_true (modulemd_simpleset_contains (content_licenses, "Beerware")); - g_assert_true (modulemd_simpleset_contains (content_licenses, "GPLv2+")); - g_assert_true (modulemd_simpleset_contains (content_licenses, "zlib")); - - for (gsize i = 0; i < dependencies->len; i++) - { - g_assert_true ( - MODULEMD_IS_DEPENDENCIES (g_ptr_array_index (dependencies, i))); - } - - g_assert_cmpstr (community, ==, "http://www.example.com/"); - - g_assert_cmpstr (documentation, ==, "http://www.example.com/"); - - g_assert_cmpstr (tracker, ==, "http://www.example.com/"); - - g_assert_true (modulemd_simpleset_contains (rpm_api, "bar")); - g_assert_true (modulemd_simpleset_contains (rpm_api, "bar-extras")); - g_assert_true (modulemd_simpleset_contains (rpm_api, "bar-devel")); - g_assert_true (modulemd_simpleset_contains (rpm_api, "baz")); - g_assert_true (modulemd_simpleset_contains (rpm_api, "xxx")); - - g_assert_true (modulemd_simpleset_contains (rpm_filter, "baz-nonfoo")); - - g_assert_true (MODULEMD_IS_BUILDOPTS (buildopts)); - rpm_macros = modulemd_buildopts_get_rpm_macros (buildopts); - g_assert_cmpstr ( - rpm_macros, ==, "%demomacro 1\n%demomacro2 %{demomacro}23\n"); - rpm_whitelist = modulemd_buildopts_get_rpm_whitelist_simpleset (buildopts); - g_assert_true (modulemd_simpleset_contains (rpm_whitelist, "fooscl-1-bar")); - g_assert_true (modulemd_simpleset_contains (rpm_whitelist, "fooscl-1-baz")); - g_assert_true (modulemd_simpleset_contains (rpm_whitelist, "xxx")); - g_assert_true (modulemd_simpleset_contains (rpm_whitelist, "xyz")); - - g_assert_true (MODULEMD_IS_SIMPLESET (rpm_artifacts)); - g_assert_true (modulemd_simpleset_contains ( - rpm_artifacts, "bar-0:1.23-1.module_deadbeef.x86_64")); - g_assert_true (modulemd_simpleset_contains ( - rpm_artifacts, "bar-devel-0:1.23-1.module_deadbeef.x86_64")); - g_assert_true (modulemd_simpleset_contains ( - rpm_artifacts, "bar-extras-0:1.23-1.module_deadbeef.x86_64")); - g_assert_true (modulemd_simpleset_contains ( - rpm_artifacts, "baz-0:42-42.module_deadbeef.x86_64")); - g_assert_true (modulemd_simpleset_contains ( - rpm_artifacts, "xxx-0:1-1.module_deadbeef.x86_64")); - g_assert_true (modulemd_simpleset_contains ( - rpm_artifacts, "xxx-0:1-1.module_deadbeef.i686")); - g_assert_true (modulemd_simpleset_contains ( - rpm_artifacts, "xyz-0:1-1.module_deadbeef.x86_64")); - - rpm_components = modulemd_modulestream_get_rpm_components (modulestream); - g_assert_nonnull (rpm_components); - - rpm_component = g_hash_table_lookup (rpm_components, "bar"); - g_assert_nonnull (rpm_component); - g_assert_true (MODULEMD_IS_COMPONENT_RPM (rpm_component)); - - g_assert_cmpstr (modulemd_component_rpm_get_repository (rpm_component), - ==, - "https://pagure.io/bar.git"); -} - -int -main (int argc, char *argv[]) -{ - setlocale (LC_ALL, ""); - - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id="); - - - g_test_add ("/modulemd/modulestream/init", - StreamFixture, - NULL, - NULL, - modulemd_stream_test_basic, - NULL); - - return g_test_run (); -}; diff --git a/modulemd-1.8.16/modulemd/tests/test-modulemd-python.py b/modulemd-1.8.16/modulemd/tests/test-modulemd-python.py deleted file mode 100755 index 8b11377..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-modulemd-python.py +++ /dev/null @@ -1,466 +0,0 @@ -#!/usr/bin/python3 - -# This file is part of libmodulemd -# Copyright (C) 2017-2018 Stephen Gallagher -# -# Fedora-License-Identifier: MIT -# SPDX-2.0-License-Identifier: MIT -# SPDX-3.0-License-Identifier: MIT -# -# This program is free software. -# For more information on the license, see COPYING. -# For more information on free software, see -# . - -import os -import sys - -try: - import unittest - import gi - gi.require_version('Modulemd', '1.0') - from gi.repository import Modulemd - from gi.repository import GLib -except ImportError: - # Return error 77 to skip this test on platforms without the necessary - # python modules - sys.exit(77) - - -class TestStandard(unittest.TestCase): - - def test_version(self): - # Make sure that we are linking against the correct version - expected_version = os.getenv('MODULEMD_VERSION') - assert expected_version is None \ - or expected_version == Modulemd.get_version() - - def test_failures(self): - (objects, failures) = Modulemd.objects_from_file_ext( - "%s/test_data/mixed-v2.yaml" % os.getenv('MESON_SOURCE_ROOT')) - - # There should be two valid documents - assert len(objects) == 2 - - # And seven failed documents - assert len(failures) == 7 - - # Validate that all failures are due to failed document type detection - for failure in failures: - assert failure.props.gerror.code == 3 - - assert failures[0].props.gerror.message.startswith( - 'Document type is not recognized [') - - assert failures[1].props.gerror.message == \ - 'Document type was specified more than once' - - assert failures[2].props.gerror.message == \ - 'Document version was specified more than once' - - assert failures[3].props.gerror.message == \ - 'Document type was not a scalar value' - - assert failures[4].props.gerror.message.startswith( - 'Document type is not recognized [') - - assert failures[5].props.gerror.message.startswith( - 'Document type is not recognized [') - - assert failures[6].props.gerror.message == \ - 'Unknown modulemd defaults version' - - # Read in a file that's definitely not YAML - try: - (objects, failures) = Modulemd.objects_from_file_ext( - "%s/COPYING" % os.getenv('MESON_SOURCE_ROOT')) - except GLib.GError as e: - # Verify that it's a parser error - assert e.message == "Parser error" - - # Read in a file that fails modulemd validation - (objects, failures) = Modulemd.objects_from_file_ext( - "%s/test_data/issue14-mismatch.yaml" - % os.getenv('MESON_SOURCE_ROOT')) - - assert len(objects) == 0 - assert len(failures) == 1 - - assert failures[ - 0].props.gerror.message.startswith( - 'Received scalar where sequence expected [') - - -class TestDefaults(unittest.TestCase): - - def test_spec(self): - defaults = Modulemd.Defaults.new_from_file( - '%s/mod-defaults/spec.v1.yaml' % os.getenv('MESON_SOURCE_ROOT')) - assert defaults - - assert defaults.props.profile_defaults['bar'].contains('baz') - assert defaults.props.profile_defaults['bar'].contains('snafu') - - assert defaults.props.intents - assert 'desktop' in defaults.props.intents - assert defaults.props.intents['desktop'].props.default_stream == 'y.z' - assert 'y.z' in defaults.props.intents[ - 'desktop'].props.profile_defaults - assert 'blah' in defaults.props.intents[ - 'desktop'].props.profile_defaults['y.z'].dup() - assert 'x.y' in defaults.props.intents[ - 'desktop'].props.profile_defaults - assert 'other' in defaults.props.intents[ - 'desktop'].props.profile_defaults['x.y'].dup() - - assert 'server' in defaults.props.intents - assert defaults.props.intents['server'].props.default_stream == 'x.y' - assert 'x.y' in defaults.props.intents['server'].props.profile_defaults - assert not defaults.props.intents[ - 'server'].props.profile_defaults['x.y'].dup() - - nointents = Modulemd.Defaults.new_from_file( - '%s/mod-defaults/ex2.yaml' % os.getenv('MESON_SOURCE_ROOT')) - assert nointents - - assert not nointents.props.intents - - def test_construction(self): - defaults = Modulemd.Defaults() - defaults.set_version(1) - defaults.set_module_name("foo") - defaults.set_default_stream("stable") - defaults.set_profiles_for_stream("stable", ['default']) - - intent = Modulemd.Intent.new('server') - intent.set_default_stream('stable') - intent.set_profiles_for_stream('stable', ['server', 'microservice']) - intent.set_profiles_for_stream('PoC', ['cloud', 'microservice']) - defaults.add_intent(intent) - - assert 'server' in defaults.props.intents - assert 'server' in defaults.props.intents[ - 'server'].props.profile_defaults['stable'].dup() - assert 'microservice' in defaults.props.intents[ - 'server'].props.profile_defaults['stable'].dup() - assert 'cloud' in defaults.props.intents[ - 'server'].props.profile_defaults['PoC'].dup() - assert 'microservice' in defaults.props.intents[ - 'server'].props.profile_defaults['PoC'].dup() - - -class TestIssues(unittest.TestCase): - - def test_issue24(self): - # Verify that we can handle boolean variant types - name = stream = context = "x" - version = 10 - - mmd = Modulemd.Module() - mmd.set_mdversion(2) - mmd.set_name(name) - mmd.set_stream(stream) - mmd.set_version(int(version)) - mmd.set_context(context) - mmd.set_summary("foo") - mmd.set_description("foo") - licenses = Modulemd.SimpleSet() - licenses.add("GPL") - mmd.set_module_licenses(licenses) - - d = {"x": GLib.Variant('b', True)} - mmd.set_xmd(d) - mmd.dumps() - - def test_issue25(self): - mmd = Modulemd.Module.new_from_file("%s/test_data/issue25.yaml" % - os.getenv('MESON_SOURCE_ROOT')) - assert mmd.peek_rpm_buildopts() != {} - assert mmd.peek_rpm_buildopts()['macros'] == '%my_macro 1' - mmd.upgrade() - assert mmd.peek_rpm_buildopts() != {} - assert mmd.peek_rpm_buildopts()['macros'] == '%my_macro 1' - mmd.set_rpm_buildopts({'macros': '%my_macro 1'}) - assert mmd.peek_rpm_buildopts() != {} - assert mmd.peek_rpm_buildopts()['macros'] == '%my_macro 1' - dumped = mmd.dumps() - mmd2 = Modulemd.Module.new_from_string(dumped) - assert mmd2.peek_rpm_buildopts() != {} - assert mmd2.peek_rpm_buildopts()['macros'] == '%my_macro 1' - - def test_issue33(self): - # We had a bug where this was returning an array as (transfer full) - # instead of (transfer container) which resulted in the GI python - # double-freeing memory. - defs = Modulemd.Module.new_all_from_file_ext( - "%s/mod-defaults/spec.v1.yaml" % os.getenv('MESON_SOURCE_ROOT')) - assert defs - - def test_issue77(self): - # This would crash on a type constraint accepting a signed value - component = Modulemd.ComponentRpm(name="pkg1", - rationale="Just because", - buildorder=-1) - assert component.props.buildorder == -1 - - component.props.buildorder = -2 - assert component.get_buildorder() == -2 - - component.set_buildorder(5) - assert component.props.buildorder == 5 - - def test_issue80(self): - mmd_translation = Modulemd.Translation(module_name="modulename", - module_stream="modulestream", - mdversion=1, - modified=201809041500) - entry = Modulemd.TranslationEntry(locale='en_US') - mmd_translation.add_entry(entry) - - # Would crash attempting to dump to YAML - try: - yaml_output = mmd_translation.dumps() - except GLib.GError as err: - # A proper exception is expected here - pass - - def test_issue85(self): - """ - Component module refs are lost when dumping to YAML - """ - mmd = Modulemd.Module().new_from_string(""" -document: modulemd -version: 1 -data: - summary: A test module in all its beautiful beauty. - description: >- - This module demonstrates how to write simple modulemd files And - can be used for testing the build and release pipeline. - license: - module: [ MIT ] - dependencies: - buildrequires: - platform: el8 - requires: - platform: el8 - references: - community: https://fedoraproject.org/wiki/Modularity - documentation: https://fedoraproject.org/wiki/Fedora_Packaging_Guidelines_for_Modules - tracker: https://taiga.fedorainfracloud.org/project/modularity - profiles: - default: - rpms: - - acl - api: - rpms: - - acl - components: - rpms: - acl: - rationale: needed - ref: rhel-8.0 - modules: - testmodule: - ref: private-x - rationale: Testing module inclusion. - buildorder: 10 -""") - assert mmd.get_module_components( - )['testmodule'].peek_ref() == 'private-x' - - mmd2 = Modulemd.Module.copy(mmd) - assert mmd2.get_module_components( - )['testmodule'].peek_ref() == 'private-x' - - mmd3 = Modulemd.Module.new_from_string(mmd.dumps()) - assert mmd3.get_module_components( - )['testmodule'].peek_ref() == 'private-x' - - def test_issue88(self): - # Here, load the same file twice. - # All entries in these two lists should be duplicates of each other. - objects_from_repo_a = Modulemd.objects_from_file( - '%s/test_data/issue88.yaml' % os.getenv('MESON_SOURCE_ROOT')) - objects_from_repo_b = Modulemd.objects_from_file( - '%s/test_data/issue88.yaml' % os.getenv('MESON_SOURCE_ROOT')) - - # Test at the same priority level - prioritizer = Modulemd.Prioritizer() - prioritizer.add(objects_from_repo_a, 0) - prioritizer.add(objects_from_repo_b, 0) - supposedly_merged_objects = prioritizer.resolve() - - # Since they are all duplicates, they should be the same size. - assert len(objects_from_repo_a) == len(objects_from_repo_b) - assert len(objects_from_repo_a) == len(supposedly_merged_objects) - - # Test at different priorities - prioritizer = Modulemd.Prioritizer() - prioritizer.add(objects_from_repo_a, 0) - prioritizer.add(objects_from_repo_b, 1) - supposedly_merged_objects = prioritizer.resolve() - - # Since they are all duplicates, they should be the same size. - assert len(objects_from_repo_a) == len(objects_from_repo_b) - assert len(objects_from_repo_a) == len(supposedly_merged_objects) - - def test_issue94(self): - # Verify that we can read in a module stream with a zero module - # version. - stream = Modulemd.ModuleStream.new() - stream.import_from_string(""" -document: modulemd -version: 1 -data: - name: foo - stream: bar - version: 0 - summary: A test module in all its beautiful beauty. - description: This module demonstrates how to write simple modulemd files And can be used for testing the build and release pipeline. - license: - module: [ MIT ] - dependencies: - buildrequires: - platform: el8 - requires: - platform: el8 - references: - community: https://fedoraproject.org/wiki/Modularity - documentation: https://fedoraproject.org/wiki/Fedora_Packaging_Guidelines_for_Modules - tracker: https://taiga.fedorainfracloud.org/project/modularity - profiles: - default: - rpms: - - acl - api: - rpms: - - acl - components: - rpms: - acl: - rationale: needed - ref: rhel-8.0 - modules: - testmodule: - ref: private-x - rationale: Testing module inclusion. - buildorder: 10 -""") - assert stream is not None - assert stream.props.version == 0 - - # Verify that get_nsvc() works with a zeroed module version - assert stream.get_nsvc() == 'foo:bar:0' - - -class TestPrioritizer(unittest.TestCase): - - def test_latest_version(self): - # Load YAML with two versions of the same (name, stream, context) - objects = Modulemd.objects_from_file( - '%s/test_data/latest_version.yaml' % - os.getenv('MESON_SOURCE_ROOT')) - - prioritizer = Modulemd.Prioritizer() - prioritizer.add(objects, 0) - - supposedly_merged_objects = prioritizer.resolve() - - # There should only be the latest one in the list - print(supposedly_merged_objects) - - assert len(supposedly_merged_objects) == 1 - assert supposedly_merged_objects[0].props.name == 'foo' - assert supposedly_merged_objects[0].props.stream == 'stream-name' - assert supposedly_merged_objects[0].props.context == 'c0ffee43' - assert supposedly_merged_objects[0].props.version == 20180928144203 - - -class TestIntent(unittest.TestCase): - - def test_basic(self): - intent = Modulemd.Intent.new("intent_name") - intent.set_default_stream("default stream") - - assert intent.props.intent_name == 'intent_name' - assert intent.props.default_stream == 'default stream' - - intent.set_profiles_for_stream("default stream", ['default', 'server']) - - contents = intent.props.profile_defaults['default stream'] - assert contents.contains('default') - assert contents.contains('server') - - assert intent.props.profile_defaults[ - 'default stream'].contains('default') - assert intent.props.profile_defaults[ - 'default stream'].contains('server') - - intent_copy = intent.copy() - assert intent_copy.props.intent_name == 'intent_name' - assert intent_copy.props.default_stream == 'default stream' - assert intent_copy.props.profile_defaults[ - 'default stream'].contains('default') - assert intent_copy.props.profile_defaults[ - 'default stream'].contains('server') - - -class TestIndexParser (unittest.TestCase): - - def test_file_parser(self): - (module_index, failures) = Modulemd.index_from_file( - "%s/test_data/long-valid.yaml" % os.getenv('MESON_SOURCE_ROOT')) - - assert len(failures) == 0 - - assert 'django' in module_index - - assert module_index['django'].props.name == 'django' - - streams = module_index['django'].get_streams() - - assert 'django:1.6:20180307130104:c2c572ec' in streams - - -class TestImprovedModule (unittest.TestCase): - - def test_dump(self): - (module_index, failures) = Modulemd.index_from_file( - "%s/test_data/long-valid.yaml" % os.getenv('MESON_SOURCE_ROOT')) - assert len(failures) == 0 - - assert 'nodejs' in module_index - - yaml_out = module_index['nodejs'].dumps() - - assert 'scalable network applications' in yaml_out - assert '20180308155546' in yaml_out - assert 'document: modulemd-defaults' in yaml_out - assert 'module: nodejs' in yaml_out - - def test_custom_repo(self): - (module_index, failures) = Modulemd.index_from_file( - "%s/spec.v2.yaml" % os.getenv('MESON_SOURCE_ROOT')) - assert len(failures) == 0 - - foo_module = module_index['foo'] - assert foo_module - - foo_stream = foo_module.get_stream_by_nsvc( - 'foo:latest:20160927144203:c0ffee43') - assert foo_stream - - rpm_components = foo_stream.get_rpm_components() - assert rpm_components - - bar_component = rpm_components['bar'] - assert bar_component - - repo = bar_component.dup_repository() - assert repo - - assert repo == "https://pagure.io/bar.git" - - -if __name__ == '__main__': - unittest.main() diff --git a/modulemd-1.8.16/modulemd/tests/test-modulemd-regressions.c b/modulemd-1.8.16/modulemd/tests/test-modulemd-regressions.c deleted file mode 100644 index cd76f8a..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-modulemd-regressions.c +++ /dev/null @@ -1,244 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ -#define MMD_DISABLE_DEPRECATION_WARNINGS 1 -#include "modulemd.h" -#include "private/modulemd-yaml.h" - -#include -#include - -typedef struct _RegressionFixture -{ -} RegressionFixture; - - -static void -modulemd_regressions_issue14_v1 (RegressionFixture *fixture, - gconstpointer user_data) -{ - gchar *yaml_path = NULL; - ModulemdModule *module = NULL; - - yaml_path = g_strdup_printf ("%s/test_data/issue14-v1.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - module = modulemd_module_new_from_file (yaml_path); - g_assert_nonnull (module); - g_clear_pointer (&module, g_object_unref); - g_clear_pointer (&yaml_path, g_free); -} - -static void -modulemd_regressions_issue14_v2 (RegressionFixture *fixture, - gconstpointer user_data) -{ - gchar *yaml_path = NULL; - ModulemdModule *module = NULL; - - yaml_path = g_strdup_printf ("%s/test_data/issue14-v2.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - module = modulemd_module_new_from_file (yaml_path); - g_assert_nonnull (module); - g_clear_pointer (&module, g_object_unref); - g_clear_pointer (&yaml_path, g_free); -} - -static void -modulemd_regressions_issue14_mismatch (RegressionFixture *fixture, - gconstpointer user_data) -{ - gchar *yaml_path = NULL; - ModulemdModule *module = NULL; - - yaml_path = g_strdup_printf ("%s/test_data/issue14-mismatch.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - module = modulemd_module_new_from_file (yaml_path); - g_assert_null (module); - g_clear_pointer (&module, g_object_unref); - g_clear_pointer (&yaml_path, g_free); -} - - -static void -modulemd_regressions_issue16 (RegressionFixture *fixture, - gconstpointer user_data) -{ - gchar *yaml_path = NULL; - ModulemdModule *module = NULL; - ModulemdModule *module2 = NULL; - GHashTable *rpm_components = NULL; - gchar *yaml = NULL; - - yaml_path = g_strdup_printf ("%s/test_data/issue16.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - module = modulemd_module_new_from_file (yaml_path); - g_assert_nonnull (module); - rpm_components = modulemd_module_get_rpm_components (module); - g_assert_cmpint (g_hash_table_size (rpm_components), >, 0); - - yaml = modulemd_module_dumps (module); - g_debug ("YAML dumps() content:\n%s\n", yaml); - - module2 = modulemd_module_new_from_string (yaml); - g_assert_nonnull (module2); - rpm_components = modulemd_module_get_rpm_components (module2); - g_assert_cmpint (g_hash_table_size (rpm_components), >, 0); - - g_clear_pointer (&module, g_object_unref); - g_clear_pointer (&module2, g_object_unref); - g_clear_pointer (&yaml_path, g_free); - g_clear_pointer (&yaml, g_free); -} - - -static void -modulemd_regressions_issue18 (RegressionFixture *fixture, - gconstpointer user_data) -{ - gchar *yaml_content = NULL; - ModulemdModule *module = NULL; - - yaml_content = g_strdup ("document: modulemd\nBad YAML"); - module = modulemd_module_new_from_string (yaml_content); - g_assert_null (module); - g_clear_pointer (&module, g_object_unref); - g_clear_pointer (&yaml_content, g_free); -} - -static void -modulemd_regressions_issue25 (RegressionFixture *fixture, - gconstpointer user_data) -{ - gchar *yaml_path; - ModulemdModule *module = NULL; - GHashTable *buildopts = NULL; - - yaml_path = g_strdup_printf ("%s/test_data/issue25.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - module = modulemd_module_new_from_file (yaml_path); - g_clear_pointer (&yaml_path, g_free); - g_assert_nonnull (module); - - buildopts = modulemd_module_peek_rpm_buildopts (module); - g_assert_nonnull (buildopts); - g_assert_true (g_hash_table_contains (buildopts, "macros")); - g_assert_cmpstr ((const gchar *)g_hash_table_lookup (buildopts, "macros"), - ==, - "%my_macro 1"); - - g_object_unref (module); -} - - -static void -modulemd_regressions_issue26 (RegressionFixture *fixture, - gconstpointer user_data) -{ - gchar *yaml_path; - ModulemdModule *module = NULL; - - /* This would segfault because we weren't checking for NULL - * prior to attempting to free the simpleset in - * _parse_modulemd_filters - */ - yaml_path = g_strdup_printf ("%s/test_data/issue26.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - module = modulemd_module_new_from_file (yaml_path); - g_assert_nonnull (module); - - g_clear_pointer (&module, g_object_unref); - g_clear_pointer (&yaml_path, g_free); -} - - -static void -modulemd_regressions_issue53 (RegressionFixture *fixture, - gconstpointer user_data) -{ - g_autofree gchar *yaml_path = NULL; - g_autoptr (GPtrArray) objects = NULL; - - yaml_path = g_strdup_printf ("%s/test_data/issue53.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - objects = modulemd_objects_from_file (yaml_path, NULL); - g_assert_nonnull (objects); -} - - -int -main (int argc, char *argv[]) -{ - setlocale (LC_ALL, ""); - - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id="); - - // Define the tests. - - g_test_add ("/modulemd/regressions/issue14_v1", - RegressionFixture, - NULL, - NULL, - modulemd_regressions_issue14_v1, - NULL); - - g_test_add ("/modulemd/regressions/issue14_v2", - RegressionFixture, - NULL, - NULL, - modulemd_regressions_issue14_v2, - NULL); - - g_test_add ("/modulemd/regressions/issue14_mismatch", - RegressionFixture, - NULL, - NULL, - modulemd_regressions_issue14_mismatch, - NULL); - - g_test_add ("/modulemd/regressions/issue16", - RegressionFixture, - NULL, - NULL, - modulemd_regressions_issue16, - NULL); - - g_test_add ("/modulemd/regressions/issue18", - RegressionFixture, - NULL, - NULL, - modulemd_regressions_issue18, - NULL); - - g_test_add ("/modulemd/regressions/issue25", - RegressionFixture, - NULL, - NULL, - modulemd_regressions_issue25, - NULL); - - g_test_add ("/modulemd/regressions/issue26", - RegressionFixture, - NULL, - NULL, - modulemd_regressions_issue26, - NULL); - - g_test_add ("/modulemd/regressions/issue53", - RegressionFixture, - NULL, - NULL, - modulemd_regressions_issue53, - NULL); - - return g_test_run (); -} diff --git a/modulemd-1.8.16/modulemd/tests/test-modulemd-servicelevel.c b/modulemd-1.8.16/modulemd/tests/test-modulemd-servicelevel.c deleted file mode 100644 index baf0ccf..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-modulemd-servicelevel.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ -#define MMD_DISABLE_DEPRECATION_WARNINGS 1 -#include "modulemd.h" -#include "modulemd-servicelevel.h" - -#include -#include - -typedef struct _ServiceLevelFixture -{ -} ServiceLevelFixture; - -static void -modulemd_servicelevel_test_get_set_name (ServiceLevelFixture *fixture, - gconstpointer user_data) -{ - const gchar *refname = "rawhide"; - const gchar *name = NULL; - ModulemdServiceLevel *sl = modulemd_servicelevel_new (); - g_assert_nonnull (sl); - - modulemd_servicelevel_set_name (sl, refname); - - name = modulemd_servicelevel_peek_name (sl); - g_assert_cmpstr (name, ==, refname); - g_clear_pointer (&sl, g_object_unref); -} - -static void -modulemd_servicelevel_test_get_set_eol (ServiceLevelFixture *fixture, - gconstpointer user_data) -{ - GDate *refeol = NULL; - const GDate *eol = NULL; - - ModulemdServiceLevel *sl = modulemd_servicelevel_new (); - g_assert_nonnull (sl); - - refeol = g_date_new_dmy (29, 2, 2020); - - modulemd_servicelevel_set_eol (sl, refeol); - - eol = modulemd_servicelevel_peek_eol (sl); - - g_assert_cmpint (g_date_compare (eol, refeol), ==, 0); - - g_clear_pointer (&refeol, g_date_free); - g_clear_pointer (&sl, g_object_unref); -} - -int -main (int argc, char *argv[]) -{ - setlocale (LC_ALL, ""); - - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id="); - - // Define the tests. - - g_test_add ("/modulemd/servicelevel/modulemd_servicelevel_test_get_set_name", - ServiceLevelFixture, - NULL, - NULL, - modulemd_servicelevel_test_get_set_name, - NULL); - - g_test_add ("/modulemd/servicelevel/modulemd_servicelevel_test_get_set_eol", - ServiceLevelFixture, - NULL, - NULL, - modulemd_servicelevel_test_get_set_eol, - NULL); - - return g_test_run (); -} diff --git a/modulemd-1.8.16/modulemd/tests/test-modulemd-simpleset.c b/modulemd-1.8.16/modulemd/tests/test-modulemd-simpleset.c deleted file mode 100644 index a7f77ed..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-modulemd-simpleset.c +++ /dev/null @@ -1,255 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ -#define MMD_DISABLE_DEPRECATION_WARNINGS 1 -#include "modulemd.h" -#include "modulemd-simpleset.h" - -#include -#include - -typedef struct _SimpleSetFixture -{ - ModulemdSimpleSet *set; -} SimpleSetFixture; - -static void -modulemd_simpleset_set_up (SimpleSetFixture *fixture, gconstpointer user_data) -{ - fixture->set = modulemd_simpleset_new (); -} - -static void -modulemd_simpleset_tear_down (SimpleSetFixture *fixture, - gconstpointer user_data) -{ - g_object_unref (fixture->set); -} - -static gboolean -_array_contains (gchar **array, const gchar *value) -{ - for (gsize i = 0; array[i]; i++) - { - if (g_strcmp0 (array[i], value) == 0) - { - return TRUE; - } - } - return FALSE; -} - -static void -modulemd_simpleset_test_get_set (SimpleSetFixture *fixture, - gconstpointer user_data) -{ - gsize i = 0; - gchar **array = g_malloc0_n (5, sizeof (gchar *)); - gchar **array2; - - array[0] = g_strdup ("alpha"); - array[1] = g_strdup ("bravo"); - /* Add duplicate value to ensure uniqueness of resulting set */ - array[2] = g_strdup ("alpha"); - array[3] = NULL; - - /* Create the set from a strv */ - modulemd_simpleset_set (fixture->set, array); - - for (i = 0; array[i]; i++) - { - g_assert_true (modulemd_simpleset_contains (fixture->set, array[i])); - } - - array2 = modulemd_simpleset_dup (fixture->set); - - for (i = 0; array[i]; i++) - { - g_assert_true (_array_contains (array2, array[i])); - } - - /* Verify order */ - g_assert_cmpstr (array2[0], ==, "alpha"); - g_assert_cmpstr (array2[1], ==, "bravo"); - - /* The size of the resulting set should only be two entries, - * since one of them was a duplicate. - */ - g_assert_cmpint (g_strv_length (array2), ==, 2); - - for (i = 0; array[i]; i++) - { - g_free (array[i]); - } - g_free (array); - - for (i = 0; array2[i]; i++) - { - g_free (array2[i]); - } - g_free (array2); -} - -static void -modulemd_simpleset_test_copy (SimpleSetFixture *fixture, - gconstpointer user_data) -{ - gsize i = 0; - ModulemdSimpleSet *copy = NULL; - gchar **set = NULL; - - modulemd_simpleset_add (fixture->set, "alpha"); - modulemd_simpleset_add (fixture->set, "bravo"); - - g_assert_cmpint (modulemd_simpleset_size (fixture->set), ==, 2); - g_assert_true (modulemd_simpleset_contains (fixture->set, "alpha")); - g_assert_true (modulemd_simpleset_contains (fixture->set, "bravo")); - - /* Test that we can copy and allocate at the same time */ - modulemd_simpleset_copy (fixture->set, ©); - - g_assert_nonnull (copy); - set = modulemd_simpleset_dup (copy); - g_assert_nonnull (set); - - for (i = 0; set[i]; i++) - { - g_free (set[i]); - } - g_clear_pointer (&set, g_free); - - g_assert_cmpint (modulemd_simpleset_size (copy), ==, 2); - g_assert_true (modulemd_simpleset_contains (copy, "alpha")); - g_assert_true (modulemd_simpleset_contains (copy, "bravo")); - - /* Remove "alpha" and "bravo" and add "Mickey" and "Minnie" */ - modulemd_simpleset_add (fixture->set, "Mickey"); - modulemd_simpleset_add (fixture->set, "Minnie"); - modulemd_simpleset_remove (fixture->set, "alpha"); - modulemd_simpleset_remove (fixture->set, "bravo"); - - g_assert_cmpint (modulemd_simpleset_size (fixture->set), ==, 2); - g_assert_true (modulemd_simpleset_contains (fixture->set, "Mickey")); - g_assert_true (modulemd_simpleset_contains (fixture->set, "Minnie")); - g_assert_false (modulemd_simpleset_contains (fixture->set, "alpha")); - g_assert_false (modulemd_simpleset_contains (fixture->set, "bravo")); - - /* Overwrite the contents of "copy" */ - modulemd_simpleset_copy (fixture->set, ©); - - g_assert_cmpint (modulemd_simpleset_size (copy), ==, 2); - g_assert_cmpint (modulemd_simpleset_size (copy), ==, 2); - g_assert_true (modulemd_simpleset_contains (copy, "Mickey")); - g_assert_true (modulemd_simpleset_contains (copy, "Minnie")); - g_assert_false (modulemd_simpleset_contains (copy, "alpha")); - g_assert_false (modulemd_simpleset_contains (copy, "bravo")); - - - /* Copy a NULL SimpleSet */ - modulemd_simpleset_copy (NULL, ©); - - g_assert_cmpint (modulemd_simpleset_size (copy), ==, 0); - g_assert_false (modulemd_simpleset_contains (copy, "Mickey")); - g_assert_false (modulemd_simpleset_contains (copy, "Minnie")); - g_assert_false (modulemd_simpleset_contains (copy, "alpha")); - g_assert_false (modulemd_simpleset_contains (copy, "bravo")); - - g_clear_pointer (©, g_object_unref); -} - -static gboolean -test_validate_true (const gchar *str) -{ - return TRUE; -} - -static gboolean -test_validate_false (const gchar *str) -{ - return FALSE; -} - -static gboolean -test_validate_nofoo (const gchar *str) -{ - if (g_strcmp0 (str, "foo") == 0) - { - return FALSE; - } - return TRUE; -} - -static void -modulemd_simpleset_test_validate (SimpleSetFixture *fixture, - gconstpointer user_data) -{ - gboolean result = FALSE; - g_autoptr (ModulemdSimpleSet) set = modulemd_simpleset_new (); - g_autoptr (GPtrArray) failures = NULL; - - /* Add three strings to the set */ - modulemd_simpleset_add (set, "foo"); - modulemd_simpleset_add (set, "bar"); - modulemd_simpleset_add (set, "baz"); - - result = - modulemd_simpleset_validate_contents (set, test_validate_true, &failures); - g_assert_true (result); - g_assert_null (failures); - - result = - modulemd_simpleset_validate_contents (set, test_validate_false, &failures); - g_assert_false (result); - g_assert_nonnull (failures); - g_assert_cmpint (failures->len, ==, 3); - g_clear_pointer (&failures, g_ptr_array_unref); - - result = - modulemd_simpleset_validate_contents (set, test_validate_nofoo, &failures); - g_assert_false (result); - g_assert_nonnull (failures); - g_assert_cmpint (failures->len, ==, 1); - g_assert_cmpstr ((const gchar *)g_ptr_array_index (failures, 0), ==, "foo"); -} - -int -main (int argc, char *argv[]) -{ - setlocale (LC_ALL, ""); - - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id="); - - // Define the tests. - g_test_add ("/modulemd/simpleset/test_get_set", - SimpleSetFixture, - NULL, - modulemd_simpleset_set_up, - modulemd_simpleset_test_get_set, - modulemd_simpleset_tear_down); - - g_test_add ("/modulemd/simpleset/test_copy", - SimpleSetFixture, - NULL, - modulemd_simpleset_set_up, - modulemd_simpleset_test_copy, - modulemd_simpleset_tear_down); - - g_test_add ("/modulemd/simpleset/test_validate", - SimpleSetFixture, - NULL, - NULL, - modulemd_simpleset_test_validate, - NULL); - - return g_test_run (); -} diff --git a/modulemd-1.8.16/modulemd/tests/test-modulemd-subdocument.c b/modulemd-1.8.16/modulemd/tests/test-modulemd-subdocument.c deleted file mode 100644 index 97e1510..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-modulemd-subdocument.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ -#define MMD_DISABLE_DEPRECATION_WARNINGS 1 -#include "modulemd.h" -#include "private/modulemd-subdocument-private.h" - -#include -#include - -typedef struct _SubdocumentFixture -{ -} SubdocumentFixture; - - -static void -modulemd_subdocument_basic (SubdocumentFixture *fixture, - gconstpointer user_data) -{ - const gchar *yaml = "document: modulemd\nversion: 1"; - g_autoptr (ModulemdSubdocument) document = NULL; - - document = modulemd_subdocument_new (); - - modulemd_subdocument_set_doctype (document, MODULEMD_TYPE_MODULE); - g_assert_cmpuint ( - modulemd_subdocument_get_doctype (document), ==, MODULEMD_TYPE_MODULE); - - modulemd_subdocument_set_version (document, 1); - g_assert_cmpuint (modulemd_subdocument_get_version (document), ==, 1); - - modulemd_subdocument_set_yaml (document, yaml); - g_assert_cmpstr (modulemd_subdocument_get_yaml (document), ==, yaml); -} - - -int -main (int argc, char *argv[]) -{ - setlocale (LC_ALL, ""); - - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id="); - - g_test_add ("/modulemd/regressions/issue14_v1", - SubdocumentFixture, - NULL, - NULL, - modulemd_subdocument_basic, - NULL); - - return g_test_run (); -} diff --git a/modulemd-1.8.16/modulemd/tests/test-modulemd-translation-entry.c b/modulemd-1.8.16/modulemd/tests/test-modulemd-translation-entry.c deleted file mode 100644 index de5e49f..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-modulemd-translation-entry.c +++ /dev/null @@ -1,119 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - - -#include "modulemd.h" -#include "modulemd-translation-entry.h" - -#include -#include - -typedef struct _EntryFixture -{ -} EntryFixture; - - -static void -modulemd_translation_entry_test_basic (EntryFixture *fixture, - gconstpointer user_data) -{ - g_autoptr (ModulemdTranslationEntry) entry = NULL; - g_autofree gchar *locale; - g_autofree gchar *summary; - g_autofree gchar *description; - g_autoptr (GHashTable) profile_descriptions = NULL; - - /* Test standard object construction succeeds */ - entry = g_object_new (MODULEMD_TYPE_TRANSLATION_ENTRY, NULL); - g_assert_nonnull (entry); - /* The default locale should be C.UTF-8 */ - g_assert_cmpstr ( - modulemd_translation_entry_peek_locale (entry), ==, "C.UTF-8"); - g_assert_null (modulemd_translation_entry_peek_summary (entry)); - g_assert_null (modulemd_translation_entry_peek_description (entry)); - g_clear_pointer (&entry, g_object_unref); - - /* Test new() constructor */ - entry = modulemd_translation_entry_new ("en-US"); - g_assert_nonnull (entry); - g_assert_cmpstr ( - modulemd_translation_entry_peek_locale (entry), ==, "en-US"); - g_assert_null (modulemd_translation_entry_peek_summary (entry)); - g_assert_null (modulemd_translation_entry_peek_description (entry)); - g_clear_pointer (&entry, g_object_unref); - - /* Test construction with values set */ - // clang-format off - entry = g_object_new (MODULEMD_TYPE_TRANSLATION_ENTRY, - "locale", "en-US", - "summary", "Sample module", - "description", "A sample module", - NULL); - // clang-format on - - g_assert_nonnull (entry); - g_assert_cmpstr ( - modulemd_translation_entry_peek_locale (entry), ==, "en-US"); - g_assert_cmpstr ( - modulemd_translation_entry_peek_summary (entry), ==, "Sample module"); - g_assert_cmpstr (modulemd_translation_entry_peek_description (entry), - ==, - "A sample module"); - - // clang-format off - g_object_get (entry, - "locale", &locale, - "summary", &summary, - "description", &description, - NULL); - // clang-format on - g_assert_cmpstr (locale, ==, "en-US"); - g_assert_cmpstr (summary, ==, "Sample module"); - g_assert_cmpstr (description, ==, "A sample module"); - - modulemd_translation_entry_set_profile_description ( - entry, "a_profile", "Words"); - - g_assert_nonnull ( - modulemd_translation_entry_peek_profile_description (entry, "a_profile")); - g_assert_cmpstr ( - modulemd_translation_entry_peek_profile_description (entry, "a_profile"), - ==, - "Words"); - - profile_descriptions = - modulemd_translation_entry_get_all_profile_descriptions (entry); - g_assert_true (g_hash_table_contains (profile_descriptions, "a_profile")); - g_assert_cmpstr ( - g_hash_table_lookup (profile_descriptions, "a_profile"), ==, "Words"); -} - - -int -main (int argc, char *argv[]) -{ - setlocale (LC_ALL, ""); - - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id="); - - // Define the tests - g_test_add ("/modulemd/translation/entry/test_basic", - EntryFixture, - NULL, - NULL, - modulemd_translation_entry_test_basic, - NULL); - - return g_test_run (); -} diff --git a/modulemd-1.8.16/modulemd/tests/test-modulemd-translation.c b/modulemd-1.8.16/modulemd/tests/test-modulemd-translation.c deleted file mode 100644 index 458fbe9..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-modulemd-translation.c +++ /dev/null @@ -1,470 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ - -#define MMD_DISABLE_DEPRECATION_WARNINGS 1 -#include "modulemd.h" -#include "modulemd-translation.h" - -#include -#include - -typedef struct _TranslationFixture -{ -} TranslationFixture; - - -static void -modulemd_translation_test_basic (TranslationFixture *fixture, - gconstpointer user_data) -{ - g_autoptr (ModulemdTranslation) translation = NULL; - g_autoptr (ModulemdTranslation) copy = NULL; - g_autoptr (ModulemdTranslationEntry) entry = NULL; - g_autoptr (ModulemdTranslationEntry) retrieved_entry = NULL; - g_autofree gchar *module_name = NULL; - g_autofree gchar *module_stream = NULL; - guint64 mdversion, modified; - - /* Test standard object construction succeeds */ - translation = g_object_new (MODULEMD_TYPE_TRANSLATION, NULL); - g_assert_nonnull (translation); - g_assert_null (modulemd_translation_peek_module_name (translation)); - g_assert_null (modulemd_translation_peek_module_stream (translation)); - g_assert_cmpint (modulemd_translation_get_modified (translation), ==, 0); - g_clear_pointer (&translation, g_object_unref); - - /* Test construction with values set */ - translation = modulemd_translation_new_full ( - "foomodule", "barstream", 1, 201806282100llu); - - g_assert_nonnull (translation); - g_assert_cmpstr ( - modulemd_translation_peek_module_name (translation), ==, "foomodule"); - g_assert_cmpstr ( - modulemd_translation_peek_module_stream (translation), ==, "barstream"); - g_assert_cmpint (modulemd_translation_get_mdversion (translation), ==, 1); - g_assert_cmpint ( - modulemd_translation_get_modified (translation), ==, 201806282100llu); - - // clang-format off - g_object_get (translation, - "module-name", &module_name, - "module-stream", &module_stream, - "mdversion", &mdversion, - "modified", &modified, - NULL); - // clang-format on - // - g_assert_cmpstr (module_name, ==, "foomodule"); - g_assert_cmpstr (module_stream, ==, "barstream"); - g_assert_cmpint (mdversion, ==, 1); - g_assert_cmpint (modified, ==, 201806282100llu); - - entry = modulemd_translation_entry_new ("en-US"); - modulemd_translation_entry_set_summary (entry, "Summary Text"); - modulemd_translation_entry_set_description (entry, "Desc Text"); - - modulemd_translation_add_entry (translation, entry); - - retrieved_entry = - modulemd_translation_get_entry_by_locale (translation, "en-US"); - g_assert_nonnull (retrieved_entry); - g_assert_cmpstr (modulemd_translation_entry_peek_summary (retrieved_entry), - ==, - "Summary Text"); - g_assert_cmpstr ( - modulemd_translation_entry_peek_description (retrieved_entry), - ==, - "Desc Text"); - - g_clear_pointer (&module_name, g_free); - g_clear_pointer (&module_stream, g_free); - g_clear_pointer (&retrieved_entry, g_object_unref); - - copy = modulemd_translation_copy (translation); - g_assert_nonnull (copy); - - // clang-format off - g_object_get (copy, - "module-name", &module_name, - "module-stream", &module_stream, - "mdversion", &mdversion, - "modified", &modified, - NULL); - //clang-format on - g_assert_cmpstr (module_name, ==, "foomodule"); - g_assert_cmpstr (module_stream, ==, "barstream"); - g_assert_cmpint (mdversion, ==, 1); - g_assert_cmpint (modified, ==, 201806282100llu); - - retrieved_entry = modulemd_translation_get_entry_by_locale (copy, "en-US"); - g_assert_nonnull (retrieved_entry); - g_assert_cmpstr (modulemd_translation_entry_peek_summary (retrieved_entry), - ==, - "Summary Text"); - g_assert_cmpstr ( - modulemd_translation_entry_peek_description (retrieved_entry), - ==, - "Desc Text"); -} - -static void -modulemd_translation_test_yaml (TranslationFixture *fixture, - gconstpointer user_data) -{ - g_autoptr (GPtrArray) objects = NULL; - g_autoptr (GPtrArray) failures = NULL; - g_autoptr (GError) error = NULL; - g_autofree gchar *yaml_path = NULL; - ModulemdTranslation *translation = NULL; - g_autoptr (ModulemdTranslationEntry) entry = NULL; - g_autofree gchar *module_name; - g_autofree gchar *module_stream; - guint64 mdversion, modified; - - yaml_path = g_strdup_printf ("%s/translations/spec.v1.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - - objects = modulemd_objects_from_file_ext (yaml_path, &failures, &error); - g_assert_nonnull (objects); - g_assert_cmpint (objects->len, ==, 1); - - translation = g_ptr_array_index (objects, 0); - g_assert_true (MODULEMD_IS_TRANSLATION (translation)); - - // clang-format off - g_object_get (translation, - "module-name", &module_name, - "module-stream", &module_stream, - "mdversion", &mdversion, - "modified", &modified, - NULL); - // clang-format on - - g_assert_cmpstr (module_name, ==, "foo"); - g_assert_cmpstr (module_stream, ==, "latest"); - g_assert_cmpint (mdversion, ==, 1); - g_assert_cmpint (modified, ==, 201805231425llu); - - entry = modulemd_translation_get_entry_by_locale (translation, "ja"); - g_assert_nonnull (entry); - g_assert_true (MODULEMD_IS_TRANSLATION_ENTRY (entry)); - g_assert_cmpstr (modulemd_translation_entry_peek_locale (entry), ==, "ja"); - g_assert_cmpstr ( - modulemd_translation_entry_peek_summary (entry), ==, "モジュールの例"); - g_assert_cmpstr (modulemd_translation_entry_peek_description (entry), - ==, - "モジュールの例です。"); - g_assert_cmpstr ( - modulemd_translation_entry_peek_profile_description (entry, "profile_a"), - ==, - "プロファイルの例"); -} - - -static void -modulemd_translation_test_import (TranslationFixture *fixture, - gconstpointer user_data) -{ - g_autoptr (ModulemdTranslation) translation = NULL; - g_autoptr (GError) error = NULL; - g_autofree gchar *yaml_path = NULL; - g_autoptr (ModulemdTranslationEntry) entry = NULL; - g_autofree gchar *module_name; - g_autofree gchar *module_stream; - guint64 mdversion, modified; - - yaml_path = g_strdup_printf ("%s/translations/spec.v1.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - - translation = modulemd_translation_new (); - modulemd_translation_import_from_file (translation, yaml_path, &error); - - g_assert_nonnull (translation); - g_assert_true (MODULEMD_IS_TRANSLATION (translation)); - - // clang-format off - g_object_get (translation, - "module-name", &module_name, - "module-stream", &module_stream, - "mdversion", &mdversion, - "modified", &modified, - NULL); - // clang-format on - - g_assert_cmpstr (module_name, ==, "foo"); - g_assert_cmpstr (module_stream, ==, "latest"); - g_assert_cmpint (mdversion, ==, 1); - g_assert_cmpint (modified, ==, 201805231425llu); - - entry = modulemd_translation_get_entry_by_locale (translation, "ja"); - g_assert_nonnull (entry); - g_assert_true (MODULEMD_IS_TRANSLATION_ENTRY (entry)); - g_assert_cmpstr (modulemd_translation_entry_peek_locale (entry), ==, "ja"); - g_assert_cmpstr ( - modulemd_translation_entry_peek_summary (entry), ==, "モジュールの例"); - g_assert_cmpstr (modulemd_translation_entry_peek_description (entry), - ==, - "モジュールの例です。"); - g_assert_cmpstr ( - modulemd_translation_entry_peek_profile_description (entry, "profile_a"), - ==, - "プロファイルの例"); -} - - -static void -modulemd_translation_test_emitter (TranslationFixture *fixture, - gconstpointer user_data) -{ - g_autoptr (ModulemdTranslation) translation = NULL; - g_autoptr (GError) error = NULL; - g_autofree gchar *yaml_path = NULL; - g_autofree gchar *output_yaml = NULL; - - yaml_path = g_strdup_printf ("%s/translations/spec.v1.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_path); - - translation = modulemd_translation_new (); - modulemd_translation_import_from_file (translation, yaml_path, &error); - - output_yaml = modulemd_translation_dumps (translation, &error); - if (output_yaml == NULL) - { - g_debug ("Error: %s", error->message); - } - g_assert_nonnull (output_yaml); - g_assert_true (output_yaml[0]); - - g_debug ("\n%s\n", output_yaml); - - g_assert_cmpstr ( - output_yaml, - ==, - "---\ndocument: modulemd-translations\nversion: 1\ndata:\n module: foo\n " - " stream: latest\n modified: 201805231425\n translations:\n en_GB:\n " - " summary: An example module\n description: An example module.\n " - " profiles:\n profile_a: An example profile\n es_ES:\n " - "summary: Un módulo de ejemplo\n description: Un módulo de " - "ejemplo.\n profiles:\n profile_a: Un perfil de ejemplo\n " - "ja:\n summary: モジュールの例\n description: " - "モジュールの例です。\n profiles:\n profile_a: " - "プロファイルの例\n...\n"); -} - - -static void -modulemd_translation_test_index (TranslationFixture *fixture, - gconstpointer user_data) -{ - g_autoptr (GHashTable) index = NULL; - g_autofree gchar *yaml_path = NULL; - g_autoptr (GPtrArray) failures = NULL; - g_autoptr (GError) error = NULL; - ModulemdImprovedModule *module = NULL; - g_autoptr (ModulemdModuleStream) stream = NULL; - g_autoptr (ModulemdTranslation) translation = NULL; - g_autoptr (GHashTable) profiles = NULL; - ModulemdProfile *profile = NULL; - g_autofree gchar *result_yaml = NULL; - g_autofree gchar *localized = NULL; - - yaml_path = g_strdup_printf ("%s/test_data/translations.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - index = modulemd_index_from_file (yaml_path, &failures, &error); - g_assert_nonnull (index); - - g_assert_true (g_hash_table_contains (index, "foo")); - - module = g_hash_table_lookup (index, "foo"); - g_assert_nonnull (module); - - g_assert_cmpstr (modulemd_improvedmodule_peek_name (module), ==, "foo"); - - stream = modulemd_improvedmodule_get_stream_by_name (module, "stream-name"); - g_assert_nonnull (stream); - - translation = modulemd_modulestream_get_translation (stream); - g_assert_nonnull (translation); - - g_assert_cmpstr ( - modulemd_translation_peek_module_name (translation), ==, "foo"); - g_assert_cmpstr ( - modulemd_translation_peek_module_stream (translation), ==, "stream-name"); - g_assert_cmpuint ( - modulemd_translation_get_modified (translation), ==, 201805231425llu); - - result_yaml = modulemd_dumps_index (index, &error); - g_assert_nonnull (result_yaml); - - g_debug ("YAML:\n%s", result_yaml); - - g_assert_cmpstr ( - result_yaml, - ==, - "---\ndocument: modulemd\nversion: 2\ndata:\n name: foo\n stream: " - "stream-name\n version: 20160927144203\n context: c0ffee43\n arch: " - "x86_64\n summary: An example module\n description: >-\n A module " - "for the demonstration of the metadata format. Also, the obligatory " - "lorem\n ipsum dolor sit amet goes right here.\n servicelevels:\n " - "bug_fixes:\n eol: 2077-10-23\n rawhide:\n eol: 2077-10-23\n " - " security_fixes:\n eol: 2077-10-23\n stable_api:\n eol: " - "2077-10-23\n license:\n module:\n - MIT\n content:\n - " - "Beerware\n - GPLv2+\n - zlib\n xmd:\n some_key: some_data\n " - "dependencies:\n - buildrequires:\n platform: [-epel7, -f27, " - "-f28]\n requires:\n platform: [-epel7, -f27, -f28]\n - " - "buildrequires:\n buildtools: [v1, v2]\n compatible: [v3]\n " - " platform: [f27]\n requires:\n compatible: [v3, v4]\n " - "platform: [f27]\n - buildrequires:\n platform: [f28]\n " - "requires:\n platform: [f28]\n runtime: [a, b]\n - " - "buildrequires:\n extras: []\n moreextras: [bar, foo]\n " - "platform: [epel7]\n requires:\n extras: []\n moreextras: " - "[bar, foo]\n platform: [epel7]\n references:\n community: " - "http://www.example.com/\n documentation: http://www.example.com/\n " - "tracker: http://www.example.com/\n profiles:\n buildroot:\n " - "rpms:\n - bar-devel\n container:\n rpms:\n - bar\n " - " - bar-devel\n default:\n description: An example profile\n " - "rpms:\n - bar\n - " - "bar-extras\n - baz\n minimal:\n description: Minimal " - "profile installing only the bar package.\n rpms:\n - bar\n " - "srpm-buildroot:\n rpms:\n - bar-extras\n api:\n rpms:\n " - "- bar\n - bar-devel\n - bar-extras\n - baz\n - xxx\n " - "filter:\n rpms:\n - baz-nonfoo\n buildopts:\n rpms:\n " - "macros: |\n %demomacro 1\n %demomacro2 %{demomacro}23\n " - " whitelist:\n - fooscl-1-bar\n - fooscl-1-baz\n - xxx\n " - " - xyz\n components:\n rpms:\n bar:\n rationale: We " - "need this to demonstrate stuff.\n repository: " - "https://pagure.io/bar.git\n cache: https://example.com/cache\n " - " ref: 26ca0c0\n baz:\n rationale: This one is here to " - "demonstrate other stuff.\n xxx:\n rationale: xxx " - "demonstrates arches and multilib.\n arches: [i686, x86_64]\n " - " multilib: [x86_64]\n xyz:\n rationale: xyz is a bundled " - "dependency of xxx.\n buildorder: 10\n modules:\n " - "includedmodule:\n rationale: Included in the stack, just " - "because.\n repository: https://pagure.io/includedmodule.git\n " - " ref: somecoolbranchname\n buildorder: 100\n " - "artifacts:\n rpms:\n - bar-0:1.23-1.module_deadbeef.x86_64\n - " - "bar-devel-0:1.23-1.module_deadbeef.x86_64\n - " - "bar-extras-0:1.23-1.module_deadbeef.x86_64\n - " - "baz-0:42-42.module_deadbeef.x86_64\n - " - "xxx-0:1-1.module_deadbeef.i686\n - xxx-0:1-1.module_deadbeef.x86_64\n " - " - xyz-0:1-1.module_deadbeef.x86_64\n...\n---\ndocument: " - "modulemd-translations\nversion: 1\ndata:\n module: foo\n stream: " - "stream-name\n modified: 201805231425\n translations:\n en_GB:\n " - " summary: An example module\n description: An example module.\n " - " profiles:\n default: An example profile\n es_ES:\n " - "summary: Un módulo de ejemplo\n description: Un módulo de " - "ejemplo.\n profiles:\n default: Un perfil de ejemplo\n " - "ja:\n summary: モジュールの例\n description: " - "モジュールの例です。\n profiles:\n default: " - "プロファイルの例\n...\n---\ndocument: modulemd-defaults\nversion: " - "1\ndata:\n module: foo\n stream: stream-name\n profiles:\n " - "stream_name: [default]\n...\n"); - - /* Test specific translations */ - localized = modulemd_modulestream_get_localized_summary (stream, "ja"); - g_assert_cmpstr (localized, ==, "モジュールの例"); - g_clear_pointer (&localized, g_free); - - localized = modulemd_modulestream_get_localized_description (stream, "ja"); - g_assert_cmpstr (localized, ==, "モジュールの例です。"); - g_clear_pointer (&localized, g_free); - - profiles = modulemd_modulestream_get_profiles (stream); - g_assert_nonnull (profiles); - - g_assert_true (g_hash_table_contains (profiles, "default")); - - profile = g_hash_table_lookup (profiles, "default"); - g_assert_nonnull (profile); - - localized = modulemd_profile_get_localized_description (profile, "ja"); - g_assert_cmpstr (localized, ==, "プロファイルの例"); - g_clear_pointer (&localized, g_free); -} - -static void -modulemd_translation_test_missing_summary (TranslationFixture *fixture, - gconstpointer user_data) -{ - g_autoptr (GError) error = NULL; - g_autoptr (ModulemdTranslation) translation = NULL; - g_autoptr (ModulemdTranslationEntry) entry = NULL; - g_autofree gchar *yaml = NULL; - - translation = modulemd_translation_new_full ( - "modulename", "modulestream", 1, 201809041500); - - entry = modulemd_translation_entry_new ("en_US"); - modulemd_translation_add_entry (translation, entry); - - yaml = modulemd_translation_dumps (translation, &error); - g_assert_null (yaml); -} - - -int -main (int argc, char *argv[]) -{ - setlocale (LC_ALL, ""); - - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id="); - - // Define the tests - - g_test_add ("/modulemd/translation/test_basic", - TranslationFixture, - NULL, - NULL, - modulemd_translation_test_basic, - NULL); - - g_test_add ("/modulemd/translation/test_yaml", - TranslationFixture, - NULL, - NULL, - modulemd_translation_test_yaml, - NULL); - - g_test_add ("/modulemd/translation/test_import", - TranslationFixture, - NULL, - NULL, - modulemd_translation_test_import, - NULL); - - g_test_add ("/modulemd/translation/test_emitter", - TranslationFixture, - NULL, - NULL, - modulemd_translation_test_emitter, - NULL); - - g_test_add ("/modulemd/translation/test_index", - TranslationFixture, - NULL, - NULL, - modulemd_translation_test_index, - NULL); - - g_test_add ("/modulemd/translation/test_missing_summary", - TranslationFixture, - NULL, - NULL, - modulemd_translation_test_missing_summary, - NULL); - - return g_test_run (); -} diff --git a/modulemd-1.8.16/modulemd/tests/test-modulemd-yaml.c b/modulemd-1.8.16/modulemd/tests/test-modulemd-yaml.c deleted file mode 100644 index 281ad4c..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-modulemd-yaml.c +++ /dev/null @@ -1,666 +0,0 @@ -/* - * This file is part of libmodulemd - * Copyright (C) 2017-2018 Stephen Gallagher - * - * Fedora-License-Identifier: MIT - * SPDX-2.0-License-Identifier: MIT - * SPDX-3.0-License-Identifier: MIT - * - * This program is free software. - * For more information on the license, see COPYING. - * For more information on free software, see . - */ -#define MMD_DISABLE_DEPRECATION_WARNINGS 1 -#include "modulemd.h" -#include "private/modulemd-yaml.h" -#include "private/modulemd-util.h" - -#include -#include -#include - -typedef struct _YamlFixture -{ -} YamlFixture; - -static void -modulemd_yaml_set_up (YamlFixture *fixture, gconstpointer user_data) -{ -} - -static void -modulemd_yaml_tear_down (YamlFixture *fixture, gconstpointer user_data) -{ -} - -static void -modulemd_yaml_test_parse_v1_file (YamlFixture *fixture, - gconstpointer user_data) -{ - gboolean result; - GError *error = NULL; - ModulemdModule **modules = NULL; - GPtrArray *data = NULL; - ModulemdSimpleSet *set = NULL; - gchar *yaml_path = NULL; - - yaml_path = g_strdup_printf ("%s/test_data/good-v1.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - result = parse_yaml_file (yaml_path, &data, NULL, &error); - g_clear_pointer (&yaml_path, g_free); - g_assert_true (result); - - modules = mmd_yaml_dup_modules (data); - if (!modules) - { - fprintf (stderr, "Failed to parse: %s\n", error->message); - g_clear_pointer (&error, g_error_free); - } - - g_assert_nonnull (modules); - g_assert_nonnull (modules[0]); - g_assert_null (modules[1]); - g_assert_cmpuint (modulemd_module_get_mdversion (modules[0]), ==, 1); - g_assert_cmpstr (modulemd_module_get_name (modules[0]), ==, "foo"); - g_assert_cmpstr (modulemd_module_get_stream (modules[0]), ==, "stream-name"); - g_assert_cmpstr ( - modulemd_module_get_summary (modules[0]), ==, "An example module"); - set = modulemd_module_get_rpm_artifacts (modules[0]); - g_assert_true (set); - g_assert_true ( - modulemd_simpleset_contains (set, "bar-0:1.23-1.module_deadbeef.x86_64")); - - for (gsize i = 0; modules[i]; i++) - { - g_object_unref (modules[i]); - } - g_clear_pointer (&modules, g_free); - g_clear_pointer (&data, g_ptr_array_unref); - - - yaml_path = g_strdup_printf ("%s/test_data/bad-document.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - result = parse_yaml_file (yaml_path, &data, NULL, &error); - g_clear_pointer (&yaml_path, g_free); - g_assert_true (result); - g_assert_null (error); - g_assert_nonnull (data); - g_assert_cmpuint (data->len, ==, 0); - - g_clear_pointer (&data, g_ptr_array_unref); - - /* Validate the official reference YAML */ - g_info ("Reference YAML v1"); - yaml_path = - g_strdup_printf ("%s/spec.v1.yaml", g_getenv ("MESON_SOURCE_ROOT")); - result = parse_yaml_file (yaml_path, &data, NULL, &error); - g_free (yaml_path); - g_assert_true (result); - - modules = mmd_yaml_dup_modules (data); - g_assert_nonnull (modules); - - for (gsize i = 0; modules[i]; i++) - { - g_object_unref (modules[i]); - } - g_clear_pointer (&modules, g_free); - g_clear_pointer (&data, g_ptr_array_unref); -} - -static void -modulemd_yaml_test_v1_load (YamlFixture *fixture, gconstpointer user_data) -{ - ModulemdModule *module = NULL; - ModulemdModule *copy = NULL; - ModulemdModule **modules = NULL; - gchar *yaml_path = NULL; - GHashTable *buildrequires = NULL; - gchar *value = NULL; - - - yaml_path = g_strdup_printf ("%s/test_data/good-v1.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - module = modulemd_module_new_from_file (yaml_path); - g_assert_true (module); - - buildrequires = modulemd_module_get_buildrequires (module); - g_assert_true (buildrequires); - - value = g_hash_table_lookup (buildrequires, "platform"); - g_assert_cmpstr (value, ==, "and-its-stream-name"); - - /* Copy this module */ - copy = modulemd_module_copy (module); - g_assert_nonnull (copy); - g_assert_cmpuint (modulemd_module_peek_mdversion (copy), ==, 1); - g_object_unref (copy); - g_object_unref (module); - - modulemd_module_new_all_from_file (yaml_path, &modules); - g_clear_pointer (&yaml_path, g_free); - - g_assert_true (modules); - g_assert_true (modules[0]); - - buildrequires = modulemd_module_get_buildrequires (modules[0]); - g_assert_true (buildrequires); - - value = g_hash_table_lookup (buildrequires, "platform"); - g_assert_cmpstr (value, ==, "and-its-stream-name"); - - /* Copy this module */ - copy = modulemd_module_copy (modules[0]); - g_assert_nonnull (copy); - g_assert_cmpuint (modulemd_module_peek_mdversion (copy), ==, 1); - - for (gsize i = 0; modules[i]; i++) - { - g_object_unref (modules[i]); - } - g_free (modules); - g_clear_pointer (©, g_object_unref); -} - -static void -modulemd_yaml_test_v2_load (YamlFixture *fixture, gconstpointer user_data) -{ - gboolean result; - ModulemdModule *module = NULL; - ModulemdModule *copy = NULL; - ModulemdModule **modules = NULL; - GPtrArray *data = NULL; - gchar *yaml_path = NULL; - GError *error = NULL; - - - yaml_path = g_strdup_printf ("%s/test_data/good-v2.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - module = modulemd_module_new_from_file (yaml_path); - g_assert_true (module); - g_object_unref (module); - - modulemd_module_new_all_from_file (yaml_path, &modules); - - g_assert_nonnull (modules); - g_assert_nonnull (modules[0]); - g_assert_nonnull (modules[1]); - g_assert_nonnull (modules[2]); - g_assert_null (modules[3]); - - /* Copy this module */ - copy = modulemd_module_copy (modules[0]); - g_assert_nonnull (copy); - g_assert_cmpuint (modulemd_module_peek_mdversion (copy), ==, 2); - - for (gsize i = 0; modules[i]; i++) - { - g_object_unref (modules[i]); - } - - g_clear_pointer (&modules, g_free); - g_free (yaml_path); - - yaml_path = g_strdup_printf ("%s/test_data/mixed-v2.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - modulemd_module_new_all_from_file (yaml_path, &modules); - - g_assert_nonnull (modules); - g_assert_nonnull (modules[0]); - g_assert_nonnull (modules[1]); - g_assert_null (modules[2]); - - for (gsize i = 0; modules[i]; i++) - { - g_object_unref (modules[i]); - } - - g_free (modules); - g_free (yaml_path); - - - /* Validate the official reference YAML */ - g_info ("Reference YAML v2"); - yaml_path = - g_strdup_printf ("%s/spec.v2.yaml", g_getenv ("MESON_SOURCE_ROOT")); - result = parse_yaml_file (yaml_path, &data, NULL, &error); - g_free (yaml_path); - g_assert_true (result); - - modules = mmd_yaml_dup_modules (data); - g_assert_nonnull (modules); - for (gsize i = 0; modules[i]; i++) - { - g_object_unref (modules[i]); - } - - g_free (modules); - g_clear_pointer (&data, g_ptr_array_unref); - g_clear_pointer (©, g_object_unref); -} - -static void -modulemd_yaml_test_emit_v1_string (YamlFixture *fixture, - gconstpointer user_data) -{ - gchar *yaml = NULL; - gchar *yaml2 = NULL; - gboolean result; - GError *error = NULL; - GPtrArray *modules = NULL; - GPtrArray *reloaded_modules = NULL; - gchar *yaml_path = NULL; - - yaml_path = g_strdup_printf ("%s/test_data/good-v1.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - modulemd_module_new_all_from_file_ext (yaml_path, &modules); - g_clear_pointer (&yaml_path, g_free); - - result = emit_yaml_string (modules, &yaml, &error); - g_assert_true (result); - g_assert_true (yaml); - g_debug ("YAML:\n%s", yaml); - - /* Load this string and emit it again. It must produce the same output. */ - modulemd_module_new_all_from_string_ext (yaml, &reloaded_modules); - result = emit_yaml_string (modules, &yaml2, &error); - g_assert_true (result); - g_assert_true (yaml2); - g_assert_cmpstr (yaml, ==, yaml2); - - - g_clear_pointer (&yaml, g_free); - g_clear_pointer (&yaml2, g_free); - g_ptr_array_unref (modules); - g_ptr_array_unref (reloaded_modules); -} - -static void -modulemd_yaml_test_emit_v2_string (YamlFixture *fixture, - gconstpointer user_data) -{ - gchar *yaml = NULL; - gchar *yaml2 = NULL; - gboolean result; - GError *error = NULL; - GPtrArray *modules = NULL; - GPtrArray *reloaded_modules = NULL; - gchar *yaml_path = NULL; - - yaml_path = g_strdup_printf ("%s/test_data/good-v2.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - modulemd_module_new_all_from_file_ext (yaml_path, &modules); - g_clear_pointer (&yaml_path, g_free); - - result = emit_yaml_string (modules, &yaml, &error); - g_assert_true (result); - g_assert_nonnull (yaml); - g_debug ("YAML:\n%s", yaml); - - /* Emit the same string again to confirm that we haven't screwed up any of - * the memory management. - */ - result = emit_yaml_string (modules, &yaml2, &error); - g_assert_true (result); - g_assert_nonnull (yaml2); - g_assert_cmpstr (yaml, ==, yaml2); - g_clear_pointer (&yaml2, g_free); - - /* Load this string and emit it again. It must produce the same output. */ - modulemd_module_new_all_from_string_ext (yaml, &reloaded_modules); - result = emit_yaml_string (reloaded_modules, &yaml2, &error); - g_assert_true (result); - g_assert_nonnull (yaml2); - g_assert_cmpstr (yaml, ==, yaml2); - - g_clear_pointer (&yaml, g_free); - g_clear_pointer (&yaml2, g_free); - g_ptr_array_unref (modules); - g_ptr_array_unref (reloaded_modules); -} - - -static void -modulemd_yaml_test_v2_stream (YamlFixture *fixture, gconstpointer user_data) -{ - gboolean result; - ModulemdModule *module = NULL; - ModulemdModule *copy = NULL; - ModulemdModule **modules = NULL; - GPtrArray *data = NULL; - gchar *yaml_path = NULL; - GError *error = NULL; - FILE *stream = NULL; - - - yaml_path = g_strdup_printf ("%s/test_data/good-v2.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_path); - - stream = g_fopen (yaml_path, "rb"); - g_assert_nonnull (stream); - - module = modulemd_module_new_from_stream (stream, &error); - g_assert_true (module); - g_assert_null (error); - g_object_unref (module); - - modulemd_module_new_all_from_file (yaml_path, &modules); - - g_assert_nonnull (modules); - g_assert_nonnull (modules[0]); - g_assert_nonnull (modules[1]); - g_assert_nonnull (modules[2]); - g_assert_null (modules[3]); - - /* Copy this module */ - copy = modulemd_module_copy (modules[0]); - g_assert_nonnull (copy); - g_assert_cmpuint (modulemd_module_peek_mdversion (copy), ==, 2); - - for (gsize i = 0; modules[i]; i++) - { - g_object_unref (modules[i]); - } - - g_clear_pointer (&modules, g_free); - g_free (yaml_path); - - yaml_path = g_strdup_printf ("%s/test_data/mixed-v2.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - modulemd_module_new_all_from_file (yaml_path, &modules); - - g_assert_nonnull (modules); - g_assert_nonnull (modules[0]); - g_assert_nonnull (modules[1]); - g_assert_null (modules[2]); - - for (gsize i = 0; modules[i]; i++) - { - g_object_unref (modules[i]); - } - - g_free (modules); - g_free (yaml_path); - - - /* Validate the official reference YAML */ - g_info ("Reference YAML v2"); - yaml_path = - g_strdup_printf ("%s/spec.v2.yaml", g_getenv ("MESON_SOURCE_ROOT")); - result = parse_yaml_file (yaml_path, &data, NULL, &error); - g_free (yaml_path); - g_assert_true (result); - - modules = mmd_yaml_dup_modules (data); - g_assert_nonnull (modules); - for (gsize i = 0; modules[i]; i++) - { - g_object_unref (modules[i]); - } - - g_free (modules); - g_clear_pointer (&data, g_ptr_array_unref); - g_clear_pointer (©, g_object_unref); -} - - -static void -modulemd_yaml_test_validate_nevra (YamlFixture *fixture, - gconstpointer user_data) -{ - const gchar *good = "nodejs-devel-1:8.10.0-3.module_1572+d7ec111e.x86_64"; - const gchar *garbage = "DEADBEEF"; - const gchar *garbage2 = "DEAD.BEEF"; - const gchar *garbage3 = "MORE-DEAD.BEEF"; - const gchar *missing_epoch = - "nodejs-devel-8.10.0-3.module_1572+d7ec111e.x86_64"; - const gchar *nonint_epoch = - "nodejs-devel-FOO:8.10.0-3.module_1572+d7ec111e.x86_64"; - - g_assert_true (modulemd_validate_nevra (good)); - g_assert_false (modulemd_validate_nevra (garbage)); - g_assert_false (modulemd_validate_nevra (garbage2)); - g_assert_false (modulemd_validate_nevra (garbage3)); - g_assert_false (modulemd_validate_nevra (missing_epoch)); - g_assert_false (modulemd_validate_nevra (nonint_epoch)); -} - - -static void -modulemd_yaml_test_artifact_validation (YamlFixture *fixture, - gconstpointer user_data) -{ - g_autofree gchar *yaml_path = NULL; - g_autoptr (GPtrArray) objects = NULL; - g_autoptr (GPtrArray) failures = NULL; - g_autoptr (GError) error = NULL; - - /* Attempt to read in a modulemd with a data.artifacts.rpm section - * containing values without the Epoch included. - */ - yaml_path = g_strdup_printf ("%s/test_data/issue46.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - objects = modulemd_objects_from_file_ext (yaml_path, &failures, &error); - g_assert_nonnull (objects); - g_assert_cmpint (objects->len, ==, 0); - g_assert_null (error); - g_assert_nonnull (failures); - g_assert_cmpint (failures->len, ==, 1); - g_assert_true (g_str_has_prefix ( - modulemd_subdocument_get_gerror (g_ptr_array_index (failures, 0))->message, - "RPM artifacts not in NEVRA format [")); -} - - -static void -modulemd_yaml_test_index_from_file (YamlFixture *fixture, - gconstpointer user_data) -{ - g_autofree gchar *yaml_path = NULL; - g_autoptr (GHashTable) module_index = NULL; - g_autoptr (GPtrArray) failures = NULL; - g_autoptr (GError) error = NULL; - ModulemdImprovedModule *module = NULL; - - yaml_path = g_strdup_printf ("%s/test_data/long-valid.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_path); - - module_index = parse_module_index_from_file (yaml_path, &failures, &error); - g_assert_nonnull (module_index); - - g_assert_true (g_hash_table_contains (module_index, "nodejs")); - - module = g_hash_table_lookup (module_index, "nodejs"); - g_assert_nonnull (module); - g_assert_true (MODULEMD_IS_IMPROVEDMODULE (module)); - - g_assert_cmpstr (modulemd_improvedmodule_peek_name (module), ==, "nodejs"); - g_assert_nonnull (modulemd_improvedmodule_peek_defaults (module)); -} - - -static void -modulemd_yaml_test_index_from_string (YamlFixture *fixture, - gconstpointer user_data) -{ - const gchar *yaml_string = NULL; - g_autoptr (GHashTable) module_index = NULL; - g_autoptr (GPtrArray) failures = NULL; - g_autoptr (GError) error = NULL; - ModulemdImprovedModule *module = NULL; - - yaml_string = - "document: modulemd\nversion: 2\ndata:\n name: Foo\n stream: Foo\n " - " summary: Foo\n description: >\n Bar\n license:\n " - "module:\n - zMIT"; - - module_index = - parse_module_index_from_string (yaml_string, &failures, &error); - g_assert_nonnull (module_index); - - g_assert_true (g_hash_table_contains (module_index, "Foo")); - - module = g_hash_table_lookup (module_index, "Foo"); - g_assert_nonnull (module); - g_assert_true (MODULEMD_IS_IMPROVEDMODULE (module)); - - g_assert_cmpstr (modulemd_improvedmodule_peek_name (module), ==, "Foo"); - g_assert_null (modulemd_improvedmodule_peek_defaults (module)); -} - - -static void -modulemd_yaml_test_index_from_stream (YamlFixture *fixture, - gconstpointer user_data) -{ - g_autofree gchar *yaml_path = NULL; - g_autoptr (FILE) yaml_stream = NULL; - g_autoptr (GHashTable) module_index = NULL; - g_autoptr (GPtrArray) failures = NULL; - g_autoptr (GError) error = NULL; - ModulemdImprovedModule *module = NULL; - - yaml_path = g_strdup_printf ("%s/test_data/long-valid.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_path); - - yaml_stream = g_fopen (yaml_path, "rb"); - g_assert_nonnull (yaml_stream); - - module_index = - parse_module_index_from_stream (yaml_stream, &failures, &error); - g_assert_nonnull (module_index); - - g_assert_true (g_hash_table_contains (module_index, "nodejs")); - - module = g_hash_table_lookup (module_index, "nodejs"); - g_assert_nonnull (module); - g_assert_true (MODULEMD_IS_IMPROVEDMODULE (module)); - - g_assert_cmpstr (modulemd_improvedmodule_peek_name (module), ==, "nodejs"); - g_assert_nonnull (modulemd_improvedmodule_peek_defaults (module)); -} - - -static void -modulemd_yaml_read_unknown_keys (YamlFixture *fixture, gconstpointer user_data) -{ - g_autoptr (ModulemdModule) module = NULL; - gchar *yaml_path = NULL; - g_autoptr (GError) error = NULL; - FILE *stream = NULL; - - - yaml_path = g_strdup_printf ("%s/test_data/good-v2-extra-keys.yaml", - g_getenv ("MESON_SOURCE_ROOT")); - g_assert_nonnull (yaml_path); - - stream = g_fopen (yaml_path, "rb"); - g_assert_nonnull (stream); - g_free (yaml_path); - - module = modulemd_module_new_from_stream (stream, &error); - g_assert_true (module); - g_assert_null (error); - fclose (stream); -} - - -int -main (int argc, char *argv[]) -{ - setlocale (LC_ALL, ""); - - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id="); - - // Define the tests. - - g_test_add ("/modulemd/yaml/test_parse_v1_file", - YamlFixture, - NULL, - modulemd_yaml_set_up, - modulemd_yaml_test_parse_v1_file, - modulemd_yaml_tear_down); - - g_test_add ("/modulemd/yaml/test_emit_v1_string", - YamlFixture, - NULL, - modulemd_yaml_set_up, - modulemd_yaml_test_emit_v1_string, - modulemd_yaml_tear_down); - - g_test_add ("/modulemd/yaml/test_v1_load", - YamlFixture, - NULL, - modulemd_yaml_set_up, - modulemd_yaml_test_v1_load, - modulemd_yaml_tear_down); - - g_test_add ("/modulemd/yaml/test_v2_load", - YamlFixture, - NULL, - modulemd_yaml_set_up, - modulemd_yaml_test_v2_load, - modulemd_yaml_tear_down); - - g_test_add ("/modulemd/yaml/test_emit_v2_string", - YamlFixture, - NULL, - modulemd_yaml_set_up, - modulemd_yaml_test_emit_v2_string, - modulemd_yaml_tear_down); - - g_test_add ("/modulemd/yaml/test_v2_stream", - YamlFixture, - NULL, - modulemd_yaml_set_up, - modulemd_yaml_test_v2_stream, - modulemd_yaml_tear_down); - - g_test_add ("/modulemd/yaml/extra_keys", - YamlFixture, - NULL, - NULL, - modulemd_yaml_read_unknown_keys, - NULL); - - g_test_add ("/modulemd/yaml/test_validate_nevra", - YamlFixture, - NULL, - NULL, - modulemd_yaml_test_validate_nevra, - NULL); - - g_test_add ("/modulemd/yaml/test_artifact_validation", - YamlFixture, - NULL, - NULL, - modulemd_yaml_test_artifact_validation, - NULL); - - g_test_add ("/modulemd/yaml/test_index_from_file", - YamlFixture, - NULL, - NULL, - modulemd_yaml_test_index_from_file, - NULL); - - g_test_add ("/modulemd/yaml/test_index_from_string", - YamlFixture, - NULL, - NULL, - modulemd_yaml_test_index_from_string, - NULL); - - g_test_add ("/modulemd/yaml/test_index_from_stream", - YamlFixture, - NULL, - NULL, - modulemd_yaml_test_index_from_stream, - NULL); - - return g_test_run (); -} diff --git a/modulemd-1.8.16/modulemd/tests/test-valgrind.py b/modulemd-1.8.16/modulemd/tests/test-valgrind.py deleted file mode 100644 index 2b7e106..0000000 --- a/modulemd-1.8.16/modulemd/tests/test-valgrind.py +++ /dev/null @@ -1,97 +0,0 @@ -#!/usr/bin/python3 - -# This file is part of libmodulemd -# Copyright (C) 2017-2018 Stephen Gallagher -# -# Fedora-License-Identifier: MIT -# SPDX-2.0-License-Identifier: MIT -# SPDX-3.0-License-Identifier: MIT -# -# This program is free software. -# For more information on the license, see COPYING. -# For more information on free software, see -# . - -import os -import sys -import subprocess -import tempfile -import xml.etree.ElementTree as ET - -from multiprocessing import Pool, TimeoutError - -if os.getenv('MMD_SKIP_VALGRIND'): - sys.exit(77) - - -failed = False - -# Get the list of tests to run -tests = [] -if len(sys.argv) > 1: - tests = sys.argv[1:] -else: - sys.exit(77) - - -with tempfile.TemporaryDirectory(prefix="libmodulemd_valgrind_") as tmpdirname: - def exec_valgrind(test): - valgrind_command = "/usr/bin/valgrind " \ - "--leak-check=full " \ - "--suppressions=/usr/share/glib-2.0/valgrind/glib.supp " \ - "--xml=yes " \ - "--xml-file=%s/%s.xml " % (tmpdirname, test) - proc_result = subprocess.run( - [ - 'meson', - 'test', - '-t', '10', - '--logbase=%s' % test, - '--wrap=%s' % valgrind_command, - test]) - - return proc_result.returncode, test - - with Pool() as pool: - for returncode, test in pool.map(exec_valgrind, tests): - if returncode != 0: - print("Valgrind exited with an error on %s" % test, - file=sys.stderr) - failed = True - continue - - # Process the XML for leaks - tree = ET.parse('%s/%s.xml' % (tmpdirname, test)) - root = tree.getroot() - - for root_child in root: - if (root_child.tag == "error"): - for error_child in root_child: - if error_child.tag == 'kind': - if error_child.text == 'Leak_DefinitelyLost': - print("Memory leak detected in %s" % test, - file=sys.stderr) - failed = True - - elif error_child.text == 'InvalidFree': - print("Invalid free() detected in %s" % test, - file=sys.stderr) - failed = True - - elif error_child.text == 'InvalidRead': - print("Invalid read detected in %s" % test, - file=sys.stderr) - failed = True - - elif error_child.text == 'UninitCondition': - print( - "Uninitialized usage detected in %s" % - test, file=sys.stderr) - failed = True - if failed: - with open('%s/%s.xml' % (tmpdirname, test), 'r') as xml: - print(xml.read()) - - -if failed: - sys.exit(1) diff --git a/modulemd-1.8.16/modulemd/version.xml.in b/modulemd-1.8.16/modulemd/version.xml.in deleted file mode 100644 index d78bda9..0000000 --- a/modulemd-1.8.16/modulemd/version.xml.in +++ /dev/null @@ -1 +0,0 @@ -@VERSION@ diff --git a/modulemd-1.8.16/run_ci_tests.sh b/modulemd-1.8.16/run_ci_tests.sh deleted file mode 100755 index b6e93e6..0000000 --- a/modulemd-1.8.16/run_ci_tests.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -pushd $SCRIPT_DIR - -./.travis/travis-docker-build.sh -sudo docker run -e DIRTY_REPO_CHECK=false --rm fedora-modularity/libmodulemd - -popd diff --git a/modulemd-1.8.16/spec.v1.yaml b/modulemd-1.8.16/spec.v1.yaml deleted file mode 100644 index 1f777ff..0000000 --- a/modulemd-1.8.16/spec.v1.yaml +++ /dev/null @@ -1,289 +0,0 @@ -# Document type identifier -document: modulemd -# Module metadata format version -version: 1 -data: - # Module name, optional - # Typically filled in by the buildsystem, using the VCS repository - # name as the name of the module. - name: foo - # Module update stream, optional - # Typically filled in by the buildsystem, using the VCS branch name - # as the name of the stream. - stream: stream-name - # Module version, integer, optional, cannot be negative - # Typically filled in by the buildsystem, using the VCS commit - # timestamp. Module version defines upgrade path for the particular - # update stream. - version: 20160927144203 - # Module context flag, optional - # The context flag serves to distinguish module builds with the - # same name, stream and version and plays an important role in - # future automatic module stream name expansion. - # Filled in by the buildsystem. A short hash of the module's name, - # stream, version and its expanded runtime dependencies. - context: c0ffee43 - # Module artifact architecture, optional - # Contains a string describing the module's artifacts' main hardware - # architecture compatibility, distinguishing the module artifact, - # e.g. a repository, from others with the same name, stream, version and - # context. This is not a generic hardware family (i.e. basearch). - # Examples: i386, i486, armv7hl, x86_64 - # Filled in by the buildsystem during the compose stage. - arch: x86_64 - # A short summary describing the module, required - summary: An example module - # A verbose description of the module, required - description: >- - A module for the demonstration of the metadata format. Also, - the obligatory lorem ipsum dolor sit amet goes right here. - # The end of life, aka Best Before, optional. - # A UTC date in the ISO 8601 format signifying the day when this - # module goes EOL, i.e. starting the day below, this module won't - # receive any more updates. Typically defined in an external data - # source and filled in by the buildsystem. - # Note: This property is obsolete. Use "servicelevels" instead. - eol: 2077-10-23 - # Service levels, optional - # This is a dictionary of important dates (and possibly supplementary data - # in the future) that describes the end point of certain functionality, - # such as the date when the module will transition to "security fixes only" - # or go completely end-of-life. - # Filled in by the buildsystem. Service level names might have special - # meaning to other systems. Defined externally. - servicelevels: - rawhide: - eol: 2077-10-23 - stable_api: - eol: 2077-10-23 - bug_fixes: - eol: 2077-10-23 - security_fixes: - eol: 2077-10-23 - # Module and content licenses in the Fedora license identifier - # format, required - license: - # Module license, required - # This list covers licenses used for the module metadata and - # possibly other files involved in the creation of this specific - # module. - module: - - MIT - # Content license, optional - # A list of licenses used by the packages in the module. - # This should be populated by build tools, not the module author. - content: - - Beerware - - GPLv2+ - - zlib - # Extensible metadata block - # A dictionary of user-defined keys and values. - # Optional. Defaults to an empty dictionary. - xmd: - some_key: some_data - # Module dependencies, if any. Optional. - # TODO: Provides, conflicts, obsoletes, recommends, etc. - # Do we even need those? - # TODO: Stream name globbing or regular expression support - dependencies: - # Build dependencies of this module, optional - # Keys are module names, values are the stream names - # These modules define the buildroot for this module - buildrequires: - platform: and-its-stream-name - extra-build-env: and-its-stream-name-too - # Run-time dependencies of this module, optional - # Keys are module names, values are their stream names - requires: - platform: and-its-stream-name - # References to external resources, typically upstream, optional - references: - # Upstream community website, if it exists, optional - community: http://www.example.com/ - # Upstream documentation, if it exists, optional - documentation: http://www.example.com/ - # Upstream bug tracker, if it exists, optional - tracker: http://www.example.com/ - # Profiles define the end user's use cases for the module. They consist of - # package lists of components to be installed by default if the module is - # enabled. The keys are the profile names and contain package lists by - # component type. There are several profiles defined below. Suggested - # behavior for package managers is to just enable repository for selected - # module. Then users are able to install packages on their own. If they - # select a specific profile, the package manager should install all - # packages of that profile. - # Optional, defaults to no profile definitions. - profiles: - # The default profile, used unless any other profile was selected. - # Optional, defaults to empty lists. - default: - rpms: - - bar - - bar-extras - - baz - # Defines a set of packages which are meant to be installed inside - # container image artifact. - # Optional. - container: - rpms: - - bar - - bar-devel - # This profile provides minimal set of packages providing functionality - # of this module. This is meant to be used on target systems where size - # of the distribution is a real concern. - # Optional. - minimal: - # A verbose description of the module, optional - description: Minimal profile installing only the bar package. - rpms: - - bar - # A set of packages which should be installed into the buildroot of a - # module which depends on this module. Specifically, it is used to - # flesh out the build group in koji. - # Optional. - buildroot: - rpms: - - bar-devel - # Very similar to the buildroot profile above, this is used by the - # build system to specify any additional packages which should be - # installed during the buildSRPMfromSCM step in koji. - # Optional. - srpm-buildroot: - rpms: - - bar-extras - # Module API - # Optional, defaults to no API. - api: - # The module's public RPM-level API. - # A list of binary RPM names that are considered to be the - # main and stable feature of the module; binary RPMs not listed - # here are considered "unsupported" or "implementation details". - # In the example here we don't list the xyz package as it's only - # included as a dependency of xxx. However, we list a subpackage - # of bar, bar-extras. - # Optional, defaults to an empty list. - rpms: - - bar - - bar-extras - - bar-devel - - baz - - xxx - # Module component filters - # Optional, defaults to no filters. - filter: - # RPM names not to be included in the module. - # By default, all built binary RPMs are included. In the example - # we exclude a subpackage of bar, bar-nonfoo from our module. - # Optional, defaults to an empty list. - rpms: - - baz-nonfoo - # Component build options - # Additional per component type module-wide build options. - # Optional - buildopts: - # RPM-specific build options - # Optional - rpms: - # Additional macros that should be defined in the - # RPM buildroot, appended to the default set. Care should be - # taken so that the newlines are preserved. Literal style - # block is recommended, with or without the trailing newline. - # Optional - macros: | - %demomacro 1 - %demomacro2 %{demomacro}23 - # Functional components of the module, optional - components: - # RPM content of the module, optional - # Keys are the VCS/SRPM names, values dictionaries holding - # additional information. - rpms: - bar: - # Why is this component present. - # A simple, free-form string. - # Required. - rationale: We need this to demonstrate stuff. - # Use this repository if it's different from the build - # system configuration. - # Optional. - repository: https://pagure.io/bar.git - # Use this lookaside cache if it's different from the - # build system configuration. - # Optional. - cache: https://example.com/cache - # Use this specific commit hash, branch name or tag for - # the build. If ref is a branch name, the branch HEAD - # will be used. If no ref is given, the master branch - # is assumed. - # Optional. - ref: 26ca0c0 - # baz has no extra options - baz: - rationale: This one is here to demonstrate other stuff. - xxx: - rationale: xxx demonstrates arches and multilib. - # xxx is only available on the listed architectures. - # Includes specific hardware architectures, not families. - # See the data.arch field for details. - # Optional, defaults to all available arches. - arches: [ i686, x86_64 ] - # A list of architectures with multilib - # installs, i.e. both i686 and x86_64 - # versions will be installed on x86_64. - # Includes specific hardware architectures, not families. - # See the data.arch field for details. - # Optional, defaults to no multilib. - multilib: [ x86_64 ] - xyz: - rationale: xyz is a bundled dependency of xxx. - # Build order group - # When building, components are sorted by build order tag - # and built in batches grouped by their buildorder value. - # Built batches are then re-tagged into the buildroot. - # Multiple components can have the same buildorder index - # to map them into build groups. - # Optional, defaults to zero. - # Integer, negative values are allowed. - # In this example, bar, baz and xxx are built first in - # no particular order, then tagged into the buildroot, - # then, finally, xyz is built. - buildorder: 10 - # Module content of this module - # Included modules are built in the shared buildroot, together with - # other included content. Keys are module names, values additional - # component information. Note this only includes components and their - # properties from the referenced module and doesn't inherit any - # additional module metadata such as the module's dependencies or - # component buildopts. The included components are built in their - # defined buildorder as sub-build groups. - # Optional - modules: - includedmodule: - # Why is this module included? - # Required - rationale: Included in the stack, just because. - # Link to VCS repository that contains the modulemd file - # if it differs from the buildsystem default configuration. - # Optional. - repository: https://pagure.io/includedmodule.git - # See the rpms ref. - ref: somecoolbranchname - # See the rpms buildorder. - buildorder: 100 - # Artifacts shipped with this module - # This section lists binary artifacts shipped with the module, allowing - # software management tools to handle module bundles. This section is - # populated by the module build system. - # Optional - artifacts: - # RPM artifacts shipped with this module - # A set of NEVRAs associated with this module. - # Optional - rpms: - - bar-0:1.23-1.module_deadbeef.x86_64 - - bar-devel-0:1.23-1.module_deadbeef.x86_64 - - bar-extras-0:1.23-1.module_deadbeef.x86_64 - - baz-0:42-42.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.i686 - - xyz-0:1-1.module_deadbeef.x86_64 diff --git a/modulemd-1.8.16/spec.v2.yaml b/modulemd-1.8.16/spec.v2.yaml deleted file mode 100644 index 13d6fdc..0000000 --- a/modulemd-1.8.16/spec.v2.yaml +++ /dev/null @@ -1,380 +0,0 @@ -# Document type identifier -document: modulemd -# Module metadata format version -version: 2 -data: - # Module name, optional - # Typically filled in by the buildsystem, using the VCS repository - # name as the name of the module. - name: foo - # Module update stream, optional - # Typically filled in by the buildsystem, using the VCS branch name - # as the name of the stream. - stream: latest - # Module version, integer, optional, cannot be negative - # Typically filled in by the buildsystem, using the VCS commit - # timestamp. Module version defines upgrade path for the particular - # update stream. - version: 20160927144203 - # Module context flag, optional - # The context flag serves to distinguish module builds with the - # same name, stream and version and plays an important role in - # future automatic module stream name expansion. - # Filled in by the buildsystem. A short hash of the module's name, - # stream, version and its expanded runtime dependencies. - context: c0ffee43 - # Module artifact architecture, optional - # Contains a string describing the module's artifacts' main hardware - # architecture compatibility, distinguishing the module artifact, - # e.g. a repository, from others with the same name, stream, version and - # context. This is not a generic hardware family (i.e. basearch). - # Examples: i386, i486, armv7hl, x86_64 - # Filled in by the buildsystem during the compose stage. - arch: x86_64 - # A short summary describing the module, required - summary: An example module - # A verbose description of the module, required - description: >- - A module for the demonstration of the metadata format. Also, - the obligatory lorem ipsum dolor sit amet goes right here. - # Service levels, optional - # This is a dictionary of important dates (and possibly supplementary data - # in the future) that describes the end point of certain functionality, - # such as the date when the module will transition to "security fixes only" - # or go completely end-of-life. - # Filled in by the buildsystem. Service level names might have special - # meaning to other systems. Defined externally. - servicelevels: - rawhide: - # EOL dates are the ISO 8601 format. - eol: 2077-10-23 - stable_api: - eol: 2077-10-23 - bug_fixes: - eol: 2077-10-23 - security_fixes: - eol: 2077-10-23 - # Module and content licenses in the Fedora license identifier - # format, required - license: - # Module license, required - # This list covers licenses used for the module metadata and - # possibly other files involved in the creation of this specific - # module. - module: - - MIT - # Content license, optional - # A list of licenses used by the packages in the module. - # This should be populated by build tools, not the module author. - content: - - Beerware - - GPLv2+ - - zlib - # Extensible metadata block - # A dictionary of user-defined keys and values. - # Optional. Defaults to an empty dictionary. - xmd: - some_key: some_data - # Module dependencies, if any. Optional. - # A list of dictionaries describing build and runtime dependencies - # of this module. Each list item describes a combination of dependencies - # this module can be built or run against. - # Dependency keys are module names, dependency values are lists of - # required streams. The lists can be both inclusive (listing compatible - # streams) or exclusive (accepting every stream except for those listed). - # An empty list implies all active existing streams are supported. - # Requiring multiple streams at build time will result in multiple - # builds. Requiring multiple streams at runtime implies the module - # is compatible with all of them. If the same module streams are listed - # in both the build time and the runtime block, the build tools translate - # the runtime block so that it matches the stream the module was built - # against. Multiple builds result in multiple output modulemd files. - # See below for an example. - # TODO: Provides, conflicts, obsoletes, recommends, etc. - # Do we even need those? - # The example below illustrates how to build the same module in four - # different ways, with varying build time and runtime dependencies. - dependencies: - # Build on all available platforms except for f27, f28 and epel7 - # After build, the runtime dependency will match the one used for - # the build. - - buildrequires: - platform: [-f27, -f28, -epel7] - requires: - platform: [-f27, -f28, -epel7] - # For platform:f27 perform two builds, one with buildtools:v1, another - # with buildtools:v2 in the buildroot. Both will also utilize - # compatible:v3. At runtime, buildtools isn't required and either - # compatible:v3 or compatible:v4 can be installed. - - buildrequires: - platform: [f27] - buildtools: [v1, v2] - compatible: [v3] - requires: - platform: [f27] - compatible: [v3, v4] - # For platform:f28 builds, require either runtime:a or runtime:b at - # runtime. Only one build is performed. - - buildrequires: - platform: [f28] - requires: - platform: [f28] - runtime: [a, b] - # For platform:epel7, build against against all available extras - # streams and moreextras:foo and moreextras:bar. The number of builds - # in this case will be 2 * . - # At runtime, both extras and moreextras will match whatever stream was - # used for build. - - buildrequires: - platform: [epel7] - extras: [] - moreextras: [foo, bar] - requires: - platform: [epel7] - extras: [] - moreextras: [foo, bar] - # References to external resources, typically upstream, optional - references: - # Upstream community website, if it exists, optional - community: http://www.example.com/ - # Upstream documentation, if it exists, optional - documentation: http://www.example.com/ - # Upstream bug tracker, if it exists, optional - tracker: http://www.example.com/ - # Profiles define the end user's use cases for the module. They consist of - # package lists of components to be installed by default if the module is - # enabled. The keys are the profile names and contain package lists by - # component type. There are several profiles defined below. Suggested - # behavior for package managers is to just enable repository for selected - # module. Then users are able to install packages on their own. If they - # select a specific profile, the package manager should install all - # packages of that profile. - # Optional, defaults to no profile definitions. - profiles: - # The default profile, used unless any other profile was selected. - # Optional, defaults to empty lists. - default: - rpms: - - bar - - bar-extras - - baz - # Defines a set of packages which are meant to be installed inside - # container image artifact. - # Optional. - container: - rpms: - - bar - - bar-devel - # This profile provides minimal set of packages providing functionality - # of this module. This is meant to be used on target systems where size - # of the distribution is a real concern. - # Optional. - minimal: - # A verbose description of the module, optional - description: Minimal profile installing only the bar package. - rpms: - - bar - # A set of packages which should be installed into the buildroot of a - # module which depends on this module. Specifically, it is used to - # flesh out the build group in koji. - # Optional. - buildroot: - rpms: - - bar-devel - # Very similar to the buildroot profile above, this is used by the - # build system to specify any additional packages which should be - # installed during the buildSRPMfromSCM step in koji. - # Optional. - srpm-buildroot: - rpms: - - bar-extras - # Module API - # Optional, defaults to no API. - api: - # The module's public RPM-level API. - # A list of binary RPM names that are considered to be the - # main and stable feature of the module; binary RPMs not listed - # here are considered "unsupported" or "implementation details". - # In the example here we don't list the xyz package as it's only - # included as a dependency of xxx. However, we list a subpackage - # of bar, bar-extras. - # Optional, defaults to an empty list. - rpms: - - bar - - bar-extras - - bar-devel - - baz - - xxx - # Module component filters - # Optional, defaults to no filters. - filter: - # RPM names not to be included in the module. - # By default, all built binary RPMs are included. In the example - # we exclude a subpackage of bar, bar-nonfoo from our module. - # Optional, defaults to an empty list. - rpms: - - baz-nonfoo - # Component build options - # Additional per component type module-wide build options. - # Optional - buildopts: - # RPM-specific build options - # Optional - rpms: - # Additional macros that should be defined in the - # RPM buildroot, appended to the default set. Care should be - # taken so that the newlines are preserved. Literal style - # block is recommended, with or without the trailing newline. - # Optional - macros: | - %demomacro 1 - %demomacro2 %{demomacro}23 - # Explicit list of package build names this module will produce. - # By default the build system only allows components listed under - # data.components.rpms to be built as part of this module. - # In case the expected RPM build names do not match the component - # names, the list can be defined here. - # This list overrides rather then just extends the default. - # Optional, list of package build names without versions. - whitelist: - - fooscl-1-bar - - fooscl-1-baz - - xxx - - xyz - # Functional components of the module, optional - components: - # RPM content of the module, optional - # Keys are the VCS/SRPM names, values dictionaries holding - # additional information. - rpms: - bar: - # The real name of the package, if it differs from the key in - # this dictionary. Used when bootstrapping to build a - # bootstrapping ref before building the package for real. - # Optional - name: bar-real - # Why is this component present. - # A simple, free-form string. - # Required. - rationale: We need this to demonstrate stuff. - # Use this repository if it's different from the build - # system configuration. - # Optional. - repository: https://pagure.io/bar.git - # Use this lookaside cache if it's different from the - # build system configuration. - # Optional. - cache: https://example.com/cache - # Use this specific commit hash, branch name or tag for - # the build. If ref is a branch name, the branch HEAD - # will be used. If no ref is given, the master branch - # is assumed. - # Optional. - ref: 26ca0c0 - # Use the "buildafter" value to specify that this component - # must be be ordered later than some other entries in this map. - # The values of this array come from the keys of this map and - # not the real component name to enable bootstrapping. - # Use of both buildafter and buildorder in the same document is - # prohibited, as they will conflict. - # buildafter: - # - baz - # Use the "buildonly" value to indicate that all artifacts - # produced by this component are intended only for building - # this component and should be automatically added to the - # data.filter.rpms list after the build is complete. - # Optional. Defaults to "false" if not specified. - buildonly: false - # baz has no extra options - baz: - rationale: This one is here to demonstrate other stuff. - xxx: - rationale: xxx demonstrates arches and multilib. - # xxx is only available on the listed architectures. - # Includes specific hardware architectures, not families. - # See the data.arch field for details. - # Optional, defaults to all available arches. - arches: [i686, x86_64] - # A list of architectures with multilib - # installs, i.e. both i686 and x86_64 - # versions will be installed on x86_64. - # Includes specific hardware architectures, not families. - # See the data.arch field for details. - # Optional, defaults to no multilib. - multilib: [x86_64] - xyz: - rationale: xyz is a bundled dependency of xxx. - # Build order group - # When building, components are sorted by build order tag - # and built in batches grouped by their buildorder value. - # Built batches are then re-tagged into the buildroot. - # Multiple components can have the same buildorder index - # to map them into build groups. - # Optional, defaults to zero. - # Integer, negative values are allowed. - # In this example, bar, baz and xxx are built first in - # no particular order, then tagged into the buildroot, - # then, finally, xyz is built. - # Use of both buildafter and buildorder in the same document is - # prohibited, as they will conflict. - buildorder: 10 - # Module content of this module - # Included modules are built in the shared buildroot, together with - # other included content. Keys are module names, values additional - # component information. Note this only includes components and their - # properties from the referenced module and doesn't inherit any - # additional module metadata such as the module's dependencies or - # component buildopts. The included components are built in their - # defined buildorder as sub-build groups. - # Optional - modules: - includedmodule: - # Why is this module included? - # Required - rationale: Included in the stack, just because. - # Link to VCS repository that contains the modulemd file - # if it differs from the buildsystem default configuration. - # Optional. - repository: https://pagure.io/includedmodule.git - # See the rpms ref. - ref: somecoolbranchname - # See the rpms buildorder. - buildorder: 100 - # Artifacts shipped with this module - # This section lists binary artifacts shipped with the module, allowing - # software management tools to handle module bundles. This section is - # populated by the module build system. - # Optional - artifacts: - # RPM artifacts shipped with this module - # A set of NEVRAs associated with this module. - # Optional - rpms: - - bar-0:1.23-1.module_deadbeef.x86_64 - - bar-devel-0:1.23-1.module_deadbeef.x86_64 - - bar-extras-0:1.23-1.module_deadbeef.x86_64 - - baz-0:42-42.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.i686 - - xyz-0:1-1.module_deadbeef.x86_64 - # The rpm-map exists to link checksums from repomd to specific - # artifacts produced by this module. Any item in this list must match - # an entry in the data.artifacts.rpms section. - # Optional. - rpm-map: - # The digest-type of this checksum. Required. - sha256: - # The checksum of the artifact being sought. Required. - ee47083ed80146eb2c84e9a94d0836393912185dcda62b9d93ee0c2ea5dc795b: - # The RPM name. Required. - name: bar - # The RPM epoch. Required. - epoch: 0 - # The RPM version. Required. - version: 1.23 - # The RPM release. Required. - release: 1.module_deadbeef - # The RPM architecture. Required. - arch: x86_64 - # The complete RPM NEVRA. Required. - nevra: bar-0:1.23-1.module_deadbeef.x86_64 diff --git a/modulemd-1.8.16/spec.yaml b/modulemd-1.8.16/spec.yaml deleted file mode 120000 index d7ecd7d..0000000 --- a/modulemd-1.8.16/spec.yaml +++ /dev/null @@ -1 +0,0 @@ -spec.v2.yaml \ No newline at end of file diff --git a/modulemd-1.8.16/spec_tmpl.sh b/modulemd-1.8.16/spec_tmpl.sh deleted file mode 100755 index 0238087..0000000 --- a/modulemd-1.8.16/spec_tmpl.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/sh - -version=$1 -template=$2 -datetime=$(date +%Y%m%d%H%M%S) - -sed -e "s/@VERSION@/$version/" \ - -e "s/@DATETIME@/$datetime/" $template diff --git a/modulemd-1.8.16/test_data/bad-document.yaml b/modulemd-1.8.16/test_data/bad-document.yaml deleted file mode 100644 index 287bba2..0000000 --- a/modulemd-1.8.16/test_data/bad-document.yaml +++ /dev/null @@ -1,3 +0,0 @@ -# Document type identifier -document: modulemd-bad - diff --git a/modulemd-1.8.16/test_data/defaults/issue44-1.yaml b/modulemd-1.8.16/test_data/defaults/issue44-1.yaml deleted file mode 100644 index ac725dc..0000000 --- a/modulemd-1.8.16/test_data/defaults/issue44-1.yaml +++ /dev/null @@ -1,8 +0,0 @@ -document: modulemd-defaults -version: 1 -data: - module: testmodule - stream: 2.0 - profiles: - master: [default] - 2.0: [default] \ No newline at end of file diff --git a/modulemd-1.8.16/test_data/defaults/issue44-2.yaml b/modulemd-1.8.16/test_data/defaults/issue44-2.yaml deleted file mode 100644 index b8c255e..0000000 --- a/modulemd-1.8.16/test_data/defaults/issue44-2.yaml +++ /dev/null @@ -1,7 +0,0 @@ -document: modulemd-defaults -version: 1 -data: - module: testmodule - stream: master - profiles: - master: [default] \ No newline at end of file diff --git a/modulemd-1.8.16/test_data/defaults/merging-base.yaml b/modulemd-1.8.16/test_data/defaults/merging-base.yaml deleted file mode 100644 index ce459b2..0000000 --- a/modulemd-1.8.16/test_data/defaults/merging-base.yaml +++ /dev/null @@ -1,84 +0,0 @@ ---- -# Intents optional: -document: modulemd-defaults -version: 1 -data: - module: httpd - stream: '2.2' - profiles: - '2.2': [client, server] - '2.8': [notreal] - intents: - workstation: - stream: '2.4' - profiles: - '2.4': [client] - '2.6': [client, server, bindings] ---- -document: modulemd-defaults -version: 1 -data: - module: postgresql - stream: '8.1' - profiles: - '8.1': [client, server, foo] ---- -document: modulemd-defaults -version: 1 -data: - module: nodejs - stream: '8.0' - profiles: - '6.0': [default] - '8.0': [super] ---- -# Identical to the first item above. Should just be ignored. -document: modulemd-defaults -version: 1 -data: - module: httpd - stream: '2.2' - profiles: - '2.2': [client, server] - intents: - workstation: - stream: '2.4' - profiles: - '2.4': [client] - '2.6': [client, server, bindings] ---- -# Contains a superset of profile defaults. Should be merged. -document: modulemd-defaults -version: 1 -data: - module: postgresql - stream: '8.1' - profiles: - '8.1': [client, server, foo] - '8.2': [client, server] ---- -# Contains an overlapping set of profile defaults. Should be merged. -document: modulemd-defaults -version: 1 -data: - module: nodejs - stream: '8.0' - profiles: - '8.0': [super] - '9.0': [supermegaultra] ---- -# Supplements the first item above. Should be merged cleanly -document: modulemd-defaults -version: 1 -data: - module: httpd - stream: '2.2' - profiles: - '2.2': [client, server] - intents: - workstation: - stream: '2.4' - profiles: - '2.4': [client] - '2.6': [client, server, bindings] - '2.8': [client, server, bindings] diff --git a/modulemd-1.8.16/test_data/defaults/overriding-modified.yaml b/modulemd-1.8.16/test_data/defaults/overriding-modified.yaml deleted file mode 100644 index b87ba98..0000000 --- a/modulemd-1.8.16/test_data/defaults/overriding-modified.yaml +++ /dev/null @@ -1,41 +0,0 @@ ---- -# Override the default stream and add new profile defaults -document: modulemd-defaults -version: 1 -data: - module: httpd - modified: 201812061200 - stream: '2.4' - profiles: - '2.2': [client, server] - '2.4': [client, server] - intents: - workstation: - stream: '2.4' - profiles: - '2.4': [client] - '2.6': [client, server, bindings] - '2.8': [client, server, bindings, new] ---- -# Drop one profile from a stream and add it to another -document: modulemd-defaults -version: 1 -data: - module: postgresql - modified: 201812061200 - stream: '8.1' - profiles: - '8.1': [client, server] - '8.2': [client, server, foo] ---- -# Override the default stream -document: modulemd-defaults -version: 1 -data: - module: nodejs - modified: 201812061200 - stream: '9.0' - profiles: - '6.0': [default] - '8.0': [minimal] - '9.0': [supermegaultra] diff --git a/modulemd-1.8.16/test_data/defaults/overriding-nodejs.yaml b/modulemd-1.8.16/test_data/defaults/overriding-nodejs.yaml deleted file mode 100644 index 937a2b8..0000000 --- a/modulemd-1.8.16/test_data/defaults/overriding-nodejs.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -document: modulemd-defaults -version: 1 -data: - module: nodejs - stream: '9.0' - profiles: - '6.0': [default] - '8.0': [super] - '9.0': [supermegaultra] \ No newline at end of file diff --git a/modulemd-1.8.16/test_data/defaults/overriding.yaml b/modulemd-1.8.16/test_data/defaults/overriding.yaml deleted file mode 100644 index 3df149b..0000000 --- a/modulemd-1.8.16/test_data/defaults/overriding.yaml +++ /dev/null @@ -1,37 +0,0 @@ ---- -# Override the default stream and add new profile defaults -document: modulemd-defaults -version: 1 -data: - module: httpd - stream: '2.4' - profiles: - '2.2': [client, server] - '2.4': [client, server] - intents: - workstation: - stream: '2.4' - profiles: - '2.4': [client] - '2.6': [client, server, bindings] - '2.8': [client, server, bindings, new] ---- -# Reduce the number of profile defaults -document: modulemd-defaults -version: 1 -data: - module: postgresql - stream: '8.1' - profiles: - '8.1': [client, server, foo] ---- -# Override the default stream -document: modulemd-defaults -version: 1 -data: - module: nodejs - stream: '9.0' - profiles: - '6.0': [default] - '8.0': [minimal] - '9.0': [supermegaultra] diff --git a/modulemd-1.8.16/test_data/good-v1.yaml b/modulemd-1.8.16/test_data/good-v1.yaml deleted file mode 100644 index 990dfe5..0000000 --- a/modulemd-1.8.16/test_data/good-v1.yaml +++ /dev/null @@ -1,298 +0,0 @@ -# Document type identifier -document: modulemd -# Module metadata format version -version: 1 -data: - # Module name, optional - # Typically filled in by the buildsystem, using the VCS repository - # name as the name of the module. - name: foo - # Module update stream, optional - # Typically filled in by the buildsystem, using the VCS branch name - # as the name of the stream. - stream: stream-name - # Module version, integer, optional, cannot be negative - # Typically filled in by the buildsystem, using the VCS commit - # timestamp. Module version defines upgrade path for the particular - # update stream. - version: 20160927144203 - # Module context flag, optional - # The context flag serves to distinguish module builds with the - # same name, stream and version and plays an important role in - # future automatic module stream name expansion. - # Filled in by the buildsystem. A short hash of the module's name, - # stream, version and its expanded runtime dependencies. - context: c0ffee43 - # Module artifact architecture, optional - # Contains a string describing the module's artifacts' main hardware - # architecture compatibility, distinguishing the module artifact, - # e.g. a repository, from others with the same name, stream, version and - # context. This is not a generic hardware family (i.e. basearch). - # Examples: i386, i486, armv7hl, x86_64 - # Filled in by the buildsystem during the compose stage. - arch: x86_64 - # A short summary describing the module, required - summary: An example module - # A verbose description of the module, required - description: >- - A module for the demonstration of the metadata format. Also, - the obligatory lorem ipsum dolor sit amet goes right here. - # The end of life, aka Best Before, optional. - # A UTC date in the ISO 8601 format signifying the day when this - # module goes EOL, i.e. starting the day below, this module won't - # receive any more updates. Typically defined in an external data - # source and filled in by the buildsystem. - # Obsolete: use servicelevels instead - eol: 2077-10-03 - # Service levels, optional - # This is a dictionary of important dates (and possibly supplementary data - # in the future) that describes the end point of certain functionality, - # such as the date when the module will transition to "security fixes only" - # or go completely end-of-life - servicelevels: - security: - eol: 2019-03-30 - features: - eol: 2018-12-31 - # Module and content licenses in the Fedora license identifier - # format, required - license: - # Module license, required - # This list covers licenses used for the module metadata, SPEC - # files or extra patches - module: - - MIT - # Content license, optional - # A list of licenses used by the packages in the module. - # This should be populated by build tools, not the module author. - content: - - Beerware - - GPLv2+ - - zlib - # Extensible metadata block - # A dictionary of user-defined keys and values. - # Optional. Defaults to an empty dictionary. - xmd: - some_key: some_data - some_list: - - a - - b - some_dict: - a: alpha - b: beta - some_other_list: - - c - - d - some_other_dict: - another_key: more_data - yet_another_key: - - this - - is - - getting - - silly - # Module dependencies, if any. Optional. - # TODO: Provides, conflicts, obsoletes, recommends, etc. - # Do we even need those? - # TODO: Stream name globbing or regular expression support - dependencies: - # Build dependencies of this module, optional - # Keys are module names, values are the stream names - # These modules define the buildroot for this module - buildrequires: - platform: and-its-stream-name - extra-build-env: and-its-stream-name-too - # Run-time dependencies of this module, optional - # Keys are module names, values are their stream names - requires: - platform: and-its-stream-name - # References to external resources, typically upstream, optional - references: - # Upstream community website, if it exists, optional - community: http://www.example.com/ - # Upstream documentation, if it exists, optional - documentation: http://www.example.com/ - # Upstream bug tracker, if it exists, optional - tracker: http://www.example.com/ - # Profiles define the end user's use cases for the module. They consist of - # package lists of components to be installed by default if the module is - # enabled. The keys are the profile names and contain package lists by - # component type. There are several profiles defined below. Suggested - # behavior for package managers is to just enable repository for selected - # module. Then users are able to install packages on their own. If they - # select a specific profile, the package manager should install all - # packages of that profile. - # Optional, defaults to no profile definitions. - profiles: - # The default profile, used unless any other profile was selected. - # Optional, defaults to empty lists. - default: - rpms: - - bar - - bar-extras - - baz - # Defines a set of packages which are meant to be installed inside - # container image artifact. - # Optional. - container: - rpms: - - bar - - bar-devel - # This profile provides minimal set of packages providing functionality - # of this module. This is meant to be used on target systems where size - # of the distribution is a real concern. - # Optional. - minimal: - # A verbose description of the module, optional - description: Minimal profile installing only the bar package. - rpms: - - bar - # A set of packages which should be installed into the buildroot of a - # module which depends on this module. Specifically, it is used to - # flesh out the build group in koji. - # Optional. - buildroot: - rpms: - - bar-devel - # Very similar to the buildroot profile above, this is used by the - # build system to specify any additional packages which should be - # installed during the buildSRPMfromSCM step in koji. - # Optional. - srpm-buildroot: - rpms: - - bar-extras - # Test for unusual cases - unusual: - rpms: [] - moreunusual: {} - # Module API - # Optional, defaults to no API. - api: - # The module's public RPM-level API. - # A list of binary RPM names that are considered to be the - # main and stable feature of the module; binary RPMs not listed - # here are considered "unsupported" or "implementation details". - # In the example here we don't list the xyz package as it's only - # included as a dependency of xxx. However, we list a subpackage - # of bar, bar-extras. - # Optional, defaults to an empty list. - rpms: - - bar - - bar-extras - - bar-devel - - baz - - xxx - # Module component filters - # Optional, defaults to no filters. - filter: - # RPM names not to be included in the module. - # By default, all built binary RPMs are included. In the example - # we exclude a subpackage of bar, bar-nonfoo from our module. - # Optional, defaults to an empty list. - rpms: - - baz-nonfoo - # Component build options - # Additional per component type module-wide build options. - # Optional - buildopts: - # RPM-specific build options - # Optional - rpms: - # Additional macros that should be defined in the - # RPM buildroot, appended to the default set. Care should be - # taken so that the newlines are preserved. Literal style - # block is recommended, with or without the trailing newline. - # Optional - macros: | - %demomacro 1 - %demomacro2 %{demomacro}23 - # Functional components of the module, optional - components: - # RPM content of the module, optional - # Keys are the VCS/SRPM names, values dictionaries holding - # additional information. - rpms: - bar: - # Why is this component present. - # A simple, free-form string. - # Required. - rationale: We need this to demonstrate stuff. - # Use this repository if it's different from the build - # system configuration. - # Optional. - repository: https://pagure.io/bar.git - # Use this lookaside cache if it's different from the - # build system configuration. - # Optional. - cache: https://example.com/cache - # Use this specific commit has, branch name or tag for - # the build. If ref is a branch name, the branch HEAD - # will be used. If no ref is given, the master branch - # is assumed. - # Optional. - ref: 26ca0c0 - # baz has no extra options - baz: - rationale: This one is here to demonstrate other stuff. - xxx: - rationale: xxx demonstrates arches and multilib. - # xxx is only available on the listed architectures. - # Optional, defaults to all available arches. - arches: [ i686, x86_64 ] - # A list of architectures with multilib - # installs, i.e. both i686 and x86_64 - # versions will be installed on x86_64. - # Optional, defaults to no multilib. - multilib: [ x86_64 ] - xyz: - rationale: xyz is a bundled dependency of xxx. - # Build order group - # When building, components are sorted by build order tag - # and built in batches grouped by their buildorder value. - # Built batches are then re-tagged into the buildroot. - # Multiple components can have the same buildorder index - # to map them into build groups. - # Optional, defaults to zero. - # Integer, negative values are allowed. - # In this example, bar, baz and xxx are built first in - # no particular order, then tagged into the buildroot, - # then, finally, xyz is built. - buildorder: 10 - # Module content of this module - # Included modules are built in the shared buildroot, together with - # other included content. Keys are module names, values additional - # component information. Note this only includes components and their - # properties from the referenced module and doesn't inherit any - # additional module metadata such as the module's dependencies or - # component buildopts. The included components are built in their - # defined buildorder as sub-build groups. - # Optional - modules: - includedmodule: - # Why is this module included? - # Required - rationale: Included in the stack, just because. - # Link to VCS repository that contains the modulemd file - # if it differs from the buildsystem default configuration. - # Optional. - repository: https://pagure.io/includedmodule.git - # See the rpms ref. - ref: somecoolbranchname - # See the rpms buildorder. - buildorder: 100 - # Artifacts shipped with this module - # This section lists binary artifacts shipped with the module, allowing - # software management tools to handle module bundles. This section is - # populated by the module build system. - # Optional - artifacts: - # RPM artifacts shipped with this module - # A set of NEVRAs associated with this module. - # Optional - rpms: - - bar-0:1.23-1.module_deadbeef.x86_64 - - bar-devel-0:1.23-1.module_deadbeef.x86_64 - - bar-extras-0:1.23-1.module_deadbeef.x86_64 - - baz-0:42-42.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.i686 - - xyz-0:1-1.module_deadbeef.x86_64 diff --git a/modulemd-1.8.16/test_data/good-v2-extra-keys.yaml b/modulemd-1.8.16/test_data/good-v2-extra-keys.yaml deleted file mode 100644 index 67745c5..0000000 --- a/modulemd-1.8.16/test_data/good-v2-extra-keys.yaml +++ /dev/null @@ -1,290 +0,0 @@ ---- -# Document type identifier -document: modulemd -# Module metadata format version -version: 2 -data: - - # An extra key that should be ignored - unknown_key: foo - # Another unknown key with contents - unknown_map: - stuff: [ a, b ] - junk: [ b, c ] - morestuff: - yay: [ d, e ] - unknown_sequence: - - foo - - bar - - name: foo - stream: stream-name - version: 20160927144203 - context: c0ffee43 - arch: x86_64 - summary: An example module - description: >- - A module for the demonstration of the metadata format. Also, - the obligatory lorem ipsum dolor sit amet goes right here. - servicelevels: - rawhide: - eol: 2077-10-23 - stable_api: - eol: 2077-10-23 - bug_fixes: - eol: 2077-10-23 - security_fixes: - eol: 2077-10-23 - license: - module: - - MIT - content: - - Beerware - - GPLv2+ - - zlib - unknown_key: foo - unknown_map: - stuff: [ a, b ] - junk: [ b, c ] - morestuff: - yay: [ d, e ] - unknown_sequence: - - foo - - bar - xmd: - some_key: some_data - some_list: - - a - - b - some_dict: - a: alpha - b: beta - some_other_list: - - c - - d - some_other_dict: - another_key: more_data - yet_another_key: - - this - - is - - getting - - silly - empty_dict: {} - empty_list: [] - dependencies: - - buildrequires: - platform: [-f27, -f28, -epel7] - requires: - platform: [-f27, -f28, -epel7] - - buildrequires: - platform: [f27] - buildtools: [v1, v2] - compatible: [v3] - requires: - platform: [f27] - compatible: [v3, v4] - - buildrequires: - platform: [f28] - requires: - platform: [f28] - runtime: [a, b] - - buildrequires: - platform: [epel7] - extras: [] - moreextras: [foo, bar] - requires: - platform: [epel7] - extras: [] - moreextras: [foo, bar] - - unknown_key: foo - unknown_map: - stuff: [ a, b ] - junk: [ b, c ] - morestuff: - yay: [ d, e ] - unknown_sequence: - - foo - - bar - - references: - community: http://www.example.com/ - documentation: http://www.example.com/ - tracker: http://www.example.com/ - - # An extra key that should be ignored - unknown_key: foo - - profiles: - default: - rpms: - - bar - - bar-extras - - baz - - unknown_key: foo - unknown_map: - stuff: [ a, b ] - junk: [ b, c ] - morestuff: - yay: [ d, e ] - unknown_sequence: - - foo - - bar - container: - rpms: - - bar - - bar-devel - minimal: - description: Minimal profile installing only the bar package. - rpms: - - bar - buildroot: - rpms: - - bar-devel - srpm-buildroot: - rpms: - - bar-extras - unusual: - rpms: [] - moreunusual: {} - api: - rpms: - - bar - - bar-extras - - bar-devel - - baz - - xxx - - unknown_key: foo - unknown_map: - stuff: [ a, b ] - junk: [ b, c ] - morestuff: - yay: [ d, e ] - unknown_sequence: - - foo - - bar - filter: - rpms: - - baz-nonfoo - - unknown_key: foo - unknown_map: - stuff: [ a, b ] - junk: [ b, c ] - morestuff: - yay: [ d, e ] - unknown_sequence: - - foo - - bar - - buildopts: - rpms: - macros: | - %demomacro 1 - %demomacro2 %{demomacro}23 - - unknown_key: foo - unknown_map: - stuff: [ a, b ] - junk: [ b, c ] - morestuff: - yay: [ d, e ] - unknown_sequence: - - foo - - bar - - unknown_key: foo - unknown_map: - stuff: [ a, b ] - junk: [ b, c ] - morestuff: - yay: [ d, e ] - unknown_sequence: - - foo - - bar - - components: - rpms: - bar: - rationale: We need this to demonstrate stuff. - repository: https://pagure.io/bar.git - cache: https://example.com/cache - ref: 26ca0c0 - baz: - rationale: This one is here to demonstrate other stuff. - xxx: - rationale: xxx demonstrates arches and multilib. - arches: [ i686, x86_64 ] - multilib: [ x86_64 ] - xyz: - rationale: xyz is a bundled dependency of xxx. - buildorder: 10 - - unknown_key: foo - unknown_map: - stuff: [ a, b ] - junk: [ b, c ] - morestuff: - yay: [ d, e ] - unknown_sequence: - - foo - - bar - - unknown_key: foo - unknown_map: - stuff: [ a, b ] - junk: [ b, c ] - morestuff: - yay: [ d, e ] - unknown_sequence: - - foo - - bar - - modules: - includedmodule: - rationale: Included in the stack, just because. - repository: https://pagure.io/includedmodule.git - ref: somecoolbranchname - buildorder: 100 - - unknown_key: foo - unknown_map: - stuff: [ a, b ] - junk: [ b, c ] - morestuff: - yay: [ d, e ] - unknown_sequence: - - foo - - bar - - unknown_key: foo - unknown_map: - stuff: [ a, b ] - junk: [ b, c ] - morestuff: - yay: [ d, e ] - unknown_sequence: - - foo - - bar - - artifacts: - rpms: - - bar-0:1.23-1.module_deadbeef.x86_64 - - bar-devel-0:1.23-1.module_deadbeef.x86_64 - - bar-extras-0:1.23-1.module_deadbeef.x86_64 - - baz-0:42-42.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.i686 - - xyz-0:1-1.module_deadbeef.x86_64 - - unknown_key: foo - unknown_map: - stuff: [ a, b ] - junk: [ b, c ] - morestuff: - yay: [ d, e ] - unknown_sequence: - - foo - - bar diff --git a/modulemd-1.8.16/test_data/good-v2.yaml b/modulemd-1.8.16/test_data/good-v2.yaml deleted file mode 100644 index 949541f..0000000 --- a/modulemd-1.8.16/test_data/good-v2.yaml +++ /dev/null @@ -1,695 +0,0 @@ ---- -# Document type identifier -document: modulemd -# Module metadata format version -version: 2 -data: - # Module name, optional - # Typically filled in by the buildsystem, using the VCS repository - # name as the name of the module. - name: foo - # Module update stream, optional - # Typically filled in by the buildsystem, using the VCS branch name - # as the name of the stream. - stream: stream-name - # Module version, integer, optional, cannot be negative - # Typically filled in by the buildsystem, using the VCS commit - # timestamp. Module version defines upgrade path for the particular - # update stream. - version: 20160927144203 - # Module context flag, optional - # The context flag serves to distinguish module builds with the - # same name, stream and version and plays an important role in - # future automatic module stream name expansion. - # Filled in by the buildsystem. A short hash of the module's name, - # stream, version and its expanded runtime dependencies. - context: c0ffee43 - # Module artifact architecture, optional - # Contains a string describing the module's artifacts' main hardware - # architecture compatibility, distinguishing the module artifact, - # e.g. a repository, from others with the same name, stream, version and - # context. This is not a generic hardware family (i.e. basearch). - # Examples: i386, i486, armv7hl, x86_64 - # Filled in by the buildsystem during the compose stage. - arch: x86_64 - # A short summary describing the module, required - summary: An example module - # A verbose description of the module, required - description: >- - A module for the demonstration of the metadata format. Also, - the obligatory lorem ipsum dolor sit amet goes right here. - # Service levels, optional - # This is a dictionary of important dates (and possibly supplementary data - # in the future) that describes the end point of certain functionality, - # such as the date when the module will transition to "security fixes only" - # or go completely end-of-life. - # Filled in by the buildsystem. Service level names might have special - # meaning to other systems. Defined externally. - servicelevels: - rawhide: - # EOL dates are the ISO 8601 format. - eol: 2077-10-23 - stable_api: - eol: 2077-10-23 - bug_fixes: - eol: 2077-10-23 - security_fixes: - eol: 2077-10-23 - # Module and content licenses in the Fedora license identifier - # format, required - license: - # Module license, required - # This list covers licenses used for the module metadata, SPEC - # files or extra patches - module: - - MIT - # Content license, optional - # A list of licenses used by the packages in the module. - # This should be populated by build tools, not the module author. - content: - - Beerware - - GPLv2+ - - zlib - # Extensible metadata block - # A dictionary of user-defined keys and values. - # Optional. Defaults to an empty dictionary. - xmd: - some_key: some_data - some_list: - - a - - b - some_dict: - a: alpha - b: beta - some_other_list: - - c - - d - some_other_dict: - another_key: more_data - yet_another_key: - - this - - is - - getting - - silly - empty_dict: {} - empty_list: [] - # Module dependencies, if any. Optional. - # A list of dictionaries describing build and runtime dependencies - # of this module. Each list item describes a combination of dependencies - # this module can be built or run against. - # Dependency keys are module names, dependency values are lists of - # required streams. The lists can be both inclusive (listing compatible - # streams) or exclusive (accepting every stream except for those listed). - # An empty list implies all active existing streams are supported. - # Requiring multiple streams at build time will result in multiple - # builds. Requiring multiple streams at runtime implies the module - # is compatible with all of them. If the same module streams are listed - # in both the build time and the runtime block, the build tools translate - # the runtime block so that it matches the stream the module was built - # against. Multiple builds result in multiple output modulemd files. - # See below for an example. - # TODO: Provides, conflicts, obsoletes, recommends, etc. - # Do we even need those? - # The example below illustrates how to build the same module in four - # different ways, with varying build time and runtime dependencies. - dependencies: - # Build on all available platforms except for f27, f28 and epel7 - # After build, the runtime dependency will match the one used for - # the build. - - buildrequires: - platform: [-f27, -f28, -epel7] - requires: - platform: [-f27, -f28, -epel7] - # For platform:f27 perform two builds, one with buildtools:v2, another - # with buildtools:v2 in the buildroot. Both will also utilize - # compatible:v3. At runtime, buildtools isn't required and either - # compatible:v3 or compatible:v4 can be installed. - - buildrequires: - platform: [f27] - buildtools: [v1, v2] - compatible: [v3] - requires: - platform: [f27] - compatible: [v3, v4] - # For platform:f28 builds, require either runtime:a or runtime:b at - # runtime. Only one build is performed. - - buildrequires: - platform: [f28] - requires: - platform: [f28] - runtime: [a, b] - # For platform:epel7, build against against all available extras - # streams and moreextras:foo and moreextras:bar. The number of builds - # in this case will be 2 * . - # At runtime, both extras and moreextras will match whatever stream was - # used for build. - - buildrequires: - platform: [epel7] - extras: [] - moreextras: [foo, bar] - requires: - platform: [epel7] - extras: [] - moreextras: [foo, bar] - # References to external resources, typically upstream, optional - references: - # Upstream community website, if it exists, optional - community: http://www.example.com/ - # Upstream documentation, if it exists, optional - documentation: http://www.example.com/ - # Upstream bug tracker, if it exists, optional - tracker: http://www.example.com/ - # Profiles define the end user's use cases for the module. They consist of - # package lists of components to be installed by default if the module is - # enabled. The keys are the profile names and contain package lists by - # component type. There are several profiles defined below. Suggested - # behavior for package managers is to just enable repository for selected - # module. Then users are able to install packages on their own. If they - # select a specific profile, the package manager should install all - # packages of that profile. - # Optional, defaults to no profile definitions. - profiles: - # The default profile, used unless any other profile was selected. - # Optional, defaults to empty lists. - default: - rpms: - - bar - - bar-extras - - baz - # Defines a set of packages which are meant to be installed inside - # container image artifact. - # Optional. - container: - rpms: - - bar - - bar-devel - # This profile provides minimal set of packages providing functionality - # of this module. This is meant to be used on target systems where size - # of the distribution is a real concern. - # Optional. - minimal: - # A verbose description of the module, optional - description: Minimal profile installing only the bar package. - rpms: - - bar - # A set of packages which should be installed into the buildroot of a - # module which depends on this module. Specifically, it is used to - # flesh out the build group in koji. - # Optional. - buildroot: - rpms: - - bar-devel - # Very similar to the buildroot profile above, this is used by the - # build system to specify any additional packages which should be - # installed during the buildSRPMfromSCM step in koji. - # Optional. - srpm-buildroot: - rpms: - - bar-extras - # Test for unusual cases - unusual: - rpms: [] - moreunusual: {} - # Module API - # Optional, defaults to no API. - api: - # The module's public RPM-level API. - # A list of binary RPM names that are considered to be the - # main and stable feature of the module; binary RPMs not listed - # here are considered "unsupported" or "implementation details". - # In the example here we don't list the xyz package as it's only - # included as a dependency of xxx. However, we list a subpackage - # of bar, bar-extras. - # Optional, defaults to an empty list. - rpms: - - bar - - bar-extras - - bar-devel - - baz - - xxx - # Module component filters - # Optional, defaults to no filters. - filter: - # RPM names not to be included in the module. - # By default, all built binary RPMs are included. In the example - # we exclude a subpackage of bar, bar-nonfoo from our module. - # Optional, defaults to an empty list. - rpms: - - baz-nonfoo - # Component build options - # Additional per component type module-wide build options. - # Optional - buildopts: - # RPM-specific build options - # Optional - rpms: - # Additional macros that should be defined in the - # RPM buildroot, appended to the default set. Care should be - # taken so that the newlines are preserved. Literal style - # block is recommended, with or without the trailing newline. - # Optional - macros: | - %demomacro 1 - %demomacro2 %{demomacro}23 - # Functional components of the module, optional - components: - # RPM content of the module, optional - # Keys are the VCS/SRPM names, values dictionaries holding - # additional information. - rpms: - bar: - # Why is this component present. - # A simple, free-form string. - # Required. - rationale: We need this to demonstrate stuff. - # Use this repository if it's different from the build - # system configuration. - # Optional. - repository: https://pagure.io/bar.git - # Use this lookaside cache if it's different from the - # build system configuration. - # Optional. - cache: https://example.com/cache - # Use this specific commit has, branch name or tag for - # the build. If ref is a branch name, the branch HEAD - # will be used. If no ref is given, the master branch - # is assumed. - # Optional. - ref: 26ca0c0 - # baz has no extra options - baz: - rationale: This one is here to demonstrate other stuff. - xxx: - rationale: xxx demonstrates arches and multilib. - # xxx is only available on the listed architectures. - # Optional, defaults to all available arches. - arches: [ i686, x86_64 ] - # A list of architectures with multilib - # installs, i.e. both i686 and x86_64 - # versions will be installed on x86_64. - # Optional, defaults to no multilib. - multilib: [ x86_64 ] - xyz: - rationale: xyz is a bundled dependency of xxx. - # Build order group - # When building, components are sorted by build order tag - # and built in batches grouped by their buildorder value. - # Built batches are then re-tagged into the buildroot. - # Multiple components can have the same buildorder index - # to map them into build groups. - # Optional, defaults to zero. - # Integer, negative values are allowed. - # In this example, bar, baz and xxx are built first in - # no particular order, then tagged into the buildroot, - # then, finally, xyz is built. - buildorder: 10 - # Module content of this module - # Included modules are built in the shared buildroot, together with - # other included content. Keys are module names, values additional - # component information. Note this only includes components and their - # properties from the referenced module and doesn't inherit any - # additional module metadata such as the module's dependencies or - # component buildopts. The included components are built in their - # defined buildorder as sub-build groups. - # Optional - modules: - includedmodule: - # Why is this module included? - # Required - rationale: Included in the stack, just because. - # Link to VCS repository that contains the modulemd file - # if it differs from the buildsystem default configuration. - # Optional. - repository: https://pagure.io/includedmodule.git - # See the rpms ref. - ref: somecoolbranchname - # See the rpms buildorder. - buildorder: 100 - # Artifacts shipped with this module - # This section lists binary artifacts shipped with the module, allowing - # software management tools to handle module bundles. This section is - # populated by the module build system. - # Optional - artifacts: - # RPM artifacts shipped with this module - # A set of NEVRAs associated with this module. - # Optional - rpms: - - bar-0:1.23-1.module_deadbeef.x86_64 - - bar-devel-0:1.23-1.module_deadbeef.x86_64 - - bar-extras-0:1.23-1.module_deadbeef.x86_64 - - baz-0:42-42.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.i686 - - xyz-0:1-1.module_deadbeef.x86_64 ---- -document: modulemd -version: 2 -data: - summary: Foo - description: > - Bar - license: - module: - - MIT ---- -# Duplicate of the first entry, except with newer version -document: modulemd -# Module metadata format version -version: 2 -data: - # Module name, optional - # Typically filled in by the buildsystem, using the VCS repository - # name as the name of the module. - name: foo - # Module update stream, optional - # Typically filled in by the buildsystem, using the VCS branch name - # as the name of the stream. - stream: stream-name - # Module version, integer, optional, cannot be negative - # Typically filled in by the buildsystem, using the VCS commit - # timestamp. Module version defines upgrade path for the particular - # update stream. - version: 20180927144203 - # Module context flag, optional - # The context flag serves to distinguish module builds with the - # same name, stream and version and plays an important role in - # future automatic module stream name expansion. - # Filled in by the buildsystem. A short hash of the module's name, - # stream, version and its expanded runtime dependencies. - context: c0ffee43 - # Module artifact architecture, optional - # Contains a string describing the module's artifacts' main hardware - # architecture compatibility, distinguishing the module artifact, - # e.g. a repository, from others with the same name, stream, version and - # context. This is not a generic hardware family (i.e. basearch). - # Examples: i386, i486, armv7hl, x86_64 - # Filled in by the buildsystem during the compose stage. - arch: x86_64 - # A short summary describing the module, required - summary: An example module - # A verbose description of the module, required - description: >- - A module for the demonstration of the metadata format. Also, - the obligatory lorem ipsum dolor sit amet goes right here. - # Service levels, optional - # This is a dictionary of important dates (and possibly supplementary data - # in the future) that describes the end point of certain functionality, - # such as the date when the module will transition to "security fixes only" - # or go completely end-of-life. - # Filled in by the buildsystem. Service level names might have special - # meaning to other systems. Defined externally. - servicelevels: - rawhide: {} # Rawhide has no EOL date - stable_api: - # EOL dates are the ISO 8601 format. - eol: 2077-10-23 - bug_fixes: - eol: 2077-10-23 - security_fixes: - eol: 2077-10-23 - # Module and content licenses in the Fedora license identifier - # format, required - license: - # Module license, required - # This list covers licenses used for the module metadata, SPEC - # files or extra patches - module: - - MIT - # Content license, optional - # A list of licenses used by the packages in the module. - # This should be populated by build tools, not the module author. - content: - - Beerware - - GPLv2+ - - zlib - # Extensible metadata block - # A dictionary of user-defined keys and values. - # Optional. Defaults to an empty dictionary. - xmd: - some_key: some_data - some_list: - - a - - b - some_dict: - a: alpha - b: beta - some_other_list: - - c - - d - some_other_dict: - another_key: more_data - yet_another_key: - - this - - is - - getting - - silly - # Module dependencies, if any. Optional. - # A list of dictionaries describing build and runtime dependencies - # of this module. Each list item describes a combination of dependencies - # this module can be built or run against. - # Dependency keys are module names, dependency values are lists of - # required streams. The lists can be both inclusive (listing compatible - # streams) or exclusive (accepting every stream except for those listed). - # An empty list implies all active existing streams are supported. - # Requiring multiple streams at build time will result in multiple - # builds. Requiring multiple streams at runtime implies the module - # is compatible with all of them. If the same module streams are listed - # in both the build time and the runtime block, the build tools translate - # the runtime block so that it matches the stream the module was built - # against. Multiple builds result in multiple output modulemd files. - # See below for an example. - # TODO: Provides, conflicts, obsoletes, recommends, etc. - # Do we even need those? - # The example below illustrates how to build the same module in four - # different ways, with varying build time and runtime dependencies. - dependencies: - # Build on all available platforms except for f27, f28 and epel7 - # After build, the runtime dependency will match the one used for - # the build. - - buildrequires: - platform: [-f27, -f28, -epel7] - requires: - platform: [-f27, -f28, -epel7] - # For platform:f27 perform two builds, one with buildtools:v2, another - # with buildtools:v2 in the buildroot. Both will also utilize - # compatible:v3. At runtime, buildtools isn't required and either - # compatible:v3 or compatible:v4 can be installed. - - buildrequires: - platform: [f27] - buildtools: [v1, v2] - compatible: [v3] - requires: - platform: [f27] - compatible: [v3, v4] - # For platform:f28 builds, require either runtime:a or runtime:b at - # runtime. Only one build is performed. - - buildrequires: - platform: [f28] - requires: - platform: [f28] - runtime: [a, b] - # For platform:epel7, build against against all available extras - # streams and moreextras:foo and moreextras:bar. The number of builds - # in this case will be 2 * . - # At runtime, both extras and moreextras will match whatever stream was - # used for build. - - buildrequires: - platform: [epel7] - extras: [] - moreextras: [foo, bar] - requires: - platform: [epel7] - extras: [] - moreextras: [foo, bar] - # References to external resources, typically upstream, optional - references: - # Upstream community website, if it exists, optional - community: http://www.example.com/ - # Upstream documentation, if it exists, optional - documentation: http://www.example.com/ - # Upstream bug tracker, if it exists, optional - tracker: http://www.example.com/ - # Profiles define the end user's use cases for the module. They consist of - # package lists of components to be installed by default if the module is - # enabled. The keys are the profile names and contain package lists by - # component type. There are several profiles defined below. Suggested - # behavior for package managers is to just enable repository for selected - # module. Then users are able to install packages on their own. If they - # select a specific profile, the package manager should install all - # packages of that profile. - # Optional, defaults to no profile definitions. - profiles: - # The default profile, used unless any other profile was selected. - # Optional, defaults to empty lists. - default: - rpms: - - bar - - bar-extras - - baz - # Defines a set of packages which are meant to be installed inside - # container image artifact. - # Optional. - container: - rpms: - - bar - - bar-devel - # This profile provides minimal set of packages providing functionality - # of this module. This is meant to be used on target systems where size - # of the distribution is a real concern. - # Optional. - minimal: - # A verbose description of the module, optional - description: Minimal profile installing only the bar package. - rpms: - - bar - # A set of packages which should be installed into the buildroot of a - # module which depends on this module. Specifically, it is used to - # flesh out the build group in koji. - # Optional. - buildroot: - rpms: - - bar-devel - # Very similar to the buildroot profile above, this is used by the - # build system to specify any additional packages which should be - # installed during the buildSRPMfromSCM step in koji. - # Optional. - srpm-buildroot: - rpms: - - bar-extras - # Test for unusual cases - unusual: - rpms: [] - moreunusual: {} - # Module API - # Optional, defaults to no API. - api: - # The module's public RPM-level API. - # A list of binary RPM names that are considered to be the - # main and stable feature of the module; binary RPMs not listed - # here are considered "unsupported" or "implementation details". - # In the example here we don't list the xyz package as it's only - # included as a dependency of xxx. However, we list a subpackage - # of bar, bar-extras. - # Optional, defaults to an empty list. - rpms: - - bar - - bar-extras - - bar-devel - - baz - - xxx - # Module component filters - # Optional, defaults to no filters. - filter: - # RPM names not to be included in the module. - # By default, all built binary RPMs are included. In the example - # we exclude a subpackage of bar, bar-nonfoo from our module. - # Optional, defaults to an empty list. - rpms: - - baz-nonfoo - # Component build options - # Additional per component type module-wide build options. - # Optional - buildopts: - # RPM-specific build options - # Optional - rpms: - # Additional macros that should be defined in the - # RPM buildroot, appended to the default set. Care should be - # taken so that the newlines are preserved. Literal style - # block is recommended, with or without the trailing newline. - # Optional - macros: | - %demomacro 1 - %demomacro2 %{demomacro}23 - # Functional components of the module, optional - components: - # RPM content of the module, optional - # Keys are the VCS/SRPM names, values dictionaries holding - # additional information. - rpms: - bar: - # Why is this component present. - # A simple, free-form string. - # Required. - rationale: We need this to demonstrate stuff. - # Use this repository if it's different from the build - # system configuration. - # Optional. - repository: https://pagure.io/bar.git - # Use this lookaside cache if it's different from the - # build system configuration. - # Optional. - cache: https://example.com/cache - # Use this specific commit has, branch name or tag for - # the build. If ref is a branch name, the branch HEAD - # will be used. If no ref is given, the master branch - # is assumed. - # Optional. - ref: 26ca0c0 - # baz has no extra options - baz: - rationale: This one is here to demonstrate other stuff. - xxx: - rationale: xxx demonstrates arches and multilib. - # xxx is only available on the listed architectures. - # Optional, defaults to all available arches. - arches: [ i686, x86_64 ] - # A list of architectures with multilib - # installs, i.e. both i686 and x86_64 - # versions will be installed on x86_64. - # Optional, defaults to no multilib. - multilib: [ x86_64 ] - xyz: - rationale: xyz is a bundled dependency of xxx. - # Build order group - # When building, components are sorted by build order tag - # and built in batches grouped by their buildorder value. - # Built batches are then re-tagged into the buildroot. - # Multiple components can have the same buildorder index - # to map them into build groups. - # Optional, defaults to zero. - # Integer, negative values are allowed. - # In this example, bar, baz and xxx are built first in - # no particular order, then tagged into the buildroot, - # then, finally, xyz is built. - buildorder: 10 - # Module content of this module - # Included modules are built in the shared buildroot, together with - # other included content. Keys are module names, values additional - # component information. Note this only includes components and their - # properties from the referenced module and doesn't inherit any - # additional module metadata such as the module's dependencies or - # component buildopts. The included components are built in their - # defined buildorder as sub-build groups. - # Optional - modules: - includedmodule: - # Why is this module included? - # Required - rationale: Included in the stack, just because. - # Link to VCS repository that contains the modulemd file - # if it differs from the buildsystem default configuration. - # Optional. - repository: https://pagure.io/includedmodule.git - # See the rpms ref. - ref: somecoolbranchname - # See the rpms buildorder. - buildorder: 100 - # Artifacts shipped with this module - # This section lists binary artifacts shipped with the module, allowing - # software management tools to handle module bundles. This section is - # populated by the module build system. - # Optional - artifacts: - # RPM artifacts shipped with this module - # A set of NEVRAs associated with this module. - # Optional - rpms: - - bar-0:1.23-1.module_deadbeef.x86_64 - - bar-devel-0:1.23-1.module_deadbeef.x86_64 - - bar-extras-0:1.23-1.module_deadbeef.x86_64 - - baz-0:42-42.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.i686 - - xyz-0:1-1.module_deadbeef.x86_64 diff --git a/modulemd-1.8.16/test_data/issue14-mismatch.yaml b/modulemd-1.8.16/test_data/issue14-mismatch.yaml deleted file mode 100644 index b489f31..0000000 --- a/modulemd-1.8.16/test_data/issue14-mismatch.yaml +++ /dev/null @@ -1,37 +0,0 @@ -document: modulemd -data: - summary: A test module in all its beautiful beauty - description: >- - This module demonstrates how to write simple modulemd files And - can be used for testing the build and release pipeline. - license: - module: [ MIT ] - dependencies: - buildrequires: - platform: f28 - requires: - platform: f28 - references: - community: https://docs.pagure.org/modularity/ - documentation: https://fedoraproject.org/wiki/Fedora_Packaging_Guidelines_for_Modules - profiles: - default: - rpms: - - tangerine - api: - rpms: - - perl-Tangerine - - tangerine - components: - rpms: - perl-List-Compare: - rationale: A dependency of tangerine. - ref: master - perl-Tangerine: - rationale: Provides API for this module and is a dependency of tangerine. - ref: master - tangerine: - rationale: Provides API for this module. - buildorder: 10 - ref: master -version: 2 diff --git a/modulemd-1.8.16/test_data/issue14-v1.yaml b/modulemd-1.8.16/test_data/issue14-v1.yaml deleted file mode 100644 index f838128..0000000 --- a/modulemd-1.8.16/test_data/issue14-v1.yaml +++ /dev/null @@ -1,37 +0,0 @@ -document: modulemd -data: - summary: A test module in all its beautiful beauty - description: >- - This module demonstrates how to write simple modulemd files And - can be used for testing the build and release pipeline. - license: - module: [ MIT ] - dependencies: - buildrequires: - platform: f28 - requires: - platform: f28 - references: - community: https://docs.pagure.org/modularity/ - documentation: https://fedoraproject.org/wiki/Fedora_Packaging_Guidelines_for_Modules - profiles: - default: - rpms: - - tangerine - api: - rpms: - - perl-Tangerine - - tangerine - components: - rpms: - perl-List-Compare: - rationale: A dependency of tangerine. - ref: master - perl-Tangerine: - rationale: Provides API for this module and is a dependency of tangerine. - ref: master - tangerine: - rationale: Provides API for this module. - buildorder: 10 - ref: master -version: 1 diff --git a/modulemd-1.8.16/test_data/issue14-v2.yaml b/modulemd-1.8.16/test_data/issue14-v2.yaml deleted file mode 100644 index e39b5a0..0000000 --- a/modulemd-1.8.16/test_data/issue14-v2.yaml +++ /dev/null @@ -1,37 +0,0 @@ -document: modulemd -data: - summary: A test module in all its beautiful beauty - description: >- - This module demonstrates how to write simple modulemd files And - can be used for testing the build and release pipeline. - license: - module: [ MIT ] - dependencies: - - buildrequires: - platform: [f28] - requires: - platform: [f28] - references: - community: https://docs.pagure.org/modularity/ - documentation: https://fedoraproject.org/wiki/Fedora_Packaging_Guidelines_for_Modules - profiles: - default: - rpms: - - tangerine - api: - rpms: - - perl-Tangerine - - tangerine - components: - rpms: - perl-List-Compare: - rationale: A dependency of tangerine. - ref: master - perl-Tangerine: - rationale: Provides API for this module and is a dependency of tangerine. - ref: master - tangerine: - rationale: Provides API for this module. - buildorder: 10 - ref: master -version: 2 diff --git a/modulemd-1.8.16/test_data/issue16.yaml b/modulemd-1.8.16/test_data/issue16.yaml deleted file mode 100644 index 552e276..0000000 --- a/modulemd-1.8.16/test_data/issue16.yaml +++ /dev/null @@ -1,38 +0,0 @@ -document: modulemd -version: 1 -data: - summary: A test module in all its beautiful beauty - description: >- - This module demonstrates how to write simple modulemd files And - can be used for testing the build and release pipeline. - license: - module: [ MIT ] - dependencies: - buildrequires: - platform: f28 - requires: - platform: f28 - references: - community: https://docs.pagure.org/modularity/ - documentation: https://fedoraproject.org/wiki/Fedora_Packaging_Guidelines_for_Modules - profiles: - default: - rpms: - - tangerine - api: - rpms: - - perl-Tangerine - - tangerine - components: - rpms: - perl-List-Compare: - rationale: A dependency of tangerine. - ref: master - perl-Tangerine: - rationale: Provides API for this module and is a dependency of tangerine. - ref: master - tangerine: - rationale: Provides API for this module. - buildorder: 10 - ref: master - diff --git a/modulemd-1.8.16/test_data/issue25.yaml b/modulemd-1.8.16/test_data/issue25.yaml deleted file mode 100644 index 71ca70b..0000000 --- a/modulemd-1.8.16/test_data/issue25.yaml +++ /dev/null @@ -1,77 +0,0 @@ -document: modulemd -version: 1 -data: - name: testmodule - stream: master - version: 20180205135154 - context: c2c572ec - summary: A test module in all its beautiful beauty - description: This module demonstrates how to write simple modulemd files And can - be used for testing the build and release pipeline. - license: - module: - - MIT - dependencies: - buildrequires: - platform: f28 - requires: - platform: f28 - references: - community: https://docs.pagure.org/modularity/ - documentation: https://fedoraproject.org/wiki/Fedora_Packaging_Guidelines_for_Modules - buildopts: - rpms: - macros: |- - %my_macro 1 - xmd: - mbs: - buildrequires: - platform: - filtered_rpms: [] - ref: virtual - stream: f28 - version: '3' - context: '00000000' - commit: 65a7721ee4eff44d2a63fb8f3a8da6e944ab7f4d - requires: - platform: - filtered_rpms: [] - ref: virtual - stream: f28 - version: '3' - rpms: - perl-List-Compare: - ref: ac0f3bccca9dcb8465c434ac4c38974bf6205c28 - perl-Tangerine: - ref: 7e96446223f1ad84a26c7cf23d6591cd9f6326c6 - tangerine: - ref: c0f9a7dbd8cf823a2bdc19eeeed20d22b0aa52bf - mse: true - scmurl: https://src.fedoraproject.org/modules/testmodule.git?#65a7721ee4eff44d2a63fb8f3a8da6e944ab7f4d - profiles: - default: - rpms: - - tangerine - api: - rpms: - - perl-Tangerine - - tangerine - components: - rpms: - perl-List-Compare: - rationale: A dependency of tangerine. - repository: git://pkgs.fedoraproject.org/rpms/perl-List-Compare - ref: master - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-List-Compare - tangerine: - rationale: Provides API for this module. - buildorder: 10 - repository: git://pkgs.fedoraproject.org/rpms/tangerine - ref: master - cache: http://pkgs.fedoraproject.org/repo/pkgs/tangerine - perl-Tangerine: - rationale: Provides API for this module and is a dependency of tangerine. - repository: git://pkgs.fedoraproject.org/rpms/perl-Tangerine - ref: master - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Tangerine - diff --git a/modulemd-1.8.16/test_data/issue26.yaml b/modulemd-1.8.16/test_data/issue26.yaml deleted file mode 100644 index 6cef336..0000000 --- a/modulemd-1.8.16/test_data/issue26.yaml +++ /dev/null @@ -1,61 +0,0 @@ -data: - api: - rpms: [tangerine, perl-Tangerine] - components: - rpms: - perl-List-Compare: {cache: 'http://pkgs.fedoraproject.org/repo/pkgs/perl-List-Compare', - rationale: A dependency of tangerine., ref: 76f9d8c8e87eed0aab91034b01d3d5ff6bd5b4cb, - repository: 'git://pkgs.fedoraproject.org/rpms/perl-List-Compare'} - perl-Tangerine: {cache: 'http://pkgs.fedoraproject.org/repo/pkgs/perl-Tangerine', - rationale: Provides API for this module and is a dependency of tangerine., - ref: 4ceea43add2366d8b8c5a622a2fb563b625b9abf, repository: 'git://pkgs.fedoraproject.org/rpms/perl-Tangerine'} - tangerine: {buildorder: 10, cache: 'http://pkgs.fedoraproject.org/repo/pkgs/tangerine', - rationale: Provides API for this module., ref: fbed359411a1baa08d4a88e0d12d426fbf8f602c, - repository: 'git://pkgs.fedoraproject.org/rpms/tangerine'} - dependencies: - buildrequires: - zebra: stripes - base-runtime: master - fluffy: slippers - requires: - fidget: spinner - base-runtime: master - silly: puddy - glass: water - description: This module demonstrates how to write simple modulemd files And can - be used for testing the build and release pipeline. - filter: {} - license: - module: [MIT] - name: testmodule - profiles: - default: - rpms: [tangerine] - references: {community: 'https://fedoraproject.org/wiki/Modularity', documentation: 'https://fedoraproject.org/wiki/Fedora_Packaging_Guidelines_for_Modules', - tracker: 'https://taiga.fedorainfracloud.org/project/modularity'} - stream: master - summary: A test module in all its beautiful beauty - version: 20170109091357 - xmd: - mbs: - buildrequires: - zebra: - ref: 08f8671f5925ecbd7c55d83e8368dd0be81ef8ed - base-runtime: - ref: ae993ba84f4bce554471382ccba917ef16265f11 - fluffy: - ref: ea83325b231f64c575ea104bb698e9d43b80469a - requires: - fidget: - ref: 5aa32bd61aadaec8295ef90f79daaf190e387509 - base-runtime: - ref: ae993ba84f4bce554471382ccba917ef16265f11 - silly: - ref: 0e2a1f9246118180d61aad731923ebd85154bc6e - glass: - ref: ea8753e832974dd5b0d95cd6bb7d26727d2ba742 - commit: 7fea453bc362cc8e5aa41e129e689baea853653d - scmurl: git://pkgs.stg.fedoraproject.org/modules/testmodule.git?#7fea453 -document: modulemd -version: 1 - diff --git a/modulemd-1.8.16/test_data/issue46.yaml b/modulemd-1.8.16/test_data/issue46.yaml deleted file mode 100644 index afcfd6c..0000000 --- a/modulemd-1.8.16/test_data/issue46.yaml +++ /dev/null @@ -1,66 +0,0 @@ ---- -document: modulemd -version: 2 -data: - name: django - stream: 1.6 - version: 20180307130104 - context: c2c572ec - summary: A high-level Python Web framework - description: >- - Django is a high-level Python Web framework that encourages rapid development - and a clean, pragmatic design. It focuses on automating as much as possible and - adhering to the DRY (Don't Repeat Yourself) principle. - license: - module: - - MIT - xmd: - mbs: - scmurl: https://src.fedoraproject.org/modules/django.git?#90c50f8ad1cb5ca41d62632699c375dce6353adf - commit: 90c50f8ad1cb5ca41d62632699c375dce6353adf - buildrequires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - rpms: - python-django: - ref: 1c3a01558a435b56f8ef4f8fc0e5c1cd35f006a5 - requires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - dependencies: - - buildrequires: - platform: [f28] - requires: - platform: [f28] - references: - community: https://www.djangoproject.com - documentation: https://docs.djangoproject.com - tracker: https://code.djangoproject.com/query - profiles: - default: - rpms: - - python2-django - python2_development: - rpms: - - python2-django - api: - rpms: - - python2-django - components: - rpms: - python-django: - rationale: The Django python web framework - repository: git://pkgs.fedoraproject.org/rpms/python-django - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-django - ref: 1.6 - artifacts: - rpms: - - python-django-bash-completion-1.6.11.7-1.module_1560+089ce146.noarch - - python2-django-1.6.11.7-1.module_1560+089ce146.noarch -... diff --git a/modulemd-1.8.16/test_data/issue53.yaml b/modulemd-1.8.16/test_data/issue53.yaml deleted file mode 100644 index 607d4fc..0000000 --- a/modulemd-1.8.16/test_data/issue53.yaml +++ /dev/null @@ -1,462 +0,0 @@ ---- -document: modulemd -version: 2 -data: - name: django - stream: 1.6 - version: 20180307130104 - context: c2c572ec - summary: A high-level Python Web framework - description: >- - Django is a high-level Python Web framework that encourages rapid development - and a clean, pragmatic design. It focuses on automating as much as possible and - adhering to the DRY (Don't Repeat Yourself) principle. - license: - module: - - MIT - xmd: - mbs: - scmurl: https://src.fedoraproject.org/modules/django.git?#90c50f8ad1cb5ca41d62632699c375dce6353adf - commit: 90c50f8ad1cb5ca41d62632699c375dce6353adf - buildrequires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - rpms: - python-django: - ref: 1c3a01558a435b56f8ef4f8fc0e5c1cd35f006a5 - requires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - dependencies: - - buildrequires: - platform: [f28] - requires: - platform: [f28] - references: - community: https://www.djangoproject.com - documentation: https://docs.djangoproject.com - tracker: https://code.djangoproject.com/query - profiles: - default: - rpms: - - python2-django - python2_development: - rpms: - - python2-django - api: - rpms: - - python2-django - components: - rpms: - python-django: - rationale: The Django python web framework - repository: git://pkgs.fedoraproject.org/rpms/python-django - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-django - ref: 1.6 - artifacts: - rpms: - - python-django-bash-completion-0:1.6.11.7-1.module_1560+089ce146.noarch - - python2-django-0:1.6.11.7-1.module_1560+089ce146.noarch -... ---- -document: modulemd -version: 2 -data: - name: nodejs - stream: 6 - version: 20180308155546 - context: c2c572ec - summary: Javascript runtime - description: >- - Node.js is a platform built on Chrome''s JavaScript runtime for easily building - fast, scalable network applications. Node.js uses an event-driven, non-blocking - I/O model that makes it lightweight and efficient, perfect for data-intensive - real-time applications that run across distributed devices. - license: - module: - - MIT - xmd: - mbs: - scmurl: https://src.fedoraproject.org/modules/nodejs.git?#2d349c5055939081aefa37d71cd77051d235cb79 - commit: 2d349c5055939081aefa37d71cd77051d235cb79 - buildrequires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - rpms: - nodejs: - ref: 374ae23edf3676653fec706a5c81c5cdf019ce11 - requires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - dependencies: - - buildrequires: - platform: [f28] - requires: - platform: [f28] - references: - community: http://nodejs.org - documentation: http://nodejs.org/en/docs - tracker: https://github.com/nodejs/node/issues - profiles: - default: - rpms: - - nodejs - - npm - development: - rpms: - - nodejs - - nodejs-devel - - npm - minimal: - rpms: - - nodejs - api: - rpms: - - nodejs - - nodejs-devel - - npm - components: - rpms: - nodejs: - rationale: Javascript runtime and npm package manager. - repository: git://pkgs.fedoraproject.org/rpms/nodejs - cache: http://pkgs.fedoraproject.org/repo/pkgs/nodejs - ref: 6 - buildorder: 10 - artifacts: - rpms: - - nodejs-1:6.13.1-1.module_1575+55808bea.x86_64 - - nodejs-devel-1:6.13.1-1.module_1575+55808bea.x86_64 - - nodejs-docs-1:6.13.1-1.module_1575+55808bea.noarch - - npm-1:3.10.10-1.6.13.1.1.module_1575+55808bea.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: nodejs - stream: 8 - version: 20180308143646 - context: c2c572ec - summary: Javascript runtime - description: >- - Node.js is a platform built on Chrome''s JavaScript runtime for easily building - fast, scalable network applications. Node.js uses an event-driven, non-blocking - I/O model that makes it lightweight and efficient, perfect for data-intensive - real-time applications that run across distributed devices. - license: - module: - - MIT - xmd: - mbs: - scmurl: https://src.fedoraproject.org/modules/nodejs.git?#4dc5da13fa51c5a5cc9f02a81d71416bc6ce787e - commit: 4dc5da13fa51c5a5cc9f02a81d71416bc6ce787e - buildrequires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - rpms: - nodejs: - ref: 64f8f82763943f764d25225c2d95ae065490b10a - requires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - dependencies: - - buildrequires: - platform: [f28] - requires: - platform: [f28] - references: - community: http://nodejs.org - documentation: http://nodejs.org/en/docs - tracker: https://github.com/nodejs/node/issues - profiles: - default: - rpms: - - nodejs - - npm - development: - rpms: - - nodejs - - nodejs-devel - - npm - minimal: - rpms: - - nodejs - api: - rpms: - - nodejs - - nodejs-devel - - npm - components: - rpms: - nodejs: - rationale: Javascript runtime and npm package manager. - repository: git://pkgs.fedoraproject.org/rpms/nodejs - cache: http://pkgs.fedoraproject.org/repo/pkgs/nodejs - ref: 8 - buildorder: 10 - artifacts: - rpms: - - nodejs-1:8.10.0-3.module_1572+d7ec111e.x86_64 - - nodejs-devel-1:8.10.0-3.module_1572+d7ec111e.x86_64 - - nodejs-docs-1:8.10.0-3.module_1572+d7ec111e.noarch - - npm-1:5.6.0-1.8.10.0.3.module_1572+d7ec111e.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: nodejs - stream: 9 - version: 20180308142225 - context: c2c572ec - summary: Javascript runtime - description: >- - Node.js is a platform built on Chrome''s JavaScript runtime for easily building - fast, scalable network applications. Node.js uses an event-driven, non-blocking - I/O model that makes it lightweight and efficient, perfect for data-intensive - real-time applications that run across distributed devices. - license: - module: - - MIT - xmd: - mbs: - scmurl: https://src.fedoraproject.org/modules/nodejs.git?#3f3665745cb84576f1faa66646cb8c37913ec461 - commit: 3f3665745cb84576f1faa66646cb8c37913ec461 - buildrequires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - rpms: - nodejs: - ref: 65648a2672dc03641b9eaa4d25a8f19d94fd90c3 - requires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - dependencies: - - buildrequires: - platform: [f28] - requires: - platform: [f28] - references: - community: http://nodejs.org - documentation: http://nodejs.org/en/docs - tracker: https://github.com/nodejs/node/issues - profiles: - default: - rpms: - - nodejs - - npm - development: - rpms: - - nodejs - - nodejs-devel - - npm - minimal: - rpms: - - nodejs - api: - rpms: - - nodejs - - nodejs-devel - - npm - components: - rpms: - nodejs: - rationale: Javascript runtime and npm package manager. - repository: git://pkgs.fedoraproject.org/rpms/nodejs - cache: http://pkgs.fedoraproject.org/repo/pkgs/nodejs - ref: 9 - buildorder: 10 - artifacts: - rpms: - - nodejs-1:9.8.0-1.module_1571+4f4bc63d.x86_64 - - nodejs-devel-1:9.8.0-1.module_1571+4f4bc63d.x86_64 - - nodejs-docs-1:9.8.0-1.module_1571+4f4bc63d.noarch - - npm-1:5.6.0-1.9.8.0.1.module_1571+4f4bc63d.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: reviewboard - stream: 2.5 - version: 20180206144254 - context: e0c83381 - summary: A web-based code review tool - description: >- - Review Board is a powerful web-based code review tool that offers developers an - easy way to handle code reviews. It scales well from small projects to large companies - and offers a variety of tools to take much of the stress and time out of the code - review process. - license: - module: - - MIT - xmd: - mbs: - scmurl: https://src.fedoraproject.org/modules/reviewboard.git?#1738e1ce6352c0d4da31ba137cab0b5dc5f30166 - commit: 1738e1ce6352c0d4da31ba137cab0b5dc5f30166 - buildrequires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 3 - django: - ref: 14fb96b250feec2e2c883e06255de2c36faa7313 - stream: 1.6 - filtered_rpms: [] - version: 20180117164842 - rpms: - python-django-multiselectfield: - ref: 149bf58875fb7b55efe29e1735baf96d44eb99a9 - ReviewBoard: - ref: 5d28213f6a797e5ce28ad05ab23f80fe67353da8 - python-django-evolution: - ref: 512424e1fc4b99f6f74c01a4130a4d9402b56b4e - python-django-pipeline: - ref: f019137be96cf86f49a81001fef47a0c7ab6aa35 - python-markdown: - ref: 0af9dd03b4822c04be2742b39b5a4d48ef2d2222 - python-django-haystack: - ref: 20fe71a6fc50a83b24578fbaf86e94a4ca584d31 - python-djblets: - ref: d5634779089456ff3d0ac7b78eec81e13ff4c733 - requires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 3 - django: - ref: 14fb96b250feec2e2c883e06255de2c36faa7313 - stream: 1.6 - filtered_rpms: [] - version: 20180117164842 - dependencies: - - buildrequires: - django: [1.6] - platform: [f28] - requires: - django: [1.6] - platform: [f28] - references: - community: https://www.reviewboard.org - documentation: https://www.reviewboard.org/docs - tracker: https://hellosplat.com/s/beanbag/tickets/ - profiles: - default: - rpms: - - ReviewBoard - server: - rpms: - - ReviewBoard - api: - rpms: - - ReviewBoard - - python2-djblets - components: - rpms: - ReviewBoard: - rationale: The Review Board code review tool - repository: git://pkgs.fedoraproject.org/rpms/ReviewBoard - cache: http://pkgs.fedoraproject.org/repo/pkgs/ReviewBoard - ref: 2.5 - buildorder: 20 - python-django-evolution: - rationale: A database modification library used and maintained by the Review - Board upstream - repository: git://pkgs.fedoraproject.org/rpms/python-django-evolution - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-django-evolution - ref: 0.7 - python-django-haystack: - rationale: An older version of the Haystack search library for Django, needed - for compatibility. - repository: git://pkgs.fedoraproject.org/rpms/python-django-haystack - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-django-haystack - ref: 2.4 - python-django-multiselectfield: - rationale: An older version of a mult-select form field needed by Review Board. - repository: git://pkgs.fedoraproject.org/rpms/python-django-multiselectfield - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-django-multiselectfield - ref: 0.1 - python-django-pipeline: - rationale: An older version of this asset-packaging library for Django that - is compatible with Review Board. - repository: git://pkgs.fedoraproject.org/rpms/python-django-pipeline - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-django-pipeline - ref: 1.3 - python-djblets: - rationale: Review Board tool library - repository: git://pkgs.fedoraproject.org/rpms/python-djblets - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-djblets - ref: 0.9 - buildorder: 10 - python-markdown: - rationale: An older version of this Markdown implementation that is compatible - with Review Board. - repository: git://pkgs.fedoraproject.org/rpms/python-markdown - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-markdown - ref: 2.4 - artifacts: - rpms: - - ReviewBoard-0:2.5.17-17.module_d032b812.noarch - - python-django-haystack-docs-0:2.4.1-12.module_d032b812.noarch - - python2-django-evolution-1:0.7.7-12.module_d032b812.noarch - - python2-django-haystack-0:2.4.1-12.module_d032b812.noarch - - python2-django-multiselectfield-0:0.1.3-10.module_d032b812.noarch - - python2-django-pipeline-0:1.3.27-11.module_d032b812.noarch - - python2-djblets-0:0.9.9-13.module_d032b812.noarch - - python2-markdown-0:2.4.1-11.module_d032b812.noarch - - python3-markdown-0:2.4.1-11.module_d032b812.noarch -... ---- -document: modulemd-defaults -version: 1 -data: - module: reviewboard - stream: 2.5 - profiles: - 2.5: [default] -... ---- -document: modulemd-defaults -version: 1 -data: - module: nodejs - profiles: - 6: [default] - 8: [default] - 9: [default] -... ---- -document: modulemd-defaults -version: 1 -data: - module: django - profiles: - 1.6: [default] -... diff --git a/modulemd-1.8.16/test_data/issue88.yaml b/modulemd-1.8.16/test_data/issue88.yaml deleted file mode 100644 index 572d4f2..0000000 --- a/modulemd-1.8.16/test_data/issue88.yaml +++ /dev/null @@ -1,13622 +0,0 @@ ---- -document: modulemd -version: 2 -data: - name: testmodule - stream: master - version: 20180405123256 - context: c2c572ec - arch: x86_64 - summary: A test module in all its beautiful beauty - description: >- - This module demonstrates how to write simple modulemd files And can be used for - testing the build and release pipeline. - license: - module: - - MIT - xmd: - mbs: - scmurl: https://src.fedoraproject.org/modules/testmodule.git?#0d33e028e4561f82ea43f670ee6366675cd6a6fe - commit: 0d33e028e4561f82ea43f670ee6366675cd6a6fe - buildrequires: - platform: - ref: virtual - stream: f29 - filtered_rpms: [] - version: 4 - rpms: - perl-List-Compare: - ref: c6a689a6ce2683b15b32f83e6cb5d43ffd3816f5 - tangerine: - ref: 239ada495d941ceefd8f359e1d8a47877fbba4a9 - perl-Tangerine: - ref: 7e96446223f1ad84a26c7cf23d6591cd9f6326c6 - requires: - platform: - ref: virtual - stream: f29 - filtered_rpms: [] - version: 4 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://docs.pagure.org/modularity/ - documentation: https://fedoraproject.org/wiki/Fedora_Packaging_Guidelines_for_Modules - profiles: - default: - rpms: - - tangerine - api: - rpms: - - perl-Tangerine - - tangerine - buildopts: - rpms: {} - components: - rpms: - perl-List-Compare: - rationale: A dependency of tangerine. - repository: git://pkgs.fedoraproject.org/rpms/perl-List-Compare - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-List-Compare - ref: master - perl-Tangerine: - rationale: Provides API for this module and is a dependency of tangerine. - repository: git://pkgs.fedoraproject.org/rpms/perl-Tangerine - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Tangerine - ref: 7e96446 - tangerine: - rationale: Provides API for this module. - repository: git://pkgs.fedoraproject.org/rpms/tangerine - cache: http://pkgs.fedoraproject.org/repo/pkgs/tangerine - ref: master - buildorder: 10 - artifacts: - rpms: - - perl-List-Compare-0:0.53-9.module_1588+5eed94c6.noarch - - perl-Tangerine-0:0.22-2.module_1588+5eed94c6.noarch - - tangerine-0:0.22-7.module_1588+5eed94c6.noarch -... ---- -document: modulemd -version: 2 -data: - name: stratis - stream: master - version: 20180726133047 - context: b33445dc - arch: x86_64 - summary: Stratis Storage - description: >- - Easy to use local storage management. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/stratis.git?#9b532650b3aa46f31e204f9e592f77092b39d84c - commit: 9b532650b3aa46f31e204f9e592f77092b39d84c - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - stratisd: - ref: fdbba2c34c470cc375c439c92a5d88093a6c5a5b - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [] - references: - community: https://github.com/stratis-storage - documentation: https://stratis-storage.github.io - tracker: https://github.com/stratis-storage/stratisd/issues - profiles: - default: - rpms: - - stratis-cli - - stratisd - api: - rpms: - - stratisd - buildopts: - rpms: {} - components: - rpms: - stratisd: - rationale: 'Daemon that manages a pool of block devices to create flexible - filesystems. - - - Main component. - -' - repository: git://pkgs.fedoraproject.org/rpms/stratisd - cache: http://pkgs.fedoraproject.org/repo/pkgs/stratisd - ref: master - artifacts: - rpms: - - stratisd-0:0.5.4-3.module_1955+a3f37153.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: scala - stream: 2.10 - version: 20180702155503 - context: 819b5873 - arch: x86_64 - summary: A hybrid functional/object-oriented language for the JVM - description: >- - Scala is a general purpose programming language designed to express common programming - patterns in a concise, elegant, and type-safe way. It smoothly integrates features - of object-oriented and functional languages. It is also fully interoperable with - Java. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/scala.git?#90dc1eed8ec4fbf279c20f5f4ec59d01efc2890a - commit: 90dc1eed8ec4fbf279c20f5f4ec59d01efc2890a - buildrequires: - javapackages-tools: - ref: 1e429a4d686d3fdd1d93ce7e8ac7254148ea3471 - stream: 201801 - context: b43b0c8f - version: 20180629150827 - filtered_rpms: [] - platform: - ref: virtual - stream: f28 - context: 00000000 - version: 4 - filtered_rpms: [] - rpms: - jline: - ref: 7b4b53826f84932425353b5ebebe2e607fa6964c - scala: - ref: da70d06a833057731e73c845aa338b1bd6d04ded - jansi: - ref: 4bdd2387b97de8352a0f7a976b7d8ccde8db0b24 - jansi-native: - ref: 544b397797de885ca9b65442a4f956f817b76ddc - hawtjni: - ref: 93281e0174d79dfd549e57818292b1cbec5a7703 - dependencies: - - requires: - platform: [] - profiles: - default: - rpms: - - scala - api: - rpms: - - scala - - scala-apidoc - - scala-swing - filter: - rpms: - - ant-scala - - hawtjni - - hawtjni-javadoc - - jansi-javadoc - - jansi-native-javadoc - - jline-javadoc - - maven-hawtjni-plugin - buildopts: - rpms: - macros: | - %_with_xmvn_javadoc 1 - %_without_asciidoc 1 - %_without_avalon 1 - %_without_bouncycastle 1 - %_without_cython 1 - %_without_dafsa 1 - %_without_desktop 1 - %_without_doxygen 1 - %_without_dtd 1 - %_without_eclipse 1 - %_without_ehcache 1 - %_without_emacs 1 - %_without_equinox 1 - %_without_fop 1 - %_without_ftp 1 - %_without_gradle 1 - %_without_groovy 1 - %_without_hadoop 1 - %_without_hsqldb 1 - %_without_itext 1 - %_without_jackson 1 - %_without_jmh 1 - %_without_jna 1 - %_without_jpa 1 - %_without_junit5 1 - %_without_logback 1 - %_without_markdown 1 - %_without_memcached 1 - %_without_memoryfilesystem 1 - %_without_obr 1 - %_without_python 1 - %_without_reporting 1 - %_without_scm 1 - %_without_snappy 1 - %_without_spring 1 - %_without_ssh 1 - %_without_testlib 1 - components: - rpms: - hawtjni: - rationale: 'Runtime dependency of jansi, jansi-native. - -' - repository: git://pkgs.fedoraproject.org/rpms/hawtjni - cache: http://pkgs.fedoraproject.org/repo/pkgs/hawtjni - ref: javapackages - buildorder: 10 - jansi: - rationale: 'Runtime dependency of jline, scala. - -' - repository: git://pkgs.fedoraproject.org/rpms/jansi - cache: http://pkgs.fedoraproject.org/repo/pkgs/jansi - ref: javapackages - buildorder: 30 - jansi-native: - rationale: 'Runtime dependency of jansi. - -' - repository: git://pkgs.fedoraproject.org/rpms/jansi-native - cache: http://pkgs.fedoraproject.org/repo/pkgs/jansi-native - ref: javapackages - buildorder: 20 - jline: - rationale: 'Runtime dependency of scala. - -' - repository: git://pkgs.fedoraproject.org/rpms/jline - cache: http://pkgs.fedoraproject.org/repo/pkgs/jline - ref: javapackages - buildorder: 40 - scala: - rationale: 'Module API. - -' - repository: git://pkgs.fedoraproject.org/rpms/scala - cache: http://pkgs.fedoraproject.org/repo/pkgs/scala - ref: javapackages - buildorder: 50 - artifacts: - rpms: - - hawtjni-runtime-0:1.16-1.module_1889+fac7270b.noarch - - jansi-0:1.17.1-1.module_1889+fac7270b.noarch - - jansi-native-0:1.7-5.module_1889+fac7270b.x86_64 - - jline-0:2.14.6-2.module_1889+fac7270b.noarch - - scala-0:2.10.6-8.module_1889+fac7270b.noarch - - scala-apidoc-0:2.10.6-8.module_1889+fac7270b.noarch - - scala-swing-0:2.10.6-8.module_1889+fac7270b.noarch -... ---- -document: modulemd -version: 2 -data: - name: ripgrep - stream: master - version: 20180804140932 - context: b33445dc - arch: x86_64 - summary: Line oriented search tool using Rust's regex library - description: > - Line oriented search tool using Rust's regex library. Combines - - the raw performance of grep with the usability of the silver searcher. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/ripgrep.git?#44a146a6fc3cc5311c2dd585e66d34006e539d38 - commit: 44a146a6fc3cc5311c2dd585e66d34006e539d38 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - rust-ripgrep: - ref: 844193e3738eeda66372e1016b7d1dbc2f5259ba - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [] - references: - community: https://github.com/BurntSushi/ripgrep - documentation: https://github.com/BurntSushi/ripgrep/blob/master/FAQ.md - tracker: https://github.com/BurntSushi/ripgrep/issues - profiles: - default: - rpms: - - ripgrep - api: - rpms: - - ripgrep - buildopts: - rpms: {} - components: - rpms: - rust-ripgrep: - rationale: Main component. - repository: git://pkgs.fedoraproject.org/rpms/rust-ripgrep - cache: http://pkgs.fedoraproject.org/repo/pkgs/rust-ripgrep - ref: master - artifacts: - rpms: - - ripgrep-0:0.9.0-1.module_1969+efa3f7be.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: reviewboard - stream: 3.0 - version: 20180828143238 - context: 083bce86 - arch: x86_64 - summary: A web-based code review tool - description: >- - Review Board is a powerful web-based code review tool that offers developers an - easy way to handle code reviews. It scales well from small projects to large companies - and offers a variety of tools to take much of the stress and time out of the code - review process. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/reviewboard.git?#e6f3a5daedd9ff9db8b612787cea963bd4bfe5e7 - commit: e6f3a5daedd9ff9db8b612787cea963bd4bfe5e7 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - django: - ref: da53d66d3db1aa5f6afd75887b00fa26849bcc0a - stream: 1.6 - context: 6c81f848 - version: 20180828135711 - filtered_rpms: [] - rpms: - ReviewBoard: - ref: 5df2608020e4d3bb2fd0474178a59e496e6d070f - python-django-cors-headers: - ref: 1c0762b2af97e2ddaef3e1847fdb06d950e61ff3 - python-django-evolution: - ref: 512424e1fc4b99f6f74c01a4130a4d9402b56b4e - python-oauthlib: - ref: 74c26e26899c3217d93f72ae7e0ccde0053dc5f0 - python-django-multiselectfield: - ref: 149bf58875fb7b55efe29e1735baf96d44eb99a9 - python-django-braces: - ref: 172667f02de94fec7cc7c3d64e6c86c2c9e9f41c - python-django-haystack: - ref: 20fe71a6fc50a83b24578fbaf86e94a4ca584d31 - python-django-oauth-toolkit: - ref: 2bbcf8bcefef32936d4e36e9468280bf99ea8532 - python-django-pipeline: - ref: 92809ad85daf2270bb6d192adc3106fb1089cc60 - python-asana: - ref: e8395e75464604bbf4ebe55a0ee3074aafa8ca2a - python-djblets: - ref: 1bc612af932bc1462a44dadbbedf24eee386e76e - python-pymdown-extensions: - ref: 78a87635b426ca7e8c6f608a38789e82b5611dc9 - dependencies: - - buildrequires: - django: [1.6] - platform: [f29] - requires: - django: [1.6] - platform: [f29] - references: - community: https://www.reviewboard.org - documentation: https://www.reviewboard.org/docs - tracker: https://hellosplat.com/s/beanbag/tickets/ - profiles: - default: - rpms: - - ReviewBoard - server: - rpms: - - ReviewBoard - api: - rpms: - - ReviewBoard - - python2-djblets - buildopts: - rpms: {} - components: - rpms: - ReviewBoard: - rationale: The Review Board code review tool - repository: git+https://src.fedoraproject.org/rpms/ReviewBoard - cache: https://src.fedoraproject.org/repo/pkgs/ReviewBoard - ref: 3.0 - buildorder: 20 - python-asana: - rationale: Required by ReviewBoard to interact with Asana - repository: git+https://src.fedoraproject.org/rpms/python-asana - cache: https://src.fedoraproject.org/repo/pkgs/python-asana - ref: 0.7 - python-django-braces: - rationale: Required by django-oauth-toolkit - repository: git+https://src.fedoraproject.org/rpms/python-django-braces - cache: https://src.fedoraproject.org/repo/pkgs/python-django-braces - ref: 1 - python-django-cors-headers: - rationale: Required by ReviewBoard - repository: git+https://src.fedoraproject.org/rpms/python-django-cors-headers - cache: https://src.fedoraproject.org/repo/pkgs/python-django-cors-headers - ref: 1.1 - python-django-evolution: - rationale: A database modification library used and maintained by the Review - Board upstream - repository: git+https://src.fedoraproject.org/rpms/python-django-evolution - cache: https://src.fedoraproject.org/repo/pkgs/python-django-evolution - ref: 0.7 - python-django-haystack: - rationale: An older version of the Haystack search library for Django, needed - for compatibility. - repository: git+https://src.fedoraproject.org/rpms/python-django-haystack - cache: https://src.fedoraproject.org/repo/pkgs/python-django-haystack - ref: 2.4 - python-django-multiselectfield: - rationale: An older version of a mult-select form field needed by Review Board. - repository: git+https://src.fedoraproject.org/rpms/python-django-multiselectfield - cache: https://src.fedoraproject.org/repo/pkgs/python-django-multiselectfield - ref: 0.1 - python-django-oauth-toolkit: - rationale: Required by ReviewBoard for OAuth2 support - repository: git+https://src.fedoraproject.org/rpms/python-django-oauth-toolkit - cache: https://src.fedoraproject.org/repo/pkgs/python-django-oauth-toolkit - ref: 0.9 - buildorder: 10 - python-django-pipeline: - rationale: An older version of this asset-packaging library for Django that - is compatible with Review Board. - repository: git+https://src.fedoraproject.org/rpms/python-django-pipeline - cache: https://src.fedoraproject.org/repo/pkgs/python-django-pipeline - ref: 1.6 - python-djblets: - rationale: Review Board tool library - repository: git+https://src.fedoraproject.org/rpms/python-djblets - cache: https://src.fedoraproject.org/repo/pkgs/python-djblets - ref: 1.0 - buildorder: 10 - python-oauthlib: - rationale: Required by django-oauth-toolkit - repository: git+https://src.fedoraproject.org/rpms/python-oauthlib - cache: https://src.fedoraproject.org/repo/pkgs/python-oauthlib - ref: 1.0 - python-pymdown-extensions: - rationale: Required by ReviewBoard for Markdown support - repository: git+https://src.fedoraproject.org/rpms/python-pymdown-extensions - cache: https://src.fedoraproject.org/repo/pkgs/python-pymdown-extensions - ref: 3 - artifacts: - rpms: - - ReviewBoard-0:3.0.8-1.module_2082+1fa91c5a.noarch - - python-django-haystack-docs-0:2.4.1-12.module_1655+c1bb0ce4.noarch - - python2-asana-0:0.7.0-3.module_2082+1fa91c5a.noarch - - python2-django-braces-0:1.12.0-3.module_1655+c1bb0ce4.noarch - - python2-django-cors-headers-0:1.1.0-1.module_1655+c1bb0ce4.noarch - - python2-django-evolution-1:0.7.7-12.module_1655+c1bb0ce4.noarch - - python2-django-haystack-0:2.4.1-12.module_1655+c1bb0ce4.noarch - - python2-django-multiselectfield-0:0.1.3-10.module_1655+c1bb0ce4.noarch - - python2-django-oauth-toolkit-0:0.9.0-3.module_1655+c1bb0ce4.noarch - - python2-django-pipeline-0:1.6.14-2.module_2082+1fa91c5a.noarch - - python2-djblets-0:1.0.6-1.module_1839+6b846779.noarch - - python2-oauthlib-0:1.0.3-5.module_1655+c1bb0ce4.noarch - - python2-pymdown-extensions-0:3.5-5.module_1655+c1bb0ce4.noarch - - python3-django-cors-headers-0:1.1.0-1.module_1655+c1bb0ce4.noarch - - python3-oauthlib-0:1.0.3-5.module_1655+c1bb0ce4.noarch -... ---- -document: modulemd -version: 2 -data: - name: reviewboard - stream: 2.5 - version: 20180828143308 - context: 083bce86 - arch: x86_64 - summary: A web-based code review tool - description: >- - Review Board is a powerful web-based code review tool that offers developers an - easy way to handle code reviews. It scales well from small projects to large companies - and offers a variety of tools to take much of the stress and time out of the code - review process. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/reviewboard.git?#0fc31243aa85666e4e584aebda7a74e430cd0698 - commit: 0fc31243aa85666e4e584aebda7a74e430cd0698 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - django: - ref: da53d66d3db1aa5f6afd75887b00fa26849bcc0a - stream: 1.6 - context: 6c81f848 - version: 20180828135711 - filtered_rpms: [] - rpms: - python-django-multiselectfield: - ref: 149bf58875fb7b55efe29e1735baf96d44eb99a9 - python-markdown: - ref: 96c1b2f925c2ad3b7aae04ab7ebf25ae1d714ebf - python-django-evolution: - ref: 512424e1fc4b99f6f74c01a4130a4d9402b56b4e - python-django-pipeline: - ref: f019137be96cf86f49a81001fef47a0c7ab6aa35 - ReviewBoard: - ref: 5d28213f6a797e5ce28ad05ab23f80fe67353da8 - python-djblets: - ref: d5634779089456ff3d0ac7b78eec81e13ff4c733 - python-django-haystack: - ref: 20fe71a6fc50a83b24578fbaf86e94a4ca584d31 - dependencies: - - buildrequires: - django: [1.6] - platform: [f29] - requires: - django: [1.6] - platform: [f29] - references: - community: https://www.reviewboard.org - documentation: https://www.reviewboard.org/docs - tracker: https://hellosplat.com/s/beanbag/tickets/ - profiles: - default: - rpms: - - ReviewBoard - server: - rpms: - - ReviewBoard - api: - rpms: - - ReviewBoard - - python2-djblets - buildopts: - rpms: {} - components: - rpms: - ReviewBoard: - rationale: The Review Board code review tool - repository: git+https://src.fedoraproject.org/rpms/ReviewBoard - cache: https://src.fedoraproject.org/repo/pkgs/ReviewBoard - ref: 2.5 - buildorder: 20 - python-django-evolution: - rationale: A database modification library used and maintained by the Review - Board upstream - repository: git+https://src.fedoraproject.org/rpms/python-django-evolution - cache: https://src.fedoraproject.org/repo/pkgs/python-django-evolution - ref: 0.7 - python-django-haystack: - rationale: An older version of the Haystack search library for Django, needed - for compatibility. - repository: git+https://src.fedoraproject.org/rpms/python-django-haystack - cache: https://src.fedoraproject.org/repo/pkgs/python-django-haystack - ref: 2.4 - python-django-multiselectfield: - rationale: An older version of a mult-select form field needed by Review Board. - repository: git+https://src.fedoraproject.org/rpms/python-django-multiselectfield - cache: https://src.fedoraproject.org/repo/pkgs/python-django-multiselectfield - ref: 0.1 - python-django-pipeline: - rationale: An older version of this asset-packaging library for Django that - is compatible with Review Board. - repository: git+https://src.fedoraproject.org/rpms/python-django-pipeline - cache: https://src.fedoraproject.org/repo/pkgs/python-django-pipeline - ref: 1.3 - python-djblets: - rationale: Review Board tool library - repository: git+https://src.fedoraproject.org/rpms/python-djblets - cache: https://src.fedoraproject.org/repo/pkgs/python-djblets - ref: 0.9 - buildorder: 10 - python-markdown: - rationale: An older version of this Markdown implementation that is compatible - with Review Board. - repository: git+https://src.fedoraproject.org/rpms/python-markdown - cache: https://src.fedoraproject.org/repo/pkgs/python-markdown - ref: 2.4 - artifacts: - rpms: - - ReviewBoard-0:2.5.17-17.module_1631+4353a891.noarch - - python-django-haystack-docs-0:2.4.1-12.module_1631+4353a891.noarch - - python2-django-evolution-1:0.7.7-12.module_1631+4353a891.noarch - - python2-django-haystack-0:2.4.1-12.module_1631+4353a891.noarch - - python2-django-multiselectfield-0:0.1.3-10.module_1631+4353a891.noarch - - python2-django-pipeline-0:1.3.27-11.module_1631+4353a891.noarch - - python2-djblets-0:0.9.9-13.module_1631+4353a891.noarch - - python2-markdown-0:2.4.1-12.module_2085+40241970.noarch - - python3-markdown-0:2.4.1-12.module_2085+40241970.noarch -... ---- -document: modulemd -version: 2 -data: - name: postgresql - stream: 9.6 - version: 20180816142114 - context: 6c81f848 - arch: x86_64 - summary: PostgreSQL module - description: >- - PostgreSQL is an advanced Object-Relational database management system (DBMS). - The PostgreSQL server can be found in the postgresql-server sub-package. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/postgresql.git?#8765a18f16976cfe6122319e337c27e9ec40206a - commit: 8765a18f16976cfe6122319e337c27e9ec40206a - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - postgresql: - ref: 3f21ecc4af44639c7cb40244f5db7a48936e3452 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://docs.pagure.org/modularity/ - documentation: https://www.postgresql.org/docs/ - tracker: https://github.com/modularity-modules/postgresql - profiles: - client: - rpms: - - postgresql - default: - rpms: - - postgresql-server - server: - rpms: - - postgresql-server - api: - rpms: - - postgresql - - postgresql-server - buildopts: - rpms: - macros: | - %runselftest 0 - components: - rpms: - postgresql: - rationale: main server component - repository: git://pkgs.fedoraproject.org/rpms/postgresql - cache: http://pkgs.fedoraproject.org/repo/pkgs/postgresql - ref: 3f21ecc4 - artifacts: - rpms: - - postgresql-0:9.6.8-1.module_1710+b535a823.x86_64 - - postgresql-contrib-0:9.6.8-1.module_1710+b535a823.x86_64 - - postgresql-devel-0:9.6.8-1.module_1710+b535a823.x86_64 - - postgresql-docs-0:9.6.8-1.module_1710+b535a823.x86_64 - - postgresql-libs-0:9.6.8-1.module_1710+b535a823.x86_64 - - postgresql-plperl-0:9.6.8-1.module_1710+b535a823.x86_64 - - postgresql-plpython-0:9.6.8-1.module_1710+b535a823.x86_64 - - postgresql-plpython3-0:9.6.8-1.module_1710+b535a823.x86_64 - - postgresql-pltcl-0:9.6.8-1.module_1710+b535a823.x86_64 - - postgresql-server-0:9.6.8-1.module_1710+b535a823.x86_64 - - postgresql-static-0:9.6.8-1.module_1710+b535a823.x86_64 - - postgresql-test-0:9.6.8-1.module_1710+b535a823.x86_64 - - postgresql-upgrade-0:9.6.8-1.module_1710+b535a823.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: pki - stream: 10.6 - version: 20180816141946 - context: 6c81f848 - arch: x86_64 - summary: Dogtag PKI - description: >- - A module for Dogtag PKI. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/pki.git?#ae3c166e41f4a0c896667f2c4949c8b923421625 - commit: ae3c166e41f4a0c896667f2c4949c8b923421625 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - pki-core: - ref: 55207954907bfc90c746358248d21d7f21f5362c - jss: - ref: cb35c90824e12860c131a565ca18fcaacfbce156 - tomcatjss: - ref: 7487d4dca363dd965ba35c8732fa86c65c69f1aa - dogtag-pki: - ref: 8c9a1c4bdb4ef13a3df0a173adfecc102a28c89b - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: http://www.dogtagpki.org - documentation: http://www.dogtagpki.org - tracker: https://pagure.io/dogtagpki/issues - profiles: - default: - rpms: - - dogtag-pki - buildopts: - rpms: {} - components: - rpms: - dogtag-pki: - rationale: Dogtag PKI packages - repository: git://pkgs.fedoraproject.org/rpms/dogtag-pki - cache: http://pkgs.fedoraproject.org/repo/pkgs/dogtag-pki - ref: 10.6 - buildorder: 20 - jss: - rationale: JSS packages - repository: git://pkgs.fedoraproject.org/rpms/jss - cache: http://pkgs.fedoraproject.org/repo/pkgs/jss - ref: 4.5 - pki-core: - rationale: PKI Core packages - repository: git://pkgs.fedoraproject.org/rpms/pki-core - cache: http://pkgs.fedoraproject.org/repo/pkgs/pki-core - ref: 10.6 - buildorder: 20 - tomcatjss: - rationale: TomcatJSS packages - repository: git://pkgs.fedoraproject.org/rpms/tomcatjss - cache: http://pkgs.fedoraproject.org/repo/pkgs/tomcatjss - ref: 7.3 - buildorder: 10 - artifacts: - rpms: - - dogtag-pki-0:10.6.3-1.module_1909+cebfdf1a.x86_64 - - dogtag-pki-console-theme-0:10.6.3-1.module_1909+cebfdf1a.noarch - - dogtag-pki-server-theme-0:10.6.3-1.module_1909+cebfdf1a.noarch - - jss-0:4.5.0-0.4.module_1913+819762cf.x86_64 - - jss-javadoc-0:4.5.0-0.4.module_1913+819762cf.x86_64 - - pki-base-0:10.6.3-1.module_1909+cebfdf1a.noarch - - pki-base-java-0:10.6.3-1.module_1909+cebfdf1a.noarch - - pki-ca-0:10.6.3-1.module_1909+cebfdf1a.noarch - - pki-console-0:10.6.3-1.module_1909+cebfdf1a.noarch - - pki-javadoc-0:10.6.3-1.module_1909+cebfdf1a.noarch - - pki-kra-0:10.6.3-1.module_1909+cebfdf1a.noarch - - pki-ocsp-0:10.6.3-1.module_1909+cebfdf1a.noarch - - pki-server-0:10.6.3-1.module_1909+cebfdf1a.noarch - - pki-symkey-0:10.6.3-1.module_1909+cebfdf1a.x86_64 - - pki-tks-0:10.6.3-1.module_1909+cebfdf1a.noarch - - pki-tools-0:10.6.3-1.module_1909+cebfdf1a.x86_64 - - pki-tps-0:10.6.3-1.module_1909+cebfdf1a.x86_64 - - python3-pki-0:10.6.3-1.module_1909+cebfdf1a.noarch - - tomcatjss-0:7.3.2-1.module_1913+819762cf.noarch -... ---- -document: modulemd -version: 2 -data: - name: perl-bootstrap - stream: 5.26 - version: 20180816141919 - context: 6c81f848 - arch: x86_64 - summary: Perl bootstrap module for bootrapping Perl module - description: > - This is the Perl interpreter and a set of modules written in Perl language intended - for bootstrapping the perl module. This module disables some optional tests to - limit amount of components. This module is not intended for public use. It's an - intermediate step for building perl module. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/perl-bootstrap.git?#ea11aea44aca54021cb782f1e243ff03722f86a5 - commit: ea11aea44aca54021cb782f1e243ff03722f86a5 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - perl-Devel-Symdump: - ref: 777175a55451fddc85329a437c755efd410264da - perl-Test-Pod: - ref: b4f74114b955cfee96c10b0f04444ae6b4d2f4ce - perl-Perl-Version: - ref: 3d5649c15b5a2501e0e1ca057129ed3cb6166d65 - perl-Test-Needs: - ref: 2b9911794ccae86c53d0e4c6013fcb961e67f250 - perl-Digest-MD5: - ref: 8fad912c493bc960566e5ce7118e0cdce3b9a769 - perl-Pod-Escapes: - ref: b86907d1d42dbd25c327e34b09b061f0a3f96d8a - perl-Text-ParseWords: - ref: 809c9bd7181b286d5e14e80a73f6ea50ac3b62b3 - perl-podlators: - ref: f3046951a9e1a70ccf2215f31e74c0accecd9770 - perl-Pod-Eventual: - ref: 9a1fa2670ce5ae1fa9730625bc5eb657ba0b1d5b - perl-IPC-Cmd: - ref: a22c9a02e64eaca7d7ebd7326ddc2baece702cd4 - perl-Test-Output: - ref: ccffd17b4ddd2bf2f739889e7b603f3071bccb97 - perl-SUPER: - ref: a5b2533172574285c2ea051300f06357982e2ea9 - perl-Time-Local: - ref: ad2b9372902fb6279ca783752d56632d54e263b5 - perl-IPC-SysV: - ref: 4cf56fbde1b8a369fb6114d0f2dc7866dd835b71 - perl-Package-Generator: - ref: 8a4118f2e4299109b3a7e6e0dea5ee7424e632bf - perl-MRO-Compat: - ref: 7b9d4772b76353d755f44acc9a686e9566a1a4b7 - perl-IO-String: - ref: b99e305978ee5a51efefa31c50ba2a0e502a71cc - perl-Perl-OSType: - ref: 7191911473475122ff950ed36748133d8b2f968b - perl-Compress-Raw-Bzip2: - ref: 2a51171531415b788d4bc6cdd05a823fb4b831b5 - perl-IO-HTML: - ref: cf5155257c1a690461c0a0d54fa7af196b45898c - perl: - ref: 8a371bbe29d1908077211d14e9e701b836c81540 - perl-File-Slurp-Tiny: - ref: fbf489950350c0fc8d7a3cb883820993e7df457b - perl-Params-Util: - ref: a69abfa9df18bb76b6ccb98caa103795abc5d083 - perl-File-Path: - ref: ac6856f118e7aa9a3a709c6202ab06494ecdd9b3 - perl-File-Which: - ref: 0c9cbe3a1d01d42035314f8d5527e6f505142cab - perl-Sub-Uplevel: - ref: 865c6011e62e5b0b8a16ce433b0ce7618d62e9a2 - perl-Module-Load: - ref: 4f363f0c7d356591f33a22a930f4501167b01053 - perl-CPAN-Meta-Requirements: - ref: f25cbf2508f08dcb618b5e097cda6023aea94101 - perl-Test-CPAN-Meta: - ref: e495a7b866c6c955fdc577ae3408bdf2f7d4c7e6 - perl-IO-Socket-IP: - ref: 1a65c1170f6582ad9ece8fe9c76c540e18cd3264 - perl-Test-Harness: - ref: 65288c532917fea41328a20520e0755f6eb18463 - perl-parent: - ref: c3649d1868f869883423867076131c1604fd4467 - perl-ExtUtils-CBuilder: - ref: 4e5e482495a977c28396e2d1149def8dcb12e15f - perl-perlfaq: - ref: d5a90bd6871ae7a66cd64494b37727986b6eccbf - perl-Sub-Install: - ref: f3365c2a0b610eb21f6c1c786958c0e8ba08a47c - perl-IPC-System-Simple: - ref: 5b4319c5aabf7945208163c339c112b68b40d36a - perl-Socket: - ref: 20b784e3737e5842c973bd31f1735b67e77b050f - perl-ExtUtils-ParseXS: - ref: c84346769c6a5009890661786a061af1e06d32dd - perl-Test-Deep: - ref: 625b3e04a145219386254fde3ee2b5b3cc314567 - perl-IPC-Run: - ref: 1de5fa3ae2b8d01f5e7d8f41c55dd81989176b0b - perl-Import-Into: - ref: 6abf828544edc542b88bf9f8c27886e0c4db3ab7 - perl-BSD-Resource: - ref: 73ae1d113bdb6c8ada065344912685ca438cc987 - perl-ExtUtils-Install: - ref: 5eb9021663b033a695802e5d960795c1b338f1d1 - perl-autodie: - ref: 08926569224919ffa066397ca80c5b1818a89e90 - perl-Locale-Maketext: - ref: 6dd172c644c44c07b1613b0870a119ee5e6d4116 - perl-Test-Warnings: - ref: 1fb68d7818c1340f1b3d83e40bdf8556252d6e8a - perl-Module-Runtime: - ref: 47cdddc1405a658f52bd3e49321fccb776bbdfd0 - perl-Data-OptList: - ref: 55696a188230a0b16e32bc0cc6183cc0683753e3 - perl-LWP-MediaTypes: - ref: 5b66591ed99089c03052cd17d43fe48947e79fd1 - perl-CPAN-Meta-YAML: - ref: 04a0e2e11487241ed251223755f1abe43bbe392a - perl-Math-BigInt-FastCalc: - ref: fd294a4d494055cd4f3f7e22f0f0c361162dedfa - perl-File-Temp: - ref: ac22a248d28a1f81c99b73a7a6eaa5773f98c419 - perl-JSON-PP: - ref: 02d427bafed752ddfd755e1cfcd71c4daaa7b336 - perl-Test-Simple: - ref: 96c4c3b6c0172748a9a9c95fb2c1fefc9f73ee04 - perl-File-Find-Object: - ref: 0a1402388468fdd180b1b0875a6d9949cca924cc - perl-Capture-Tiny: - ref: 243ed7f00a6dea11dbdcb564f698573288e3e967 - perl-HTTP-Message: - ref: 363ac19afb23d8e519db09bad96ed8e19f93e45a - perl-Pod-Coverage-TrustPod: - ref: 7b67d6d5912228964a685e53a9076b568cbcfa2a - perl-inc-latest: - ref: b94b9e6f144d6ce856e827a2cb9c16c42cce56b5 - perl-Module-Build: - ref: a9f6bbfbfc8303db7b57cbea35e53de61a46a165 - perl-Module-Load-Conditional: - ref: 532fb21fdf6ff39b29abaccbdc4a1f87941521f2 - perl-Filter: - ref: 78296ad909c75c445e4c43526e3ae57f25de7c34 - perl-Pod-Checker: - ref: dd7b179ffb95412b1f28d3b825d87132f391821e - perl-Sort-Versions: - ref: fdc05a617f83b5f46838821619843d5fbf563ab2 - perl-Thread-Queue: - ref: 388cd4478b7d3e8ef552292fa77937aee27e9c0e - perl-IO-Compress: - ref: bb10d2103bf534e10a4a1d1bc987a4314cb5de48 - perl-Math-BigInt: - ref: 76c86fadeda569a2ebd6439f12e7f69f74c8df67 - perl-File-Find-Rule: - ref: 008055e020aa78373cb53e2925821fed986d32be - perl-Text-Template: - ref: c3ff74620de07ec5a20b398981cfe60bc23b7533 - perl-Test-Exception: - ref: 3fe9c62023b87199f3d296242d6656cdbcbada6d - perl-Unicode-Normalize: - ref: c7a4b3f134e101eb452b949eeda6497d6ea9e520 - perl-HTML-Tagset: - ref: 7cfcf4bcca6272bfa3d1bac71703acd696d78f1b - perl-Test-Version: - ref: 1032b0ab580387f8781aec3d73408514cda3460c - perl-URI: - ref: 8696c54987665ac968cb66d98b69e49a37a89b52 - perl-Text-Glob: - ref: b19ed6fe9d0ff70870939d2bfe33e2bd059b732a - perl-Pod-Simple: - ref: 05a654f26321267554e75398eb19f704b4b97e17 - perl-Algorithm-Diff: - ref: b572ed3bbdd7421c4ec31da90602f12f7a8c951c - perl-Class-XSAccessor: - ref: 4deb91539b2ec953c6535fb3baceda3b15a60b76 - perl-ExtUtils-MakeMaker: - ref: c88d4cf08d3e3ddc8c113a430d287a830c1133e6 - perl-MIME-Base64: - ref: c099afc6b1d7eec124f46bea88b86a2edd0f7b56 - perl-Tie-IxHash: - ref: 483692cdeeffae0e302d06287044cc6dd356230d - perl-Digest: - ref: b3f866352aea430935df7f2f0afaaf3cced7d214 - perl-Compress-Raw-Zlib: - ref: c9d37e07af93fe0a5e4886536b27f016260074ca - perl-Devel-StackTrace: - ref: 953656c854cc43a45ef690a55978a62464019803 - perl-Test-FailWarnings: - ref: 1183728f2daf4a869e335bb0f79d63ff0adc7163 - perl-ExtUtils-Manifest: - ref: f1169d7bb27bfb1b2db567be1f0ff112a9069246 - perl-Exporter: - ref: 68f93042fb090750ccc7022bd957fa12ff184ecb - perl-experimental: - ref: f6265c90e007af2ae3882852d66e41c4f0294530 - perl-version: - ref: ef428f4f5c736e1c3af8343191aad3fd8f288692 - perl-Pod-Parser: - ref: 13b1e60337a84241ed263e3a62af46005bec3b8c - perl-CPAN: - ref: c91f221d2bbde2992152786a94b3da8899d7a628 - perl-Text-Balanced: - ref: 8c14f0f727543b80dc9cacba0422bcc1653d0290 - perl-PathTools: - ref: a0ed8e15339741624d99094a261ecef2f2bef816 - perl-Compress-Bzip2: - ref: 4ca6f6001d529639ad9af34f6a4829371ed7c88c - perl-Number-Compare: - ref: 7dc6d151bfde123a33d29c4c1af0e4abafcccd00 - perl-Fedora-VSP: - ref: 90425acf3b0601d4feb86e0339f0c0efdd0435ae - perl-Test-NoWarnings: - ref: 68965e00ff2d48d2a31182cd6ca4032e6e246c98 - perl-Locale-Codes: - ref: e1436faa7dcf2c0cb70ead02bfbdca7fcbf7b531 - perl-Module-CoreList: - ref: 3a48c78df9faa9efb5b12f33d1d3c067f4321a8a - perl-Digest-SHA: - ref: a854293a4d31671e043e58f1efcd3848c05051c5 - perl-Expect: - ref: 47e40dd9b1ecfb0a5910e6b041380568b23bb10b - perl-CPAN-Meta-Check: - ref: 08fa92e0015579217acb945950b5513883a7a3e5 - perl-Scalar-List-Utils: - ref: c0ea69a001e7bb2a50a9c122dcc5ce792125f6e4 - perl-TimeDate: - ref: 323459d241244ac7f1de7e8a3eda452fdaf91c63 - perl-Pod-Coverage: - ref: 3155ccedc6d02a815b2a5201be75f6a3a9bd8157 - perl-generators: - ref: 3517fe526a3f0bb16c097eecd05bfe9dfb94c42e - perl-Text-Tabs+Wrap: - ref: 84d9073a2276ee2310cfc7e633c08e271c2f2319 - perl-Sub-Exporter: - ref: 34cd68b9ccfbae47690795a40a14a236ff0b2319 - perl-Time-HiRes: - ref: 400def5c2f8c642b692a22c7a6f45da6f4cbd868 - perl-Pod-Perldoc: - ref: 97a96bfb531f584eaa7d70f309ca9f24699af42f - perl-HTTP-Tiny: - ref: 0353adf841dad88f6fb3d8770742b3989363c688 - perl-Test-Taint: - ref: f7e00eace8747a9a77b6594648e55692180f4c42 - perl-B-Debug: - ref: 5a7c0b7619476154ff3129fe449afabb1b450279 - perl-File-HomeDir: - ref: 253a5f4a3d03187c799904441650124e8ec832ea - perl-threads: - ref: 96ef6a4161926a852227a37db2a82769df38ebc5 - perl-Unicode-Collate: - ref: 3a0555a1c080f2bba8e052c32ce35d4c1fca429a - perl-Encode-Locale: - ref: 4a07f2dc5f13dfe03aceffeae98a4ad6cf55f8f3 - perl-Try-Tiny: - ref: 844122c4abfa6248b2e8bbbf3124772c62f69525 - perl-Text-Diff: - ref: 435597b4b8f23cdb4b5d08a83526f3a0ba180ba4 - perl-threads-shared: - ref: 236010203776860d682ee2e6d37529e8e4aaa90a - perl-Math-BigRat: - ref: 12a221b50a7d62e76aea4bb924f502d287e86081 - perl-HTML-Parser: - ref: a4851da917c159c9ec3e2a0e262a33e7b20ec333 - perl-Storable: - ref: e470bb35a115fbcde8f94559e3bb9dcab0e39c97 - perl-Getopt-Long: - ref: 3fcd385e78c21d29488f8e020e2b9df21c54900f - perl-bignum: - ref: e1753ef99cc972644a0a217e676467b8fd5d5788 - perl-Net-SSLeay: - ref: bb304e2e37562e29cacfe38b2be1aee45553d603 - perl-Term-ANSIColor: - ref: 7e942843d7f43f5535e55f7709943e210743f4fe - perl-IO-Tty: - ref: cf1db7dbd0312e7e7f47e5514d8ab31c8bba0af0 - perl-Net-IDN-Encode: - ref: ab799c23d30edaa81d76e126fd771826fc7a6a3e - perl-Carp: - ref: 217d519372b989049db02455e4fd53e238bf8675 - perl-libnet: - ref: 8799d71bc96c9db7a72658edcd27f9f21b260f71 - perl-Test-TrailingSpace: - ref: 0c7fbdc7c25b65a32036d9e7f8af740d1d033bb8 - perl-local-lib: - ref: 0716ed7be631222c11ec33672373662daa6b00bf - perl-Params-Check: - ref: 94989a67e37e22221a55b1d39dfb9f804122f928 - perl-File-Find-Rule-Perl: - ref: dbda2b929804a36785ee66f4303df70d176ad1b1 - perl-Mixin-Linewise: - ref: 5d8ee6f3040dde6651a61ffc0882f2dfbf605fe3 - perl-Test-Pod-Coverage: - ref: f11cb72d99f17be5cb87770bbdd204c78ed750fa - perl-Data-Dumper: - ref: 8e85cc7e6166838184b034d875759a39df4d10d3 - perl-Data-Section: - ref: ce79e1d99123d4220543d1eb2d2806673277cad4 - perl-Socket6: - ref: 97074976ca50b6f7fd7b98a2110e24bb23cbba9b - perl-File-Fetch: - ref: 7e786fd7e77fd794553f84ff29dc777cd9f73ca2 - perl-HTTP-Date: - ref: cd8b6842046370b72d530dc9aa714525d41014b3 - perl-Software-License: - ref: dbee7688f08ab815650fd845122a8ee8cfb0294c - perl-IO-Socket-INET6: - ref: f750541d79d2f642a06b52e6803f9c1cf81e70bf - perl-Archive-Tar: - ref: 6baa268adbe88e2afac55a5947342b7d1c2500fa - perl-IO-Socket-SSL: - ref: da2796e619b0650410425d31e1cf3659a3a8fcc5 - perl-Config-Perl-V: - ref: ae30cc26220da556c9fa448172710e4522fa6735 - perl-Env: - ref: 201efc08b7115ab13b1402f76ed05e5c8ed686d4 - perl-Test-Warn: - ref: 90bfb89225f8505aba28f74138269a7281b03172 - perl-Devel-Size: - ref: 59a39ceb2d9141d9fd9733280220395be02e83a6 - perl-Test-MockModule: - ref: 8b278927b93037a9b2a93a47f68cdcfd4c090ff2 - perl-Pod-Usage: - ref: 98983d9f8b961510acff3a1190c7ea62d447699f - perl-Term-Cap: - ref: 1d444a86d772b87c5b0484e3639f7bac52de8afe - perl-Sys-Syslog: - ref: b83dcfb81b92c0617bee60d8ac89d1d228b88d8e - perl-Devel-PPPort: - ref: 17c87af74208a53d3202030ad52862fd376123fc - perl-CGI: - ref: 9e750f4b5aecfaf628c615831fdc30f3d396baaf - perl-CPAN-Meta: - ref: f8259dccb36b9a47dc6bad88847c3fcd3563a196 - perl-File-Find-Object-Rule: - ref: 69cfed894fcb5fb7fc1b4b7d5701195285279000 - perl-Archive-Zip: - ref: 09e89616f0acea510d1e85c69e12b961c28f4bb6 - perl-DB_File: - ref: 462f0f70ba43c2b21811e8517b5f7c0fe2aa0ca6 - perl-PerlIO-utf8_strict: - ref: 081963e3f8eb01e77546e781eceb5a68ca88fa34 - perl-YAML: - ref: bc07cedbcda09b33873e03730b5d869c6f87f217 - perl-Sub-Identify: - ref: b1765a68a41efd165cda6663fc9c26d2d2f44bbd - perl-Filter-Simple: - ref: 08e79709ade8905bc3212d2c7dbb1d168d578dba - perl-Module-Metadata: - ref: 1578659d3194251b91e39887baf3ad56689fad90 - perl-Net-LibIDN: - ref: b62c33bc0db667bcfa1486b0bd3eaf349b295e6c - perl-PerlIO-via-QuotedPrint: - ref: 7d17de12fac09e63e1c14ed17229c6d23e923830 - perl-constant: - ref: bce81fc9c982eeee92490116718ab9ed652eb0e7 - perl-Encode: - ref: 5417f768a229062a55dde8f25b5b9aac039f96e1 - mbs_options: - blocked_packages: - - perl - - perl-Algorithm-Diff - - perl-Archive-Tar - - perl-Archive-Zip - - perl-autodie - - perl-B-Debug - - perl-bignum - - perl-BSD-Resource - - perl-Capture-Tiny - - perl-Carp - - perl-CGI - - perl-Class-XSAccessor - - perl-Compress-Bzip2 - - perl-Compress-Raw-Bzip2 - - perl-Compress-Raw-Zlib - - perl-Config-Perl-V - - perl-constant - - perl-CPAN - - perl-CPAN-Meta - - perl-CPAN-Meta-Check - - perl-CPAN-Meta-Requirements - - perl-CPAN-Meta-YAML - - perl-Data-Dumper - - perl-Data-OptList - - perl-Data-Section - - perl-DB_File - - perl-Devel-PPPort - - perl-Devel-Size - - perl-Devel-StackTrace - - perl-Devel-Symdump - - perl-Digest - - perl-Digest-MD5 - - perl-Digest-SHA - - perl-Encode - - perl-Encode-Locale - - perl-Env - - perl-Expect - - perl-experimental - - perl-Exporter - - perl-ExtUtils-CBuilder - - perl-ExtUtils-Install - - perl-ExtUtils-MakeMaker - - perl-ExtUtils-Manifest - - perl-ExtUtils-ParseXS - - perl-Fedora-VSP - - perl-File-Fetch - - perl-File-Find-Object - - perl-File-Find-Object-Rule - - perl-File-Find-Rule - - perl-File-Find-Rule-Perl - - perl-File-HomeDir - - perl-File-Path - - perl-File-Slurp-Tiny - - perl-File-Temp - - perl-File-Which - - perl-Filter - - perl-Filter-Simple - - perl-generators - - perl-Getopt-Long - - perl-HTML-Parser - - perl-HTML-Tagset - - perl-HTTP-Date - - perl-HTTP-Message - - perl-HTTP-Tiny - - perl-Import-Into - - perl-inc-latest - - perl-IO-Compress - - perl-IO-HTML - - perl-IO-Socket-INET6 - - perl-IO-Socket-IP - - perl-IO-Socket-SSL - - perl-IO-String - - perl-IO-Tty - - perl-IPC-Cmd - - perl-IPC-Run - - perl-IPC-System-Simple - - perl-IPC-SysV - - perl-JSON-PP - - perl-libnet - - perl-local-lib - - perl-Locale-Codes - - perl-Locale-Maketext - - perl-LWP-MediaTypes - - perl-Math-BigInt - - perl-Math-BigInt-FastCalc - - perl-Math-BigRat - - perl-MIME-Base64 - - perl-Mixin-Linewise - - perl-Module-Build - - perl-Module-CoreList - - perl-Module-Load - - perl-Module-Load-Conditional - - perl-Module-Metadata - - perl-Module-Runtime - - perl-MRO-Compat - - perl-Net-IDN-Encode - - perl-Net-LibIDN - - perl-Net-SSLeay - - perl-Number-Compare - - perl-Package-Generator - - perl-Params-Check - - perl-Params-Util - - perl-parent - - perl-PathTools - - perl-Perl-OSType - - perl-Perl-Version - - perl-perlfaq - - perl-PerlIO-utf8_strict - - perl-PerlIO-via-QuotedPrint - - perl-Pod-Checker - - perl-Pod-Coverage - - perl-Pod-Coverage-TrustPod - - perl-Pod-Escapes - - perl-Pod-Eventual - - perl-Pod-Parser - - perl-Pod-Perldoc - - perl-Pod-Simple - - perl-Pod-Usage - - perl-podlators - - perl-Scalar-List-Utils - - perl-Socket - - perl-Socket6 - - perl-Software-License - - perl-Sort-Versions - - perl-Storable - - perl-Sub-Exporter - - perl-Sub-Identify - - perl-Sub-Install - - perl-Sub-Uplevel - - perl-SUPER - - perl-Sys-Syslog - - perl-Term-ANSIColor - - perl-Term-Cap - - perl-Test-CPAN-Meta - - perl-Test-Deep - - perl-Test-Exception - - perl-Test-FailWarnings - - perl-Test-Harness - - perl-Test-MockModule - - perl-Test-Needs - - perl-Test-NoWarnings - - perl-Test-Output - - perl-Test-Pod - - perl-Test-Pod-Coverage - - perl-Test-Simple - - perl-Test-Taint - - perl-Test-TrailingSpace - - perl-Test-Version - - perl-Test-Warn - - perl-Test-Warnings - - perl-Text-Balanced - - perl-Text-Diff - - perl-Text-Glob - - perl-Text-ParseWords - - perl-Text-Tabs+Wrap - - perl-Text-Template - - perl-Thread-Queue - - perl-threads - - perl-threads-shared - - perl-Tie-IxHash - - perl-Time-HiRes - - perl-Time-Local - - perl-TimeDate - - perl-Try-Tiny - - perl-Unicode-Collate - - perl-Unicode-Normalize - - perl-URI - - perl-version - - perl-YAML - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://fedoraproject.org/wiki/Modularity - documentation: https://fedoraproject.org/wiki/Fedora_Packaging_Guidelines_for_Modules - buildopts: - rpms: - macros: | - %perl_bootstrap 1 - %_with_perl_enables_groff 1 - %_without_perl_enables_syslog_test 1 - %_with_perl_enables_systemtap 1 - %_without_perl_enables_tcsh 1 - %_without_perl_Compress_Bzip2_enables_optional_test 1 - %_without_perl_CPAN_Meta_Requirements_enables_optional_test 1 - %_without_perl_IPC_System_Simple_enables_optional_test 1 - %_without_perl_LWP_MediaTypes_enables_mailcap 1 - %_without_perl_Module_Build_enables_optional_test 1 - %_without_perl_Perl_OSType_enables_optional_test 1 - %_without_perl_Pod_Perldoc_enables_tk_test 1 - %_without_perl_Software_License_enables_optional_test 1 - %_without_perl_Sys_Syslog_enables_optional_test 1 - %_without_perl_Test_Harness_enables_optional_test 1 - %_without_perl_Test_Simple_enables_optional_test 1 - %_without_perl_Test_Warnings_enables_optional_test 1 - %_without_perl_URI_enables_Business_ISBN 1 - components: - rpms: - perl: - rationale: The Perl interpreter. - repository: git://pkgs.fedoraproject.org/rpms/perl - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl - ref: f28 - perl-Algorithm-Diff: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Algorithm-Diff - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Algorithm-Diff - ref: f28 - buildorder: 3 - perl-Archive-Tar: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Archive-Tar - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Archive-Tar - ref: f28 - buildorder: 3 - perl-Archive-Zip: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Archive-Zip - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Archive-Zip - ref: f28 - buildorder: 7 - perl-B-Debug: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-B-Debug - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-B-Debug - ref: f28 - buildorder: 3 - perl-BSD-Resource: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-BSD-Resource - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-BSD-Resource - ref: f28 - buildorder: 6 - perl-CGI: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-CGI - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CGI - ref: f28 - buildorder: 12 - perl-CPAN: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN - ref: f28 - buildorder: 3 - perl-CPAN-Meta: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN-Meta - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN-Meta - ref: f28 - buildorder: 3 - perl-CPAN-Meta-Check: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN-Meta-Check - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN-Meta-Check - ref: f28 - buildorder: 9 - perl-CPAN-Meta-Requirements: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN-Meta-Requirements - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN-Meta-Requirements - ref: f28 - buildorder: 3 - perl-CPAN-Meta-YAML: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN-Meta-YAML - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN-Meta-YAML - ref: f28 - buildorder: 3 - perl-Capture-Tiny: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Capture-Tiny - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Capture-Tiny - ref: f28 - buildorder: 3 - perl-Carp: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Carp - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Carp - ref: f28 - buildorder: 3 - perl-Class-XSAccessor: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Class-XSAccessor - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Class-XSAccessor - ref: f28 - buildorder: 3 - perl-Compress-Bzip2: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Compress-Bzip2 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Compress-Bzip2 - ref: f28 - buildorder: 3 - perl-Compress-Raw-Bzip2: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Compress-Raw-Bzip2 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Compress-Raw-Bzip2 - ref: f28 - buildorder: 3 - perl-Compress-Raw-Zlib: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Compress-Raw-Zlib - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Compress-Raw-Zlib - ref: f28 - buildorder: 3 - perl-Config-Perl-V: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Config-Perl-V - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Config-Perl-V - ref: f28 - buildorder: 3 - perl-DB_File: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-DB_File - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-DB_File - ref: f28 - buildorder: 3 - perl-Data-Dumper: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Data-Dumper - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Data-Dumper - ref: f28 - buildorder: 3 - perl-Data-OptList: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Data-OptList - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Data-OptList - ref: f28 - buildorder: 4 - perl-Data-Section: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Data-Section - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Data-Section - ref: f28 - buildorder: 6 - perl-Devel-PPPort: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Devel-PPPort - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Devel-PPPort - ref: f28 - buildorder: 3 - perl-Devel-Size: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Devel-Size - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Devel-Size - ref: f28 - buildorder: 6 - perl-Devel-StackTrace: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Devel-StackTrace - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Devel-StackTrace - ref: f28 - buildorder: 3 - perl-Devel-Symdump: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Devel-Symdump - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Devel-Symdump - ref: f28 - buildorder: 3 - perl-Digest: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Digest - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Digest - ref: f28 - buildorder: 3 - perl-Digest-MD5: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Digest-MD5 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Digest-MD5 - ref: f28 - buildorder: 3 - perl-Digest-SHA: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Digest-SHA - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Digest-SHA - ref: f28 - buildorder: 3 - perl-Encode: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Encode - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Encode - ref: f28 - buildorder: 3 - perl-Encode-Locale: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Encode-Locale - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Encode-Locale - ref: f28 - buildorder: 3 - perl-Env: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Env - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Env - ref: f28 - buildorder: 3 - perl-Expect: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Expect - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Expect - ref: f28 - buildorder: 4 - perl-Exporter: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Exporter - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Exporter - ref: f28 - buildorder: 3 - perl-ExtUtils-CBuilder: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-CBuilder - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-CBuilder - ref: f28 - buildorder: 3 - perl-ExtUtils-Install: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-Install - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-Install - ref: f28 - buildorder: 3 - perl-ExtUtils-MakeMaker: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-MakeMaker - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-MakeMaker - ref: f28 - buildorder: 3 - perl-ExtUtils-Manifest: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-Manifest - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-Manifest - ref: f28 - buildorder: 3 - perl-ExtUtils-ParseXS: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-ParseXS - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-ParseXS - ref: f28 - buildorder: 3 - perl-Fedora-VSP: - rationale: RPM dependency generator. - repository: git://pkgs.fedoraproject.org/rpms/perl-Fedora-VSP - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Fedora-VSP - ref: f28 - buildorder: 1 - perl-File-Fetch: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Fetch - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Fetch - ref: f28 - buildorder: 3 - perl-File-Find-Object: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Find-Object - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Find-Object - ref: f28 - buildorder: 4 - perl-File-Find-Object-Rule: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Find-Object-Rule - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Find-Object-Rule - ref: f28 - buildorder: 5 - perl-File-Find-Rule: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Find-Rule - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Find-Rule - ref: f28 - buildorder: 4 - perl-File-Find-Rule-Perl: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Find-Rule-Perl - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Find-Rule-Perl - ref: f28 - buildorder: 5 - perl-File-HomeDir: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-HomeDir - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-HomeDir - ref: f28 - buildorder: 4 - perl-File-Path: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Path - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Path - ref: f28 - buildorder: 3 - perl-File-Slurp-Tiny: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Slurp-Tiny - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Slurp-Tiny - ref: f28 - buildorder: 3 - perl-File-Temp: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Temp - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Temp - ref: f28 - buildorder: 3 - perl-File-Which: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Which - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Which - ref: f28 - buildorder: 3 - perl-Filter: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Filter - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Filter - ref: f28 - buildorder: 3 - perl-Filter-Simple: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Filter-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Filter-Simple - ref: f28 - buildorder: 3 - perl-Getopt-Long: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Getopt-Long - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Getopt-Long - ref: f28 - buildorder: 3 - perl-HTML-Parser: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-HTML-Parser - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-HTML-Parser - ref: f28 - buildorder: 5 - perl-HTML-Tagset: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-HTML-Tagset - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-HTML-Tagset - ref: f28 - buildorder: 3 - perl-HTTP-Date: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-HTTP-Date - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-HTTP-Date - ref: f28 - buildorder: 3 - perl-HTTP-Message: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-HTTP-Message - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-HTTP-Message - ref: f28 - buildorder: 11 - perl-HTTP-Tiny: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-HTTP-Tiny - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-HTTP-Tiny - ref: f28 - buildorder: 3 - perl-IO-Compress: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-Compress - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-Compress - ref: f28 - buildorder: 4 - perl-IO-HTML: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-HTML - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-HTML - ref: f28 - buildorder: 3 - perl-IO-Socket-INET6: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-Socket-INET6 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-Socket-INET6 - ref: f28 - buildorder: 7 - perl-IO-Socket-IP: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-Socket-IP - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-Socket-IP - ref: f28 - buildorder: 3 - perl-IO-Socket-SSL: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-Socket-SSL - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-Socket-SSL - ref: f28 - buildorder: 8 - perl-IO-String: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-String - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-String - ref: f28 - buildorder: 3 - perl-IO-Tty: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-Tty - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-Tty - ref: f28 - buildorder: 3 - perl-IPC-Cmd: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IPC-Cmd - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IPC-Cmd - ref: f28 - buildorder: 3 - perl-IPC-Run: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IPC-Run - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IPC-Run - ref: f28 - buildorder: 4 - perl-IPC-SysV: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IPC-SysV - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IPC-SysV - ref: f28 - buildorder: 3 - perl-IPC-System-Simple: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IPC-System-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IPC-System-Simple - ref: f28 - buildorder: 3 - perl-Import-Into: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Import-Into - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Import-Into - ref: f28 - buildorder: 7 - perl-JSON-PP: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-JSON-PP - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-JSON-PP - ref: f28 - buildorder: 3 - perl-LWP-MediaTypes: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-LWP-MediaTypes - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-LWP-MediaTypes - ref: f28 - buildorder: 3 - perl-Locale-Codes: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Locale-Codes - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Locale-Codes - ref: f28 - buildorder: 3 - perl-Locale-Maketext: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Locale-Maketext - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Locale-Maketext - ref: f28 - buildorder: 3 - perl-MIME-Base64: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-MIME-Base64 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-MIME-Base64 - ref: f28 - buildorder: 3 - perl-MRO-Compat: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-MRO-Compat - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-MRO-Compat - ref: f28 - buildorder: 3 - perl-Math-BigInt: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Math-BigInt - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Math-BigInt - ref: f28 - buildorder: 3 - perl-Math-BigInt-FastCalc: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Math-BigInt-FastCalc - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Math-BigInt-FastCalc - ref: f28 - buildorder: 4 - perl-Math-BigRat: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Math-BigRat - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Math-BigRat - ref: f28 - buildorder: 3 - perl-Mixin-Linewise: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Mixin-Linewise - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Mixin-Linewise - ref: f28 - buildorder: 6 - perl-Module-Build: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Build - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Build - ref: f28 - buildorder: 4 - perl-Module-CoreList: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-CoreList - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-CoreList - ref: f28 - buildorder: 3 - perl-Module-Load: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Load - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Load - ref: f28 - buildorder: 3 - perl-Module-Load-Conditional: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Load-Conditional - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Load-Conditional - ref: f28 - buildorder: 3 - perl-Module-Metadata: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Metadata - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Metadata - ref: f28 - buildorder: 3 - perl-Module-Runtime: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Runtime - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Runtime - ref: f28 - buildorder: 6 - perl-Net-IDN-Encode: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Net-IDN-Encode - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Net-IDN-Encode - ref: f28 - buildorder: 5 - perl-Net-LibIDN: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Net-LibIDN - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Net-LibIDN - ref: f28 - buildorder: 3 - perl-Net-SSLeay: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Net-SSLeay - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Net-SSLeay - ref: f28 - buildorder: 5 - perl-Number-Compare: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Number-Compare - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Number-Compare - ref: f28 - buildorder: 3 - perl-Package-Generator: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Package-Generator - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Package-Generator - ref: f28 - buildorder: 4 - perl-Params-Check: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Params-Check - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Params-Check - ref: f28 - buildorder: 3 - perl-Params-Util: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Params-Util - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Params-Util - ref: f28 - buildorder: 3 - perl-PathTools: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-PathTools - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-PathTools - ref: f28 - buildorder: 3 - perl-Perl-OSType: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Perl-OSType - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Perl-OSType - ref: f28 - buildorder: 3 - perl-Perl-Version: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Perl-Version - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Perl-Version - ref: f28 - buildorder: 6 - perl-PerlIO-utf8_strict: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-PerlIO-utf8_strict - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-PerlIO-utf8_strict - ref: f28 - buildorder: 5 - perl-PerlIO-via-QuotedPrint: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-PerlIO-via-QuotedPrint - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-PerlIO-via-QuotedPrint - ref: f28 - buildorder: 3 - perl-Pod-Checker: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Checker - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Checker - ref: f28 - buildorder: 3 - perl-Pod-Coverage: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Coverage - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Coverage - ref: f28 - buildorder: 4 - perl-Pod-Coverage-TrustPod: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Coverage-TrustPod - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Coverage-TrustPod - ref: f28 - buildorder: 8 - perl-Pod-Escapes: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Escapes - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Escapes - ref: f28 - buildorder: 3 - perl-Pod-Eventual: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Eventual - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Eventual - ref: f28 - buildorder: 7 - perl-Pod-Parser: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Parser - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Parser - ref: f28 - buildorder: 3 - perl-Pod-Perldoc: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Perldoc - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Perldoc - ref: f28 - buildorder: 3 - perl-Pod-Simple: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Simple - ref: f28 - buildorder: 3 - perl-Pod-Usage: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Usage - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Usage - ref: f28 - buildorder: 3 - perl-SUPER: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-SUPER - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-SUPER - ref: f28 - buildorder: 5 - perl-Scalar-List-Utils: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Scalar-List-Utils - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Scalar-List-Utils - ref: f28 - buildorder: 3 - perl-Socket: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Socket - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Socket - ref: f28 - buildorder: 3 - perl-Socket6: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Socket6 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Socket6 - ref: f28 - buildorder: 3 - perl-Software-License: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Software-License - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Software-License - ref: f28 - buildorder: 11 - perl-Sort-Versions: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sort-Versions - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sort-Versions - ref: f28 - buildorder: 3 - perl-Storable: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Storable - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Storable - ref: f28 - buildorder: 3 - perl-Sub-Exporter: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sub-Exporter - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sub-Exporter - ref: f28 - buildorder: 5 - perl-Sub-Identify: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sub-Identify - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sub-Identify - ref: f28 - buildorder: 4 - perl-Sub-Install: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sub-Install - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sub-Install - ref: f28 - buildorder: 3 - perl-Sub-Uplevel: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sub-Uplevel - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sub-Uplevel - ref: f28 - buildorder: 3 - perl-Sys-Syslog: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sys-Syslog - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sys-Syslog - ref: f28 - buildorder: 3 - perl-Term-ANSIColor: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Term-ANSIColor - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Term-ANSIColor - ref: f28 - buildorder: 3 - perl-Term-Cap: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Term-Cap - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Term-Cap - ref: f28 - buildorder: 3 - perl-Test-CPAN-Meta: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-CPAN-Meta - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-CPAN-Meta - ref: f28 - buildorder: 6 - perl-Test-Deep: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Deep - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Deep - ref: f28 - buildorder: 3 - perl-Test-Exception: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Exception - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Exception - ref: f28 - buildorder: 4 - perl-Test-FailWarnings: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-FailWarnings - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-FailWarnings - ref: f28 - buildorder: 4 - perl-Test-Harness: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Harness - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Harness - ref: f28 - buildorder: 3 - perl-Test-MockModule: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-MockModule - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-MockModule - ref: f28 - buildorder: 6 - perl-Test-Needs: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Needs - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Needs - ref: f28 - buildorder: 3 - perl-Test-NoWarnings: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-NoWarnings - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-NoWarnings - ref: f28 - buildorder: 4 - perl-Test-Output: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Output - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Output - ref: f28 - buildorder: 6 - perl-Test-Pod: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Pod - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Pod - ref: f28 - buildorder: 3 - perl-Test-Pod-Coverage: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Pod-Coverage - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Pod-Coverage - ref: f28 - buildorder: 5 - perl-Test-Simple: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Simple - ref: f28 - buildorder: 3 - perl-Test-Taint: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Taint - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Taint - ref: f28 - buildorder: 6 - perl-Test-TrailingSpace: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-TrailingSpace - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-TrailingSpace - ref: f28 - buildorder: 6 - perl-Test-Version: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Version - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Version - ref: f28 - buildorder: 6 - perl-Test-Warn: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Warn - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Warn - ref: f28 - buildorder: 4 - perl-Test-Warnings: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Warnings - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Warnings - ref: f28 - buildorder: 3 - perl-Text-Balanced: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Balanced - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Balanced - ref: f28 - buildorder: 3 - perl-Text-Diff: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Diff - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Diff - ref: f28 - buildorder: 4 - perl-Text-Glob: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Glob - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Glob - ref: f28 - buildorder: 3 - perl-Text-ParseWords: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-ParseWords - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-ParseWords - ref: f28 - buildorder: 3 - perl-Text-Tabs+Wrap: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Tabs+Wrap - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Tabs+Wrap - ref: f28 - buildorder: 3 - perl-Text-Template: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Template - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Template - ref: f28 - buildorder: 4 - perl-Thread-Queue: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Thread-Queue - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Thread-Queue - ref: f28 - buildorder: 3 - perl-Tie-IxHash: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Tie-IxHash - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Tie-IxHash - ref: f28 - buildorder: 3 - perl-Time-HiRes: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Time-HiRes - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Time-HiRes - ref: f28 - buildorder: 3 - perl-Time-Local: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Time-Local - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Time-Local - ref: f28 - buildorder: 3 - perl-TimeDate: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-TimeDate - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-TimeDate - ref: f28 - buildorder: 3 - perl-Try-Tiny: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Try-Tiny - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Try-Tiny - ref: f28 - buildorder: 10 - perl-URI: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-URI - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-URI - ref: f28 - buildorder: 4 - perl-Unicode-Collate: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Unicode-Collate - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Unicode-Collate - ref: f28 - buildorder: 3 - perl-Unicode-Normalize: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Unicode-Normalize - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Unicode-Normalize - ref: f28 - buildorder: 3 - perl-YAML: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-YAML - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-YAML - ref: f28 - buildorder: 3 - perl-autodie: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-autodie - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-autodie - ref: f28 - buildorder: 3 - perl-bignum: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-bignum - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-bignum - ref: f28 - buildorder: 3 - perl-constant: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-constant - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-constant - ref: f28 - buildorder: 3 - perl-experimental: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-experimental - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-experimental - ref: f28 - buildorder: 3 - perl-generators: - rationale: RPM dependency generator. - repository: git://pkgs.fedoraproject.org/rpms/perl-generators - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-generators - ref: f28 - buildorder: 2 - perl-inc-latest: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-inc-latest - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-inc-latest - ref: f28 - buildorder: 3 - perl-libnet: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-libnet - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-libnet - ref: f28 - buildorder: 3 - perl-local-lib: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-local-lib - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-local-lib - ref: f28 - buildorder: 5 - perl-parent: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-parent - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-parent - ref: f28 - buildorder: 3 - perl-perlfaq: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-perlfaq - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-perlfaq - ref: f28 - buildorder: 3 - perl-podlators: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-podlators - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-podlators - ref: f28 - buildorder: 3 - perl-threads: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-threads - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-threads - ref: f28 - buildorder: 3 - perl-threads-shared: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-threads-shared - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-threads-shared - ref: f28 - buildorder: 3 - perl-version: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-version - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-version - ref: f28 - buildorder: 3 - artifacts: - rpms: - - perl-4:5.26.2-413.module_2073+eebc5b71.x86_64 - - perl-Algorithm-Diff-0:1.1903-9.module_1675+7c48d950.noarch - - perl-Archive-Tar-0:2.24-413.module_2073+eebc5b71.noarch - - perl-Archive-Tar-0:2.28-1.module_2073+eebc5b71.noarch - - perl-Archive-Zip-0:1.60-3.module_2073+eebc5b71.noarch - - perl-Attribute-Handlers-0:0.99-413.module_2073+eebc5b71.noarch - - perl-B-Debug-0:1.24-413.module_2073+eebc5b71.noarch - - perl-B-Debug-0:1.26-2.module_1675+7c48d950.noarch - - perl-BSD-Resource-0:1.291.100-5.module_1675+7c48d950.x86_64 - - perl-CGI-0:4.38-2.module_1675+7c48d950.noarch - - perl-CPAN-0:2.18-397.module_1675+7c48d950.noarch - - perl-CPAN-0:2.18-413.module_2073+eebc5b71.noarch - - perl-CPAN-Meta-0:2.150010-396.module_1675+7c48d950.noarch - - perl-CPAN-Meta-0:2.150010-413.module_2073+eebc5b71.noarch - - perl-CPAN-Meta-Check-0:0.014-5.module_1675+7c48d950.noarch - - perl-CPAN-Meta-Requirements-0:2.140-396.module_1675+7c48d950.noarch - - perl-CPAN-Meta-Requirements-0:2.140-413.module_2073+eebc5b71.noarch - - perl-CPAN-Meta-YAML-0:0.018-397.module_1675+7c48d950.noarch - - perl-CPAN-Meta-YAML-0:0.018-413.module_2073+eebc5b71.noarch - - perl-Capture-Tiny-0:0.46-4.module_1675+7c48d950.noarch - - perl-Carp-0:1.42-396.module_2073+eebc5b71.noarch - - perl-Carp-0:1.42-413.module_2073+eebc5b71.noarch - - perl-Class-XSAccessor-0:1.19-14.module_1675+7c48d950.x86_64 - - perl-Compress-Bzip2-0:2.26-6.module_1675+7c48d950.x86_64 - - perl-Compress-Raw-Bzip2-0:2.074-413.module_2073+eebc5b71.x86_64 - - perl-Compress-Raw-Bzip2-0:2.081-1.module_1675+7c48d950.x86_64 - - perl-Compress-Raw-Zlib-0:2.074-413.module_2073+eebc5b71.x86_64 - - perl-Compress-Raw-Zlib-0:2.081-1.module_1675+7c48d950.x86_64 - - perl-Config-Perl-V-0:0.28-413.module_2073+eebc5b71.noarch - - perl-Config-Perl-V-0:0.30-1.module_2073+eebc5b71.noarch - - perl-DB_File-0:1.840-413.module_2073+eebc5b71.x86_64 - - perl-DB_File-0:1.842-1.module_2073+eebc5b71.x86_64 - - perl-Data-Dumper-0:2.167-399.module_1675+7c48d950.x86_64 - - perl-Data-Dumper-0:2.167-413.module_2073+eebc5b71.x86_64 - - perl-Data-OptList-0:0.110-6.module_1675+7c48d950.noarch - - perl-Data-Section-0:0.200007-3.module_1675+7c48d950.noarch - - perl-Devel-PPPort-0:3.35-413.module_2073+eebc5b71.x86_64 - - perl-Devel-PPPort-0:3.36-5.module_1675+7c48d950.x86_64 - - perl-Devel-Peek-0:1.26-413.module_2073+eebc5b71.x86_64 - - perl-Devel-SelfStubber-0:1.06-413.module_2073+eebc5b71.noarch - - perl-Devel-Size-0:0.82-1.module_2073+eebc5b71.x86_64 - - perl-Devel-StackTrace-1:2.03-2.module_1675+7c48d950.noarch - - perl-Devel-Symdump-1:2.18-5.module_1675+7c48d950.noarch - - perl-Digest-0:1.17-395.module_1675+7c48d950.noarch - - perl-Digest-0:1.17-413.module_2073+eebc5b71.noarch - - perl-Digest-MD5-0:2.55-396.module_1675+7c48d950.x86_64 - - perl-Digest-MD5-0:2.55-413.module_2073+eebc5b71.x86_64 - - perl-Digest-SHA-1:5.96-413.module_2073+eebc5b71.x86_64 - - perl-Digest-SHA-1:6.02-1.module_2073+eebc5b71.x86_64 - - perl-Encode-4:2.88-413.module_2073+eebc5b71.x86_64 - - perl-Encode-4:2.97-3.module_1675+7c48d950.x86_64 - - perl-Encode-Locale-0:1.05-9.module_1675+7c48d950.noarch - - perl-Encode-devel-4:2.88-413.module_2073+eebc5b71.noarch - - perl-Encode-devel-4:2.97-3.module_1675+7c48d950.x86_64 - - perl-Env-0:1.04-395.module_1675+7c48d950.noarch - - perl-Env-0:1.04-413.module_2073+eebc5b71.noarch - - perl-Errno-0:1.28-413.module_2073+eebc5b71.x86_64 - - perl-Expect-0:1.35-4.module_1675+7c48d950.noarch - - perl-Exporter-0:5.72-396.module_1675+7c48d950.noarch - - perl-Exporter-0:5.72-413.module_2073+eebc5b71.noarch - - perl-ExtUtils-CBuilder-1:0.280225-413.module_2073+eebc5b71.noarch - - perl-ExtUtils-CBuilder-1:0.280230-2.module_1675+7c48d950.noarch - - perl-ExtUtils-Command-1:7.24-413.module_2073+eebc5b71.noarch - - perl-ExtUtils-Command-1:7.34-1.module_1675+7c48d950.noarch - - perl-ExtUtils-Embed-0:1.34-413.module_2073+eebc5b71.noarch - - perl-ExtUtils-Install-0:2.04-413.module_2073+eebc5b71.noarch - - perl-ExtUtils-Install-0:2.14-4.module_1675+7c48d950.noarch - - perl-ExtUtils-MM-Utils-1:7.24-413.module_2073+eebc5b71.noarch - - perl-ExtUtils-MM-Utils-1:7.34-1.module_1675+7c48d950.noarch - - perl-ExtUtils-MakeMaker-1:7.24-413.module_2073+eebc5b71.noarch - - perl-ExtUtils-MakeMaker-1:7.34-1.module_1675+7c48d950.noarch - - perl-ExtUtils-Manifest-0:1.70-395.module_1675+7c48d950.noarch - - perl-ExtUtils-Manifest-0:1.70-413.module_2073+eebc5b71.noarch - - perl-ExtUtils-Miniperl-0:1.06-413.module_2073+eebc5b71.noarch - - perl-ExtUtils-ParseXS-1:3.34-413.module_2073+eebc5b71.noarch - - perl-ExtUtils-ParseXS-1:3.35-2.module_1675+7c48d950.noarch - - perl-Fedora-VSP-0:0.001-9.module_1675+7c48d950.noarch - - perl-File-Fetch-0:0.52-413.module_2073+eebc5b71.noarch - - perl-File-Fetch-0:0.56-2.module_1675+7c48d950.noarch - - perl-File-Find-Object-0:0.3.2-5.module_1675+7c48d950.noarch - - perl-File-Find-Object-Rule-0:0.0306-6.module_1675+7c48d950.noarch - - perl-File-Find-Rule-0:0.34-8.module_1675+7c48d950.noarch - - perl-File-Find-Rule-Perl-0:1.15-10.module_1675+7c48d950.noarch - - perl-File-HomeDir-0:1.002-4.module_1675+7c48d950.noarch - - perl-File-Path-0:2.12-413.module_2073+eebc5b71.noarch - - perl-File-Path-0:2.15-2.module_1675+7c48d950.noarch - - perl-File-Slurp-Tiny-0:0.004-7.module_1675+7c48d950.noarch - - perl-File-Temp-0:0.230.400-413.module_2073+eebc5b71.noarch - - perl-File-Temp-0:0.230.600-1.module_2073+eebc5b71.noarch - - perl-File-Which-0:1.22-2.module_1675+7c48d950.noarch - - perl-Filter-2:1.55-413.module_2073+eebc5b71.x86_64 - - perl-Filter-2:1.58-2.module_1675+7c48d950.x86_64 - - perl-Filter-Simple-0:0.93-413.module_2073+eebc5b71.noarch - - perl-Filter-Simple-0:0.94-2.module_1675+7c48d950.noarch - - perl-Getopt-Long-1:2.49-413.module_2073+eebc5b71.noarch - - perl-Getopt-Long-1:2.50-4.module_1675+7c48d950.noarch - - perl-HTML-Parser-0:3.72-11.module_1675+7c48d950.x86_64 - - perl-HTML-Parser-tests-0:3.72-11.module_1675+7c48d950.x86_64 - - perl-HTML-Tagset-0:3.20-33.module_1675+7c48d950.noarch - - perl-HTTP-Date-0:6.02-18.module_1675+7c48d950.noarch - - perl-HTTP-Message-0:6.18-1.module_2073+eebc5b71.noarch - - perl-HTTP-Tiny-0:0.070-413.module_2073+eebc5b71.noarch - - perl-HTTP-Tiny-0:0.076-1.module_2073+eebc5b71.noarch - - perl-IO-0:1.38-413.module_2073+eebc5b71.x86_64 - - perl-IO-Compress-0:2.074-413.module_2073+eebc5b71.noarch - - perl-IO-Compress-0:2.081-1.module_1675+7c48d950.noarch - - perl-IO-HTML-0:1.001-10.module_1675+7c48d950.noarch - - perl-IO-Socket-INET6-0:2.72-12.module_1675+7c48d950.noarch - - perl-IO-Socket-IP-0:0.38-413.module_2073+eebc5b71.noarch - - perl-IO-Socket-IP-0:0.39-5.module_1675+7c48d950.noarch - - perl-IO-Socket-SSL-0:2.056-1.module_1675+7c48d950.noarch - - perl-IO-String-0:1.08-31.module_1675+7c48d950.noarch - - perl-IO-Tty-0:1.12-11.module_1675+7c48d950.x86_64 - - perl-IO-Zlib-1:1.10-413.module_2073+eebc5b71.noarch - - perl-IPC-Cmd-2:0.96-413.module_2073+eebc5b71.noarch - - perl-IPC-Cmd-2:1.02-1.module_2073+eebc5b71.noarch - - perl-IPC-Run-0:0.99-1.module_1675+7c48d950.noarch - - perl-IPC-SysV-0:2.07-397.module_1675+7c48d950.x86_64 - - perl-IPC-SysV-0:2.07-413.module_2073+eebc5b71.x86_64 - - perl-IPC-System-Simple-0:1.25-17.module_1675+7c48d950.noarch - - perl-Import-Into-0:1.002005-7.module_1675+7c48d950.noarch - - perl-JSON-PP-1:2.27.400-413.module_2073+eebc5b71.noarch - - perl-JSON-PP-1:2.97.001-2.module_1675+7c48d950.noarch - - perl-LWP-MediaTypes-0:6.02-14.module_1675+7c48d950.noarch - - perl-Locale-Codes-0:3.25-413.module_2073+eebc5b71.noarch - - perl-Locale-Codes-0:3.57-1.module_2073+eebc5b71.noarch - - perl-Locale-Maketext-0:1.28-396.module_1675+7c48d950.noarch - - perl-Locale-Maketext-0:1.28-413.module_2073+eebc5b71.noarch - - perl-Locale-Maketext-Simple-1:0.21-413.module_2073+eebc5b71.noarch - - perl-MIME-Base64-0:3.15-396.module_1675+7c48d950.x86_64 - - perl-MIME-Base64-0:3.15-413.module_2073+eebc5b71.x86_64 - - perl-MRO-Compat-0:0.13-4.module_1675+7c48d950.noarch - - perl-Math-BigInt-1:1.9998.06-413.module_2073+eebc5b71.noarch - - perl-Math-BigInt-1:1.9998.11-5.module_1675+7c48d950.noarch - - perl-Math-BigInt-FastCalc-0:0.500.500-413.module_2073+eebc5b71.x86_64 - - perl-Math-BigInt-FastCalc-0:0.500.600-6.module_1675+7c48d950.x86_64 - - perl-Math-BigRat-0:0.2611-413.module_2073+eebc5b71.noarch - - perl-Math-BigRat-0:0.2614-1.module_2073+eebc5b71.noarch - - perl-Math-Complex-0:1.59-413.module_2073+eebc5b71.noarch - - perl-Memoize-0:1.03-413.module_2073+eebc5b71.noarch - - perl-Mixin-Linewise-0:0.108-9.module_1675+7c48d950.noarch - - perl-Module-Build-2:0.42.24-5.module_1675+7c48d950.noarch - - perl-Module-CoreList-1:5.20180414-413.module_2073+eebc5b71.noarch - - perl-Module-CoreList-1:5.20180720-1.module_2073+eebc5b71.noarch - - perl-Module-CoreList-tools-1:5.20180414-413.module_2073+eebc5b71.noarch - - perl-Module-CoreList-tools-1:5.20180720-1.module_2073+eebc5b71.noarch - - perl-Module-Load-1:0.32-395.module_1675+7c48d950.noarch - - perl-Module-Load-1:0.32-413.module_2073+eebc5b71.noarch - - perl-Module-Load-Conditional-0:0.68-395.module_1675+7c48d950.noarch - - perl-Module-Load-Conditional-0:0.68-413.module_2073+eebc5b71.noarch - - perl-Module-Loaded-1:0.08-413.module_2073+eebc5b71.noarch - - perl-Module-Metadata-0:1.000033-395.module_1675+7c48d950.noarch - - perl-Module-Metadata-0:1.000033-413.module_2073+eebc5b71.noarch - - perl-Module-Runtime-0:0.016-2.module_1675+7c48d950.noarch - - perl-Net-IDN-Encode-0:2.400-6.module_1675+7c48d950.x86_64 - - perl-Net-LibIDN-0:0.12-29.module_1675+7c48d950.x86_64 - - perl-Net-Ping-0:2.55-413.module_2073+eebc5b71.noarch - - perl-Net-SSLeay-0:1.85-1.module_1675+7c48d950.x86_64 - - perl-Number-Compare-0:0.03-19.module_1675+7c48d950.noarch - - perl-Package-Generator-0:1.106-11.module_1675+7c48d950.noarch - - perl-Params-Check-1:0.38-395.module_1675+7c48d950.noarch - - perl-Params-Check-1:0.38-413.module_2073+eebc5b71.noarch - - perl-Params-Util-0:1.07-22.module_1675+7c48d950.x86_64 - - perl-PathTools-0:3.67-413.module_2073+eebc5b71.x86_64 - - perl-PathTools-0:3.74-1.module_1675+7c48d950.x86_64 - - perl-Perl-OSType-0:1.010-396.module_1675+7c48d950.noarch - - perl-Perl-OSType-0:1.010-413.module_2073+eebc5b71.noarch - - perl-Perl-Version-0:1.013-9.module_1675+7c48d950.noarch - - perl-PerlIO-utf8_strict-0:0.007-5.module_1675+7c48d950.x86_64 - - perl-PerlIO-via-QuotedPrint-0:0.08-395.module_1675+7c48d950.noarch - - perl-PerlIO-via-QuotedPrint-0:0.08-413.module_2073+eebc5b71.noarch - - perl-Pod-Checker-4:1.73-395.module_1675+7c48d950.noarch - - perl-Pod-Checker-4:1.73-413.module_2073+eebc5b71.noarch - - perl-Pod-Coverage-0:0.23-14.module_1675+7c48d950.noarch - - perl-Pod-Coverage-TrustPod-0:0.100005-1.module_1675+7c48d950.noarch - - perl-Pod-Escapes-1:1.07-395.module_1675+7c48d950.noarch - - perl-Pod-Escapes-1:1.07-413.module_2073+eebc5b71.noarch - - perl-Pod-Eventual-0:0.094001-9.module_1675+7c48d950.noarch - - perl-Pod-Html-0:1.22.02-413.module_2073+eebc5b71.noarch - - perl-Pod-Parser-0:1.63-396.module_1675+7c48d950.noarch - - perl-Pod-Parser-0:1.63-413.module_2073+eebc5b71.noarch - - perl-Pod-Perldoc-0:3.28-413.module_2073+eebc5b71.noarch - - perl-Pod-Perldoc-0:3.28.01-1.module_2073+eebc5b71.noarch - - perl-Pod-Simple-1:3.35-395.module_1675+7c48d950.noarch - - perl-Pod-Simple-1:3.35-413.module_2073+eebc5b71.noarch - - perl-Pod-Usage-4:1.69-395.module_1675+7c48d950.noarch - - perl-Pod-Usage-4:1.69-413.module_2073+eebc5b71.noarch - - perl-SUPER-0:1.20141117-10.module_1675+7c48d950.noarch - - perl-Scalar-List-Utils-3:1.46-413.module_2073+eebc5b71.x86_64 - - perl-Scalar-List-Utils-3:1.49-2.module_1675+7c48d950.x86_64 - - perl-SelfLoader-0:1.23-413.module_2073+eebc5b71.noarch - - perl-Socket-4:2.020-413.module_2073+eebc5b71.x86_64 - - perl-Socket-4:2.027-2.module_1675+7c48d950.x86_64 - - perl-Socket6-0:0.28-6.module_1675+7c48d950.x86_64 - - perl-Software-License-0:0.103013-2.module_1675+7c48d950.noarch - - perl-Sort-Versions-0:1.62-8.module_1675+7c48d950.noarch - - perl-Storable-1:2.62-413.module_2073+eebc5b71.x86_64 - - perl-Storable-1:3.11-2.module_2073+eebc5b71.x86_64 - - perl-Sub-Exporter-0:0.987-15.module_1675+7c48d950.noarch - - perl-Sub-Identify-0:0.14-6.module_1675+7c48d950.x86_64 - - perl-Sub-Install-0:0.928-14.module_1675+7c48d950.noarch - - perl-Sub-Uplevel-1:0.2800-4.module_1675+7c48d950.noarch - - perl-Sys-Syslog-0:0.35-397.module_1675+7c48d950.x86_64 - - perl-Sys-Syslog-0:0.35-413.module_2073+eebc5b71.x86_64 - - perl-Term-ANSIColor-0:4.06-396.module_1675+7c48d950.noarch - - perl-Term-ANSIColor-0:4.06-413.module_2073+eebc5b71.noarch - - perl-Term-Cap-0:1.17-395.module_1675+7c48d950.noarch - - perl-Term-Cap-0:1.17-413.module_2073+eebc5b71.noarch - - perl-Test-0:1.30-413.module_2073+eebc5b71.noarch - - perl-Test-CPAN-Meta-0:0.25-12.module_1675+7c48d950.noarch - - perl-Test-Deep-0:1.127-4.module_1675+7c48d950.noarch - - perl-Test-Exception-0:0.43-7.module_1675+7c48d950.noarch - - perl-Test-FailWarnings-0:0.008-12.module_1675+7c48d950.noarch - - perl-Test-Harness-1:3.38-413.module_2073+eebc5b71.noarch - - perl-Test-Harness-1:3.42-1.module_1675+7c48d950.noarch - - perl-Test-MockModule-0:0.13-3.module_1675+7c48d950.noarch - - perl-Test-Needs-0:0.002005-5.module_1675+7c48d950.noarch - - perl-Test-NoWarnings-0:1.04-15.module_1675+7c48d950.noarch - - perl-Test-Output-0:1.03.1-4.module_1675+7c48d950.noarch - - perl-Test-Pod-0:1.51-8.module_1675+7c48d950.noarch - - perl-Test-Pod-Coverage-0:1.10-10.module_1675+7c48d950.noarch - - perl-Test-Simple-1:1.302073-413.module_2073+eebc5b71.noarch - - perl-Test-Simple-1:1.302135-1.module_1675+7c48d950.noarch - - perl-Test-Taint-0:1.06-19.module_1675+7c48d950.x86_64 - - perl-Test-TrailingSpace-0:0.0301-5.module_1675+7c48d950.noarch - - perl-Test-Version-0:2.07-1.module_1675+7c48d950.noarch - - perl-Test-Warn-0:0.32-5.module_1675+7c48d950.noarch - - perl-Test-Warnings-0:0.026-7.module_1675+7c48d950.noarch - - perl-Text-Balanced-0:2.03-395.module_1675+7c48d950.noarch - - perl-Text-Balanced-0:2.03-413.module_2073+eebc5b71.noarch - - perl-Text-Diff-0:1.45-2.module_1675+7c48d950.noarch - - perl-Text-Glob-0:0.11-4.module_1675+7c48d950.noarch - - perl-Text-ParseWords-0:3.30-395.module_1675+7c48d950.noarch - - perl-Text-ParseWords-0:3.30-413.module_2073+eebc5b71.noarch - - perl-Text-Tabs+Wrap-0:2013.0523-395.module_1675+7c48d950.noarch - - perl-Text-Tabs+Wrap-0:2013.0523-413.module_2073+eebc5b71.noarch - - perl-Text-Template-0:1.51-1.module_1675+7c48d950.noarch - - perl-Thread-Queue-0:3.12-413.module_2073+eebc5b71.noarch - - perl-Thread-Queue-0:3.13-1.module_2073+eebc5b71.noarch - - perl-Tie-IxHash-0:1.23-13.module_1675+7c48d950.noarch - - perl-Time-HiRes-0:1.9741-413.module_2073+eebc5b71.x86_64 - - perl-Time-HiRes-0:1.9758-1.module_1675+7c48d950.x86_64 - - perl-Time-Local-0:1.250-413.module_2073+eebc5b71.noarch - - perl-Time-Local-1:1.280-1.module_2073+eebc5b71.noarch - - perl-Time-Piece-0:1.31-413.module_2073+eebc5b71.x86_64 - - perl-TimeDate-1:2.30-13.module_1675+7c48d950.noarch - - perl-Try-Tiny-0:0.30-2.module_1675+7c48d950.noarch - - perl-URI-0:1.73-2.module_1675+7c48d950.noarch - - perl-Unicode-Collate-0:1.19-413.module_2073+eebc5b71.x86_64 - - perl-Unicode-Collate-0:1.25-2.module_1675+7c48d950.x86_64 - - perl-Unicode-Normalize-0:1.25-396.module_1675+7c48d950.x86_64 - - perl-Unicode-Normalize-0:1.25-413.module_2073+eebc5b71.x86_64 - - perl-YAML-0:1.24-2.module_1675+7c48d950.noarch - - perl-autodie-0:2.29-396.module_1675+7c48d950.noarch - - perl-autodie-0:2.29-413.module_2073+eebc5b71.noarch - - perl-bignum-0:0.47-413.module_2073+eebc5b71.noarch - - perl-bignum-0:0.49-2.module_1675+7c48d950.noarch - - perl-constant-0:1.33-396.module_1675+7c48d950.noarch - - perl-constant-0:1.33-413.module_2073+eebc5b71.noarch - - perl-devel-4:5.26.2-413.module_2073+eebc5b71.x86_64 - - perl-encoding-4:2.19-413.module_2073+eebc5b71.x86_64 - - perl-encoding-4:2.22-3.module_1675+7c48d950.x86_64 - - perl-experimental-0:0.016-413.module_2073+eebc5b71.noarch - - perl-experimental-0:0.020-1.module_2073+eebc5b71.noarch - - perl-generators-0:1.10-7.module_1675+7c48d950.noarch - - perl-homedir-0:2.000024-2.module_1675+7c48d950.noarch - - perl-inc-latest-2:0.500-9.module_1675+7c48d950.noarch - - perl-interpreter-4:5.26.2-413.module_2073+eebc5b71.x86_64 - - perl-libnet-0:3.10-413.module_2073+eebc5b71.noarch - - perl-libnet-0:3.11-3.module_1675+7c48d950.noarch - - perl-libnetcfg-4:5.26.2-413.module_2073+eebc5b71.noarch - - perl-libs-4:5.26.2-413.module_2073+eebc5b71.x86_64 - - perl-local-lib-0:2.000024-2.module_1675+7c48d950.noarch - - perl-macros-4:5.26.2-413.module_2073+eebc5b71.x86_64 - - perl-open-0:1.11-413.module_2073+eebc5b71.noarch - - perl-parent-1:0.236-395.module_1675+7c48d950.noarch - - perl-parent-1:0.236-413.module_2073+eebc5b71.noarch - - perl-perlfaq-0:5.021011-413.module_2073+eebc5b71.noarch - - perl-perlfaq-0:5.20180605-1.module_2073+eebc5b71.noarch - - perl-podlators-0:4.09-413.module_2073+eebc5b71.noarch - - perl-podlators-0:4.11-1.module_2073+eebc5b71.noarch - - perl-tests-4:5.26.2-413.module_2073+eebc5b71.x86_64 - - perl-threads-1:2.15-413.module_2073+eebc5b71.x86_64 - - perl-threads-1:2.21-2.module_1675+7c48d950.x86_64 - - perl-threads-shared-0:1.56-413.module_2073+eebc5b71.x86_64 - - perl-threads-shared-0:1.58-2.module_1675+7c48d950.x86_64 - - perl-utils-0:5.26.2-413.module_2073+eebc5b71.noarch - - perl-version-6:0.99.17-413.module_2073+eebc5b71.noarch - - perl-version-6:0.99.24-1.module_2073+eebc5b71.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: perl-bootstrap - stream: 5.24 - version: 20180417065503 - context: 6c81f848 - arch: x86_64 - summary: Perl bootstrap module for bootrapping Perl module - description: > - This is the Perl interpreter and a set of modules written in Perl language intended - for bootstrapping the perl module. This module disables some optional tests to - limit amount of components. This module is not intended for public use. It's an - intermediate step for building perl module. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/perl-bootstrap.git?#47f4825a1d5e2a8fd7b76583744ea8f2202c850c - commit: 47f4825a1d5e2a8fd7b76583744ea8f2202c850c - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 4 - filtered_rpms: [] - rpms: - perl-Devel-Symdump: - ref: 8c2d0279e473e311cfcf0521091d3f93c221937a - perl-Test-Pod: - ref: 576a8c16670036dc9212fd54eabd0ef7d9d164c1 - perl-Perl-Version: - ref: 3efa7273f190e94ee96af9bbad3c137dc3b787c3 - perl-Digest-MD5: - ref: 884cdd515f0250589dd4cde8c32a9d77fc55871e - perl-Test-Portability-Files: - ref: cdddd635bbdd7685819558be423e4456b66a090d - perl-Pod-Escapes: - ref: 1ab928503d1824c54a6a32e6b5d527b389f34d05 - perl-Text-ParseWords: - ref: 1c120cf2934e246a59a5f37284ac8111c52fa806 - perl-podlators: - ref: 380d587d637c4b5fe4c1b961aa16cb698ed2a07b - perl-Pod-Eventual: - ref: 4c8406d6788f6552c47df76ae69601a9de6486ff - perl-IPC-Cmd: - ref: fc6bc3efe40775d3e63d811a65ed0cab6aa138e1 - perl-Test-Output: - ref: 8b0264e6c842946fe77b7c461275961680e62368 - perl-SUPER: - ref: 5e0a1ed539e5948eeea71c3ad3d8ce124b4d63c2 - perl-Time-Local: - ref: e74a3e804e77a0d704eebdede825b6d0d6cc617b - perl-IPC-SysV: - ref: 6102b15b4a3e30698673109ddda94a2325123e38 - perl-Package-Generator: - ref: f78e39fa9dc3fd1474475eabcb9378375142dd70 - perl-MRO-Compat: - ref: 13cfd3efff5d02609bf8fe0c36a9e7a9a37ca8b8 - perl-IO-String: - ref: e441228a5c401a96fdfa989706c0b4da67902cfc - perl-Perl-OSType: - ref: c2efc33ea89adb7c2da626cc3d436bbc69203e2b - perl-Compress-Raw-Bzip2: - ref: b989d850d818cbaeba0c47b0d975e1afd6b34bb8 - perl-IO-HTML: - ref: 69a460858b8c1f47bb6320faa6f310dab6808184 - perl: - ref: 9acafa0017b87ed96f8857fd7099787f0d24ff56 - perl-File-Slurp-Tiny: - ref: 1f6426ab2ee83674668788199ec0a1ba676c1ec3 - perl-Params-Util: - ref: 4bfebd9e4cb2fe6a52e2ae69d5e5e74b36296f9f - perl-File-Path: - ref: 5848e296d61a3de73f17016f7f37a6395ae0f402 - perl-File-Which: - ref: 1a2ca4a9b713f31c6f99f6dec3dafdd0a457a44f - perl-Sub-Uplevel: - ref: 7a179457e0f3068e923a4fe3db2dd74a68b72925 - perl-Module-Load: - ref: 3f98c8f286677f7b700f661545154e781798ef0c - perl-CPAN-Meta-Requirements: - ref: f693254160585068bd1db62ffa980963a2ef7011 - perl-Test-CPAN-Meta: - ref: 9aac31d337c0526dedcd5b36ba4d97e71a04cf8c - perl-Devel-Leak: - ref: aac20d847c0b0c781e9c6d49a4458526b9f9aa8b - perl-Test-Harness: - ref: 2ddba30c66331628ef273a6df6b67e2b05d76022 - perl-parent: - ref: f50da57010454e2279d899a57fdbc65a48edc74c - perl-ExtUtils-CBuilder: - ref: 521e6f6f83dc9a5afbb517d85e637bfa69f59701 - perl-perlfaq: - ref: 63e299c953b8f4b558fe904fc7d31763f79760f1 - perl-IO-Socket-IP: - ref: 4e56568b5d09ad4aefccb354183614ae5b3f6235 - perl-Sub-Install: - ref: 799f7222e97cc90f9abb7e1f02a5847d71a83cb0 - perl-IPC-System-Simple: - ref: c6c28f1091285aa29100a31c705bcf916a13452b - perl-Socket: - ref: 14bd5dedb6ff8da7d7b0f5945aa61ffa620777d1 - perl-ExtUtils-ParseXS: - ref: 9398847c09b96f2765b1a03b4b84188e28711273 - perl-Test-Deep: - ref: efc3846cd014e4c4adb0637da854b2413112cc9e - perl-IPC-Run: - ref: d123ca7ec60ceb684a6acf68ea4a492562bb2937 - perl-Import-Into: - ref: 4964255b1b7b5d0b7c61f0f56db81963ce4b559e - perl-BSD-Resource: - ref: b0968a4d109d201a1318c0012f4e8f858d2f78d2 - perl-ExtUtils-Install: - ref: 507084f8349f691d4688fe9a49e92be1711874e4 - perl-autodie: - ref: 40735fb3b9a6b96b40934e72672bb1a04eb0999a - perl-Locale-Maketext: - ref: 57b31cf2d161ce97448d225af3f86c210d78ad6a - perl-Module-Runtime: - ref: b61338418e9c84469b3d76a17b70f38497d30dd7 - perl-Data-OptList: - ref: 9512df0280d65abfaa04d6437367705c3b19b54f - perl-LWP-MediaTypes: - ref: 31f031d664748d5049327f8928d998ba1003d606 - perl-CPAN-Meta-YAML: - ref: 3609aa7e2ae8ca137d9ff46de25d4b869fdb8c2b - perl-Math-BigInt-FastCalc: - ref: 785456ac9585a8b4f7628d3bd2a0dacd5b592d09 - perl-File-Temp: - ref: de8e0c3e7e630e6861a0c0979c5ab60227f7de8e - perl-JSON-PP: - ref: 1e3fe253e7edbdc506418a38d666ed19db8ce136 - perl-Test-Simple: - ref: e64b2e39f56e17d7b9046881d589c778aaf4ce8b - perl-File-Find-Object: - ref: 352249b989b0d30b7872918228edcb76cdc7836e - perl-Capture-Tiny: - ref: b62d26b13aced270b75df6b6fe3a2cc10f8e8987 - perl-HTTP-Message: - ref: 3fb93e190e2804faea83abcb45214b00fd090bc5 - perl-Pod-Coverage-TrustPod: - ref: f784cfffe48f00c3d1a8317581a940d2ae6268c1 - perl-inc-latest: - ref: 0a60ae8876d88d2eaac83b84d6d2fff8ced1b9a1 - perl-Module-Build: - ref: 2c9e4f8f3788caeaa4707f7b562f1ad39a416680 - perl-Module-Load-Conditional: - ref: bb49232617058d8af4f199db9972f04cd3eefe0d - perl-Filter: - ref: 998996cc8b57f55172167da01155d3a7b59c1e99 - perl-Pod-Checker: - ref: 6c8f684a9863678be5724c2e565ba1aa62761151 - perl-Sort-Versions: - ref: c4677aff1f40cf996fb73d0d1312c2583434fa6b - perl-Thread-Queue: - ref: e0fff689fc097ecf54bac2f09e5e7bd3c4d00ef6 - perl-IO-Compress: - ref: 1e67f30fcc790e2d133ecd756e1b68dc1e423999 - perl-Math-BigInt: - ref: 82d8ddba8d0d808a04d9d4cb579df53f65112027 - perl-File-Find-Rule: - ref: d948339f4b97b6ce271c9c288b144cf967411043 - perl-Text-Template: - ref: 9309a484a2e8e309272c8916cf63a12e385eaaef - perl-Test-Exception: - ref: b78e90750d6fb261ce29ad3a347b1e394c612331 - perl-Unicode-Normalize: - ref: 6875f415710668a788423fdd80ae712e0c3d3ab2 - perl-HTML-Tagset: - ref: b4bb7fb9dd897fed415210afbaa904bfb7fd4e45 - perl-Test-Version: - ref: f5adf2bc958c6bb1c847fd9e355df70285cf38fb - perl-URI: - ref: 28d53fda027d3a984ffa201d4494389c6b7796b0 - perl-TermReadKey: - ref: 012af49cc9a63d1d481cb616a21b0f3545aefe23 - perl-Text-Glob: - ref: 346be0660f0fc621a960467b5fa1ee656b9cd87f - perl-Pod-Simple: - ref: a0eec0341f8cc19d74f6f21f9bf38781446a0ad1 - perl-Algorithm-Diff: - ref: f4b6c06396d4768c691a23b3b967fe6fac1e46ee - perl-Class-XSAccessor: - ref: c9edaedd473078571b2fd3de7743c69f0cc67f1a - perl-ExtUtils-MakeMaker: - ref: 5d9438be138d0919320b5a6e2324df05fe123d6a - perl-CPAN: - ref: 4159d449e5a66ddef70d1fe7f1d37279d4d99bc5 - perl-Tie-IxHash: - ref: 8e7169c7705dddb6290c1d8c116c5ca4eb1de7a4 - perl-Digest: - ref: 6867766aaf85865d33675be774af4751b8ae9549 - perl-Compress-Raw-Zlib: - ref: ed5582bb24c481aaa0de7a33ecbf85989e0ddd8c - perl-Devel-StackTrace: - ref: 64a31414eda5c263e7bea908641ad4e44c46de31 - perl-GSSAPI: - ref: 248a8c09ceed073a724a44e11d65fc15fc792201 - perl-Test-FailWarnings: - ref: 6d8ce49b232ead21cf55098590e10eb897d24426 - perl-ExtUtils-Manifest: - ref: 2fd5140cb9441b0445de12b720c5459ed38e95b7 - perl-experimental: - ref: cad2845a55a98ca9565be2707c3ff48e984fd1da - perl-MIME-Base64: - ref: da62d3707ea9781efc91ba48d47ce49b2297a364 - perl-version: - ref: 098155010f833f432a85cb97754e1080750ec873 - perl-Pod-Parser: - ref: efe0977afc65bae502a4ee5bc47430b4e2b6702f - perl-Text-Levenshtein-Damerau-XS: - ref: 920027ab00d12e5a2e6b12e2e8d7f0b23fd6f1c1 - perl-Exporter: - ref: 14c101bc77bc5119c4f75065d6f4b6edea4b502a - perl-Text-Balanced: - ref: c6648ff72f7b1798642f719036a677102c7ee125 - perl-PathTools: - ref: e643e0b6864983a2606f5bcf3ae9a34caeda4059 - perl-Compress-Bzip2: - ref: 1ac091378670bfc36b3e866924ddc076cd800cf2 - perl-Number-Compare: - ref: a3e2f8c0ea3542cde8009225501e8c09cad2582d - perl-Authen-SASL: - ref: a21e64f1a36fd53125e5a79287c34b2f16fc9782 - perl-JSON: - ref: 7e6037e3c89511b23511c4292ce1129ef43dd09c - perl-Fedora-VSP: - ref: 63312d7720e816853bd595cbcdc9d9e3cce0880b - perl-Test-NoWarnings: - ref: ff0744a0c58a759894a7296f4f47aec3522105a5 - perl-Locale-Codes: - ref: bd6e31d21f18e85ffe4411b0ce7238d6a974063a - perl-Digest-HMAC: - ref: 74df7c0a82a218beba053d129a0d29fa74316724 - perl-Module-CoreList: - ref: 6b31db0c22a4824a2ae7c40114a8af17bcfd125b - perl-Digest-SHA: - ref: 2b4a62eaf739a7d2ce6649f3a326dbd562ed8b74 - perl-Expect: - ref: 9b537a758488cd3f11288f65eb76384f562bed93 - perl-CPAN-Meta-Check: - ref: 4c4b5bd0d549adebf27a79f755db22dadb324d70 - perl-Scalar-List-Utils: - ref: 7eb2ea6397b7fbeeaeacbb176bbbc453723ded1a - perl-TimeDate: - ref: f375f3f228c209a12ac22d1055ddeba07e01134b - perl-Pod-Coverage: - ref: ec582e4dc33ea441ec00496a2123333052834e59 - perl-generators: - ref: 87c9a690dd58beeaa573074d26fccccb089ab31b - perl-Text-Tabs+Wrap: - ref: 90b3a77c499b10b5d34569f8b1b26327495049ea - perl-Pod-Perldoc: - ref: 842e567a333ccfd2b15be93f230d29414be0f581 - perl-Time-HiRes: - ref: 17004a2568fc6de651cee58816cec8640a825d4c - perl-HTTP-Tiny: - ref: d396ccfe1aadc5746420b06e268e04316eb62c44 - perl-Sub-Exporter: - ref: 92259c19826f0aed436f04d886cf4e1f208ff103 - perl-Test-Taint: - ref: c72c54ac4c5cde555381dd2b4037d0a34af36af4 - perl-B-Debug: - ref: ec558193299b89d6babcf009bdcc18dc7fc48a4e - perl-File-HomeDir: - ref: 2982c5d9f538d8c640c3ca8fee7566d68e5ea68e - perl-threads: - ref: f0b3ca4a1602b11c483d97aea130e2dea8b8f96f - perl-accessors: - ref: 0e851a02363f4433b6fa5822553ba810f2127711 - perl-Unicode-Collate: - ref: c6bc5268528635406bf3237258e7c2969a2bdfc6 - perl-YAML-Syck: - ref: 5454878158f3a1eca83b59ebbff5f21b1284a3af - perl-Encode-Locale: - ref: b0a26b89329c19ad11b5bb5a3292b960f74563e0 - perl-Try-Tiny: - ref: e6ae51897ab12408471d9a6285d2cb6a472aff65 - perl-Text-Diff: - ref: 2ee347e962b8a0e83eeecf3324062308cc1d1a2c - perl-threads-shared: - ref: cd6fd55c5d0ce4aaf7394f4ee865d68c61e91cd1 - perl-Math-BigRat: - ref: 72d54e7b07b44e1b126a961e8ac44b346d9ee7de - perl-HTML-Parser: - ref: 91f7240000e51a6838eb39a25a63bd329cc4ed9d - perl-Storable: - ref: d76f7a7ba835789a1ca93e3c0db2fc17a9f11907 - perl-Getopt-Long: - ref: a7414b0c7a488b9af202fff1eb6a2fb2a3ca6327 - perl-Digest-SHA1: - ref: ac79089f89be4e77521118399bf9f27ea9acebf0 - perl-bignum: - ref: 74c0852bf10b97499c694d3d32f5e66a7a7d7cf3 - perl-Net-SSLeay: - ref: 62017fc4159c66debfa779e71c05bd206a411650 - perl-Term-ANSIColor: - ref: 3a74f9162f818ffaa4069d74c931caef0560514b - perl-IO-Tty: - ref: 5d0e7d74fd5f707edf41bb8d9dcbf4e40d8227d9 - perl-Net-IDN-Encode: - ref: 460f7f72751e3c81d09d566073944962ab4d6411 - perl-Carp: - ref: 84fbaf6f236f9a082ae6960bbbd160f6e75894c5 - perl-libnet: - ref: e6cc3a47e0776ada93c3801f06af81fb7b642d38 - perl-Test-Pod-Coverage: - ref: 010a282957d054909aeda5efa3a699fd3c7992f7 - perl-local-lib: - ref: 96f72250500b509a87fe9263b81f888812ba08cf - perl-Test-TrailingSpace: - ref: d6e33a6af0540130b87353ba17160e222252cb89 - perl-Params-Check: - ref: cf2ab4714451509691e4c06f968b0cc71891a8b8 - perl-File-Find-Rule-Perl: - ref: d9c5ed29fbca16a094c2e8c13f9a7d316b0309f4 - perl-Mixin-Linewise: - ref: 00c2d1043dcd5241042440ab1db81dc4442b0717 - perl-Pod-Usage: - ref: 9d38a4ee92dafbfdd5e8adf44810304de6bbc9e0 - perl-Data-Dumper: - ref: c8ea0bbaafa024bc09c7f29342f584885571eb07 - perl-Data-Section: - ref: 6ed48ef1733de62cd245237e25d93ea9a827d5e6 - perl-Socket6: - ref: 81332b86b363354a64ae9a952464963b2364e1a4 - perl-File-Fetch: - ref: b4bf1bd8af7755b16b40a3dd67cb743bef9b1652 - perl-HTTP-Date: - ref: 10316c369112a515f0e98539bfbef604709aad25 - perl-Software-License: - ref: da9a11a3ad14d5a4cbfe9b52d108b672a6939d69 - perl-IO-Socket-SSL: - ref: 0127aa728ad530065708aee31fa1bb31309c574a - perl-Env: - ref: 58ac31466f9c9824d25b13ad559622dcdd65e20a - perl-Config-Perl-V: - ref: 5a2c9f1ea41e4f07e76062c9598619fed2b4dcb6 - perl-IO-Socket-INET6: - ref: a94e5c6c12df30734570d0b2587ae0b19f1e6e6a - perl-Archive-Tar: - ref: 2bd7368d3debb90e1d87c3d44db91412fd39873c - perl-Test-Warn: - ref: 55255a6e3e3379784b9d3dc982d3ffbcefca0912 - perl-Devel-Size: - ref: 982a54ab4a98fba5339f850fa9cc30af93703d2f - perl-Test-MockModule: - ref: 89e06b4276d3db97152535beb7b18245643d78de - perl-Term-Cap: - ref: 28e345f7f785aa5b60572bfa5ba2627ef8dd3033 - perl-Sys-Syslog: - ref: 008e476eb1f3e015ad34f302a4cad874e4aad33a - perl-Devel-PPPort: - ref: bd144f784620e5cb43ef9aea61c11d1bb7fe0503 - perl-CGI: - ref: 813b1d1505d678db76a08eade6cde0592ab01c76 - perl-CPAN-Meta: - ref: 68ca8b0eed6d50eaef11c381b6d8e4754f6c2a7d - perl-File-Find-Object-Rule: - ref: da140b5d0f2f2555c56b2c0d98520b57b263b5fe - perl-Archive-Zip: - ref: 948b8e44e8dc5def0baa82a96c46da5bff385086 - perl-DB_File: - ref: d9d4b751bd8ea51672630f3beb1ecaf899de40ad - perl-PerlIO-utf8_strict: - ref: 58caa0d757a324f86b5c9d6a8e27abb230ffc5e7 - perl-YAML: - ref: 5b3a5ddc9c27dae306b39436c62ba1343a745b5d - perl-Sub-Identify: - ref: ab54ce7ae8646b1faf1ce345b82a042c21272ff6 - perl-Filter-Simple: - ref: ca5e4217e059a7371a125419071852760d031dba - perl-Module-Metadata: - ref: f583f7db4daab0a72bae86e49b549c15f5e2c905 - perl-Net-LibIDN: - ref: b4176cefa2675271f48e4c28314baa018abdf887 - perl-PerlIO-via-QuotedPrint: - ref: 31eb1e0e1c723aaf09d6846b9016e4db94428700 - perl-constant: - ref: f005b65dee6a48411e2dfeb5e057dfb8a3818135 - perl-Encode: - ref: 346cfe7ccbce4c3cc2a4739b628d8d0b7e1a4779 - mbs_options: - blocked_packages: - - perl - - perl-accessors - - perl-Algorithm-Diff - - perl-Archive-Tar - - perl-Archive-Zip - - perl-Authen-SASL - - perl-autodie - - perl-B-Debug - - perl-bignum - - perl-BSD-Resource - - perl-Capture-Tiny - - perl-Carp - - perl-CGI - - perl-Class-XSAccessor - - perl-Compress-Bzip2 - - perl-Compress-Raw-Bzip2 - - perl-Compress-Raw-Zlib - - perl-Config-Perl-V - - perl-constant - - perl-CPAN - - perl-CPAN-Meta - - perl-CPAN-Meta-Check - - perl-CPAN-Meta-Requirements - - perl-CPAN-Meta-YAML - - perl-Data-Dumper - - perl-Data-OptList - - perl-Data-Section - - perl-DB_File - - perl-Devel-Leak - - perl-Devel-PPPort - - perl-Devel-Size - - perl-Devel-StackTrace - - perl-Devel-Symdump - - perl-Digest - - perl-Digest-HMAC - - perl-Digest-MD5 - - perl-Digest-SHA - - perl-Digest-SHA1 - - perl-Encode - - perl-Encode-Locale - - perl-Env - - perl-Expect - - perl-experimental - - perl-Exporter - - perl-ExtUtils-CBuilder - - perl-ExtUtils-Install - - perl-ExtUtils-MakeMaker - - perl-ExtUtils-Manifest - - perl-ExtUtils-ParseXS - - perl-Fedora-VSP - - perl-File-Fetch - - perl-File-Find-Object - - perl-File-Find-Object-Rule - - perl-File-Find-Rule - - perl-File-Find-Rule-Perl - - perl-File-HomeDir - - perl-File-Path - - perl-File-Slurp-Tiny - - perl-File-Temp - - perl-File-Which - - perl-Filter - - perl-Filter-Simple - - perl-generators - - perl-Getopt-Long - - perl-GSSAPI - - perl-HTML-Parser - - perl-HTML-Tagset - - perl-HTTP-Date - - perl-HTTP-Message - - perl-HTTP-Tiny - - perl-Import-Into - - perl-inc-latest - - perl-IO-Compress - - perl-IO-HTML - - perl-IO-Socket-INET6 - - perl-IO-Socket-IP - - perl-IO-Socket-SSL - - perl-IO-String - - perl-IO-Tty - - perl-IPC-Cmd - - perl-IPC-Run - - perl-IPC-System-Simple - - perl-IPC-SysV - - perl-JSON - - perl-JSON-PP - - perl-libnet - - perl-local-lib - - perl-Locale-Codes - - perl-Locale-Maketext - - perl-LWP-MediaTypes - - perl-Math-BigInt - - perl-Math-BigInt-FastCalc - - perl-Math-BigRat - - perl-MIME-Base64 - - perl-Mixin-Linewise - - perl-Module-Build - - perl-Module-CoreList - - perl-Module-Load - - perl-Module-Load-Conditional - - perl-Module-Metadata - - perl-Module-Runtime - - perl-MRO-Compat - - perl-Net-IDN-Encode - - perl-Net-LibIDN - - perl-Net-SSLeay - - perl-Number-Compare - - perl-Package-Generator - - perl-Params-Check - - perl-Params-Util - - perl-parent - - perl-PathTools - - perl-Perl-OSType - - perl-Perl-Version - - perl-perlfaq - - perl-PerlIO-utf8_strict - - perl-PerlIO-via-QuotedPrint - - perl-Pod-Checker - - perl-Pod-Coverage - - perl-Pod-Coverage-TrustPod - - perl-Pod-Escapes - - perl-Pod-Eventual - - perl-Pod-Parser - - perl-Pod-Perldoc - - perl-Pod-Simple - - perl-Pod-Usage - - perl-podlators - - perl-Scalar-List-Utils - - perl-Socket - - perl-Socket6 - - perl-Software-License - - perl-Sort-Versions - - perl-Storable - - perl-Sub-Exporter - - perl-Sub-Identify - - perl-Sub-Install - - perl-Sub-Uplevel - - perl-SUPER - - perl-Sys-Syslog - - perl-Term-ANSIColor - - perl-Term-Cap - - perl-TermReadKey - - perl-Test-CPAN-Meta - - perl-Test-Deep - - perl-Test-Exception - - perl-Test-FailWarnings - - perl-Test-Harness - - perl-Test-MockModule - - perl-Test-NoWarnings - - perl-Test-Output - - perl-Test-Pod - - perl-Test-Pod-Coverage - - perl-Test-Portability-Files - - perl-Test-Simple - - perl-Test-Taint - - perl-Test-TrailingSpace - - perl-Test-Version - - perl-Test-Warn - - perl-Text-Balanced - - perl-Text-Diff - - perl-Text-Glob - - perl-Text-Levenshtein-Damerau-XS - - perl-Text-ParseWords - - perl-Text-Tabs+Wrap - - perl-Text-Template - - perl-Thread-Queue - - perl-threads - - perl-threads-shared - - perl-Tie-IxHash - - perl-Time-HiRes - - perl-Time-Local - - perl-TimeDate - - perl-Try-Tiny - - perl-Unicode-Collate - - perl-Unicode-Normalize - - perl-URI - - perl-version - - perl-YAML - - perl-YAML-Syck - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://fedoraproject.org/wiki/Modularity - documentation: https://fedoraproject.org/wiki/Fedora_Packaging_Guidelines_for_Modules - buildopts: - rpms: - macros: | - %perl_bootstrap 1 - %_with_perl_enables_groff 1 - %_without_perl_enables_syslog_test 1 - %_with_perl_enables_systemtap 1 - %_without_perl_enables_tcsh 1 - %_without_perl_Compress_Bzip2_enables_optional_test 1 - %_without_perl_CPAN_Meta_Requirements_enables_optional_test 1 - %_without_perl_IPC_System_Simple_enables_optional_test 1 - %_without_perl_LWP_MediaTypes_enables_mailcap 1 - %_without_perl_Module_Build_enables_optional_test 1 - %_without_perl_Perl_OSType_enables_optional_test 1 - %_without_perl_Pod_Perldoc_enables_tk_test 1 - %_without_perl_Software_License_enables_optional_test 1 - %_without_perl_Sys_Syslog_enables_optional_test 1 - %_without_perl_Test_Harness_enables_optional_test 1 - %_without_perl_URI_enables_Business_ISBN 1 - components: - rpms: - perl: - rationale: The Perl interpreter. - repository: git://pkgs.fedoraproject.org/rpms/perl - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl - ref: f26 - buildorder: 1 - perl-Algorithm-Diff: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Algorithm-Diff - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Algorithm-Diff - ref: f26 - buildorder: 4 - perl-Archive-Tar: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Archive-Tar - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Archive-Tar - ref: f26 - buildorder: 4 - perl-Archive-Zip: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Archive-Zip - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Archive-Zip - ref: f26 - buildorder: 8 - perl-Authen-SASL: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Authen-SASL - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Authen-SASL - ref: f26 - buildorder: 6 - perl-B-Debug: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-B-Debug - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-B-Debug - ref: f26 - buildorder: 4 - perl-BSD-Resource: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-BSD-Resource - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-BSD-Resource - ref: f26 - buildorder: 7 - perl-CGI: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-CGI - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CGI - ref: f26 - buildorder: 6 - perl-CPAN: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN - ref: f26 - buildorder: 6 - perl-CPAN-Meta: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN-Meta - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN-Meta - ref: f26 - buildorder: 4 - perl-CPAN-Meta-Check: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN-Meta-Check - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN-Meta-Check - ref: f26 - buildorder: 10 - perl-CPAN-Meta-Requirements: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN-Meta-Requirements - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN-Meta-Requirements - ref: f26 - buildorder: 4 - perl-CPAN-Meta-YAML: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN-Meta-YAML - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN-Meta-YAML - ref: f26 - buildorder: 4 - perl-Capture-Tiny: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Capture-Tiny - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Capture-Tiny - ref: f26 - buildorder: 4 - perl-Carp: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Carp - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Carp - ref: f26 - buildorder: 4 - perl-Class-XSAccessor: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Class-XSAccessor - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Class-XSAccessor - ref: f26 - buildorder: 4 - perl-Compress-Bzip2: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Compress-Bzip2 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Compress-Bzip2 - ref: f26 - buildorder: 4 - perl-Compress-Raw-Bzip2: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Compress-Raw-Bzip2 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Compress-Raw-Bzip2 - ref: f26 - buildorder: 4 - perl-Compress-Raw-Zlib: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Compress-Raw-Zlib - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Compress-Raw-Zlib - ref: f26 - buildorder: 4 - perl-Config-Perl-V: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Config-Perl-V - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Config-Perl-V - ref: f26 - buildorder: 6 - perl-DB_File: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-DB_File - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-DB_File - ref: f26 - buildorder: 4 - perl-Data-Dumper: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Data-Dumper - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Data-Dumper - ref: f26 - buildorder: 4 - perl-Data-OptList: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Data-OptList - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Data-OptList - ref: f26 - buildorder: 5 - perl-Data-Section: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Data-Section - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Data-Section - ref: f26 - buildorder: 7 - perl-Devel-Leak: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Devel-Leak - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Devel-Leak - ref: f26 - buildorder: 4 - perl-Devel-PPPort: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Devel-PPPort - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Devel-PPPort - ref: f26 - buildorder: 4 - perl-Devel-Size: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Devel-Size - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Devel-Size - ref: f26 - buildorder: 7 - perl-Devel-StackTrace: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Devel-StackTrace - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Devel-StackTrace - ref: f26 - buildorder: 4 - perl-Devel-Symdump: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Devel-Symdump - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Devel-Symdump - ref: f26 - buildorder: 4 - perl-Digest: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Digest - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Digest - ref: f26 - buildorder: 4 - perl-Digest-HMAC: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Digest-HMAC - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Digest-HMAC - ref: f26 - buildorder: 5 - perl-Digest-MD5: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Digest-MD5 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Digest-MD5 - ref: f26 - buildorder: 4 - perl-Digest-SHA: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Digest-SHA - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Digest-SHA - ref: f26 - buildorder: 4 - perl-Digest-SHA1: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Digest-SHA1 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Digest-SHA1 - ref: f26 - buildorder: 4 - perl-Encode: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Encode - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Encode - ref: f26 - buildorder: 4 - perl-Encode-Locale: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Encode-Locale - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Encode-Locale - ref: f26 - buildorder: 4 - perl-Env: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Env - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Env - ref: f26 - buildorder: 4 - perl-Expect: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Expect - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Expect - ref: f26 - buildorder: 5 - perl-Exporter: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Exporter - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Exporter - ref: f26 - buildorder: 4 - perl-ExtUtils-CBuilder: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-CBuilder - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-CBuilder - ref: f26 - buildorder: 4 - perl-ExtUtils-Install: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-Install - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-Install - ref: f26 - buildorder: 4 - perl-ExtUtils-MakeMaker: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-MakeMaker - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-MakeMaker - ref: f26 - buildorder: 4 - perl-ExtUtils-Manifest: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-Manifest - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-Manifest - ref: f26 - buildorder: 4 - perl-ExtUtils-ParseXS: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-ParseXS - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-ParseXS - ref: f26 - buildorder: 4 - perl-Fedora-VSP: - rationale: RPM dependency generator. - repository: git://pkgs.fedoraproject.org/rpms/perl-Fedora-VSP - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Fedora-VSP - ref: f26 - buildorder: 2 - perl-File-Fetch: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Fetch - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Fetch - ref: f26 - buildorder: 5 - perl-File-Find-Object: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Find-Object - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Find-Object - ref: f26 - buildorder: 5 - perl-File-Find-Object-Rule: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Find-Object-Rule - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Find-Object-Rule - ref: f26 - buildorder: 6 - perl-File-Find-Rule: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Find-Rule - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Find-Rule - ref: f26 - buildorder: 5 - perl-File-Find-Rule-Perl: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Find-Rule-Perl - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Find-Rule-Perl - ref: f26 - buildorder: 6 - perl-File-HomeDir: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-HomeDir - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-HomeDir - ref: f26 - buildorder: 5 - perl-File-Path: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Path - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Path - ref: f26 - buildorder: 4 - perl-File-Slurp-Tiny: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Slurp-Tiny - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Slurp-Tiny - ref: f26 - buildorder: 4 - perl-File-Temp: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Temp - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Temp - ref: f26 - buildorder: 4 - perl-File-Which: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Which - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Which - ref: f26 - buildorder: 4 - perl-Filter: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Filter - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Filter - ref: f26 - buildorder: 4 - perl-Filter-Simple: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Filter-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Filter-Simple - ref: f26 - buildorder: 4 - perl-GSSAPI: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-GSSAPI - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-GSSAPI - ref: f26 - buildorder: 4 - perl-Getopt-Long: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Getopt-Long - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Getopt-Long - ref: f26 - buildorder: 4 - perl-HTML-Parser: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-HTML-Parser - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-HTML-Parser - ref: f26 - buildorder: 5 - perl-HTML-Tagset: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-HTML-Tagset - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-HTML-Tagset - ref: f26 - buildorder: 4 - perl-HTTP-Date: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-HTTP-Date - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-HTTP-Date - ref: f26 - buildorder: 4 - perl-HTTP-Message: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-HTTP-Message - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-HTTP-Message - ref: f26 - buildorder: 5 - perl-HTTP-Tiny: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-HTTP-Tiny - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-HTTP-Tiny - ref: f26 - buildorder: 4 - perl-IO-Compress: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-Compress - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-Compress - ref: f26 - buildorder: 5 - perl-IO-HTML: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-HTML - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-HTML - ref: f26 - buildorder: 4 - perl-IO-Socket-INET6: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-Socket-INET6 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-Socket-INET6 - ref: f26 - buildorder: 8 - perl-IO-Socket-IP: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-Socket-IP - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-Socket-IP - ref: f26 - buildorder: 4 - perl-IO-Socket-SSL: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-Socket-SSL - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-Socket-SSL - ref: f26 - buildorder: 9 - perl-IO-String: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-String - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-String - ref: f26 - buildorder: 4 - perl-IO-Tty: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-Tty - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-Tty - ref: f26 - buildorder: 4 - perl-IPC-Cmd: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IPC-Cmd - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IPC-Cmd - ref: f26 - buildorder: 6 - perl-IPC-Run: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IPC-Run - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IPC-Run - ref: f26 - buildorder: 5 - perl-IPC-SysV: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IPC-SysV - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IPC-SysV - ref: f26 - buildorder: 4 - perl-IPC-System-Simple: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IPC-System-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IPC-System-Simple - ref: f26 - buildorder: 4 - perl-Import-Into: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Import-Into - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Import-Into - ref: f26 - buildorder: 8 - perl-JSON: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-JSON - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-JSON - ref: f26 - buildorder: 7 - perl-JSON-PP: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-JSON-PP - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-JSON-PP - ref: f26 - buildorder: 4 - perl-LWP-MediaTypes: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-LWP-MediaTypes - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-LWP-MediaTypes - ref: f26 - buildorder: 4 - perl-Locale-Codes: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Locale-Codes - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Locale-Codes - ref: f26 - buildorder: 4 - perl-Locale-Maketext: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Locale-Maketext - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Locale-Maketext - ref: f26 - buildorder: 4 - perl-MIME-Base64: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-MIME-Base64 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-MIME-Base64 - ref: f26 - buildorder: 4 - perl-MRO-Compat: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-MRO-Compat - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-MRO-Compat - ref: f26 - buildorder: 4 - perl-Math-BigInt: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Math-BigInt - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Math-BigInt - ref: f26 - buildorder: 4 - perl-Math-BigInt-FastCalc: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Math-BigInt-FastCalc - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Math-BigInt-FastCalc - ref: f26 - buildorder: 5 - perl-Math-BigRat: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Math-BigRat - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Math-BigRat - ref: f26 - buildorder: 5 - perl-Mixin-Linewise: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Mixin-Linewise - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Mixin-Linewise - ref: f26 - buildorder: 7 - perl-Module-Build: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Build - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Build - ref: f26 - buildorder: 5 - perl-Module-CoreList: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-CoreList - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-CoreList - ref: f26 - buildorder: 4 - perl-Module-Load: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Load - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Load - ref: f26 - buildorder: 4 - perl-Module-Load-Conditional: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Load-Conditional - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Load-Conditional - ref: f26 - buildorder: 4 - perl-Module-Metadata: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Metadata - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Metadata - ref: f26 - buildorder: 4 - perl-Module-Runtime: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Runtime - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Runtime - ref: f26 - buildorder: 7 - perl-Net-IDN-Encode: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Net-IDN-Encode - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Net-IDN-Encode - ref: f26 - buildorder: 7 - perl-Net-LibIDN: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Net-LibIDN - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Net-LibIDN - ref: f26 - buildorder: 4 - perl-Net-SSLeay: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Net-SSLeay - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Net-SSLeay - ref: f26 - buildorder: 6 - perl-Number-Compare: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Number-Compare - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Number-Compare - ref: f26 - buildorder: 4 - perl-Package-Generator: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Package-Generator - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Package-Generator - ref: f26 - buildorder: 5 - perl-Params-Check: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Params-Check - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Params-Check - ref: f26 - buildorder: 4 - perl-Params-Util: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Params-Util - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Params-Util - ref: f26 - buildorder: 4 - perl-PathTools: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-PathTools - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-PathTools - ref: f26 - buildorder: 4 - perl-Perl-OSType: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Perl-OSType - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Perl-OSType - ref: f26 - buildorder: 4 - perl-Perl-Version: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Perl-Version - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Perl-Version - ref: f26 - buildorder: 7 - perl-PerlIO-utf8_strict: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-PerlIO-utf8_strict - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-PerlIO-utf8_strict - ref: f26 - buildorder: 6 - perl-PerlIO-via-QuotedPrint: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-PerlIO-via-QuotedPrint - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-PerlIO-via-QuotedPrint - ref: f26 - buildorder: 4 - perl-Pod-Checker: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Checker - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Checker - ref: f26 - buildorder: 4 - perl-Pod-Coverage: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Coverage - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Coverage - ref: f26 - buildorder: 5 - perl-Pod-Coverage-TrustPod: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Coverage-TrustPod - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Coverage-TrustPod - ref: f26 - buildorder: 9 - perl-Pod-Escapes: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Escapes - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Escapes - ref: f26 - buildorder: 4 - perl-Pod-Eventual: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Eventual - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Eventual - ref: f26 - buildorder: 8 - perl-Pod-Parser: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Parser - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Parser - ref: f26 - buildorder: 4 - perl-Pod-Perldoc: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Perldoc - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Perldoc - ref: f26 - buildorder: 4 - perl-Pod-Simple: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Simple - ref: f26 - buildorder: 4 - perl-Pod-Usage: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Usage - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Usage - ref: f26 - buildorder: 4 - perl-SUPER: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-SUPER - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-SUPER - ref: f26 - buildorder: 6 - perl-Scalar-List-Utils: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Scalar-List-Utils - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Scalar-List-Utils - ref: f26 - buildorder: 4 - perl-Socket: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Socket - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Socket - ref: f26 - buildorder: 4 - perl-Socket6: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Socket6 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Socket6 - ref: f26 - buildorder: 4 - perl-Software-License: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Software-License - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Software-License - ref: f26 - buildorder: 12 - perl-Sort-Versions: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sort-Versions - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sort-Versions - ref: f26 - buildorder: 4 - perl-Storable: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Storable - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Storable - ref: f26 - buildorder: 4 - perl-Sub-Exporter: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sub-Exporter - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sub-Exporter - ref: f26 - buildorder: 6 - perl-Sub-Identify: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sub-Identify - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sub-Identify - ref: f26 - buildorder: 5 - perl-Sub-Install: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sub-Install - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sub-Install - ref: f26 - buildorder: 4 - perl-Sub-Uplevel: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sub-Uplevel - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sub-Uplevel - ref: f26 - buildorder: 4 - perl-Sys-Syslog: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sys-Syslog - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sys-Syslog - ref: f26 - buildorder: 4 - perl-Term-ANSIColor: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Term-ANSIColor - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Term-ANSIColor - ref: f26 - buildorder: 5 - perl-Term-Cap: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Term-Cap - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Term-Cap - ref: f26 - buildorder: 4 - perl-TermReadKey: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-TermReadKey - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-TermReadKey - ref: f26 - buildorder: 4 - perl-Test-CPAN-Meta: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-CPAN-Meta - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-CPAN-Meta - ref: f26 - buildorder: 7 - perl-Test-Deep: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Deep - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Deep - ref: f26 - buildorder: 4 - perl-Test-Exception: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Exception - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Exception - ref: f26 - buildorder: 5 - perl-Test-FailWarnings: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-FailWarnings - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-FailWarnings - ref: f26 - buildorder: 5 - perl-Test-Harness: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Harness - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Harness - ref: f26 - buildorder: 4 - perl-Test-MockModule: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-MockModule - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-MockModule - ref: f26 - buildorder: 7 - perl-Test-NoWarnings: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-NoWarnings - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-NoWarnings - ref: f26 - buildorder: 5 - perl-Test-Output: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Output - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Output - ref: f26 - buildorder: 7 - perl-Test-Pod: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Pod - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Pod - ref: f26 - buildorder: 4 - perl-Test-Pod-Coverage: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Pod-Coverage - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Pod-Coverage - ref: f26 - buildorder: 6 - perl-Test-Portability-Files: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Portability-Files - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Portability-Files - ref: f26 - buildorder: 4 - perl-Test-Simple: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Simple - ref: f26 - buildorder: 4 - perl-Test-Taint: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Taint - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Taint - ref: f26 - buildorder: 7 - perl-Test-TrailingSpace: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-TrailingSpace - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-TrailingSpace - ref: f26 - buildorder: 7 - perl-Test-Version: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Version - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Version - ref: f26 - buildorder: 7 - perl-Test-Warn: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Warn - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Warn - ref: f26 - buildorder: 5 - perl-Text-Balanced: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Balanced - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Balanced - ref: f26 - buildorder: 4 - perl-Text-Diff: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Diff - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Diff - ref: f26 - buildorder: 5 - perl-Text-Glob: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Glob - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Glob - ref: f26 - buildorder: 4 - perl-Text-Levenshtein-Damerau-XS: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Levenshtein-Damerau-XS - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Levenshtein-Damerau-XS - ref: f26 - buildorder: 4 - perl-Text-ParseWords: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-ParseWords - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-ParseWords - ref: f26 - buildorder: 4 - perl-Text-Tabs+Wrap: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Tabs+Wrap - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Tabs+Wrap - ref: f26 - buildorder: 4 - perl-Text-Template: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Template - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Template - ref: f26 - buildorder: 4 - perl-Thread-Queue: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Thread-Queue - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Thread-Queue - ref: f26 - buildorder: 4 - perl-Tie-IxHash: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Tie-IxHash - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Tie-IxHash - ref: f26 - buildorder: 4 - perl-Time-HiRes: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Time-HiRes - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Time-HiRes - ref: f26 - buildorder: 4 - perl-Time-Local: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Time-Local - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Time-Local - ref: f26 - buildorder: 4 - perl-TimeDate: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-TimeDate - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-TimeDate - ref: f26 - buildorder: 4 - perl-Try-Tiny: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Try-Tiny - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Try-Tiny - ref: f26 - buildorder: 11 - perl-URI: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-URI - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-URI - ref: f26 - buildorder: 4 - perl-Unicode-Collate: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Unicode-Collate - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Unicode-Collate - ref: f26 - buildorder: 4 - perl-Unicode-Normalize: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Unicode-Normalize - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Unicode-Normalize - ref: f26 - buildorder: 4 - perl-YAML: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-YAML - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-YAML - ref: f26 - buildorder: 4 - perl-YAML-Syck: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-YAML-Syck - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-YAML-Syck - ref: f26 - buildorder: 8 - perl-accessors: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-accessors - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-accessors - ref: f26 - buildorder: 6 - perl-autodie: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-autodie - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-autodie - ref: f26 - buildorder: 4 - perl-bignum: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-bignum - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-bignum - ref: f26 - buildorder: 5 - perl-constant: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-constant - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-constant - ref: f26 - buildorder: 4 - perl-experimental: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-experimental - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-experimental - ref: f26 - buildorder: 4 - perl-generators: - rationale: RPM dependency generator. - repository: git://pkgs.fedoraproject.org/rpms/perl-generators - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-generators - ref: f26 - buildorder: 3 - perl-inc-latest: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-inc-latest - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-inc-latest - ref: f26 - buildorder: 4 - perl-libnet: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-libnet - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-libnet - ref: f26 - buildorder: 4 - perl-local-lib: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-local-lib - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-local-lib - ref: f26 - buildorder: 6 - perl-parent: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-parent - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-parent - ref: f26 - buildorder: 4 - perl-perlfaq: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-perlfaq - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-perlfaq - ref: f26 - buildorder: 4 - perl-podlators: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-podlators - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-podlators - ref: f26 - buildorder: 4 - perl-threads: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-threads - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-threads - ref: f26 - buildorder: 4 - perl-threads-shared: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-threads-shared - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-threads-shared - ref: f26 - buildorder: 4 - perl-version: - rationale: build dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-version - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-version - ref: f26 - buildorder: 4 - artifacts: - rpms: - - perl-4:5.24.4-397.module_1677+5adff7e0.x86_64 - - perl-Algorithm-Diff-0:1.1903-6.module_1677+5adff7e0.noarch - - perl-Archive-Tar-0:2.04-397.module_1677+5adff7e0.noarch - - perl-Archive-Tar-0:2.26-1.module_1677+5adff7e0.noarch - - perl-Archive-Zip-0:1.59-3.module_1677+5adff7e0.noarch - - perl-Attribute-Handlers-0:0.99-397.module_1677+5adff7e0.noarch - - perl-Authen-SASL-0:2.16-9.module_1677+5adff7e0.noarch - - perl-B-Debug-0:1.23-397.module_1677+5adff7e0.noarch - - perl-B-Debug-0:1.24-2.module_1677+5adff7e0.noarch - - perl-BSD-Resource-0:1.291.100-1.module_1677+5adff7e0.x86_64 - - perl-CGI-0:4.36-1.module_1677+5adff7e0.noarch - - perl-CPAN-0:2.11-397.module_1677+5adff7e0.noarch - - perl-CPAN-0:2.16-1.module_1677+5adff7e0.noarch - - perl-CPAN-Meta-0:2.150005-397.module_1677+5adff7e0.noarch - - perl-CPAN-Meta-0:2.150010-2.module_1677+5adff7e0.noarch - - perl-CPAN-Meta-Check-0:0.014-2.module_1677+5adff7e0.noarch - - perl-CPAN-Meta-Requirements-0:2.132-397.module_1677+5adff7e0.noarch - - perl-CPAN-Meta-Requirements-0:2.140-7.module_1677+5adff7e0.noarch - - perl-CPAN-Meta-YAML-0:0.018-367.module_1677+5adff7e0.noarch - - perl-CPAN-Meta-YAML-0:0.018-397.module_1677+5adff7e0.noarch - - perl-Capture-Tiny-0:0.46-1.module_1677+5adff7e0.noarch - - perl-Carp-0:1.40-366.module_1677+5adff7e0.noarch - - perl-Carp-0:1.40-397.module_1677+5adff7e0.noarch - - perl-Class-XSAccessor-0:1.19-10.module_1677+5adff7e0.x86_64 - - perl-Compress-Bzip2-0:2.26-1.module_1677+5adff7e0.x86_64 - - perl-Compress-Raw-Bzip2-0:2.069-397.module_1677+5adff7e0.x86_64 - - perl-Compress-Raw-Bzip2-0:2.074-1.module_1677+5adff7e0.x86_64 - - perl-Compress-Raw-Zlib-0:2.069-397.module_1677+5adff7e0.x86_64 - - perl-Compress-Raw-Zlib-0:2.074-1.module_1677+5adff7e0.x86_64 - - perl-Config-Perl-V-0:0.25-397.module_1677+5adff7e0.noarch - - perl-Config-Perl-V-0:0.27-2.module_1677+5adff7e0.noarch - - perl-DB_File-0:1.835-397.module_1677+5adff7e0.x86_64 - - perl-DB_File-0:1.841-1.module_1677+5adff7e0.x86_64 - - perl-Data-Dumper-0:2.160-397.module_1677+5adff7e0.x86_64 - - perl-Data-Dumper-0:2.161-4.module_1677+5adff7e0.x86_64 - - perl-Data-OptList-0:0.110-3.module_1677+5adff7e0.noarch - - perl-Data-Section-0:0.200006-8.module_1677+5adff7e0.noarch - - perl-Devel-Leak-0:0.03-32.module_1677+5adff7e0.x86_64 - - perl-Devel-PPPort-0:3.32-397.module_1677+5adff7e0.x86_64 - - perl-Devel-PPPort-0:3.36-1.module_1677+5adff7e0.x86_64 - - perl-Devel-Peek-0:1.23-397.module_1677+5adff7e0.x86_64 - - perl-Devel-SelfStubber-0:1.05-397.module_1677+5adff7e0.noarch - - perl-Devel-Size-0:0.81-1.module_1677+5adff7e0.x86_64 - - perl-Devel-StackTrace-1:2.03-1.module_1677+5adff7e0.noarch - - perl-Devel-Symdump-1:2.18-1.module_1677+5adff7e0.noarch - - perl-Digest-0:1.17-367.module_1677+5adff7e0.noarch - - perl-Digest-0:1.17-397.module_1677+5adff7e0.noarch - - perl-Digest-HMAC-0:1.03-14.module_1677+5adff7e0.noarch - - perl-Digest-MD5-0:2.54-397.module_1677+5adff7e0.x86_64 - - perl-Digest-MD5-0:2.55-3.module_1677+5adff7e0.x86_64 - - perl-Digest-SHA-1:5.95-397.module_1677+5adff7e0.x86_64 - - perl-Digest-SHA-1:6.01-1.module_1677+5adff7e0.x86_64 - - perl-Digest-SHA1-0:2.13-19.module_1677+5adff7e0.x86_64 - - perl-Encode-4:2.80-397.module_1677+5adff7e0.x86_64 - - perl-Encode-4:2.88-6.module_1677+5adff7e0.x86_64 - - perl-Encode-Locale-0:1.05-6.module_1677+5adff7e0.noarch - - perl-Encode-devel-4:2.80-397.module_1677+5adff7e0.noarch - - perl-Encode-devel-4:2.88-6.module_1677+5adff7e0.x86_64 - - perl-Env-0:1.04-366.module_1677+5adff7e0.noarch - - perl-Env-0:1.04-397.module_1677+5adff7e0.noarch - - perl-Errno-0:1.25-397.module_1677+5adff7e0.x86_64 - - perl-Expect-0:1.35-1.module_1677+5adff7e0.noarch - - perl-Exporter-0:5.72-367.module_1677+5adff7e0.noarch - - perl-Exporter-0:5.72-397.module_1677+5adff7e0.noarch - - perl-ExtUtils-CBuilder-1:0.280225-366.module_1677+5adff7e0.noarch - - perl-ExtUtils-CBuilder-1:0.280225-397.module_1677+5adff7e0.noarch - - perl-ExtUtils-Command-0:7.10-397.module_1677+5adff7e0.noarch - - perl-ExtUtils-Command-0:7.24-3.module_1677+5adff7e0.noarch - - perl-ExtUtils-Embed-0:1.33-397.module_1677+5adff7e0.noarch - - perl-ExtUtils-Install-0:2.04-367.module_1677+5adff7e0.noarch - - perl-ExtUtils-Install-0:2.04-397.module_1677+5adff7e0.noarch - - perl-ExtUtils-MM-Utils-0:7.11-397.module_1677+5adff7e0.noarch - - perl-ExtUtils-MM-Utils-0:7.24-3.module_1677+5adff7e0.noarch - - perl-ExtUtils-MakeMaker-0:7.10-397.module_1677+5adff7e0.noarch - - perl-ExtUtils-MakeMaker-0:7.24-3.module_1677+5adff7e0.noarch - - perl-ExtUtils-Manifest-0:1.70-366.module_1677+5adff7e0.noarch - - perl-ExtUtils-Manifest-0:1.70-397.module_1677+5adff7e0.noarch - - perl-ExtUtils-Miniperl-0:1.05-397.module_1677+5adff7e0.noarch - - perl-ExtUtils-ParseXS-1:3.31-368.module_1677+5adff7e0.noarch - - perl-ExtUtils-ParseXS-1:3.31-397.module_1677+5adff7e0.noarch - - perl-Fedora-VSP-0:0.001-5.module_1677+5adff7e0.noarch - - perl-File-Fetch-0:0.48-397.module_1677+5adff7e0.noarch - - perl-File-Fetch-0:0.56-1.module_1677+5adff7e0.noarch - - perl-File-Find-Object-0:0.3.2-2.module_1677+5adff7e0.noarch - - perl-File-Find-Object-Rule-0:0.0306-2.module_1677+5adff7e0.noarch - - perl-File-Find-Rule-0:0.34-5.module_1677+5adff7e0.noarch - - perl-File-Find-Rule-Perl-0:1.15-7.module_1677+5adff7e0.noarch - - perl-File-HomeDir-0:1.00-13.module_1677+5adff7e0.noarch - - perl-File-Path-0:2.12-367.module_1677+5adff7e0.noarch - - perl-File-Path-0:2.12-397.module_1677+5adff7e0.noarch - - perl-File-Slurp-Tiny-0:0.004-4.module_1677+5adff7e0.noarch - - perl-File-Temp-0:0.230.400-2.module_1677+5adff7e0.noarch - - perl-File-Temp-0:0.230.400-397.module_1677+5adff7e0.noarch - - perl-File-Which-0:1.21-3.module_1677+5adff7e0.noarch - - perl-Filter-2:1.55-397.module_1677+5adff7e0.x86_64 - - perl-Filter-2:1.58-1.module_1677+5adff7e0.x86_64 - - perl-Filter-Simple-0:0.92-366.module_1677+5adff7e0.noarch - - perl-Filter-Simple-0:0.92-397.module_1677+5adff7e0.noarch - - perl-GSSAPI-0:0.28-18.module_1677+5adff7e0.x86_64 - - perl-Getopt-Long-0:2.48-397.module_1677+5adff7e0.noarch - - perl-Getopt-Long-0:2.49.1-2.module_1677+5adff7e0.noarch - - perl-HTML-Parser-0:3.72-5.module_1677+5adff7e0.x86_64 - - perl-HTML-Parser-tests-0:3.72-5.module_1677+5adff7e0.x86_64 - - perl-HTML-Tagset-0:3.20-28.module_1677+5adff7e0.noarch - - perl-HTTP-Date-0:6.02-15.module_1677+5adff7e0.noarch - - perl-HTTP-Message-0:6.11-4.module_1677+5adff7e0.noarch - - perl-HTTP-Tiny-0:0.056-397.module_1677+5adff7e0.noarch - - perl-HTTP-Tiny-0:0.070-2.module_1677+5adff7e0.noarch - - perl-IO-0:1.36-397.module_1677+5adff7e0.x86_64 - - perl-IO-Compress-0:2.069-397.module_1677+5adff7e0.noarch - - perl-IO-Compress-0:2.074-1.module_1677+5adff7e0.noarch - - perl-IO-HTML-0:1.001-7.module_1677+5adff7e0.noarch - - perl-IO-Socket-INET6-0:2.72-9.module_1677+5adff7e0.noarch - - perl-IO-Socket-IP-0:0.37-397.module_1677+5adff7e0.noarch - - perl-IO-Socket-IP-0:0.39-1.module_1677+5adff7e0.noarch - - perl-IO-Socket-SSL-0:2.049-1.module_1677+5adff7e0.noarch - - perl-IO-String-0:1.08-28.module_1677+5adff7e0.noarch - - perl-IO-Tty-0:1.12-7.module_1677+5adff7e0.x86_64 - - perl-IO-Zlib-1:1.10-397.module_1677+5adff7e0.noarch - - perl-IPC-Cmd-1:0.92-397.module_1677+5adff7e0.noarch - - perl-IPC-Cmd-1:0.98-1.module_1677+5adff7e0.noarch - - perl-IPC-Run-0:0.96-1.module_1677+5adff7e0.noarch - - perl-IPC-SysV-0:2.06-397.module_1677+5adff7e0.x86_64 - - perl-IPC-SysV-0:2.07-4.module_1677+5adff7e0.x86_64 - - perl-IPC-System-Simple-0:1.25-12.module_1677+5adff7e0.noarch - - perl-Import-Into-0:1.002005-4.module_1677+5adff7e0.noarch - - perl-JSON-0:2.90-8.module_1677+5adff7e0.noarch - - perl-JSON-PP-0:2.27300-397.module_1677+5adff7e0.noarch - - perl-JSON-PP-0:2.94000-1.module_1677+5adff7e0.noarch - - perl-JSON-tests-0:2.90-8.module_1677+5adff7e0.noarch - - perl-LWP-MediaTypes-0:6.02-11.module_1677+5adff7e0.noarch - - perl-Locale-Codes-0:3.25-397.module_1677+5adff7e0.noarch - - perl-Locale-Codes-0:3.42-2.module_1677+5adff7e0.noarch - - perl-Locale-Maketext-0:1.26-397.module_1677+5adff7e0.noarch - - perl-Locale-Maketext-0:1.28-2.module_1677+5adff7e0.noarch - - perl-Locale-Maketext-Simple-1:0.21-397.module_1677+5adff7e0.noarch - - perl-MIME-Base64-0:3.15-366.module_1677+5adff7e0.x86_64 - - perl-MIME-Base64-0:3.15-397.module_1677+5adff7e0.x86_64 - - perl-MRO-Compat-0:0.13-1.module_1677+5adff7e0.noarch - - perl-Math-BigInt-0:1.9997.15-397.module_1677+5adff7e0.noarch - - perl-Math-BigInt-0:1.9998.11-1.module_1677+5adff7e0.noarch - - perl-Math-BigInt-FastCalc-0:0.400-397.module_1677+5adff7e0.x86_64 - - perl-Math-BigInt-FastCalc-0:0.500.600-2.module_1677+5adff7e0.x86_64 - - perl-Math-BigRat-0:0.2608.02-397.module_1677+5adff7e0.noarch - - perl-Math-BigRat-0:0.2613-1.module_1677+5adff7e0.noarch - - perl-Math-Complex-0:1.59-397.module_1677+5adff7e0.noarch - - perl-Memoize-0:1.03-397.module_1677+5adff7e0.noarch - - perl-Mixin-Linewise-0:0.108-6.module_1677+5adff7e0.noarch - - perl-Module-Build-2:0.42.24-1.module_1677+5adff7e0.noarch - - perl-Module-CoreList-1:5.20180414-1.module_1677+5adff7e0.noarch - - perl-Module-CoreList-1:5.20180414-397.module_1677+5adff7e0.noarch - - perl-Module-CoreList-tools-1:5.20180414-1.module_1677+5adff7e0.noarch - - perl-Module-CoreList-tools-1:5.20180414-397.module_1677+5adff7e0.noarch - - perl-Module-Load-1:0.32-366.module_1677+5adff7e0.noarch - - perl-Module-Load-1:0.32-397.module_1677+5adff7e0.noarch - - perl-Module-Load-Conditional-0:0.64-397.module_1677+5adff7e0.noarch - - perl-Module-Load-Conditional-0:0.68-2.module_1677+5adff7e0.noarch - - perl-Module-Loaded-1:0.08-397.module_1677+5adff7e0.noarch - - perl-Module-Metadata-0:1.000031-397.module_1677+5adff7e0.noarch - - perl-Module-Metadata-0:1.000033-2.module_1677+5adff7e0.noarch - - perl-Module-Runtime-0:0.015-1.module_1677+5adff7e0.noarch - - perl-Net-IDN-Encode-0:2.400-2.module_1677+5adff7e0.x86_64 - - perl-Net-LibIDN-0:0.12-25.module_1677+5adff7e0.x86_64 - - perl-Net-Ping-0:2.43-397.module_1677+5adff7e0.noarch - - perl-Net-SSLeay-0:1.81-1.module_1677+5adff7e0.x86_64 - - perl-Number-Compare-0:0.03-16.module_1677+5adff7e0.noarch - - perl-Package-Generator-0:1.106-8.module_1677+5adff7e0.noarch - - perl-Params-Check-1:0.38-366.module_1677+5adff7e0.noarch - - perl-Params-Check-1:0.38-397.module_1677+5adff7e0.noarch - - perl-Params-Util-0:1.07-17.module_1677+5adff7e0.x86_64 - - perl-Parse-CPAN-Meta-1:1.4417-397.module_1677+5adff7e0.noarch - - perl-PathTools-0:3.63-367.module_1677+5adff7e0.x86_64 - - perl-PathTools-0:3.63-397.module_1677+5adff7e0.x86_64 - - perl-Perl-OSType-0:1.009-397.module_1677+5adff7e0.noarch - - perl-Perl-OSType-0:1.010-4.module_1677+5adff7e0.noarch - - perl-Perl-Version-0:1.013-6.module_1677+5adff7e0.noarch - - perl-PerlIO-utf8_strict-0:0.007-1.module_1677+5adff7e0.x86_64 - - perl-PerlIO-via-QuotedPrint-0:0.08-366.module_1677+5adff7e0.noarch - - perl-PerlIO-via-QuotedPrint-0:0.08-397.module_1677+5adff7e0.noarch - - perl-Pod-Checker-4:1.60-397.module_1677+5adff7e0.noarch - - perl-Pod-Checker-4:1.73-2.module_1677+5adff7e0.noarch - - perl-Pod-Coverage-0:0.23-11.module_1677+5adff7e0.noarch - - perl-Pod-Coverage-TrustPod-0:0.100003-6.module_1677+5adff7e0.noarch - - perl-Pod-Escapes-1:1.07-366.module_1677+5adff7e0.noarch - - perl-Pod-Escapes-1:1.07-397.module_1677+5adff7e0.noarch - - perl-Pod-Eventual-0:0.094001-6.module_1677+5adff7e0.noarch - - perl-Pod-Html-0:1.22.01-397.module_1677+5adff7e0.noarch - - perl-Pod-Parser-0:1.63-367.module_1677+5adff7e0.noarch - - perl-Pod-Parser-0:1.63-397.module_1677+5adff7e0.noarch - - perl-Pod-Perldoc-0:3.25-397.module_1677+5adff7e0.noarch - - perl-Pod-Perldoc-0:3.28-2.module_1677+5adff7e0.noarch - - perl-Pod-Simple-1:3.32-397.module_1677+5adff7e0.noarch - - perl-Pod-Simple-1:3.35-2.module_1677+5adff7e0.noarch - - perl-Pod-Usage-4:1.68-397.module_1677+5adff7e0.noarch - - perl-Pod-Usage-4:1.69-2.module_1677+5adff7e0.noarch - - perl-SUPER-0:1.20141117-7.module_1677+5adff7e0.noarch - - perl-Scalar-List-Utils-3:1.42-397.module_1677+5adff7e0.x86_64 - - perl-Scalar-List-Utils-3:1.48-1.module_1677+5adff7e0.x86_64 - - perl-SelfLoader-0:1.23-397.module_1677+5adff7e0.noarch - - perl-Socket-4:2.020-397.module_1677+5adff7e0.x86_64 - - perl-Socket-4:2.027-1.module_1677+5adff7e0.x86_64 - - perl-Socket6-0:0.28-2.module_1677+5adff7e0.x86_64 - - perl-Software-License-0:0.103012-4.module_1677+5adff7e0.noarch - - perl-Sort-Versions-0:1.62-5.module_1677+5adff7e0.noarch - - perl-Storable-1:2.56-368.module_1677+5adff7e0.x86_64 - - perl-Storable-1:2.56-397.module_1677+5adff7e0.x86_64 - - perl-Sub-Exporter-0:0.987-11.module_1677+5adff7e0.noarch - - perl-Sub-Identify-0:0.14-1.module_1677+5adff7e0.x86_64 - - perl-Sub-Install-0:0.928-10.module_1677+5adff7e0.noarch - - perl-Sub-Uplevel-1:0.2800-1.module_1677+5adff7e0.noarch - - perl-Sys-Syslog-0:0.33-397.module_1677+5adff7e0.x86_64 - - perl-Sys-Syslog-0:0.35-2.module_1677+5adff7e0.x86_64 - - perl-Term-ANSIColor-0:4.04-397.module_1677+5adff7e0.noarch - - perl-Term-ANSIColor-0:4.06-2.module_1677+5adff7e0.noarch - - perl-Term-Cap-0:1.17-366.module_1677+5adff7e0.noarch - - perl-Term-Cap-0:1.17-397.module_1677+5adff7e0.noarch - - perl-TermReadKey-0:2.37-2.module_1677+5adff7e0.x86_64 - - perl-Test-0:1.28-397.module_1677+5adff7e0.noarch - - perl-Test-CPAN-Meta-0:0.25-8.module_1677+5adff7e0.noarch - - perl-Test-Deep-0:1.127-1.module_1677+5adff7e0.noarch - - perl-Test-Exception-0:0.43-4.module_1677+5adff7e0.noarch - - perl-Test-FailWarnings-0:0.008-9.module_1677+5adff7e0.noarch - - perl-Test-Harness-0:3.36-397.module_1677+5adff7e0.noarch - - perl-Test-Harness-0:3.42-1.module_1677+5adff7e0.noarch - - perl-Test-MockModule-0:0.11-4.module_1677+5adff7e0.noarch - - perl-Test-NoWarnings-0:1.04-11.module_1677+5adff7e0.noarch - - perl-Test-Output-0:1.03-8.module_1677+5adff7e0.noarch - - perl-Test-Pod-0:1.51-5.module_1677+5adff7e0.noarch - - perl-Test-Pod-Coverage-0:1.10-7.module_1677+5adff7e0.noarch - - perl-Test-Portability-Files-0:0.07-2.module_1677+5adff7e0.noarch - - perl-Test-Simple-0:1.001014-397.module_1677+5adff7e0.noarch - - perl-Test-Simple-1:1.302086-1.module_1677+5adff7e0.noarch - - perl-Test-Taint-0:1.06-15.module_1677+5adff7e0.x86_64 - - perl-Test-TrailingSpace-0:0.0301-2.module_1677+5adff7e0.noarch - - perl-Test-Version-0:2.05-2.module_1677+5adff7e0.noarch - - perl-Test-Warn-0:0.32-2.module_1677+5adff7e0.noarch - - perl-Text-Balanced-0:2.03-366.module_1677+5adff7e0.noarch - - perl-Text-Balanced-0:2.03-397.module_1677+5adff7e0.noarch - - perl-Text-Diff-0:1.44-3.module_1677+5adff7e0.noarch - - perl-Text-Glob-0:0.11-1.module_1677+5adff7e0.noarch - - perl-Text-Levenshtein-Damerau-XS-0:3.2-1.module_1677+5adff7e0.x86_64 - - perl-Text-ParseWords-0:3.30-366.module_1677+5adff7e0.noarch - - perl-Text-ParseWords-0:3.30-397.module_1677+5adff7e0.noarch - - perl-Text-Tabs+Wrap-0:2013.0523-366.module_1677+5adff7e0.noarch - - perl-Text-Tabs+Wrap-0:2013.0523-397.module_1677+5adff7e0.noarch - - perl-Text-Template-0:1.47-1.module_1677+5adff7e0.noarch - - perl-Thread-Queue-0:3.09-397.module_1677+5adff7e0.noarch - - perl-Thread-Queue-0:3.12-1.module_1677+5adff7e0.noarch - - perl-Tie-IxHash-0:1.23-8.module_1677+5adff7e0.noarch - - perl-Time-HiRes-0:1.9741-397.module_1677+5adff7e0.x86_64 - - perl-Time-HiRes-0:1.9753-1.module_1677+5adff7e0.x86_64 - - perl-Time-Local-0:1.2300-397.module_1677+5adff7e0.noarch - - perl-Time-Local-1:1.250-2.module_1677+5adff7e0.noarch - - perl-Time-Piece-0:1.31-397.module_1677+5adff7e0.x86_64 - - perl-TimeDate-1:2.30-10.module_1677+5adff7e0.noarch - - perl-Try-Tiny-0:0.28-2.module_1677+5adff7e0.noarch - - perl-URI-0:1.71-6.module_1677+5adff7e0.noarch - - perl-Unicode-Collate-0:1.14-397.module_1677+5adff7e0.x86_64 - - perl-Unicode-Collate-0:1.20-1.module_1677+5adff7e0.x86_64 - - perl-Unicode-Normalize-0:1.25-366.module_1677+5adff7e0.x86_64 - - perl-Unicode-Normalize-0:1.25-397.module_1677+5adff7e0.x86_64 - - perl-YAML-0:1.23-1.module_1677+5adff7e0.noarch - - perl-YAML-Syck-0:1.30-1.module_1677+5adff7e0.x86_64 - - perl-accessors-0:1.01-21.module_1677+5adff7e0.noarch - - perl-autodie-0:2.29-367.module_1677+5adff7e0.noarch - - perl-autodie-0:2.29-397.module_1677+5adff7e0.noarch - - perl-bignum-0:0.42-397.module_1677+5adff7e0.noarch - - perl-bignum-0:0.49-1.module_1677+5adff7e0.noarch - - perl-constant-0:1.33-368.module_1677+5adff7e0.noarch - - perl-constant-0:1.33-397.module_1677+5adff7e0.noarch - - perl-core-0:5.24.4-397.module_1677+5adff7e0.x86_64 - - perl-devel-4:5.24.4-397.module_1677+5adff7e0.x86_64 - - perl-encoding-4:2.17-397.module_1677+5adff7e0.x86_64 - - perl-encoding-4:2.19-6.module_1677+5adff7e0.x86_64 - - perl-experimental-0:0.016-397.module_1677+5adff7e0.noarch - - perl-experimental-0:0.019-1.module_1677+5adff7e0.noarch - - perl-generators-0:1.10-2.module_1677+5adff7e0.noarch - - perl-homedir-0:2.000023-1.module_1677+5adff7e0.noarch - - perl-inc-latest-2:0.500-6.module_1677+5adff7e0.noarch - - perl-libnet-0:3.08-397.module_1677+5adff7e0.noarch - - perl-libnet-0:3.11-1.module_1677+5adff7e0.noarch - - perl-libnetcfg-4:5.24.4-397.module_1677+5adff7e0.noarch - - perl-libs-4:5.24.4-397.module_1677+5adff7e0.x86_64 - - perl-local-lib-0:2.000023-1.module_1677+5adff7e0.noarch - - perl-macros-4:5.24.4-397.module_1677+5adff7e0.x86_64 - - perl-open-0:1.10-397.module_1677+5adff7e0.noarch - - perl-parent-1:0.234-397.module_1677+5adff7e0.noarch - - perl-parent-1:0.236-2.module_1677+5adff7e0.noarch - - perl-perlfaq-0:5.021010-397.module_1677+5adff7e0.noarch - - perl-perlfaq-0:5.021011-3.module_1677+5adff7e0.noarch - - perl-podlators-0:4.07-397.module_1677+5adff7e0.noarch - - perl-podlators-0:4.09-3.module_1677+5adff7e0.noarch - - perl-tests-4:5.24.4-397.module_1677+5adff7e0.x86_64 - - perl-threads-1:2.07-397.module_1677+5adff7e0.x86_64 - - perl-threads-1:2.21-1.module_1677+5adff7e0.x86_64 - - perl-threads-shared-0:1.51-397.module_1677+5adff7e0.x86_64 - - perl-threads-shared-0:1.58-1.module_1677+5adff7e0.x86_64 - - perl-utils-0:5.24.4-397.module_1677+5adff7e0.noarch - - perl-version-5:0.99.16-397.module_1677+5adff7e0.noarch - - perl-version-5:0.99.18-1.module_1677+5adff7e0.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: perl - stream: 5.26 - version: 20180417112647 - context: ccbeb30a - arch: x86_64 - 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. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/perl.git?#b7ea70e535667def6fb4258d744d47a0f0972661 - commit: b7ea70e535667def6fb4258d744d47a0f0972661 - buildrequires: - perl-bootstrap: - ref: 22773d9e44948febd267fc7b94e169b1c7e81f73 - stream: 5.26 - context: 6c81f848 - version: 20180417064707 - filtered_rpms: [] - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 4 - filtered_rpms: [] - rpms: - perl-Text-Balanced: - ref: 8c14f0f727543b80dc9cacba0422bcc1653d0290 - perl-File-Fetch: - ref: 7e786fd7e77fd794553f84ff29dc777cd9f73ca2 - perl: - ref: feb15b2a5274ffede0261170972b96d61acc9b38 - perl-File-Which: - ref: 0c9cbe3a1d01d42035314f8d5527e6f505142cab - perl-Locale-Maketext: - ref: 6dd172c644c44c07b1613b0870a119ee5e6d4116 - perl-Math-BigInt-FastCalc: - ref: fd294a4d494055cd4f3f7e22f0f0c361162dedfa - perl-Algorithm-Diff: - ref: b572ed3bbdd7421c4ec31da90602f12f7a8c951c - perl-PathTools: - ref: a0ed8e15339741624d99094a261ecef2f2bef816 - perl-IPC-System-Simple: - ref: 5b4319c5aabf7945208163c339c112b68b40d36a - perl-CPAN-Meta-Requirements: - ref: f25cbf2508f08dcb618b5e097cda6023aea94101 - perl-Compress-Bzip2: - ref: 4ca6f6001d529639ad9af34f6a4829371ed7c88c - perl-IO-Compress: - ref: bb10d2103bf534e10a4a1d1bc987a4314cb5de48 - perl-threads-shared: - ref: 236010203776860d682ee2e6d37529e8e4aaa90a - perl-autodie: - ref: 08926569224919ffa066397ca80c5b1818a89e90 - perl-Math-BigInt: - ref: 76c86fadeda569a2ebd6439f12e7f69f74c8df67 - perl-Archive-Zip: - ref: 6270e0a0fe7c56198441d0e8757500f56a4a54a2 - perl-bignum: - ref: e1753ef99cc972644a0a217e676467b8fd5d5788 - perl-constant: - ref: bce81fc9c982eeee92490116718ab9ed652eb0e7 - perl-Params-Check: - ref: 94989a67e37e22221a55b1d39dfb9f804122f928 - perl-podlators: - ref: 49c1364c8485ff979a2ccded759739a47e164836 - perl-ExtUtils-Manifest: - ref: f1169d7bb27bfb1b2db567be1f0ff112a9069246 - perl-Compress-Raw-Zlib: - ref: c9d37e07af93fe0a5e4886536b27f016260074ca - perl-local-lib: - ref: 0716ed7be631222c11ec33672373662daa6b00bf - perl-libnet: - ref: 8799d71bc96c9db7a72658edcd27f9f21b260f71 - perl-B-Debug: - ref: 5a7c0b7619476154ff3129fe449afabb1b450279 - perl-IPC-Cmd: - ref: 9600d4d856fa56cd63d78d51b1ab699556bbaa20 - perl-Config-Perl-V: - ref: 8d5189f0c6816a5ff74a20ba7426d3964aa626aa - perl-version: - ref: 72cca25da1658f759319b46edc9d5abf7b35c3f2 - perl-Storable: - ref: b34d556aadded8e2f5c62894dbbcd0fae9d3ab87 - perl-Term-Cap: - ref: 1d444a86d772b87c5b0484e3639f7bac52de8afe - perl-PerlIO-via-QuotedPrint: - ref: 7d17de12fac09e63e1c14ed17229c6d23e923830 - perl-Fedora-VSP: - ref: 90425acf3b0601d4feb86e0339f0c0efdd0435ae - perl-Digest-MD5: - ref: 8fad912c493bc960566e5ce7118e0cdce3b9a769 - perl-IPC-SysV: - ref: 4cf56fbde1b8a369fb6114d0f2dc7866dd835b71 - perl-ExtUtils-MakeMaker: - ref: c88d4cf08d3e3ddc8c113a430d287a830c1133e6 - perl-Module-Metadata: - ref: 1578659d3194251b91e39887baf3ad56689fad90 - perl-Env: - ref: 201efc08b7115ab13b1402f76ed05e5c8ed686d4 - perl-Unicode-Collate: - ref: 3a0555a1c080f2bba8e052c32ce35d4c1fca429a - perl-Devel-Size: - ref: 960a461ee17d9a34e9817a771410dd2801be2f17 - perl-Getopt-Long: - ref: 3fcd385e78c21d29488f8e020e2b9df21c54900f - perl-Unicode-Normalize: - ref: c7a4b3f134e101eb452b949eeda6497d6ea9e520 - perl-threads: - ref: 96ef6a4161926a852227a37db2a82769df38ebc5 - perl-File-HomeDir: - ref: 253a5f4a3d03187c799904441650124e8ec832ea - perl-experimental: - ref: dd6b54aaedc470ecd8ed9aa2bc5e6b86334c90ff - perl-IO-Socket-IP: - ref: 1a65c1170f6582ad9ece8fe9c76c540e18cd3264 - perl-Pod-Usage: - ref: 98983d9f8b961510acff3a1190c7ea62d447699f - perl-ExtUtils-ParseXS: - ref: c84346769c6a5009890661786a061af1e06d32dd - perl-Text-Tabs+Wrap: - ref: 84d9073a2276ee2310cfc7e633c08e271c2f2319 - perl-Pod-Perldoc: - ref: c582b2f1fb814afe692c9ad44e3ac656505b5183 - perl-Devel-PPPort: - ref: 17c87af74208a53d3202030ad52862fd376123fc - perl-Data-Dumper: - ref: 8e85cc7e6166838184b034d875759a39df4d10d3 - perl-Time-HiRes: - ref: 400def5c2f8c642b692a22c7a6f45da6f4cbd868 - perl-File-Path: - ref: ac6856f118e7aa9a3a709c6202ab06494ecdd9b3 - perl-CPAN-Meta: - ref: f8259dccb36b9a47dc6bad88847c3fcd3563a196 - perl-generators: - ref: 3517fe526a3f0bb16c097eecd05bfe9dfb94c42e - perl-Digest: - ref: b3f866352aea430935df7f2f0afaaf3cced7d214 - perl-Perl-OSType: - ref: 7191911473475122ff950ed36748133d8b2f968b - perl-Pod-Simple: - ref: 05a654f26321267554e75398eb19f704b4b97e17 - perl-Data-OptList: - ref: 55696a188230a0b16e32bc0cc6183cc0683753e3 - perl-HTTP-Tiny: - ref: ccd7e054fc273dbfab16202a35f8fd73219b27c7 - perl-Text-Template: - ref: c3ff74620de07ec5a20b398981cfe60bc23b7533 - perl-Pod-Parser: - ref: 13b1e60337a84241ed263e3a62af46005bec3b8c - perl-Pod-Escapes: - ref: b86907d1d42dbd25c327e34b09b061f0a3f96d8a - perl-Package-Generator: - ref: 8a4118f2e4299109b3a7e6e0dea5ee7424e632bf - perl-Sys-Syslog: - ref: b83dcfb81b92c0617bee60d8ac89d1d228b88d8e - perl-Archive-Tar: - ref: 1713c34fd47329b8bd3c237822a2a7de75266654 - perl-Time-Local: - ref: 12fcdce59f0b8fd7daeb1b4088a3c7966cc6a302 - perl-perlfaq: - ref: ab3baf6a6ad945423be4696bb7ac0481ce8e9076 - perl-JSON-PP: - ref: 02d427bafed752ddfd755e1cfcd71c4daaa7b336 - perl-Term-ANSIColor: - ref: 7e942843d7f43f5535e55f7709943e210743f4fe - perl-MRO-Compat: - ref: 7b9d4772b76353d755f44acc9a686e9566a1a4b7 - perl-Locale-Codes: - ref: d7b98d549b08417aaef3c02cd0314e0cda13dddb - perl-Test-Harness: - ref: 65288c532917fea41328a20520e0755f6eb18463 - perl-Sub-Exporter: - ref: 34cd68b9ccfbae47690795a40a14a236ff0b2319 - perl-Socket: - ref: 20b784e3737e5842c973bd31f1735b67e77b050f - perl-Module-CoreList: - ref: 6e295ecf1e1dd6a348563ff1563a5f4c53001e71 - perl-Carp: - ref: b853f44fd4ed76815057dbec21b16f8069731630 - perl-Filter-Simple: - ref: 08e79709ade8905bc3212d2c7dbb1d168d578dba - perl-Pod-Checker: - ref: dd7b179ffb95412b1f28d3b825d87132f391821e - perl-Compress-Raw-Bzip2: - ref: 2a51171531415b788d4bc6cdd05a823fb4b831b5 - perl-DB_File: - ref: cb750cc628fdf540662b6694fce548ebd4aceff7 - perl-Filter: - ref: 78296ad909c75c445e4c43526e3ae57f25de7c34 - perl-inc-latest: - ref: b94b9e6f144d6ce856e827a2cb9c16c42cce56b5 - perl-Params-Util: - ref: a69abfa9df18bb76b6ccb98caa103795abc5d083 - perl-Module-Load-Conditional: - ref: 532fb21fdf6ff39b29abaccbdc4a1f87941521f2 - perl-ExtUtils-CBuilder: - ref: 4e5e482495a977c28396e2d1149def8dcb12e15f - perl-Data-Section: - ref: ce79e1d99123d4220543d1eb2d2806673277cad4 - perl-Sub-Install: - ref: f3365c2a0b610eb21f6c1c786958c0e8ba08a47c - perl-CPAN-Meta-YAML: - ref: 04a0e2e11487241ed251223755f1abe43bbe392a - perl-Text-ParseWords: - ref: 809c9bd7181b286d5e14e80a73f6ea50ac3b62b3 - perl-Scalar-List-Utils: - ref: c0ea69a001e7bb2a50a9c122dcc5ce792125f6e4 - perl-Encode: - ref: 5417f768a229062a55dde8f25b5b9aac039f96e1 - perl-Thread-Queue: - ref: 8c85fbf927199c852e95b3fed93ff28c67b3adaa - perl-Module-Build: - ref: a9f6bbfbfc8303db7b57cbea35e53de61a46a165 - perl-Software-License: - ref: dbee7688f08ab815650fd845122a8ee8cfb0294c - perl-Exporter: - ref: 68f93042fb090750ccc7022bd957fa12ff184ecb - perl-File-Temp: - ref: 75a5d0eb68e5d261762dbb20412efa17dfeb6ab3 - perl-Digest-SHA: - ref: e2e8e4441dcace400b4340f2269b218a949234a2 - perl-Math-BigRat: - ref: 8d926e35aeb4d768c2a9e9c9f2d24e36202b8e2d - perl-Test-Simple: - ref: 96c4c3b6c0172748a9a9c95fb2c1fefc9f73ee04 - perl-MIME-Base64: - ref: c099afc6b1d7eec124f46bea88b86a2edd0f7b56 - perl-ExtUtils-Install: - ref: 5eb9021663b033a695802e5d960795c1b338f1d1 - perl-URI: - ref: 8696c54987665ac968cb66d98b69e49a37a89b52 - perl-CPAN: - ref: c91f221d2bbde2992152786a94b3da8899d7a628 - perl-Module-Load: - ref: 4f363f0c7d356591f33a22a930f4501167b01053 - perl-Text-Diff: - ref: 435597b4b8f23cdb4b5d08a83526f3a0ba180ba4 - perl-parent: - ref: c3649d1868f869883423867076131c1604fd4467 - perl-Text-Glob: - ref: b19ed6fe9d0ff70870939d2bfe33e2bd059b732a - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://docs.pagure.org/modularity/ - documentation: https://github.com/modularity-modules/perl - tracker: https://github.com/modularity-modules/perl/issues - profiles: - default: - description: Interpreter and all Perl modules bundled within upstream Perl. - rpms: - - perl - minimal: - description: Only the interpreter as a standalone executable. - rpms: - - perl-interpreter - api: - rpms: - - perl - - perl-Archive-Tar - - perl-Attribute-Handlers - - perl-B-Debug - - perl-CPAN - - perl-CPAN-Meta - - perl-CPAN-Meta-Requirements - - perl-CPAN-Meta-YAML - - perl-Carp - - perl-Compress-Raw-Bzip2 - - perl-Compress-Raw-Zlib - - perl-Config-Perl-V - - perl-DB_File - - perl-Data-Dumper - - perl-Devel-PPPort - - perl-Devel-Peek - - perl-Devel-SelfStubber - - perl-Digest - - perl-Digest-MD5 - - perl-Digest-SHA - - perl-Encode - - perl-Encode-devel - - perl-Env - - perl-Errno - - perl-Exporter - - perl-ExtUtils-CBuilder - - perl-ExtUtils-Command - - perl-ExtUtils-Embed - - perl-ExtUtils-Install - - perl-ExtUtils-MM-Utils - - perl-ExtUtils-MakeMaker - - perl-ExtUtils-Manifest - - perl-ExtUtils-Miniperl - - perl-ExtUtils-ParseXS - - perl-File-Fetch - - perl-File-Path - - perl-File-Temp - - perl-Filter - - perl-Filter-Simple - - perl-Getopt-Long - - perl-HTTP-Tiny - - perl-IO - - perl-IO-Compress - - perl-IO-Socket-IP - - perl-IO-Zlib - - perl-IPC-Cmd - - perl-IPC-SysV - - perl-JSON-PP - - perl-Locale-Codes - - perl-Locale-Maketext - - perl-Locale-Maketext-Simple - - perl-MIME-Base64 - - perl-Math-BigInt - - perl-Math-BigInt-FastCalc - - perl-Math-BigRat - - perl-Math-Complex - - perl-Memoize - - perl-Module-CoreList - - perl-Module-CoreList-tools - - perl-Module-Load - - perl-Module-Load-Conditional - - perl-Module-Loaded - - perl-Module-Metadata - - perl-Net-Ping - - perl-Params-Check - - perl-PathTools - - perl-Perl-OSType - - perl-PerlIO-via-QuotedPrint - - perl-Pod-Checker - - perl-Pod-Escapes - - perl-Pod-Html - - perl-Pod-Parser - - perl-Pod-Perldoc - - perl-Pod-Simple - - perl-Pod-Usage - - perl-Scalar-List-Utils - - perl-SelfLoader - - perl-Socket - - perl-Storable - - perl-Sys-Syslog - - perl-Term-ANSIColor - - perl-Term-Cap - - perl-Test - - perl-Test-Harness - - perl-Test-Simple - - perl-Text-Balanced - - perl-Text-ParseWords - - perl-Text-Tabs+Wrap - - perl-Thread-Queue - - perl-Time-HiRes - - perl-Time-Local - - perl-Time-Piece - - perl-Unicode-Collate - - perl-Unicode-Normalize - - perl-autodie - - perl-bignum - - perl-constant - - perl-devel - - perl-encoding - - perl-experimental - - perl-generators - - perl-interpreter - - perl-libnet - - perl-libnetcfg - - perl-libs - - perl-macros - - perl-open - - perl-parent - - perl-perlfaq - - perl-podlators - - perl-tests - - perl-threads - - perl-threads-shared - - perl-utils - - perl-version - buildopts: - rpms: - macros: | - %_with_perl_enables_groff 1 - %_without_perl_enables_syslog_test 1 - %_with_perl_enables_systemtap 1 - %_without_perl_enables_tcsh 1 - %_without_perl_Compress_Bzip2_enables_optional_test 1 - %_without_perl_CPAN_Meta_Requirements_enables_optional_test 1 - %_without_perl_IPC_System_Simple_enables_optional_test 1 - %_without_perl_LWP_MediaTypes_enables_mailcap 1 - %_without_perl_Module_Build_enables_optional_test 1 - %_without_perl_Perl_OSType_enables_optional_test 1 - %_without_perl_Pod_Perldoc_enables_tk_test 1 - %_without_perl_Software_License_enables_optional_test 1 - %_without_perl_Sys_Syslog_enables_optional_test 1 - %_without_perl_Test_Harness_enables_optional_test 1 - %_without_perl_Test_Simple_enables_optional_test 1 - %_without_perl_URI_enables_Business_ISBN 1 - components: - rpms: - perl: - rationale: The Perl interpreter. - repository: git://pkgs.fedoraproject.org/rpms/perl - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl - ref: f28 - perl-Algorithm-Diff: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Algorithm-Diff - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Algorithm-Diff - ref: f28 - perl-Archive-Tar: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Archive-Tar - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Archive-Tar - ref: f28 - perl-Archive-Zip: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Archive-Zip - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Archive-Zip - ref: f28 - perl-B-Debug: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-B-Debug - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-B-Debug - ref: f28 - perl-CPAN: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN - ref: f28 - perl-CPAN-Meta: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN-Meta - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN-Meta - ref: f28 - perl-CPAN-Meta-Requirements: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN-Meta-Requirements - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN-Meta-Requirements - ref: f28 - perl-CPAN-Meta-YAML: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN-Meta-YAML - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN-Meta-YAML - ref: f28 - perl-Carp: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Carp - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Carp - ref: f28 - perl-Compress-Bzip2: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Compress-Bzip2 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Compress-Bzip2 - ref: f28 - perl-Compress-Raw-Bzip2: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Compress-Raw-Bzip2 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Compress-Raw-Bzip2 - ref: f28 - perl-Compress-Raw-Zlib: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Compress-Raw-Zlib - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Compress-Raw-Zlib - ref: f28 - perl-Config-Perl-V: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Config-Perl-V - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Config-Perl-V - ref: f28 - perl-DB_File: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-DB_File - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-DB_File - ref: f28 - perl-Data-Dumper: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Data-Dumper - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Data-Dumper - ref: f28 - perl-Data-OptList: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Data-OptList - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Data-OptList - ref: f28 - perl-Data-Section: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Data-Section - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Data-Section - ref: f28 - perl-Devel-PPPort: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Devel-PPPort - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Devel-PPPort - ref: f28 - perl-Devel-Size: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Devel-Size - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Devel-Size - ref: f28 - perl-Digest: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Digest - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Digest - ref: f28 - perl-Digest-MD5: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Digest-MD5 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Digest-MD5 - ref: f28 - perl-Digest-SHA: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Digest-SHA - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Digest-SHA - ref: f28 - perl-Encode: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Encode - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Encode - ref: f28 - perl-Env: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Env - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Env - ref: f28 - perl-Exporter: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Exporter - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Exporter - ref: f28 - perl-ExtUtils-CBuilder: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-CBuilder - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-CBuilder - ref: f28 - perl-ExtUtils-Install: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-Install - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-Install - ref: f28 - perl-ExtUtils-MakeMaker: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-MakeMaker - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-MakeMaker - ref: f28 - perl-ExtUtils-Manifest: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-Manifest - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-Manifest - ref: f28 - perl-ExtUtils-ParseXS: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-ParseXS - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-ParseXS - ref: f28 - perl-Fedora-VSP: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Fedora-VSP - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Fedora-VSP - ref: f28 - perl-File-Fetch: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Fetch - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Fetch - ref: f28 - perl-File-HomeDir: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-HomeDir - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-HomeDir - ref: f28 - perl-File-Path: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Path - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Path - ref: f28 - perl-File-Temp: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Temp - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Temp - ref: f28 - perl-File-Which: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Which - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Which - ref: f28 - perl-Filter: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Filter - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Filter - ref: f28 - perl-Filter-Simple: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Filter-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Filter-Simple - ref: f28 - perl-Getopt-Long: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Getopt-Long - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Getopt-Long - ref: f28 - perl-HTTP-Tiny: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-HTTP-Tiny - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-HTTP-Tiny - ref: f28 - perl-IO-Compress: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-Compress - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-Compress - ref: f28 - perl-IO-Socket-IP: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-Socket-IP - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-Socket-IP - ref: f28 - perl-IPC-Cmd: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-IPC-Cmd - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IPC-Cmd - ref: f28 - perl-IPC-SysV: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-IPC-SysV - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IPC-SysV - ref: f28 - perl-IPC-System-Simple: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IPC-System-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IPC-System-Simple - ref: f28 - perl-JSON-PP: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-JSON-PP - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-JSON-PP - ref: f28 - perl-Locale-Codes: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Locale-Codes - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Locale-Codes - ref: f28 - perl-Locale-Maketext: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Locale-Maketext - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Locale-Maketext - ref: f28 - perl-MIME-Base64: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-MIME-Base64 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-MIME-Base64 - ref: f28 - perl-MRO-Compat: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-MRO-Compat - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-MRO-Compat - ref: f28 - perl-Math-BigInt: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Math-BigInt - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Math-BigInt - ref: f28 - perl-Math-BigInt-FastCalc: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Math-BigInt-FastCalc - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Math-BigInt-FastCalc - ref: f28 - perl-Math-BigRat: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Math-BigRat - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Math-BigRat - ref: f28 - perl-Module-Build: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Build - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Build - ref: f28 - perl-Module-CoreList: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-CoreList - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-CoreList - ref: f28 - perl-Module-Load: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Load - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Load - ref: f28 - perl-Module-Load-Conditional: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Load-Conditional - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Load-Conditional - ref: f28 - perl-Module-Metadata: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Metadata - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Metadata - ref: f28 - perl-Package-Generator: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Package-Generator - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Package-Generator - ref: f28 - perl-Params-Check: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Params-Check - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Params-Check - ref: f28 - perl-Params-Util: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Params-Util - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Params-Util - ref: f28 - perl-PathTools: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-PathTools - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-PathTools - ref: f28 - perl-Perl-OSType: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Perl-OSType - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Perl-OSType - ref: f28 - perl-PerlIO-via-QuotedPrint: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-PerlIO-via-QuotedPrint - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-PerlIO-via-QuotedPrint - ref: f28 - perl-Pod-Checker: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Checker - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Checker - ref: f28 - perl-Pod-Escapes: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Escapes - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Escapes - ref: f28 - perl-Pod-Parser: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Parser - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Parser - ref: f28 - perl-Pod-Perldoc: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Perldoc - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Perldoc - ref: f28 - perl-Pod-Simple: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Simple - ref: f28 - perl-Pod-Usage: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Usage - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Usage - ref: f28 - perl-Scalar-List-Utils: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Scalar-List-Utils - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Scalar-List-Utils - ref: f28 - perl-Socket: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Socket - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Socket - ref: f28 - perl-Software-License: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Software-License - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Software-License - ref: f28 - perl-Storable: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Storable - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Storable - ref: f28 - perl-Sub-Exporter: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sub-Exporter - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sub-Exporter - ref: f28 - perl-Sub-Install: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sub-Install - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sub-Install - ref: f28 - perl-Sys-Syslog: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sys-Syslog - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sys-Syslog - ref: f28 - perl-Term-ANSIColor: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Term-ANSIColor - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Term-ANSIColor - ref: f28 - perl-Term-Cap: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Term-Cap - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Term-Cap - ref: f28 - perl-Test-Harness: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Harness - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Harness - ref: f28 - perl-Test-Simple: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Simple - ref: f28 - perl-Text-Balanced: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Balanced - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Balanced - ref: f28 - perl-Text-Diff: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Diff - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Diff - ref: f28 - perl-Text-Glob: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Glob - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Glob - ref: f28 - perl-Text-ParseWords: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-ParseWords - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-ParseWords - ref: f28 - perl-Text-Tabs+Wrap: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Tabs+Wrap - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Tabs+Wrap - ref: f28 - perl-Text-Template: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Template - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Template - ref: f28 - perl-Thread-Queue: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Thread-Queue - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Thread-Queue - ref: f28 - perl-Time-HiRes: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Time-HiRes - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Time-HiRes - ref: f28 - perl-Time-Local: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Time-Local - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Time-Local - ref: f28 - perl-URI: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-URI - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-URI - ref: f28 - perl-Unicode-Collate: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Unicode-Collate - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Unicode-Collate - ref: f28 - perl-Unicode-Normalize: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Unicode-Normalize - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Unicode-Normalize - ref: f28 - perl-autodie: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-autodie - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-autodie - ref: f28 - perl-bignum: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-bignum - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-bignum - ref: f28 - perl-constant: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-constant - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-constant - ref: f28 - perl-experimental: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-experimental - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-experimental - ref: f28 - perl-generators: - rationale: RPM dependency generator. - repository: git://pkgs.fedoraproject.org/rpms/perl-generators - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-generators - ref: f28 - perl-inc-latest: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-inc-latest - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-inc-latest - ref: f28 - perl-libnet: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-libnet - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-libnet - ref: f28 - perl-local-lib: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-local-lib - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-local-lib - ref: f28 - perl-parent: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-parent - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-parent - ref: f28 - perl-perlfaq: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-perlfaq - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-perlfaq - ref: f28 - perl-podlators: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-podlators - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-podlators - ref: f28 - perl-threads: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-threads - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-threads - ref: f28 - perl-threads-shared: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-threads-shared - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-threads-shared - ref: f28 - perl-version: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-version - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-version - ref: f28 - artifacts: - rpms: - - perl-4:5.26.2-410.module_1681+b405d8e2.x86_64 - - perl-Algorithm-Diff-0:1.1903-9.module_1681+b405d8e2.noarch - - perl-Archive-Tar-0:2.26-6.module_1681+b405d8e2.noarch - - perl-Archive-Zip-0:1.60-2.module_1681+b405d8e2.noarch - - perl-Attribute-Handlers-0:0.99-410.module_1681+b405d8e2.noarch - - perl-B-Debug-0:1.26-2.module_1681+b405d8e2.noarch - - perl-CPAN-0:2.18-397.module_1681+b405d8e2.noarch - - perl-CPAN-Meta-0:2.150010-396.module_1681+b405d8e2.noarch - - perl-CPAN-Meta-Requirements-0:2.140-396.module_1681+b405d8e2.noarch - - perl-CPAN-Meta-YAML-0:0.018-397.module_1681+b405d8e2.noarch - - perl-Carp-0:1.42-395.module_1681+b405d8e2.noarch - - perl-Compress-Bzip2-0:2.26-6.module_1681+b405d8e2.x86_64 - - perl-Compress-Raw-Bzip2-0:2.081-1.module_1681+b405d8e2.x86_64 - - perl-Compress-Raw-Zlib-0:2.081-1.module_1681+b405d8e2.x86_64 - - perl-Config-Perl-V-0:0.29-2.module_1681+b405d8e2.noarch - - perl-DB_File-0:1.841-1.module_1681+b405d8e2.x86_64 - - perl-Data-Dumper-0:2.167-399.module_1681+b405d8e2.x86_64 - - perl-Data-OptList-0:0.110-6.module_1681+b405d8e2.noarch - - perl-Data-Section-0:0.200007-3.module_1681+b405d8e2.noarch - - perl-Devel-PPPort-0:3.36-5.module_1681+b405d8e2.x86_64 - - perl-Devel-Peek-0:1.26-410.module_1681+b405d8e2.x86_64 - - perl-Devel-SelfStubber-0:1.06-410.module_1681+b405d8e2.noarch - - perl-Devel-Size-0:0.81-2.module_1681+b405d8e2.x86_64 - - perl-Digest-0:1.17-395.module_1681+b405d8e2.noarch - - perl-Digest-MD5-0:2.55-396.module_1681+b405d8e2.x86_64 - - perl-Digest-SHA-1:6.01-2.module_1681+b405d8e2.x86_64 - - perl-Encode-4:2.97-3.module_1681+b405d8e2.x86_64 - - perl-Encode-devel-4:2.97-3.module_1681+b405d8e2.x86_64 - - perl-Env-0:1.04-395.module_1681+b405d8e2.noarch - - perl-Errno-0:1.28-410.module_1681+b405d8e2.x86_64 - - perl-Exporter-0:5.72-396.module_1681+b405d8e2.noarch - - perl-ExtUtils-CBuilder-1:0.280230-2.module_1681+b405d8e2.noarch - - perl-ExtUtils-Command-1:7.34-1.module_1681+b405d8e2.noarch - - perl-ExtUtils-Embed-0:1.34-410.module_1681+b405d8e2.noarch - - perl-ExtUtils-Install-0:2.14-4.module_1681+b405d8e2.noarch - - perl-ExtUtils-MM-Utils-1:7.34-1.module_1681+b405d8e2.noarch - - perl-ExtUtils-MakeMaker-1:7.34-1.module_1681+b405d8e2.noarch - - perl-ExtUtils-Manifest-0:1.70-395.module_1681+b405d8e2.noarch - - perl-ExtUtils-Miniperl-0:1.06-410.module_1681+b405d8e2.noarch - - perl-ExtUtils-ParseXS-1:3.35-2.module_1681+b405d8e2.noarch - - perl-Fedora-VSP-0:0.001-9.module_1681+b405d8e2.noarch - - perl-File-Fetch-0:0.56-2.module_1681+b405d8e2.noarch - - perl-File-HomeDir-0:1.002-4.module_1681+b405d8e2.noarch - - perl-File-Path-0:2.15-2.module_1681+b405d8e2.noarch - - perl-File-Temp-0:0.230.400-396.module_1681+b405d8e2.noarch - - perl-File-Which-0:1.22-2.module_1681+b405d8e2.noarch - - perl-Filter-2:1.58-2.module_1681+b405d8e2.x86_64 - - perl-Filter-Simple-0:0.94-2.module_1681+b405d8e2.noarch - - perl-Getopt-Long-1:2.50-4.module_1681+b405d8e2.noarch - - perl-HTTP-Tiny-0:0.070-395.module_1681+b405d8e2.noarch - - perl-IO-0:1.38-410.module_1681+b405d8e2.x86_64 - - perl-IO-Compress-0:2.081-1.module_1681+b405d8e2.noarch - - perl-IO-Socket-IP-0:0.39-5.module_1681+b405d8e2.noarch - - perl-IO-Zlib-1:1.10-410.module_1681+b405d8e2.noarch - - perl-IPC-Cmd-2:1.00-1.module_1681+b405d8e2.noarch - - perl-IPC-SysV-0:2.07-397.module_1681+b405d8e2.x86_64 - - perl-IPC-System-Simple-0:1.25-17.module_1681+b405d8e2.noarch - - perl-JSON-PP-1:2.97.001-2.module_1681+b405d8e2.noarch - - perl-Locale-Codes-0:3.56-1.module_1681+b405d8e2.noarch - - perl-Locale-Maketext-0:1.28-396.module_1681+b405d8e2.noarch - - perl-Locale-Maketext-Simple-1:0.21-410.module_1681+b405d8e2.noarch - - perl-MIME-Base64-0:3.15-396.module_1681+b405d8e2.x86_64 - - perl-MRO-Compat-0:0.13-4.module_1681+b405d8e2.noarch - - perl-Math-BigInt-1:1.9998.11-5.module_1681+b405d8e2.noarch - - perl-Math-BigInt-FastCalc-0:0.500.600-6.module_1681+b405d8e2.x86_64 - - perl-Math-BigRat-0:0.2613-3.module_1681+b405d8e2.noarch - - perl-Math-Complex-0:1.59-410.module_1681+b405d8e2.noarch - - perl-Memoize-0:1.03-410.module_1681+b405d8e2.noarch - - perl-Module-Build-2:0.42.24-5.module_1681+b405d8e2.noarch - - perl-Module-CoreList-1:5.20180414-1.module_1681+b405d8e2.noarch - - perl-Module-CoreList-tools-1:5.20180414-1.module_1681+b405d8e2.noarch - - perl-Module-Load-1:0.32-395.module_1681+b405d8e2.noarch - - perl-Module-Load-Conditional-0:0.68-395.module_1681+b405d8e2.noarch - - perl-Module-Loaded-1:0.08-410.module_1681+b405d8e2.noarch - - perl-Module-Metadata-0:1.000033-395.module_1681+b405d8e2.noarch - - perl-Net-Ping-0:2.55-410.module_1681+b405d8e2.noarch - - perl-Package-Generator-0:1.106-11.module_1681+b405d8e2.noarch - - perl-Params-Check-1:0.38-395.module_1681+b405d8e2.noarch - - perl-Params-Util-0:1.07-22.module_1681+b405d8e2.x86_64 - - perl-PathTools-0:3.74-1.module_1681+b405d8e2.x86_64 - - perl-Perl-OSType-0:1.010-396.module_1681+b405d8e2.noarch - - perl-PerlIO-via-QuotedPrint-0:0.08-395.module_1681+b405d8e2.noarch - - perl-Pod-Checker-4:1.73-395.module_1681+b405d8e2.noarch - - perl-Pod-Escapes-1:1.07-395.module_1681+b405d8e2.noarch - - perl-Pod-Html-0:1.22.02-410.module_1681+b405d8e2.noarch - - perl-Pod-Parser-0:1.63-396.module_1681+b405d8e2.noarch - - perl-Pod-Perldoc-0:3.28-396.module_1681+b405d8e2.noarch - - perl-Pod-Simple-1:3.35-395.module_1681+b405d8e2.noarch - - perl-Pod-Usage-4:1.69-395.module_1681+b405d8e2.noarch - - perl-Scalar-List-Utils-3:1.49-2.module_1681+b405d8e2.x86_64 - - perl-SelfLoader-0:1.23-410.module_1681+b405d8e2.noarch - - perl-Socket-4:2.027-2.module_1681+b405d8e2.x86_64 - - perl-Software-License-0:0.103013-2.module_1681+b405d8e2.noarch - - perl-Storable-1:2.62-396.module_1681+b405d8e2.x86_64 - - perl-Sub-Exporter-0:0.987-15.module_1681+b405d8e2.noarch - - perl-Sub-Install-0:0.928-14.module_1681+b405d8e2.noarch - - perl-Sys-Syslog-0:0.35-397.module_1681+b405d8e2.x86_64 - - perl-Term-ANSIColor-0:4.06-396.module_1681+b405d8e2.noarch - - perl-Term-Cap-0:1.17-395.module_1681+b405d8e2.noarch - - perl-Test-0:1.30-410.module_1681+b405d8e2.noarch - - perl-Test-Harness-1:3.42-1.module_1681+b405d8e2.noarch - - perl-Test-Simple-1:1.302135-1.module_1681+b405d8e2.noarch - - perl-Text-Balanced-0:2.03-395.module_1681+b405d8e2.noarch - - perl-Text-Diff-0:1.45-2.module_1681+b405d8e2.noarch - - perl-Text-Glob-0:0.11-4.module_1681+b405d8e2.noarch - - perl-Text-ParseWords-0:3.30-395.module_1681+b405d8e2.noarch - - perl-Text-Tabs+Wrap-0:2013.0523-395.module_1681+b405d8e2.noarch - - perl-Text-Template-0:1.51-1.module_1681+b405d8e2.noarch - - perl-Thread-Queue-0:3.12-395.module_1681+b405d8e2.noarch - - perl-Time-HiRes-0:1.9758-1.module_1681+b405d8e2.x86_64 - - perl-Time-Local-1:1.250-395.module_1681+b405d8e2.noarch - - perl-Time-Piece-0:1.31-410.module_1681+b405d8e2.x86_64 - - perl-URI-0:1.73-2.module_1681+b405d8e2.noarch - - perl-Unicode-Collate-0:1.25-2.module_1681+b405d8e2.x86_64 - - perl-Unicode-Normalize-0:1.25-396.module_1681+b405d8e2.x86_64 - - perl-autodie-0:2.29-396.module_1681+b405d8e2.noarch - - perl-bignum-0:0.49-2.module_1681+b405d8e2.noarch - - perl-constant-0:1.33-396.module_1681+b405d8e2.noarch - - perl-devel-4:5.26.2-410.module_1681+b405d8e2.x86_64 - - perl-encoding-4:2.22-3.module_1681+b405d8e2.x86_64 - - perl-experimental-0:0.019-2.module_1681+b405d8e2.noarch - - perl-generators-0:1.10-7.module_1681+b405d8e2.noarch - - perl-homedir-0:2.000024-2.module_1681+b405d8e2.noarch - - perl-inc-latest-2:0.500-9.module_1681+b405d8e2.noarch - - perl-interpreter-4:5.26.2-410.module_1681+b405d8e2.x86_64 - - perl-libnet-0:3.11-3.module_1681+b405d8e2.noarch - - perl-libnetcfg-4:5.26.2-410.module_1681+b405d8e2.noarch - - perl-libs-4:5.26.2-410.module_1681+b405d8e2.x86_64 - - perl-local-lib-0:2.000024-2.module_1681+b405d8e2.noarch - - perl-macros-4:5.26.2-410.module_1681+b405d8e2.x86_64 - - perl-open-0:1.11-410.module_1681+b405d8e2.noarch - - perl-parent-1:0.236-395.module_1681+b405d8e2.noarch - - perl-perlfaq-0:5.021011-395.module_1681+b405d8e2.noarch - - perl-podlators-0:4.10-2.module_1681+b405d8e2.noarch - - perl-tests-4:5.26.2-410.module_1681+b405d8e2.x86_64 - - perl-threads-1:2.21-2.module_1681+b405d8e2.x86_64 - - perl-threads-shared-0:1.58-2.module_1681+b405d8e2.x86_64 - - perl-utils-0:5.26.2-410.module_1681+b405d8e2.noarch - - perl-version-6:0.99.23-1.module_1681+b405d8e2.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: perl - stream: 5.24 - version: 20180418132302 - context: 5d9ae238 - arch: x86_64 - 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. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/perl.git?#99bb79ac98274ef3fe3f2784057d624e50c0cfcc - commit: 99bb79ac98274ef3fe3f2784057d624e50c0cfcc - buildrequires: - perl-bootstrap: - ref: 47f4825a1d5e2a8fd7b76583744ea8f2202c850c - stream: 5.24 - context: 6c81f848 - version: 20180417065503 - filtered_rpms: [] - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 4 - filtered_rpms: [] - rpms: - perl-Text-Balanced: - ref: c6648ff72f7b1798642f719036a677102c7ee125 - perl-File-Fetch: - ref: b4bf1bd8af7755b16b40a3dd67cb743bef9b1652 - perl: - ref: 9acafa0017b87ed96f8857fd7099787f0d24ff56 - perl-File-Which: - ref: 1a2ca4a9b713f31c6f99f6dec3dafdd0a457a44f - perl-Locale-Maketext: - ref: 57b31cf2d161ce97448d225af3f86c210d78ad6a - perl-Math-BigInt-FastCalc: - ref: 785456ac9585a8b4f7628d3bd2a0dacd5b592d09 - perl-Algorithm-Diff: - ref: f4b6c06396d4768c691a23b3b967fe6fac1e46ee - perl-PathTools: - ref: e643e0b6864983a2606f5bcf3ae9a34caeda4059 - perl-IPC-System-Simple: - ref: b899b97739ac1cebcae25357764cd3cf703e4f57 - perl-CPAN-Meta-Requirements: - ref: f693254160585068bd1db62ffa980963a2ef7011 - perl-Compress-Bzip2: - ref: 1ac091378670bfc36b3e866924ddc076cd800cf2 - perl-IO-Compress: - ref: 1e67f30fcc790e2d133ecd756e1b68dc1e423999 - perl-threads-shared: - ref: cd6fd55c5d0ce4aaf7394f4ee865d68c61e91cd1 - perl-autodie: - ref: 40735fb3b9a6b96b40934e72672bb1a04eb0999a - perl-Math-BigInt: - ref: 82d8ddba8d0d808a04d9d4cb579df53f65112027 - perl-Archive-Zip: - ref: 948b8e44e8dc5def0baa82a96c46da5bff385086 - perl-bignum: - ref: 74c0852bf10b97499c694d3d32f5e66a7a7d7cf3 - perl-constant: - ref: f005b65dee6a48411e2dfeb5e057dfb8a3818135 - perl-Params-Check: - ref: cf2ab4714451509691e4c06f968b0cc71891a8b8 - perl-podlators: - ref: 380d587d637c4b5fe4c1b961aa16cb698ed2a07b - perl-ExtUtils-Manifest: - ref: 2fd5140cb9441b0445de12b720c5459ed38e95b7 - perl-Compress-Raw-Zlib: - ref: ed5582bb24c481aaa0de7a33ecbf85989e0ddd8c - perl-local-lib: - ref: 96f72250500b509a87fe9263b81f888812ba08cf - perl-libnet: - ref: e6cc3a47e0776ada93c3801f06af81fb7b642d38 - perl-B-Debug: - ref: ec558193299b89d6babcf009bdcc18dc7fc48a4e - perl-IPC-Cmd: - ref: fc6bc3efe40775d3e63d811a65ed0cab6aa138e1 - perl-Config-Perl-V: - ref: 5a2c9f1ea41e4f07e76062c9598619fed2b4dcb6 - perl-version: - ref: 098155010f833f432a85cb97754e1080750ec873 - perl-Storable: - ref: d76f7a7ba835789a1ca93e3c0db2fc17a9f11907 - perl-Term-Cap: - ref: 28e345f7f785aa5b60572bfa5ba2627ef8dd3033 - perl-PerlIO-via-QuotedPrint: - ref: 31eb1e0e1c723aaf09d6846b9016e4db94428700 - perl-Fedora-VSP: - ref: 63312d7720e816853bd595cbcdc9d9e3cce0880b - perl-Digest-MD5: - ref: 884cdd515f0250589dd4cde8c32a9d77fc55871e - perl-IPC-SysV: - ref: 6102b15b4a3e30698673109ddda94a2325123e38 - perl-ExtUtils-MakeMaker: - ref: 5d9438be138d0919320b5a6e2324df05fe123d6a - perl-Module-Metadata: - ref: f583f7db4daab0a72bae86e49b549c15f5e2c905 - perl-Env: - ref: 58ac31466f9c9824d25b13ad559622dcdd65e20a - perl-Unicode-Collate: - ref: c6bc5268528635406bf3237258e7c2969a2bdfc6 - perl-Devel-Size: - ref: 982a54ab4a98fba5339f850fa9cc30af93703d2f - perl-Getopt-Long: - ref: a7414b0c7a488b9af202fff1eb6a2fb2a3ca6327 - perl-Unicode-Normalize: - ref: 6875f415710668a788423fdd80ae712e0c3d3ab2 - perl-threads: - ref: f0b3ca4a1602b11c483d97aea130e2dea8b8f96f - perl-File-HomeDir: - ref: 2982c5d9f538d8c640c3ca8fee7566d68e5ea68e - perl-experimental: - ref: cad2845a55a98ca9565be2707c3ff48e984fd1da - perl-IO-Socket-IP: - ref: 4e56568b5d09ad4aefccb354183614ae5b3f6235 - perl-Pod-Usage: - ref: 9d38a4ee92dafbfdd5e8adf44810304de6bbc9e0 - perl-ExtUtils-ParseXS: - ref: 9398847c09b96f2765b1a03b4b84188e28711273 - perl-Text-Tabs+Wrap: - ref: 90b3a77c499b10b5d34569f8b1b26327495049ea - perl-Pod-Perldoc: - ref: 842e567a333ccfd2b15be93f230d29414be0f581 - perl-Devel-PPPort: - ref: bd144f784620e5cb43ef9aea61c11d1bb7fe0503 - perl-Data-Dumper: - ref: c8ea0bbaafa024bc09c7f29342f584885571eb07 - perl-Time-HiRes: - ref: 17004a2568fc6de651cee58816cec8640a825d4c - perl-File-Path: - ref: 5848e296d61a3de73f17016f7f37a6395ae0f402 - perl-CPAN-Meta: - ref: 68ca8b0eed6d50eaef11c381b6d8e4754f6c2a7d - perl-generators: - ref: 87c9a690dd58beeaa573074d26fccccb089ab31b - perl-Digest: - ref: 6867766aaf85865d33675be774af4751b8ae9549 - perl-Perl-OSType: - ref: c2efc33ea89adb7c2da626cc3d436bbc69203e2b - perl-Pod-Simple: - ref: a0eec0341f8cc19d74f6f21f9bf38781446a0ad1 - perl-Data-OptList: - ref: 9512df0280d65abfaa04d6437367705c3b19b54f - perl-HTTP-Tiny: - ref: d396ccfe1aadc5746420b06e268e04316eb62c44 - perl-Text-Template: - ref: 9309a484a2e8e309272c8916cf63a12e385eaaef - perl-Pod-Parser: - ref: efe0977afc65bae502a4ee5bc47430b4e2b6702f - perl-Pod-Escapes: - ref: 1ab928503d1824c54a6a32e6b5d527b389f34d05 - perl-Package-Generator: - ref: f78e39fa9dc3fd1474475eabcb9378375142dd70 - perl-Sys-Syslog: - ref: 008e476eb1f3e015ad34f302a4cad874e4aad33a - perl-Archive-Tar: - ref: 2bd7368d3debb90e1d87c3d44db91412fd39873c - perl-Time-Local: - ref: e74a3e804e77a0d704eebdede825b6d0d6cc617b - perl-perlfaq: - ref: 63e299c953b8f4b558fe904fc7d31763f79760f1 - perl-JSON-PP: - ref: 1e3fe253e7edbdc506418a38d666ed19db8ce136 - perl-Term-ANSIColor: - ref: 3a74f9162f818ffaa4069d74c931caef0560514b - perl-MRO-Compat: - ref: 13cfd3efff5d02609bf8fe0c36a9e7a9a37ca8b8 - perl-Locale-Codes: - ref: bd6e31d21f18e85ffe4411b0ce7238d6a974063a - perl-Test-Harness: - ref: 2ddba30c66331628ef273a6df6b67e2b05d76022 - perl-Sub-Exporter: - ref: 92259c19826f0aed436f04d886cf4e1f208ff103 - perl-Socket: - ref: 14bd5dedb6ff8da7d7b0f5945aa61ffa620777d1 - perl-Module-CoreList: - ref: 6b31db0c22a4824a2ae7c40114a8af17bcfd125b - perl-Carp: - ref: 84fbaf6f236f9a082ae6960bbbd160f6e75894c5 - perl-Filter-Simple: - ref: ca5e4217e059a7371a125419071852760d031dba - perl-Pod-Checker: - ref: 6c8f684a9863678be5724c2e565ba1aa62761151 - perl-Compress-Raw-Bzip2: - ref: b989d850d818cbaeba0c47b0d975e1afd6b34bb8 - perl-DB_File: - ref: d9d4b751bd8ea51672630f3beb1ecaf899de40ad - perl-Filter: - ref: 998996cc8b57f55172167da01155d3a7b59c1e99 - perl-inc-latest: - ref: 0a60ae8876d88d2eaac83b84d6d2fff8ced1b9a1 - perl-Params-Util: - ref: 4bfebd9e4cb2fe6a52e2ae69d5e5e74b36296f9f - perl-Module-Load-Conditional: - ref: bb49232617058d8af4f199db9972f04cd3eefe0d - perl-ExtUtils-CBuilder: - ref: 521e6f6f83dc9a5afbb517d85e637bfa69f59701 - perl-Data-Section: - ref: 6ed48ef1733de62cd245237e25d93ea9a827d5e6 - perl-Sub-Install: - ref: 799f7222e97cc90f9abb7e1f02a5847d71a83cb0 - perl-CPAN-Meta-YAML: - ref: 3609aa7e2ae8ca137d9ff46de25d4b869fdb8c2b - perl-Text-ParseWords: - ref: 1c120cf2934e246a59a5f37284ac8111c52fa806 - perl-Scalar-List-Utils: - ref: 7eb2ea6397b7fbeeaeacbb176bbbc453723ded1a - perl-Encode: - ref: 346cfe7ccbce4c3cc2a4739b628d8d0b7e1a4779 - perl-Thread-Queue: - ref: e0fff689fc097ecf54bac2f09e5e7bd3c4d00ef6 - perl-Module-Build: - ref: 2c9e4f8f3788caeaa4707f7b562f1ad39a416680 - perl-Software-License: - ref: da9a11a3ad14d5a4cbfe9b52d108b672a6939d69 - perl-Exporter: - ref: 14c101bc77bc5119c4f75065d6f4b6edea4b502a - perl-File-Temp: - ref: de8e0c3e7e630e6861a0c0979c5ab60227f7de8e - perl-Digest-SHA: - ref: 2b4a62eaf739a7d2ce6649f3a326dbd562ed8b74 - perl-Math-BigRat: - ref: f45e094a3064ff01662d5e1409e87d88112a1991 - perl-Test-Simple: - ref: e64b2e39f56e17d7b9046881d589c778aaf4ce8b - perl-MIME-Base64: - ref: da62d3707ea9781efc91ba48d47ce49b2297a364 - perl-ExtUtils-Install: - ref: 507084f8349f691d4688fe9a49e92be1711874e4 - perl-URI: - ref: 28d53fda027d3a984ffa201d4494389c6b7796b0 - perl-CPAN: - ref: 4159d449e5a66ddef70d1fe7f1d37279d4d99bc5 - perl-Module-Load: - ref: 3f98c8f286677f7b700f661545154e781798ef0c - perl-Text-Diff: - ref: 2ee347e962b8a0e83eeecf3324062308cc1d1a2c - perl-parent: - ref: f50da57010454e2279d899a57fdbc65a48edc74c - perl-Text-Glob: - ref: 346be0660f0fc621a960467b5fa1ee656b9cd87f - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://docs.pagure.org/modularity/ - documentation: https://github.com/modularity-modules/perl - tracker: https://github.com/modularity-modules/perl/issues - profiles: - default: - rpms: - - perl-core - minimal: - rpms: - - perl - api: - rpms: - - perl - - perl-Algorithm-Diff - - perl-Archive-Tar - - perl-Archive-Zip - - perl-Attribute-Handlers - - perl-B-Debug - - perl-CPAN - - perl-CPAN-Meta - - perl-CPAN-Meta-Requirements - - perl-CPAN-Meta-YAML - - perl-Carp - - perl-Compress-Bzip2 - - perl-Compress-Raw-Bzip2 - - perl-Compress-Raw-Zlib - - perl-Config-Perl-V - - perl-DB_File - - perl-Data-Dumper - - perl-Data-OptList - - perl-Data-Section - - perl-Devel-PPPort - - perl-Devel-Peek - - perl-Devel-SelfStubber - - perl-Devel-Size - - perl-Digest - - perl-Digest-MD5 - - perl-Digest-SHA - - perl-Encode - - perl-Encode-devel - - perl-Env - - perl-Errno - - perl-Exporter - - perl-ExtUtils-CBuilder - - perl-ExtUtils-Command - - perl-ExtUtils-Embed - - perl-ExtUtils-Install - - perl-ExtUtils-MM-Utils - - perl-ExtUtils-MakeMaker - - perl-ExtUtils-Manifest - - perl-ExtUtils-Miniperl - - perl-ExtUtils-ParseXS - - perl-Fedora-VSP - - perl-File-Fetch - - perl-File-HomeDir - - perl-File-Path - - perl-File-Temp - - perl-File-Which - - perl-Filter - - perl-Filter-Simple - - perl-Getopt-Long - - perl-HTTP-Tiny - - perl-IO - - perl-IO-Compress - - perl-IO-Socket-IP - - perl-IO-Zlib - - perl-IPC-Cmd - - perl-IPC-SysV - - perl-IPC-System-Simple - - perl-JSON-PP - - perl-Locale-Codes - - perl-Locale-Maketext - - perl-Locale-Maketext-Simple - - perl-MIME-Base64 - - perl-MRO-Compat - - perl-Math-BigInt - - perl-Math-BigInt-FastCalc - - perl-Math-BigRat - - perl-Math-Complex - - perl-Memoize - - perl-Module-Build - - perl-Module-CoreList - - perl-Module-CoreList-tools - - perl-Module-Load - - perl-Module-Load-Conditional - - perl-Module-Loaded - - perl-Module-Metadata - - perl-Net-Ping - - perl-Package-Generator - - perl-Params-Check - - perl-Params-Util - - perl-PathTools - - perl-Perl-OSType - - perl-PerlIO-via-QuotedPrint - - perl-Pod-Checker - - perl-Pod-Escapes - - perl-Pod-Html - - perl-Pod-Parser - - perl-Pod-Perldoc - - perl-Pod-Simple - - perl-Pod-Usage - - perl-Scalar-List-Utils - - perl-SelfLoader - - perl-Socket - - perl-Software-License - - perl-Storable - - perl-Sub-Exporter - - perl-Sub-Install - - perl-Sys-Syslog - - perl-Term-ANSIColor - - perl-Term-Cap - - perl-Test - - perl-Test-Harness - - perl-Test-Simple - - perl-Text-Balanced - - perl-Text-Diff - - perl-Text-Glob - - perl-Text-ParseWords - - perl-Text-Tabs+Wrap - - perl-Text-Template - - perl-Thread-Queue - - perl-Time-HiRes - - perl-Time-Local - - perl-Time-Piece - - perl-URI - - perl-Unicode-Collate - - perl-Unicode-Normalize - - perl-autodie - - perl-bignum - - perl-constant - - perl-devel - - perl-encoding - - perl-experimental - - perl-generators - - perl-homedir - - perl-inc-latest - - perl-interpreter - - perl-libnet - - perl-libnetcfg - - perl-libs - - perl-local-lib - - perl-macros - - perl-open - - perl-parent - - perl-perlfaq - - perl-podlators - - perl-tests - - perl-threads - - perl-threads-shared - - perl-utils - - perl-version - buildopts: - rpms: - macros: | - %_with_perl_enables_groff 1 - %_without_perl_enables_syslog_test 1 - %_with_perl_enables_systemtap 1 - %_without_perl_enables_tcsh 1 - %_without_perl_Compress_Bzip2_enables_optional_test 1 - %_without_perl_CPAN_Meta_Requirements_enables_optional_test 1 - %_without_perl_IPC_System_Simple_enables_optional_test 1 - %_without_perl_LWP_MediaTypes_enables_mailcap 1 - %_without_perl_Module_Build_enables_optional_test 1 - %_without_perl_Perl_OSType_enables_optional_test 1 - %_without_perl_Pod_Perldoc_enables_tk_test 1 - %_without_perl_Software_License_enables_optional_test 1 - %_without_perl_Sys_Syslog_enables_optional_test 1 - %_without_perl_Test_Harness_enables_optional_test 1 - %_without_perl_URI_enables_Business_ISBN 1 - components: - rpms: - perl: - rationale: The Perl interpreter. - repository: git://pkgs.fedoraproject.org/rpms/perl - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl - ref: f26 - perl-Algorithm-Diff: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Algorithm-Diff - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Algorithm-Diff - ref: f26 - perl-Archive-Tar: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Archive-Tar - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Archive-Tar - ref: f26 - perl-Archive-Zip: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Archive-Zip - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Archive-Zip - ref: f26 - perl-B-Debug: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-B-Debug - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-B-Debug - ref: f26 - perl-CPAN: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN - ref: f26 - perl-CPAN-Meta: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN-Meta - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN-Meta - ref: f26 - perl-CPAN-Meta-Requirements: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN-Meta-Requirements - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN-Meta-Requirements - ref: f26 - perl-CPAN-Meta-YAML: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-CPAN-Meta-YAML - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-CPAN-Meta-YAML - ref: f26 - perl-Carp: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Carp - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Carp - ref: f26 - perl-Compress-Bzip2: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Compress-Bzip2 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Compress-Bzip2 - ref: f26 - perl-Compress-Raw-Bzip2: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Compress-Raw-Bzip2 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Compress-Raw-Bzip2 - ref: f26 - perl-Compress-Raw-Zlib: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Compress-Raw-Zlib - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Compress-Raw-Zlib - ref: f26 - perl-Config-Perl-V: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Config-Perl-V - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Config-Perl-V - ref: f26 - perl-DB_File: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-DB_File - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-DB_File - ref: f26 - perl-Data-Dumper: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Data-Dumper - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Data-Dumper - ref: f26 - perl-Data-OptList: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Data-OptList - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Data-OptList - ref: f26 - perl-Data-Section: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Data-Section - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Data-Section - ref: f26 - perl-Devel-PPPort: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Devel-PPPort - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Devel-PPPort - ref: f26 - perl-Devel-Size: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Devel-Size - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Devel-Size - ref: f26 - perl-Digest: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Digest - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Digest - ref: f26 - perl-Digest-MD5: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Digest-MD5 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Digest-MD5 - ref: f26 - perl-Digest-SHA: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Digest-SHA - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Digest-SHA - ref: f26 - perl-Encode: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Encode - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Encode - ref: f26 - perl-Env: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Env - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Env - ref: f26 - perl-Exporter: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Exporter - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Exporter - ref: f26 - perl-ExtUtils-CBuilder: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-CBuilder - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-CBuilder - ref: f26 - perl-ExtUtils-Install: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-Install - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-Install - ref: f26 - perl-ExtUtils-MakeMaker: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-MakeMaker - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-MakeMaker - ref: f26 - perl-ExtUtils-Manifest: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-Manifest - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-Manifest - ref: f26 - perl-ExtUtils-ParseXS: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-ExtUtils-ParseXS - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-ParseXS - ref: f26 - perl-Fedora-VSP: - rationale: RPM dependency generator. - repository: git://pkgs.fedoraproject.org/rpms/perl-Fedora-VSP - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Fedora-VSP - ref: f26 - perl-File-Fetch: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Fetch - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Fetch - ref: f26 - perl-File-HomeDir: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-HomeDir - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-HomeDir - ref: f26 - perl-File-Path: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Path - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Path - ref: f26 - perl-File-Temp: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Temp - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Temp - ref: f26 - perl-File-Which: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-File-Which - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-File-Which - ref: f26 - perl-Filter: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Filter - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Filter - ref: f26 - perl-Filter-Simple: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Filter-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Filter-Simple - ref: f26 - perl-Getopt-Long: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Getopt-Long - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Getopt-Long - ref: f26 - perl-HTTP-Tiny: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-HTTP-Tiny - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-HTTP-Tiny - ref: f26 - perl-IO-Compress: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-Compress - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-Compress - ref: f26 - perl-IO-Socket-IP: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-IO-Socket-IP - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IO-Socket-IP - ref: f26 - perl-IPC-Cmd: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-IPC-Cmd - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IPC-Cmd - ref: f26 - perl-IPC-SysV: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-IPC-SysV - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IPC-SysV - ref: f26 - perl-IPC-System-Simple: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-IPC-System-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-IPC-System-Simple - ref: f26 - perl-JSON-PP: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-JSON-PP - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-JSON-PP - ref: f26 - perl-Locale-Codes: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Locale-Codes - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Locale-Codes - ref: f26 - perl-Locale-Maketext: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Locale-Maketext - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Locale-Maketext - ref: f26 - perl-MIME-Base64: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-MIME-Base64 - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-MIME-Base64 - ref: f26 - perl-MRO-Compat: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-MRO-Compat - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-MRO-Compat - ref: f26 - perl-Math-BigInt: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Math-BigInt - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Math-BigInt - ref: f26 - perl-Math-BigInt-FastCalc: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Math-BigInt-FastCalc - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Math-BigInt-FastCalc - ref: f26 - perl-Math-BigRat: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Math-BigRat - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Math-BigRat - ref: f26 - perl-Module-Build: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Build - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Build - ref: f26 - perl-Module-CoreList: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-CoreList - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-CoreList - ref: f26 - perl-Module-Load: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Load - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Load - ref: f26 - perl-Module-Load-Conditional: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Load-Conditional - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Load-Conditional - ref: f26 - perl-Module-Metadata: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Module-Metadata - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Module-Metadata - ref: f26 - perl-Package-Generator: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Package-Generator - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Package-Generator - ref: f26 - perl-Params-Check: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Params-Check - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Params-Check - ref: f26 - perl-Params-Util: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Params-Util - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Params-Util - ref: f26 - perl-PathTools: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-PathTools - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-PathTools - ref: f26 - perl-Perl-OSType: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Perl-OSType - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Perl-OSType - ref: f26 - perl-PerlIO-via-QuotedPrint: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-PerlIO-via-QuotedPrint - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-PerlIO-via-QuotedPrint - ref: f26 - perl-Pod-Checker: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Checker - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Checker - ref: f26 - perl-Pod-Escapes: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Escapes - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Escapes - ref: f26 - perl-Pod-Parser: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Parser - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Parser - ref: f26 - perl-Pod-Perldoc: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Perldoc - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Perldoc - ref: f26 - perl-Pod-Simple: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Simple - ref: f26 - perl-Pod-Usage: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Pod-Usage - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Pod-Usage - ref: f26 - perl-Scalar-List-Utils: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Scalar-List-Utils - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Scalar-List-Utils - ref: f26 - perl-Socket: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Socket - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Socket - ref: f26 - perl-Software-License: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Software-License - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Software-License - ref: f26 - perl-Storable: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Storable - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Storable - ref: f26 - perl-Sub-Exporter: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sub-Exporter - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sub-Exporter - ref: f26 - perl-Sub-Install: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sub-Install - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sub-Install - ref: f26 - perl-Sys-Syslog: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Sys-Syslog - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Sys-Syslog - ref: f26 - perl-Term-ANSIColor: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Term-ANSIColor - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Term-ANSIColor - ref: f26 - perl-Term-Cap: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Term-Cap - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Term-Cap - ref: f26 - perl-Test-Harness: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Harness - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Harness - ref: f26 - perl-Test-Simple: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Test-Simple - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Test-Simple - ref: f26 - perl-Text-Balanced: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Balanced - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Balanced - ref: f26 - perl-Text-Diff: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Diff - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Diff - ref: f26 - perl-Text-Glob: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Glob - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Glob - ref: f26 - perl-Text-ParseWords: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-ParseWords - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-ParseWords - ref: f26 - perl-Text-Tabs+Wrap: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Tabs+Wrap - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Tabs+Wrap - ref: f26 - perl-Text-Template: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-Text-Template - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Text-Template - ref: f26 - perl-Thread-Queue: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Thread-Queue - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Thread-Queue - ref: f26 - perl-Time-HiRes: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Time-HiRes - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Time-HiRes - ref: f26 - perl-Time-Local: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Time-Local - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Time-Local - ref: f26 - perl-URI: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-URI - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-URI - ref: f26 - perl-Unicode-Collate: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Unicode-Collate - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Unicode-Collate - ref: f26 - perl-Unicode-Normalize: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-Unicode-Normalize - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-Unicode-Normalize - ref: f26 - perl-autodie: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-autodie - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-autodie - ref: f26 - perl-bignum: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-bignum - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-bignum - ref: f26 - perl-constant: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-constant - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-constant - ref: f26 - perl-experimental: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-experimental - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-experimental - ref: f26 - perl-generators: - rationale: RPM dependency generator. - repository: git://pkgs.fedoraproject.org/rpms/perl-generators - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-generators - ref: f26 - perl-inc-latest: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-inc-latest - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-inc-latest - ref: f26 - perl-libnet: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-libnet - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-libnet - ref: f26 - perl-local-lib: - rationale: A run-time dependency. - repository: git://pkgs.fedoraproject.org/rpms/perl-local-lib - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-local-lib - ref: f26 - perl-parent: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-parent - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-parent - ref: f26 - perl-perlfaq: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-perlfaq - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-perlfaq - ref: f26 - perl-podlators: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-podlators - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-podlators - ref: f26 - perl-threads: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-threads - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-threads - ref: f26 - perl-threads-shared: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-threads-shared - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-threads-shared - ref: f26 - perl-version: - rationale: Core Perl API. - repository: git://pkgs.fedoraproject.org/rpms/perl-version - cache: http://pkgs.fedoraproject.org/repo/pkgs/perl-version - ref: f26 - artifacts: - rpms: - - perl-4:5.24.4-397.module_1688+d7b5e208.x86_64 - - perl-Algorithm-Diff-0:1.1903-6.module_1688+d7b5e208.noarch - - perl-Archive-Tar-0:2.26-1.module_1688+d7b5e208.noarch - - perl-Archive-Zip-0:1.59-3.module_1688+d7b5e208.noarch - - perl-Attribute-Handlers-0:0.99-397.module_1688+d7b5e208.noarch - - perl-B-Debug-0:1.24-2.module_1688+d7b5e208.noarch - - perl-CPAN-0:2.16-1.module_1688+d7b5e208.noarch - - perl-CPAN-Meta-0:2.150010-2.module_1688+d7b5e208.noarch - - perl-CPAN-Meta-Requirements-0:2.140-7.module_1688+d7b5e208.noarch - - perl-CPAN-Meta-YAML-0:0.018-367.module_1688+d7b5e208.noarch - - perl-Carp-0:1.40-366.module_1688+d7b5e208.noarch - - perl-Compress-Bzip2-0:2.26-1.module_1688+d7b5e208.x86_64 - - perl-Compress-Raw-Bzip2-0:2.074-1.module_1688+d7b5e208.x86_64 - - perl-Compress-Raw-Zlib-0:2.074-1.module_1688+d7b5e208.x86_64 - - perl-Config-Perl-V-0:0.27-2.module_1688+d7b5e208.noarch - - perl-DB_File-0:1.841-1.module_1688+d7b5e208.x86_64 - - perl-Data-Dumper-0:2.161-4.module_1688+d7b5e208.x86_64 - - perl-Data-OptList-0:0.110-3.module_1688+d7b5e208.noarch - - perl-Data-Section-0:0.200006-8.module_1688+d7b5e208.noarch - - perl-Devel-PPPort-0:3.36-1.module_1688+d7b5e208.x86_64 - - perl-Devel-Peek-0:1.23-397.module_1688+d7b5e208.x86_64 - - perl-Devel-SelfStubber-0:1.05-397.module_1688+d7b5e208.noarch - - perl-Devel-Size-0:0.81-1.module_1688+d7b5e208.x86_64 - - perl-Digest-0:1.17-367.module_1688+d7b5e208.noarch - - perl-Digest-MD5-0:2.55-3.module_1688+d7b5e208.x86_64 - - perl-Digest-SHA-1:6.01-1.module_1688+d7b5e208.x86_64 - - perl-Encode-4:2.88-6.module_1688+d7b5e208.x86_64 - - perl-Encode-devel-4:2.88-6.module_1688+d7b5e208.x86_64 - - perl-Env-0:1.04-366.module_1688+d7b5e208.noarch - - perl-Errno-0:1.25-397.module_1688+d7b5e208.x86_64 - - perl-Exporter-0:5.72-367.module_1688+d7b5e208.noarch - - perl-ExtUtils-CBuilder-1:0.280225-366.module_1688+d7b5e208.noarch - - perl-ExtUtils-Command-0:7.24-3.module_1688+d7b5e208.noarch - - perl-ExtUtils-Embed-0:1.33-397.module_1688+d7b5e208.noarch - - perl-ExtUtils-Install-0:2.04-367.module_1688+d7b5e208.noarch - - perl-ExtUtils-MM-Utils-0:7.24-3.module_1688+d7b5e208.noarch - - perl-ExtUtils-MakeMaker-0:7.24-3.module_1688+d7b5e208.noarch - - perl-ExtUtils-Manifest-0:1.70-366.module_1688+d7b5e208.noarch - - perl-ExtUtils-Miniperl-0:1.05-397.module_1688+d7b5e208.noarch - - perl-ExtUtils-ParseXS-1:3.31-368.module_1688+d7b5e208.noarch - - perl-Fedora-VSP-0:0.001-5.module_1688+d7b5e208.noarch - - perl-File-Fetch-0:0.56-1.module_1688+d7b5e208.noarch - - perl-File-HomeDir-0:1.00-13.module_1688+d7b5e208.noarch - - perl-File-Path-0:2.12-367.module_1688+d7b5e208.noarch - - perl-File-Temp-0:0.230.400-2.module_1688+d7b5e208.noarch - - perl-File-Which-0:1.21-3.module_1688+d7b5e208.noarch - - perl-Filter-2:1.58-1.module_1688+d7b5e208.x86_64 - - perl-Filter-Simple-0:0.92-366.module_1688+d7b5e208.noarch - - perl-Getopt-Long-0:2.49.1-2.module_1688+d7b5e208.noarch - - perl-HTTP-Tiny-0:0.070-2.module_1688+d7b5e208.noarch - - perl-IO-0:1.36-397.module_1688+d7b5e208.x86_64 - - perl-IO-Compress-0:2.074-1.module_1688+d7b5e208.noarch - - perl-IO-Socket-IP-0:0.39-1.module_1688+d7b5e208.noarch - - perl-IO-Zlib-1:1.10-397.module_1688+d7b5e208.noarch - - perl-IPC-Cmd-1:0.98-1.module_1688+d7b5e208.noarch - - perl-IPC-SysV-0:2.07-4.module_1688+d7b5e208.x86_64 - - perl-IPC-System-Simple-0:1.25-13.module_1688+d7b5e208.noarch - - perl-JSON-PP-0:2.94000-1.module_1688+d7b5e208.noarch - - perl-Locale-Codes-0:3.42-2.module_1688+d7b5e208.noarch - - perl-Locale-Maketext-0:1.28-2.module_1688+d7b5e208.noarch - - perl-Locale-Maketext-Simple-1:0.21-397.module_1688+d7b5e208.noarch - - perl-MIME-Base64-0:3.15-366.module_1688+d7b5e208.x86_64 - - perl-MRO-Compat-0:0.13-1.module_1688+d7b5e208.noarch - - perl-Math-BigInt-0:1.9998.11-1.module_1688+d7b5e208.noarch - - perl-Math-BigInt-FastCalc-0:0.500.600-2.module_1688+d7b5e208.x86_64 - - perl-Math-BigRat-0:0.2614-1.module_1688+d7b5e208.noarch - - perl-Math-Complex-0:1.59-397.module_1688+d7b5e208.noarch - - perl-Memoize-0:1.03-397.module_1688+d7b5e208.noarch - - perl-Module-Build-2:0.42.24-1.module_1688+d7b5e208.noarch - - perl-Module-CoreList-1:5.20180414-1.module_1688+d7b5e208.noarch - - perl-Module-CoreList-tools-1:5.20180414-1.module_1688+d7b5e208.noarch - - perl-Module-Load-1:0.32-366.module_1688+d7b5e208.noarch - - perl-Module-Load-Conditional-0:0.68-2.module_1688+d7b5e208.noarch - - perl-Module-Loaded-1:0.08-397.module_1688+d7b5e208.noarch - - perl-Module-Metadata-0:1.000033-2.module_1688+d7b5e208.noarch - - perl-Net-Ping-0:2.43-397.module_1688+d7b5e208.noarch - - perl-Package-Generator-0:1.106-8.module_1688+d7b5e208.noarch - - perl-Params-Check-1:0.38-366.module_1688+d7b5e208.noarch - - perl-Params-Util-0:1.07-17.module_1688+d7b5e208.x86_64 - - perl-PathTools-0:3.63-367.module_1688+d7b5e208.x86_64 - - perl-Perl-OSType-0:1.010-4.module_1688+d7b5e208.noarch - - perl-PerlIO-via-QuotedPrint-0:0.08-366.module_1688+d7b5e208.noarch - - perl-Pod-Checker-4:1.73-2.module_1688+d7b5e208.noarch - - perl-Pod-Escapes-1:1.07-366.module_1688+d7b5e208.noarch - - perl-Pod-Html-0:1.22.01-397.module_1688+d7b5e208.noarch - - perl-Pod-Parser-0:1.63-367.module_1688+d7b5e208.noarch - - perl-Pod-Perldoc-0:3.28-2.module_1688+d7b5e208.noarch - - perl-Pod-Simple-1:3.35-2.module_1688+d7b5e208.noarch - - perl-Pod-Usage-4:1.69-2.module_1688+d7b5e208.noarch - - perl-Scalar-List-Utils-3:1.48-1.module_1688+d7b5e208.x86_64 - - perl-SelfLoader-0:1.23-397.module_1688+d7b5e208.noarch - - perl-Socket-4:2.027-1.module_1688+d7b5e208.x86_64 - - perl-Software-License-0:0.103012-4.module_1688+d7b5e208.noarch - - perl-Storable-1:2.56-368.module_1688+d7b5e208.x86_64 - - perl-Sub-Exporter-0:0.987-11.module_1688+d7b5e208.noarch - - perl-Sub-Install-0:0.928-10.module_1688+d7b5e208.noarch - - perl-Sys-Syslog-0:0.35-2.module_1688+d7b5e208.x86_64 - - perl-Term-ANSIColor-0:4.06-2.module_1688+d7b5e208.noarch - - perl-Term-Cap-0:1.17-366.module_1688+d7b5e208.noarch - - perl-Test-0:1.28-397.module_1688+d7b5e208.noarch - - perl-Test-Harness-0:3.42-1.module_1688+d7b5e208.noarch - - perl-Test-Simple-1:1.302086-1.module_1688+d7b5e208.noarch - - perl-Text-Balanced-0:2.03-366.module_1688+d7b5e208.noarch - - perl-Text-Diff-0:1.44-3.module_1688+d7b5e208.noarch - - perl-Text-Glob-0:0.11-1.module_1688+d7b5e208.noarch - - perl-Text-ParseWords-0:3.30-366.module_1688+d7b5e208.noarch - - perl-Text-Tabs+Wrap-0:2013.0523-366.module_1688+d7b5e208.noarch - - perl-Text-Template-0:1.47-1.module_1688+d7b5e208.noarch - - perl-Thread-Queue-0:3.12-1.module_1688+d7b5e208.noarch - - perl-Time-HiRes-0:1.9753-1.module_1688+d7b5e208.x86_64 - - perl-Time-Local-1:1.250-2.module_1688+d7b5e208.noarch - - perl-Time-Piece-0:1.31-397.module_1688+d7b5e208.x86_64 - - perl-URI-0:1.71-6.module_1688+d7b5e208.noarch - - perl-Unicode-Collate-0:1.20-1.module_1688+d7b5e208.x86_64 - - perl-Unicode-Normalize-0:1.25-366.module_1688+d7b5e208.x86_64 - - perl-autodie-0:2.29-367.module_1688+d7b5e208.noarch - - perl-bignum-0:0.49-1.module_1688+d7b5e208.noarch - - perl-constant-0:1.33-368.module_1688+d7b5e208.noarch - - perl-core-0:5.24.4-397.module_1688+d7b5e208.x86_64 - - perl-devel-4:5.24.4-397.module_1688+d7b5e208.x86_64 - - perl-encoding-4:2.19-6.module_1688+d7b5e208.x86_64 - - perl-experimental-0:0.019-1.module_1688+d7b5e208.noarch - - perl-generators-0:1.10-2.module_1688+d7b5e208.noarch - - perl-homedir-0:2.000023-1.module_1688+d7b5e208.noarch - - perl-inc-latest-2:0.500-6.module_1688+d7b5e208.noarch - - perl-libnet-0:3.11-1.module_1688+d7b5e208.noarch - - perl-libnetcfg-4:5.24.4-397.module_1688+d7b5e208.noarch - - perl-libs-4:5.24.4-397.module_1688+d7b5e208.x86_64 - - perl-local-lib-0:2.000023-1.module_1688+d7b5e208.noarch - - perl-macros-4:5.24.4-397.module_1688+d7b5e208.x86_64 - - perl-open-0:1.10-397.module_1688+d7b5e208.noarch - - perl-parent-1:0.236-2.module_1688+d7b5e208.noarch - - perl-perlfaq-0:5.021011-3.module_1688+d7b5e208.noarch - - perl-podlators-0:4.09-3.module_1688+d7b5e208.noarch - - perl-tests-4:5.24.4-397.module_1688+d7b5e208.x86_64 - - perl-threads-1:2.21-1.module_1688+d7b5e208.x86_64 - - perl-threads-shared-0:1.58-1.module_1688+d7b5e208.x86_64 - - perl-utils-0:5.24.4-397.module_1688+d7b5e208.noarch - - perl-version-5:0.99.18-1.module_1688+d7b5e208.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: nodejs - stream: 8 - version: 20180816123422 - context: 6c81f848 - arch: x86_64 - summary: Javascript runtime - description: >- - Node.js is a platform built on Chrome''s JavaScript runtime for easily building - fast, scalable network applications. Node.js uses an event-driven, non-blocking - I/O model that makes it lightweight and efficient, perfect for data-intensive - real-time applications that run across distributed devices. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/nodejs.git?#bc228d9478ac1b4387f55b6dc0b6dce38db7a7b9 - commit: bc228d9478ac1b4387f55b6dc0b6dce38db7a7b9 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - nodejs: - ref: 0d185d83353950699b7016d89a66d3916e0168b0 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: http://nodejs.org - documentation: http://nodejs.org/en/docs - tracker: https://github.com/nodejs/node/issues - profiles: - default: - rpms: - - nodejs - - npm - development: - rpms: - - nodejs - - nodejs-devel - - npm - minimal: - rpms: - - nodejs - api: - rpms: - - nodejs - - nodejs-devel - - npm - buildopts: - rpms: {} - components: - rpms: - nodejs: - rationale: Javascript runtime and npm package manager. - repository: git://pkgs.fedoraproject.org/rpms/nodejs - cache: http://pkgs.fedoraproject.org/repo/pkgs/nodejs - ref: 8 - buildorder: 10 - artifacts: - rpms: - - nodejs-1:8.11.4-1.module_2030+42747d40.x86_64 - - nodejs-devel-1:8.11.4-1.module_2030+42747d40.x86_64 - - nodejs-docs-1:8.11.4-1.module_2030+42747d40.noarch - - npm-1:5.6.0-1.8.11.4.1.module_2030+42747d40.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: nodejs - stream: 10 - version: 20180821201249 - context: 6c81f848 - arch: x86_64 - summary: Javascript runtime - description: >- - Node.js is a platform built on Chrome''s JavaScript runtime for easily building - fast, scalable network applications. Node.js uses an event-driven, non-blocking - I/O model that makes it lightweight and efficient, perfect for data-intensive - real-time applications that run across distributed devices. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/nodejs.git?#9b9e08a917c8bb4ec20e9beba7409eeb04ecd6cb - commit: 9b9e08a917c8bb4ec20e9beba7409eeb04ecd6cb - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - nodejs: - ref: 8392e14d2333b9de66db54ded33d4eadff8b05d0 - libuv: - ref: ffd273cbf428bb6a3ef21d870533a043d3aad53a - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: http://nodejs.org - documentation: http://nodejs.org/en/docs - tracker: https://github.com/nodejs/node/issues - profiles: - default: - rpms: - - nodejs - - npm - development: - rpms: - - nodejs - - nodejs-devel - - npm - minimal: - rpms: - - nodejs - api: - rpms: - - nodejs - - nodejs-devel - - npm - buildopts: - rpms: {} - components: - rpms: - libuv: - rationale: Platform abstraction layer for Node.js - repository: git+https://src.fedoraproject.org/rpms/libuv - cache: https://src.fedoraproject.org/repo/pkgs/libuv - ref: 1 - nodejs: - rationale: Javascript runtime and npm package manager. - repository: git+https://src.fedoraproject.org/rpms/nodejs - cache: https://src.fedoraproject.org/repo/pkgs/nodejs - ref: 10 - buildorder: 10 - artifacts: - rpms: - - libuv-1:1.22.0-1.module_1923+22b8b2ef.x86_64 - - libuv-devel-1:1.22.0-1.module_1923+22b8b2ef.x86_64 - - libuv-static-1:1.22.0-1.module_1923+22b8b2ef.x86_64 - - nodejs-1:10.9.0-2.module_2124+eb0e29c6.x86_64 - - nodejs-devel-1:10.9.0-2.module_2124+eb0e29c6.x86_64 - - nodejs-docs-1:10.9.0-2.module_2124+eb0e29c6.noarch - - npm-1:6.2.0-1.10.9.0.2.module_2124+eb0e29c6.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: ninja - stream: master - version: 20180816141421 - context: 6c81f848 - arch: x86_64 - summary: Small build system with a focus on speed - description: >- - This module includes Ninja build system. Ninja is a small build system with a - focus on speed. It differs from other build systems in two major respects: it - is designed to have its input files generated by a higher-level build system, - and it is designed to run builds as fast as possible. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/ninja.git?#6e64d7e4ddf96330ba0ecb2af6ff177342fb6554 - commit: 6e64d7e4ddf96330ba0ecb2af6ff177342fb6554 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - ninja-build: - ref: e1503714b8eaa880edb8fa1643273c7363a7e42a - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://ninja-build.org/ - documentation: https://ninja-build.org/manual.html - tracker: https://github.com/ninja-build/ninja/issues - profiles: - default: - rpms: - - ninja-build - api: - rpms: - - ninja-build - buildopts: - rpms: {} - components: - rpms: - ninja-build: - rationale: Main component. - repository: git://pkgs.fedoraproject.org/rpms/ninja-build - cache: http://pkgs.fedoraproject.org/repo/pkgs/ninja-build - ref: master - artifacts: - rpms: - - ninja-build-0:1.8.2-4.module_1991+4e5efe2f.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: mysql - stream: 5.7 - version: 20180816141551 - context: 6c81f848 - arch: x86_64 - summary: MySQL Module - description: >- - MySQL is a multi-user, multi-threaded SQL database server. MySQL is a client/server - implementation consisting of a server daemon (mysqld) and many different client - programs and libraries. The base package contains the standard MySQL client programs - and generic MySQL files. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/mysql.git?#7708247d0b4d3a7502d8a3fd328f65be57f2efcf - commit: 7708247d0b4d3a7502d8a3fd328f65be57f2efcf - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - community-mysql: - ref: 58939b8918ec8d1d1d706190fab7e760817c0053 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://docs.pagure.org/modularity/ - documentation: https://github.com/container-images/mariadb/ - tracker: https://github.com/modularity-modules/mysql - profiles: - client: - rpms: - - community-mysql - default: - rpms: - - community-mysql - - community-mysql-server - server: - rpms: - - community-mysql-server - api: - rpms: - - community-mysql - - community-mysql-server - buildopts: - rpms: - macros: | - %runselftest 0 - components: - rpms: - community-mysql: - rationale: MySQL package. - repository: git://pkgs.fedoraproject.org/rpms/community-mysql - cache: http://pkgs.fedoraproject.org/repo/pkgs/community-mysql - ref: 58939b89 - buildorder: 10 - artifacts: - rpms: - - community-mysql-0:5.7.22-1.module_1723+91eca47f.x86_64 - - community-mysql-common-0:5.7.22-1.module_1723+91eca47f.x86_64 - - community-mysql-devel-0:5.7.22-1.module_1723+91eca47f.x86_64 - - community-mysql-embedded-0:5.7.22-1.module_1723+91eca47f.x86_64 - - community-mysql-embedded-devel-0:5.7.22-1.module_1723+91eca47f.x86_64 - - community-mysql-errmsg-0:5.7.22-1.module_1723+91eca47f.x86_64 - - community-mysql-libs-0:5.7.22-1.module_1723+91eca47f.x86_64 - - community-mysql-server-0:5.7.22-1.module_1723+91eca47f.x86_64 - - community-mysql-test-0:5.7.22-1.module_1723+91eca47f.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: mongodb - stream: 3.6 - version: 20180601084133 - context: 6c81f848 - arch: x86_64 - summary: MongoDB Module - description: >- - Mongo from humongous is a high-performance, open source, schema-free document-oriented - database. MongoDB is written in C++ and offers the following features. Collection - oriented storage, easy storage of object/JSON-style data. Dynamic queries. Full - index support, including on inner objects and embedded arrays. Query profiling. - Replication and fail-over support. Efficient storage of binary data including - large objects (e.g. photos and videos). Auto-sharding for cloud-level scalability - (currently in early alpha). Commercial Support Available. A key goal of MongoDB - is to bridge the gap between key/value stores (which are fast and highly scalable) - and traditional RDBMS systems (which are deep in functionality). - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/mongodb.git?#a5dc17324f3dba53a00377cf0bbe7452c60c3759 - commit: a5dc17324f3dba53a00377cf0bbe7452c60c3759 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 4 - filtered_rpms: [] - rpms: - mongodb: - ref: 77494fb130cfc601d09294baf4d919f91b82fe28 - python-pymongo: - ref: 3d4e2bc45d006ee50ca24db56f41a3e23cdbf044 - mongo-java-driver: - ref: 2b02035c33706283bf7c67fa82b1d214916f8893 - mongo-tools: - ref: eed3205ebb63aa71b62b59ce5788bbb434c85ded - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://docs.pagure.org/modularity/ - documentation: https://github.com/container-images/mongodb/ - tracker: https://github.com/modularity-modules/mongodb - profiles: - client: - rpms: - - mongo-tools - - mongodb - default: - rpms: - - mongodb - - mongodb-server - server: - rpms: - - mongodb-server - api: - rpms: - - mongo-tools - - mongodb - - mongodb-server - filter: - rpms: - - mongo-tools-devel - buildopts: - rpms: - macros: | - %with_bundled 1 - %_with_xmvn_javadoc 1 - %_with_jp_minimal 1 - components: - rpms: - mongo-java-driver: - rationale: Java driver for MongoDB. - repository: git://pkgs.fedoraproject.org/rpms/mongo-java-driver - cache: http://pkgs.fedoraproject.org/repo/pkgs/mongo-java-driver - ref: 3.6 - buildorder: 2 - arches: [aarch64, ppc64le, s390x, x86_64] - mongo-tools: - rationale: MongoDB tools. - repository: git://pkgs.fedoraproject.org/rpms/mongo-tools - cache: http://pkgs.fedoraproject.org/repo/pkgs/mongo-tools - ref: 3.6 - buildorder: 2 - arches: [aarch64, ppc64le, s390x, x86_64] - mongodb: - rationale: MongoDB package. - repository: git://pkgs.fedoraproject.org/rpms/mongodb - cache: http://pkgs.fedoraproject.org/repo/pkgs/mongodb - ref: 3.6 - buildorder: 2 - arches: [aarch64, ppc64le, s390x, x86_64] - python-pymongo: - rationale: Python MongoDB driver | MongoDB dependecy for running testsuite. - repository: git://pkgs.fedoraproject.org/rpms/python-pymongo - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-pymongo - ref: f28 - buildorder: 3 - arches: [aarch64, ppc64le, s390x, x86_64] - artifacts: - rpms: - - mongo-java-driver-0:3.6.3-1.module_1822+9f9b01c0.noarch - - mongo-java-driver-bson-0:3.6.3-1.module_1822+9f9b01c0.noarch - - mongo-java-driver-driver-0:3.6.3-1.module_1822+9f9b01c0.noarch - - mongo-java-driver-driver-async-0:3.6.3-1.module_1822+9f9b01c0.noarch - - mongo-java-driver-driver-core-0:3.6.3-1.module_1822+9f9b01c0.noarch - - mongo-java-driver-javadoc-0:3.6.3-1.module_1822+9f9b01c0.noarch - - mongo-tools-0:3.6.4-0.2.20180528gite657a1d.module_1806+7fc7744f.x86_64 - - mongodb-0:3.6.4-2.module_1831+e8c1cdcd.x86_64 - - mongodb-server-0:3.6.4-2.module_1831+e8c1cdcd.x86_64 - - mongodb-test-0:3.6.4-2.module_1831+e8c1cdcd.x86_64 - - python-pymongo-doc-0:3.6.1-1.module_1786+4c13601d.noarch - - python2-bson-0:3.6.1-1.module_1786+4c13601d.x86_64 - - python2-pymongo-0:3.6.1-1.module_1786+4c13601d.x86_64 - - python2-pymongo-gridfs-0:3.6.1-1.module_1786+4c13601d.x86_64 - - python3-bson-0:3.6.1-1.module_1786+4c13601d.x86_64 - - python3-pymongo-0:3.6.1-1.module_1786+4c13601d.x86_64 - - python3-pymongo-gridfs-0:3.6.1-1.module_1786+4c13601d.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: mongodb - stream: 3.4 - version: 20180601083501 - context: 6c81f848 - arch: x86_64 - summary: MongoDB Module - description: >- - Mongo from humongous is a high-performance, open source, schema-free document-oriented - database. MongoDB is written in C++ and offers the following features. Collection - oriented storage, easy storage of object/JSON-style data. Dynamic queries. Full - index support, including on inner objects and embedded arrays. Query profiling. - Replication and fail-over support. Efficient storage of binary data including - large objects (e.g. photos and videos). Auto-sharding for cloud-level scalability - (currently in early alpha). Commercial Support Available. A key goal of MongoDB - is to bridge the gap between key/value stores (which are fast and highly scalable) - and traditional RDBMS systems (which are deep in functionality). - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/mongodb.git?#d3bc3e2e8b412da82dbd2d4f3a5f209ac47872fa - commit: d3bc3e2e8b412da82dbd2d4f3a5f209ac47872fa - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 4 - filtered_rpms: [] - rpms: - mongodb: - ref: f94545073372dfb2d06446221e6bfc8b0ed7aeaf - python-pymongo: - ref: 3d4e2bc45d006ee50ca24db56f41a3e23cdbf044 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://docs.pagure.org/modularity/ - documentation: https://github.com/container-images/mongodb/ - tracker: https://github.com/modularity-modules/mongodb - profiles: - client: - rpms: - - mongodb - default: - rpms: - - mongodb - - mongodb-server - server: - rpms: - - mongodb-server - api: - rpms: - - mongodb - - mongodb-server - buildopts: - rpms: {} - components: - rpms: - mongodb: - rationale: MongoDB package. - repository: git://pkgs.fedoraproject.org/rpms/mongodb - cache: http://pkgs.fedoraproject.org/repo/pkgs/mongodb - ref: 3.4 - buildorder: 2 - arches: [aarch64, ppc64le, s390x, x86_64] - python-pymongo: - rationale: Python MongoDB driver | MongoDB dependecy for running testsuite. - repository: git://pkgs.fedoraproject.org/rpms/python-pymongo - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-pymongo - ref: f28 - buildorder: 3 - arches: [aarch64, ppc64le, s390x, x86_64] - artifacts: - rpms: - - mongodb-0:3.4.11-3.module_1829+95924ba0.x86_64 - - mongodb-server-0:3.4.11-3.module_1829+95924ba0.x86_64 - - mongodb-test-0:3.4.11-3.module_1829+95924ba0.x86_64 - - python-pymongo-doc-0:3.6.1-1.module_1829+95924ba0.noarch - - python2-bson-0:3.6.1-1.module_1829+95924ba0.x86_64 - - python2-pymongo-0:3.6.1-1.module_1829+95924ba0.x86_64 - - python2-pymongo-gridfs-0:3.6.1-1.module_1829+95924ba0.x86_64 - - python3-bson-0:3.6.1-1.module_1829+95924ba0.x86_64 - - python3-pymongo-0:3.6.1-1.module_1829+95924ba0.x86_64 - - python3-pymongo-gridfs-0:3.6.1-1.module_1829+95924ba0.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: meson - stream: master - version: 20180816151613 - context: 06d0a27d - arch: x86_64 - summary: The Meson Build system - description: >- - Meson is an open source build system meant to be both extremely fast, and, even - more importantly, as user friendly as possible. - - The main design point of Meson is that every moment a developer spends writing - or debugging build definitions is a second wasted. So is every second spent waiting - for the build system to actually start compiling code. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/meson.git?#9826d0b55a3e90793ffee9e34aa17dd740b282e4 - commit: 9826d0b55a3e90793ffee9e34aa17dd740b282e4 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - meson: - ref: d715e30e897f9fca5716dcb7b0a8a07ca3496d17 - dependencies: - - buildrequires: - platform: [f29] - requires: - ninja: [] - platform: [f29] - references: - community: https://mesonbuild.com/ - documentation: https://mesonbuild.com/ - tracker: https://github.com/mesonbuild/meson/issues - profiles: - default: - rpms: - - meson - api: - rpms: - - meson - buildopts: - rpms: {} - components: - rpms: - meson: - rationale: Main component. - repository: git://pkgs.fedoraproject.org/rpms/meson - cache: http://pkgs.fedoraproject.org/repo/pkgs/meson - ref: master - artifacts: - rpms: - - meson-0:0.47.1-5.module_1993+7c0a4d1e.noarch -... ---- -document: modulemd -version: 2 -data: - name: maven - stream: master - version: 20180406164508 - context: 89d012dc - arch: x86_64 - summary: Java project management and project comprehension tool - description: >- - Maven is a software project management and comprehension tool. Based on the concept - of a project object model (POM), Maven can manage a project's build, reporting - and documentation from a central piece of information. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/maven.git?#5d75b638584c5347acc32183b1c58a9045c66bbf - commit: 5d75b638584c5347acc32183b1c58a9045c66bbf - buildrequires: - javapackages-tools: - ref: 87b8e165032c3f73698510668abca1c4c760a2a4 - stream: master - context: 56d4490a - version: 20180406095454 - filtered_rpms: [] - platform: - ref: virtual - stream: f29 - context: 00000000 - version: 4 - filtered_rpms: [] - rpms: - plexus-classworlds: - ref: 3e4086fae3de5ed724e85ecef28f6ea73a43cf93 - jansi: - ref: d15a37e89b54db8dcaefc3dc61146732aa09c2b3 - aopalliance: - ref: 4218fdf5b21e46bcf80aa3baa4248945b5a06e27 - sisu: - ref: 751afe29d8eda0029656309735ab884b58c1b37b - guava: - ref: 11a0ee12d41ea2de251a1fdf0b52a66e08693e65 - maven-wagon: - ref: 792f214757eb87abf8997211de16d392a08887a2 - maven-shared-utils: - ref: fc1e8b47ffa930bf339234332d594dfb957c1fb2 - glassfish-el: - ref: 1ee218e03f1f7c4f9b282faa439f62aba1deae5f - plexus-cipher: - ref: 1a7a663ac4e50778d6e23a1b65235c12c7e422c4 - plexus-interpolation: - ref: 18ba33c0fff9697a243b9c495200ba68d36c1071 - plexus-utils: - ref: 6cf8607c2777bd395b01c5d1f70e5c89629ebe98 - maven-resolver: - ref: 2333c8d518f249b0da8ed55eb259893b8c187d8f - maven: - ref: 8a72aae90423f32a50f28c28d4448ea4b40599f0 - jsoup: - ref: 629460656e669dd0e51d044e7a37c3bdf71d6822 - httpcomponents-core: - ref: 8be6b3645b3bad6f73fe1e21a7a9a25ae286a016 - apache-commons-lang3: - ref: aa5729029ca5b7859792bc50a0b3f12ac53c2faf - plexus-sec-dispatcher: - ref: a8ba97007fcb427a1d7eb066e8d61fa90062b17b - apache-commons-codec: - ref: b1a8636df2b288f5aa1b2b5bdff1a17b1174f175 - cdi-api: - ref: 340f16f1d45ea0e371283536ef95f9aced4fd745 - slf4j: - ref: d7cd96bc7a8e8d8d62c8bc62baa7df02cef56c63 - geronimo-annotation: - ref: 254152815c6f7dc109b910a17392f9226926ceb9 - apache-commons-io: - ref: 817444e3e10e4d2422e6541f22c86eb281a3145c - httpcomponents-client: - ref: 4eb97a2f3fa38a0cc50ced7f913346788172d5c6 - google-guice: - ref: 6d69a56cf4f8de7d76c5282b226bdfecc39deee9 - plexus-containers: - ref: 8ba3b5973addeda5daaf23bd642e25727bac660e - atinject: - ref: ade0bcf13a0817f7f00a742b55f6dcaad50bf17d - apache-commons-logging: - ref: 4d8596c64b6c0951b0e8f511d5c067f81b393e5d - jansi-native: - ref: 544b397797de885ca9b65442a4f956f817b76ddc - hawtjni: - ref: 93281e0174d79dfd549e57818292b1cbec5a7703 - apache-commons-cli: - ref: 624d058960641b73418257250e9c1441d9f7c3e6 - jboss-interceptors-1.2-api: - ref: ac58213ab9bf09451d82896b60eb822e788e777e - dependencies: - - requires: - platform: [] - profiles: - default: - rpms: - - maven - api: - rpms: - - maven - filter: - rpms: - - aopalliance-javadoc - - apache-commons-cli-javadoc - - apache-commons-codec-javadoc - - apache-commons-io-javadoc - - apache-commons-lang3-javadoc - - apache-commons-logging-javadoc - - atinject-javadoc - - atinject-tck - - cdi-api-javadoc - - geronimo-annotation-javadoc - - glassfish-el - - glassfish-el-javadoc - - google-guice-javadoc - - guava-javadoc - - guice-assistedinject - - guice-bom - - guice-extensions - - guice-grapher - - guice-jmx - - guice-jndi - - guice-multibindings - - guice-parent - - guice-servlet - - guice-testlib - - guice-throwingproviders - - hawtjni - - hawtjni-javadoc - - httpcomponents-client-cache - - httpcomponents-client-javadoc - - httpcomponents-core-javadoc - - jansi-javadoc - - jansi-native-javadoc - - jboss-interceptors-1.2-api-javadoc - - jsoup-javadoc - - jul-to-slf4j - - log4j-over-slf4j - - maven-hawtjni-plugin - - maven-javadoc - - maven-resolver - - maven-resolver-javadoc - - maven-resolver-test-util - - maven-resolver-transport-classpath - - maven-resolver-transport-file - - maven-resolver-transport-http - - maven-shared-utils-javadoc - - maven-wagon - - maven-wagon-ftp - - maven-wagon-http-lightweight - - maven-wagon-javadoc - - maven-wagon-providers - - plexus-cipher-javadoc - - plexus-classworlds-javadoc - - plexus-containers - - plexus-containers-component-javadoc - - plexus-containers-component-metadata - - plexus-containers-container-default - - plexus-containers-javadoc - - plexus-interpolation-javadoc - - plexus-sec-dispatcher-javadoc - - plexus-utils-javadoc - - sisu-javadoc - - slf4j-ext - - slf4j-javadoc - - slf4j-jcl - - slf4j-jdk14 - - slf4j-log4j12 - - slf4j-manual - - slf4j-sources - buildopts: - rpms: - macros: | - %_with_xmvn_javadoc 1 - %_without_asciidoc 1 - %_without_avalon 1 - %_without_bouncycastle 1 - %_without_cython 1 - %_without_dafsa 1 - %_without_desktop 1 - %_without_doxygen 1 - %_without_dtd 1 - %_without_eclipse 1 - %_without_ehcache 1 - %_without_emacs 1 - %_without_equinox 1 - %_without_fop 1 - %_without_ftp 1 - %_without_gradle 1 - %_without_groovy 1 - %_without_hadoop 1 - %_without_hsqldb 1 - %_without_itext 1 - %_without_jackson 1 - %_without_jmh 1 - %_without_jna 1 - %_without_jpa 1 - %_without_logback 1 - %_without_markdown 1 - %_without_memcached 1 - %_without_memoryfilesystem 1 - %_without_obr 1 - %_without_python 1 - %_without_reporting 1 - %_without_scm 1 - %_without_snappy 1 - %_without_spring 1 - %_without_ssh 1 - %_without_testlib 1 - components: - rpms: - aopalliance: - rationale: 'Runtime dependency of google-guice, maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/aopalliance - cache: http://pkgs.fedoraproject.org/repo/pkgs/aopalliance - ref: master - buildorder: 10 - apache-commons-cli: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/apache-commons-cli - cache: http://pkgs.fedoraproject.org/repo/pkgs/apache-commons-cli - ref: master - buildorder: 10 - apache-commons-codec: - rationale: 'Runtime dependency of httpcomponents-client, maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/apache-commons-codec - cache: http://pkgs.fedoraproject.org/repo/pkgs/apache-commons-codec - ref: master - buildorder: 10 - apache-commons-io: - rationale: "Runtime dependency of maven, maven-shared-utils,\n maven-wagon.\n" - repository: git://pkgs.fedoraproject.org/rpms/apache-commons-io - cache: http://pkgs.fedoraproject.org/repo/pkgs/apache-commons-io - ref: master - buildorder: 10 - apache-commons-lang3: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/apache-commons-lang3 - cache: http://pkgs.fedoraproject.org/repo/pkgs/apache-commons-lang3 - ref: master - buildorder: 10 - apache-commons-logging: - rationale: 'Runtime dependency of httpcomponents-client, maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/apache-commons-logging - cache: http://pkgs.fedoraproject.org/repo/pkgs/apache-commons-logging - ref: master - buildorder: 10 - atinject: - rationale: 'Runtime dependency of cdi-api, google-guice, maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/atinject - cache: http://pkgs.fedoraproject.org/repo/pkgs/atinject - ref: master - buildorder: 10 - cdi-api: - rationale: 'Runtime dependency of maven, sisu. - -' - repository: git://pkgs.fedoraproject.org/rpms/cdi-api - cache: http://pkgs.fedoraproject.org/repo/pkgs/cdi-api - ref: master - buildorder: 20 - geronimo-annotation: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/geronimo-annotation - cache: http://pkgs.fedoraproject.org/repo/pkgs/geronimo-annotation - ref: master - buildorder: 10 - glassfish-el: - rationale: 'Runtime dependency of cdi-api. - -' - repository: git://pkgs.fedoraproject.org/rpms/glassfish-el - cache: http://pkgs.fedoraproject.org/repo/pkgs/glassfish-el - ref: master - buildorder: 10 - google-guice: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/google-guice - cache: http://pkgs.fedoraproject.org/repo/pkgs/google-guice - ref: master - buildorder: 20 - guava: - rationale: 'Runtime dependency of google-guice, maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/guava - cache: http://pkgs.fedoraproject.org/repo/pkgs/guava - ref: master - buildorder: 10 - hawtjni: - rationale: 'Runtime dependency of jansi, jansi-native, maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/hawtjni - cache: http://pkgs.fedoraproject.org/repo/pkgs/hawtjni - ref: master - buildorder: 10 - httpcomponents-client: - rationale: 'Runtime dependency of maven, maven-wagon. - -' - repository: git://pkgs.fedoraproject.org/rpms/httpcomponents-client - cache: http://pkgs.fedoraproject.org/repo/pkgs/httpcomponents-client - ref: master - buildorder: 20 - httpcomponents-core: - rationale: "Runtime dependency of httpcomponents-client, maven,\n maven-wagon.\n" - repository: git://pkgs.fedoraproject.org/rpms/httpcomponents-core - cache: http://pkgs.fedoraproject.org/repo/pkgs/httpcomponents-core - ref: master - buildorder: 10 - jansi: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/jansi - cache: http://pkgs.fedoraproject.org/repo/pkgs/jansi - ref: master - buildorder: 30 - jansi-native: - rationale: 'Runtime dependency of jansi, maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/jansi-native - cache: http://pkgs.fedoraproject.org/repo/pkgs/jansi-native - ref: master - buildorder: 20 - jboss-interceptors-1.2-api: - rationale: 'Runtime dependency of cdi-api. - -' - repository: git://pkgs.fedoraproject.org/rpms/jboss-interceptors-1.2-api - cache: http://pkgs.fedoraproject.org/repo/pkgs/jboss-interceptors-1.2-api - ref: master - buildorder: 10 - jsoup: - rationale: 'Runtime dependency of maven-wagon. - -' - repository: git://pkgs.fedoraproject.org/rpms/jsoup - cache: http://pkgs.fedoraproject.org/repo/pkgs/jsoup - ref: master - buildorder: 10 - maven: - rationale: 'Module API. - -' - repository: git://pkgs.fedoraproject.org/rpms/maven - cache: http://pkgs.fedoraproject.org/repo/pkgs/maven - ref: master - buildorder: 50 - maven-resolver: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/maven-resolver - cache: http://pkgs.fedoraproject.org/repo/pkgs/maven-resolver - ref: master - buildorder: 40 - maven-shared-utils: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/maven-shared-utils - cache: http://pkgs.fedoraproject.org/repo/pkgs/maven-shared-utils - ref: master - buildorder: 20 - maven-wagon: - rationale: 'Runtime dependency of maven, maven-resolver. - -' - repository: git://pkgs.fedoraproject.org/rpms/maven-wagon - cache: http://pkgs.fedoraproject.org/repo/pkgs/maven-wagon - ref: master - buildorder: 30 - plexus-cipher: - rationale: 'Runtime dependency of maven, plexus-sec-dispatcher. - -' - repository: git://pkgs.fedoraproject.org/rpms/plexus-cipher - cache: http://pkgs.fedoraproject.org/repo/pkgs/plexus-cipher - ref: master - buildorder: 10 - plexus-classworlds: - rationale: 'Runtime dependency of maven, sisu. - -' - repository: git://pkgs.fedoraproject.org/rpms/plexus-classworlds - cache: http://pkgs.fedoraproject.org/repo/pkgs/plexus-classworlds - ref: master - buildorder: 10 - plexus-containers: - rationale: 'Runtime dependency of maven, sisu. - -' - repository: git://pkgs.fedoraproject.org/rpms/plexus-containers - cache: http://pkgs.fedoraproject.org/repo/pkgs/plexus-containers - ref: master - buildorder: 10 - plexus-interpolation: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/plexus-interpolation - cache: http://pkgs.fedoraproject.org/repo/pkgs/plexus-interpolation - ref: master - buildorder: 10 - plexus-sec-dispatcher: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/plexus-sec-dispatcher - cache: http://pkgs.fedoraproject.org/repo/pkgs/plexus-sec-dispatcher - ref: master - buildorder: 20 - plexus-utils: - rationale: "Runtime dependency of maven, maven-wagon,\n plexus-sec-dispatcher, - sisu.\n" - repository: git://pkgs.fedoraproject.org/rpms/plexus-utils - cache: http://pkgs.fedoraproject.org/repo/pkgs/plexus-utils - ref: master - buildorder: 10 - sisu: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/sisu - cache: http://pkgs.fedoraproject.org/repo/pkgs/sisu - ref: master - buildorder: 30 - slf4j: - rationale: 'Runtime dependency of maven, maven-wagon. - -' - repository: git://pkgs.fedoraproject.org/rpms/slf4j - cache: http://pkgs.fedoraproject.org/repo/pkgs/slf4j - ref: master - buildorder: 10 - artifacts: - rpms: - - aopalliance-0:1.0-17.module_1620+785df973.noarch - - apache-commons-cli-0:1.4-4.module_1620+785df973.noarch - - apache-commons-codec-0:1.11-3.module_1620+785df973.noarch - - apache-commons-io-1:2.6-3.module_1620+785df973.noarch - - apache-commons-lang3-0:3.7-3.module_1620+785df973.noarch - - apache-commons-logging-0:1.2-13.module_1620+785df973.noarch - - atinject-0:1-27.20100611svn86.module_1620+785df973.noarch - - cdi-api-0:1.2-7.module_1620+785df973.noarch - - geronimo-annotation-0:1.0-22.module_1620+785df973.noarch - - glassfish-el-api-0:3.0.1-0.7.b08.module_1620+785df973.noarch - - google-guice-0:4.1-10.module_1620+785df973.noarch - - guava-0:24.0-2.module_1620+785df973.noarch - - guava-testlib-0:24.0-2.module_1620+785df973.noarch - - hawtjni-runtime-0:1.16-1.module_1620+785df973.noarch - - httpcomponents-client-0:4.5.5-4.module_1620+785df973.noarch - - httpcomponents-core-0:4.4.9-4.module_1620+785df973.noarch - - jansi-0:1.17-1.module_1620+785df973.noarch - - jansi-native-0:1.7-5.module_1620+785df973.x86_64 - - jboss-interceptors-1.2-api-0:1.0.0-8.module_1620+785df973.noarch - - jcl-over-slf4j-0:1.7.25-4.module_1620+785df973.noarch - - jsoup-0:1.11.2-2.module_1620+785df973.noarch - - maven-1:3.5.3-1.module_1620+785df973.noarch - - maven-lib-1:3.5.3-1.module_1620+785df973.noarch - - maven-resolver-api-1:1.1.1-1.module_1620+785df973.noarch - - maven-resolver-connector-basic-1:1.1.1-1.module_1620+785df973.noarch - - maven-resolver-impl-1:1.1.1-1.module_1620+785df973.noarch - - maven-resolver-spi-1:1.1.1-1.module_1620+785df973.noarch - - maven-resolver-transport-wagon-1:1.1.1-1.module_1620+785df973.noarch - - maven-resolver-util-1:1.1.1-1.module_1620+785df973.noarch - - maven-shared-utils-0:3.2.1-0.1.module_1620+785df973.noarch - - maven-wagon-file-0:3.0.0-2.module_1620+785df973.noarch - - maven-wagon-http-0:3.0.0-2.module_1620+785df973.noarch - - maven-wagon-http-shared-0:3.0.0-2.module_1620+785df973.noarch - - maven-wagon-provider-api-0:3.0.0-2.module_1620+785df973.noarch - - plexus-cipher-0:1.7-14.module_1620+785df973.noarch - - plexus-classworlds-0:2.5.2-9.module_1620+785df973.noarch - - plexus-containers-component-annotations-0:1.7.1-5.module_1620+785df973.noarch - - plexus-interpolation-0:1.22-9.module_1620+785df973.noarch - - plexus-sec-dispatcher-0:1.4-24.module_1620+785df973.noarch - - plexus-utils-0:3.0.24-5.module_1620+785df973.noarch - - sisu-inject-1:0.3.3-3.module_1620+785df973.noarch - - sisu-plexus-1:0.3.3-3.module_1620+785df973.noarch - - slf4j-0:1.7.25-4.module_1620+785df973.noarch -... ---- -document: modulemd -version: 2 -data: - name: maven - stream: 3.5 - version: 20180629153919 - context: 819b5873 - arch: x86_64 - summary: Java project management and project comprehension tool - description: >- - Maven is a software project management and comprehension tool. Based on the concept - of a project object model (POM), Maven can manage a project's build, reporting - and documentation from a central piece of information. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/maven.git?#224ccb2073e8c2dbb83b28c864873e277a71c468 - commit: 224ccb2073e8c2dbb83b28c864873e277a71c468 - buildrequires: - javapackages-tools: - ref: 1e429a4d686d3fdd1d93ce7e8ac7254148ea3471 - stream: 201801 - context: b43b0c8f - version: 20180629150827 - filtered_rpms: [] - platform: - ref: virtual - stream: f28 - context: 00000000 - version: 4 - filtered_rpms: [] - rpms: - plexus-classworlds: - ref: 3e4086fae3de5ed724e85ecef28f6ea73a43cf93 - jansi: - ref: 4bdd2387b97de8352a0f7a976b7d8ccde8db0b24 - aopalliance: - ref: 4218fdf5b21e46bcf80aa3baa4248945b5a06e27 - sisu: - ref: 751afe29d8eda0029656309735ab884b58c1b37b - maven-wagon: - ref: 4652302afd7cc1a3d4eb48a1ae439bfc109daa90 - maven-shared-utils: - ref: fc1e8b47ffa930bf339234332d594dfb957c1fb2 - glassfish-el: - ref: 1ee218e03f1f7c4f9b282faa439f62aba1deae5f - plexus-cipher: - ref: 1a7a663ac4e50778d6e23a1b65235c12c7e422c4 - guava20: - ref: 1a98ae8658f477148660ae11626acc5d3efcf88c - plexus-interpolation: - ref: 18ba33c0fff9697a243b9c495200ba68d36c1071 - plexus-utils: - ref: 385b958ac294ee3b0851a885a2894b0de02a93b0 - maven-resolver: - ref: 66d2e2fea8fd8bcd9a297e5a550d2fcc87cc49e4 - maven: - ref: 666068fe9c979f42c7ca3d84583b0838985179b3 - jsoup: - ref: abe894a4ebec945ad4c2332084b687d1311ef15b - httpcomponents-core: - ref: 8be6b3645b3bad6f73fe1e21a7a9a25ae286a016 - apache-commons-lang3: - ref: aa5729029ca5b7859792bc50a0b3f12ac53c2faf - plexus-sec-dispatcher: - ref: a8ba97007fcb427a1d7eb066e8d61fa90062b17b - apache-commons-codec: - ref: b1a8636df2b288f5aa1b2b5bdff1a17b1174f175 - cdi-api: - ref: ff9f653d6435f240bb8a390ff9f99dfb578d42b8 - slf4j: - ref: d7cd96bc7a8e8d8d62c8bc62baa7df02cef56c63 - geronimo-annotation: - ref: b32597766edae5bbdd797f04297642231756af8c - apache-commons-io: - ref: 817444e3e10e4d2422e6541f22c86eb281a3145c - httpcomponents-client: - ref: 4eb97a2f3fa38a0cc50ced7f913346788172d5c6 - google-guice: - ref: 7e0365f95c46ad40ca084720b0a80afc40447d99 - plexus-containers: - ref: 94ad5fd40f32db2b4ad5432ed568306f1e8b38ae - atinject: - ref: 4762f5de60627d6d61131dd41a7d9b5027c4e300 - apache-commons-logging: - ref: 4d8596c64b6c0951b0e8f511d5c067f81b393e5d - jansi-native: - ref: 544b397797de885ca9b65442a4f956f817b76ddc - hawtjni: - ref: 93281e0174d79dfd549e57818292b1cbec5a7703 - apache-commons-cli: - ref: 624d058960641b73418257250e9c1441d9f7c3e6 - jboss-interceptors-1.2-api: - ref: ac58213ab9bf09451d82896b60eb822e788e777e - dependencies: - - requires: - platform: [] - profiles: - default: - rpms: - - maven - api: - rpms: - - maven - filter: - rpms: - - aopalliance-javadoc - - apache-commons-cli-javadoc - - apache-commons-codec-javadoc - - apache-commons-io-javadoc - - apache-commons-lang3-javadoc - - apache-commons-logging-javadoc - - atinject-javadoc - - atinject-tck - - cdi-api-javadoc - - geronimo-annotation-javadoc - - glassfish-el - - glassfish-el-javadoc - - google-guice-javadoc - - guava20-javadoc - - guava20-testlib - - guice-assistedinject - - guice-bom - - guice-extensions - - guice-grapher - - guice-jmx - - guice-jndi - - guice-multibindings - - guice-parent - - guice-servlet - - guice-testlib - - guice-throwingproviders - - hawtjni - - hawtjni-javadoc - - httpcomponents-client-cache - - httpcomponents-client-javadoc - - httpcomponents-core-javadoc - - jansi-javadoc - - jansi-native-javadoc - - jboss-interceptors-1.2-api-javadoc - - jsoup-javadoc - - jul-to-slf4j - - log4j-over-slf4j - - maven-hawtjni-plugin - - maven-javadoc - - maven-resolver - - maven-resolver-javadoc - - maven-resolver-test-util - - maven-resolver-transport-classpath - - maven-resolver-transport-file - - maven-resolver-transport-http - - maven-shared-utils-javadoc - - maven-wagon - - maven-wagon-ftp - - maven-wagon-http-lightweight - - maven-wagon-javadoc - - maven-wagon-providers - - plexus-cipher-javadoc - - plexus-classworlds-javadoc - - plexus-containers - - plexus-containers-component-javadoc - - plexus-containers-component-metadata - - plexus-containers-container-default - - plexus-containers-javadoc - - plexus-interpolation-javadoc - - plexus-sec-dispatcher-javadoc - - plexus-utils-javadoc - - sisu-javadoc - - slf4j-ext - - slf4j-javadoc - - slf4j-jcl - - slf4j-jdk14 - - slf4j-log4j12 - - slf4j-manual - - slf4j-sources - buildopts: - rpms: - macros: | - %_with_xmvn_javadoc 1 - %_without_asciidoc 1 - %_without_avalon 1 - %_without_bouncycastle 1 - %_without_cython 1 - %_without_dafsa 1 - %_without_desktop 1 - %_without_doxygen 1 - %_without_dtd 1 - %_without_eclipse 1 - %_without_ehcache 1 - %_without_emacs 1 - %_without_equinox 1 - %_without_fop 1 - %_without_ftp 1 - %_without_gradle 1 - %_without_groovy 1 - %_without_hadoop 1 - %_without_hsqldb 1 - %_without_itext 1 - %_without_jackson 1 - %_without_jmh 1 - %_without_jna 1 - %_without_jpa 1 - %_without_junit5 1 - %_without_logback 1 - %_without_markdown 1 - %_without_memcached 1 - %_without_memoryfilesystem 1 - %_without_obr 1 - %_without_python 1 - %_without_reporting 1 - %_without_scm 1 - %_without_snappy 1 - %_without_spring 1 - %_without_ssh 1 - %_without_testlib 1 - components: - rpms: - aopalliance: - rationale: 'Runtime dependency of google-guice, maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/aopalliance - cache: http://pkgs.fedoraproject.org/repo/pkgs/aopalliance - ref: javapackages - buildorder: 10 - apache-commons-cli: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/apache-commons-cli - cache: http://pkgs.fedoraproject.org/repo/pkgs/apache-commons-cli - ref: javapackages - buildorder: 10 - apache-commons-codec: - rationale: 'Runtime dependency of httpcomponents-client, maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/apache-commons-codec - cache: http://pkgs.fedoraproject.org/repo/pkgs/apache-commons-codec - ref: javapackages - buildorder: 10 - apache-commons-io: - rationale: "Runtime dependency of maven, maven-shared-utils,\n maven-wagon.\n" - repository: git://pkgs.fedoraproject.org/rpms/apache-commons-io - cache: http://pkgs.fedoraproject.org/repo/pkgs/apache-commons-io - ref: javapackages - buildorder: 10 - apache-commons-lang3: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/apache-commons-lang3 - cache: http://pkgs.fedoraproject.org/repo/pkgs/apache-commons-lang3 - ref: javapackages - buildorder: 10 - apache-commons-logging: - rationale: 'Runtime dependency of httpcomponents-client, maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/apache-commons-logging - cache: http://pkgs.fedoraproject.org/repo/pkgs/apache-commons-logging - ref: javapackages - buildorder: 10 - atinject: - rationale: 'Runtime dependency of cdi-api, google-guice, maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/atinject - cache: http://pkgs.fedoraproject.org/repo/pkgs/atinject - ref: javapackages - buildorder: 10 - cdi-api: - rationale: 'Runtime dependency of maven, sisu. - -' - repository: git://pkgs.fedoraproject.org/rpms/cdi-api - cache: http://pkgs.fedoraproject.org/repo/pkgs/cdi-api - ref: javapackages - buildorder: 20 - geronimo-annotation: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/geronimo-annotation - cache: http://pkgs.fedoraproject.org/repo/pkgs/geronimo-annotation - ref: javapackages - buildorder: 10 - glassfish-el: - rationale: 'Runtime dependency of cdi-api. - -' - repository: git://pkgs.fedoraproject.org/rpms/glassfish-el - cache: http://pkgs.fedoraproject.org/repo/pkgs/glassfish-el - ref: javapackages - buildorder: 10 - google-guice: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/google-guice - cache: http://pkgs.fedoraproject.org/repo/pkgs/google-guice - ref: javapackages - buildorder: 20 - guava20: - rationale: 'Runtime dependency of google-guice, maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/guava20 - cache: http://pkgs.fedoraproject.org/repo/pkgs/guava20 - ref: javapackages - buildorder: 10 - hawtjni: - rationale: 'Runtime dependency of jansi, jansi-native, maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/hawtjni - cache: http://pkgs.fedoraproject.org/repo/pkgs/hawtjni - ref: javapackages - buildorder: 10 - httpcomponents-client: - rationale: 'Runtime dependency of maven, maven-wagon. - -' - repository: git://pkgs.fedoraproject.org/rpms/httpcomponents-client - cache: http://pkgs.fedoraproject.org/repo/pkgs/httpcomponents-client - ref: javapackages - buildorder: 20 - httpcomponents-core: - rationale: "Runtime dependency of httpcomponents-client, maven,\n maven-wagon.\n" - repository: git://pkgs.fedoraproject.org/rpms/httpcomponents-core - cache: http://pkgs.fedoraproject.org/repo/pkgs/httpcomponents-core - ref: javapackages - buildorder: 10 - jansi: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/jansi - cache: http://pkgs.fedoraproject.org/repo/pkgs/jansi - ref: javapackages - buildorder: 30 - jansi-native: - rationale: 'Runtime dependency of jansi, maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/jansi-native - cache: http://pkgs.fedoraproject.org/repo/pkgs/jansi-native - ref: javapackages - buildorder: 20 - jboss-interceptors-1.2-api: - rationale: 'Runtime dependency of cdi-api. - -' - repository: git://pkgs.fedoraproject.org/rpms/jboss-interceptors-1.2-api - cache: http://pkgs.fedoraproject.org/repo/pkgs/jboss-interceptors-1.2-api - ref: javapackages - buildorder: 10 - jsoup: - rationale: 'Runtime dependency of maven-wagon. - -' - repository: git://pkgs.fedoraproject.org/rpms/jsoup - cache: http://pkgs.fedoraproject.org/repo/pkgs/jsoup - ref: javapackages - buildorder: 10 - maven: - rationale: 'Module API. - -' - repository: git://pkgs.fedoraproject.org/rpms/maven - cache: http://pkgs.fedoraproject.org/repo/pkgs/maven - ref: javapackages - buildorder: 50 - maven-resolver: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/maven-resolver - cache: http://pkgs.fedoraproject.org/repo/pkgs/maven-resolver - ref: javapackages - buildorder: 40 - maven-shared-utils: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/maven-shared-utils - cache: http://pkgs.fedoraproject.org/repo/pkgs/maven-shared-utils - ref: javapackages - buildorder: 20 - maven-wagon: - rationale: 'Runtime dependency of maven, maven-resolver. - -' - repository: git://pkgs.fedoraproject.org/rpms/maven-wagon - cache: http://pkgs.fedoraproject.org/repo/pkgs/maven-wagon - ref: javapackages - buildorder: 30 - plexus-cipher: - rationale: 'Runtime dependency of maven, plexus-sec-dispatcher. - -' - repository: git://pkgs.fedoraproject.org/rpms/plexus-cipher - cache: http://pkgs.fedoraproject.org/repo/pkgs/plexus-cipher - ref: javapackages - buildorder: 10 - plexus-classworlds: - rationale: 'Runtime dependency of maven, sisu. - -' - repository: git://pkgs.fedoraproject.org/rpms/plexus-classworlds - cache: http://pkgs.fedoraproject.org/repo/pkgs/plexus-classworlds - ref: javapackages - buildorder: 10 - plexus-containers: - rationale: 'Runtime dependency of maven, sisu. - -' - repository: git://pkgs.fedoraproject.org/rpms/plexus-containers - cache: http://pkgs.fedoraproject.org/repo/pkgs/plexus-containers - ref: javapackages - buildorder: 10 - plexus-interpolation: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/plexus-interpolation - cache: http://pkgs.fedoraproject.org/repo/pkgs/plexus-interpolation - ref: javapackages - buildorder: 10 - plexus-sec-dispatcher: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/plexus-sec-dispatcher - cache: http://pkgs.fedoraproject.org/repo/pkgs/plexus-sec-dispatcher - ref: javapackages - buildorder: 20 - plexus-utils: - rationale: "Runtime dependency of maven, maven-wagon,\n plexus-sec-dispatcher, - sisu.\n" - repository: git://pkgs.fedoraproject.org/rpms/plexus-utils - cache: http://pkgs.fedoraproject.org/repo/pkgs/plexus-utils - ref: javapackages - buildorder: 10 - sisu: - rationale: 'Runtime dependency of maven. - -' - repository: git://pkgs.fedoraproject.org/rpms/sisu - cache: http://pkgs.fedoraproject.org/repo/pkgs/sisu - ref: javapackages - buildorder: 30 - slf4j: - rationale: 'Runtime dependency of maven, maven-wagon. - -' - repository: git://pkgs.fedoraproject.org/rpms/slf4j - cache: http://pkgs.fedoraproject.org/repo/pkgs/slf4j - ref: javapackages - buildorder: 10 - artifacts: - rpms: - - aopalliance-0:1.0-17.module_1885+a6f9b3e6.noarch - - apache-commons-cli-0:1.4-4.module_1885+a6f9b3e6.noarch - - apache-commons-codec-0:1.11-3.module_1885+a6f9b3e6.noarch - - apache-commons-io-1:2.6-3.module_1885+a6f9b3e6.noarch - - apache-commons-lang3-0:3.7-3.module_1885+a6f9b3e6.noarch - - apache-commons-logging-0:1.2-13.module_1885+a6f9b3e6.noarch - - atinject-0:1-28.20100611svn86.module_1885+a6f9b3e6.noarch - - cdi-api-0:1.2-8.module_1885+a6f9b3e6.noarch - - geronimo-annotation-0:1.0-23.module_1885+a6f9b3e6.noarch - - glassfish-el-api-0:3.0.1-0.7.b08.module_1885+a6f9b3e6.noarch - - google-guice-0:4.1-11.module_1885+a6f9b3e6.noarch - - guava20-0:20.0-6.module_1885+a6f9b3e6.noarch - - hawtjni-runtime-0:1.16-1.module_1885+a6f9b3e6.noarch - - httpcomponents-client-0:4.5.5-4.module_1885+a6f9b3e6.noarch - - httpcomponents-core-0:4.4.9-4.module_1885+a6f9b3e6.noarch - - jansi-0:1.17.1-1.module_1885+a6f9b3e6.noarch - - jansi-native-0:1.7-5.module_1885+a6f9b3e6.x86_64 - - jboss-interceptors-1.2-api-0:1.0.0-8.module_1885+a6f9b3e6.noarch - - jcl-over-slf4j-0:1.7.25-4.module_1885+a6f9b3e6.noarch - - jsoup-0:1.11.3-1.module_1885+a6f9b3e6.noarch - - maven-1:3.5.4-1.module_1885+a6f9b3e6.noarch - - maven-lib-1:3.5.4-1.module_1885+a6f9b3e6.noarch - - maven-resolver-api-1:1.1.1-2.module_1885+a6f9b3e6.noarch - - maven-resolver-connector-basic-1:1.1.1-2.module_1885+a6f9b3e6.noarch - - maven-resolver-impl-1:1.1.1-2.module_1885+a6f9b3e6.noarch - - maven-resolver-spi-1:1.1.1-2.module_1885+a6f9b3e6.noarch - - maven-resolver-transport-wagon-1:1.1.1-2.module_1885+a6f9b3e6.noarch - - maven-resolver-util-1:1.1.1-2.module_1885+a6f9b3e6.noarch - - maven-shared-utils-0:3.2.1-0.1.module_1885+a6f9b3e6.noarch - - maven-wagon-file-0:3.1.0-1.module_1885+a6f9b3e6.noarch - - maven-wagon-http-0:3.1.0-1.module_1885+a6f9b3e6.noarch - - maven-wagon-http-shared-0:3.1.0-1.module_1885+a6f9b3e6.noarch - - maven-wagon-provider-api-0:3.1.0-1.module_1885+a6f9b3e6.noarch - - plexus-cipher-0:1.7-14.module_1885+a6f9b3e6.noarch - - plexus-classworlds-0:2.5.2-9.module_1885+a6f9b3e6.noarch - - plexus-containers-component-annotations-0:1.7.1-6.module_1885+a6f9b3e6.noarch - - plexus-interpolation-0:1.22-9.module_1885+a6f9b3e6.noarch - - plexus-sec-dispatcher-0:1.4-24.module_1885+a6f9b3e6.noarch - - plexus-utils-0:3.1.0-1.module_1885+a6f9b3e6.noarch - - sisu-inject-1:0.3.3-3.module_1885+a6f9b3e6.noarch - - sisu-plexus-1:0.3.3-3.module_1885+a6f9b3e6.noarch - - slf4j-0:1.7.25-4.module_1885+a6f9b3e6.noarch -... ---- -document: modulemd -version: 2 -data: - name: mariadb - stream: 10.1 - version: 20180418185803 - context: 6c81f848 - arch: x86_64 - summary: MariaDB Module - description: >- - MariaDB is a community developed branch of MySQL. MariaDB is a multi-user, multi-threaded - SQL database server. It is a client/server implementation consisting of a server - daemon (mysqld) and many different client programs and libraries. The base package - contains the standard MariaDB/MySQL client programs and generic MySQL files. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/mariadb.git?#f1a4b73cfe2b0231ea125e96a64f0daf879245ee - commit: f1a4b73cfe2b0231ea125e96a64f0daf879245ee - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 4 - filtered_rpms: [] - rpms: - mariadb: - ref: 76a52e56ed214544537575d3535615be3a7afd2f - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://docs.pagure.org/modularity/ - documentation: https://github.com/container-images/mariadb/ - tracker: https://github.com/modularity-modules/mariadb - profiles: - client: - rpms: - - mariadb - default: - rpms: - - mariadb - - mariadb-server - server: - rpms: - - mariadb-server - api: - rpms: - - mariadb - - mariadb-server - filter: - rpms: - - mariadb-bench - - mariadb-server-galera - buildopts: - rpms: - macros: | - %runselftest 0 - components: - rpms: - mariadb: - rationale: MariaDB package. - repository: git://pkgs.fedoraproject.org/rpms/mariadb - cache: http://pkgs.fedoraproject.org/repo/pkgs/mariadb - ref: 76a52e56 - artifacts: - rpms: - - mariadb-3:10.1.30-2.module_1690+8f54252c.x86_64 - - mariadb-common-3:10.1.30-2.module_1690+8f54252c.x86_64 - - mariadb-config-3:10.1.30-2.module_1690+8f54252c.x86_64 - - mariadb-connect-engine-3:10.1.30-2.module_1690+8f54252c.x86_64 - - mariadb-devel-3:10.1.30-2.module_1690+8f54252c.x86_64 - - mariadb-embedded-3:10.1.30-2.module_1690+8f54252c.x86_64 - - mariadb-embedded-devel-3:10.1.30-2.module_1690+8f54252c.x86_64 - - mariadb-errmsg-3:10.1.30-2.module_1690+8f54252c.x86_64 - - mariadb-libs-3:10.1.30-2.module_1690+8f54252c.x86_64 - - mariadb-oqgraph-engine-3:10.1.30-2.module_1690+8f54252c.x86_64 - - mariadb-server-3:10.1.30-2.module_1690+8f54252c.x86_64 - - mariadb-server-utils-3:10.1.30-2.module_1690+8f54252c.x86_64 - - mariadb-test-3:10.1.30-2.module_1690+8f54252c.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: lizardfs - stream: devel - version: 20180816140845 - context: 6c81f848 - arch: x86_64 - summary: Distributed, fault tolerant file system - description: >- - LizardFS is an Open Source, easy to deploy and maintain, distributed, fault tolerant - file system for POSIX compliant OSes. LizardFS is a fork of MooseFS. For more - information please visit http://lizardfs.com - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/lizardfs.git?#1e4d151b55a4c460cd15f0b6182499db374afd41 - commit: 1e4d151b55a4c460cd15f0b6182499db374afd41 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - lizardfs: - ref: 0624af153ffd409f2f7b3c3f63fd2b5e5f571cd0 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - buildopts: - rpms: {} - components: - rpms: - lizardfs: - rationale: Provides the core functionality. - repository: git://pkgs.fedoraproject.org/rpms/lizardfs - cache: http://pkgs.fedoraproject.org/repo/pkgs/lizardfs - ref: devel - artifacts: - rpms: - - lizardfs-adm-0:3.13.0-0.rc1r1.module_1987+e7db591a.x86_64 - - lizardfs-cgi-0:3.13.0-0.rc1r1.module_1987+e7db591a.x86_64 - - lizardfs-cgiserv-0:3.13.0-0.rc1r1.module_1987+e7db591a.x86_64 - - lizardfs-chunkserver-0:3.13.0-0.rc1r1.module_1987+e7db591a.x86_64 - - lizardfs-client-0:3.13.0-0.rc1r1.module_1987+e7db591a.x86_64 - - lizardfs-master-0:3.13.0-0.rc1r1.module_1987+e7db591a.x86_64 - - lizardfs-metalogger-0:3.13.0-0.rc1r1.module_1987+e7db591a.x86_64 - - lizardfs-uraft-0:3.13.0-0.rc1r1.module_1987+e7db591a.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: kubernetes - stream: openshift-3.10 - version: 20180827171820 - context: 6c81f848 - arch: x86_64 - summary: OpenShift Container Management - description: >- - OpenShift Origin is a distribution of Kubernetes optimized for application development - and deployment. OpenShift Origin adds developer and operational centric tools - on top of Kubernetes to enable rapid application development, easy deployment - and scaling, and long-term lifecycle maintenance for small and large teams and - applications. It provides a secure and multi-tenant configuration for Kubernetes - allowing you to safely host many different applications and workloads. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/kubernetes.git?#d90e9f3651d44c399a06273f01228ddb6d87c4f3 - commit: d90e9f3651d44c399a06273f01228ddb6d87c4f3 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - origin: - ref: cd304ee543d2d0863c3b162697cbc2b94745802f - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://github.com/kubernetes/kubernetes - documentation: https://github.com/kubernetes/kubernetes - tracker: https://github.com/kubernetes/kubernetes - profiles: - default: - rpms: - - origin - - origin-clients - - origin-cluster-capacity - - origin-docker-excluder - - origin-dockerregistry - - origin-excluder - - origin-federation-services - - origin-master - - origin-node - - origin-pod - - origin-sdn-ovs - - origin-service-catalog - - origin-template-service-broker - - origin-tests - - origin-web-console - api: - rpms: - - origin - buildopts: - rpms: - macros: | - %_with_ignore_tests 1 - components: - rpms: - origin: - rationale: Primary module component. - repository: git+https://src.fedoraproject.org/rpms/origin - cache: https://src.fedoraproject.org/repo/pkgs/origin - ref: openshift-3.10 - artifacts: - rpms: - - origin-0:3.10.0-1.module_2135+dcc9a197.x86_64 - - origin-clients-0:3.10.0-1.module_2135+dcc9a197.x86_64 - - origin-cluster-capacity-0:3.10.0-1.module_2135+dcc9a197.x86_64 - - origin-docker-excluder-0:3.10.0-1.module_2135+dcc9a197.noarch - - origin-dockerregistry-0:3.10.0-1.module_2135+dcc9a197.x86_64 - - origin-excluder-0:3.10.0-1.module_2135+dcc9a197.noarch - - origin-federation-services-0:3.10.0-1.module_2135+dcc9a197.x86_64 - - origin-master-0:3.10.0-1.module_2135+dcc9a197.x86_64 - - origin-node-0:3.10.0-1.module_2135+dcc9a197.x86_64 - - origin-pod-0:3.10.0-1.module_2135+dcc9a197.x86_64 - - origin-sdn-ovs-0:3.10.0-1.module_2135+dcc9a197.x86_64 - - origin-service-catalog-0:3.10.0-1.module_2135+dcc9a197.x86_64 - - origin-template-service-broker-0:3.10.0-1.module_2135+dcc9a197.x86_64 - - origin-tests-0:3.10.0-1.module_2135+dcc9a197.x86_64 - - origin-web-console-0:3.10.0-1.module_2135+dcc9a197.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: kubernetes - stream: 1.10 - version: 20180827150115 - context: 6c81f848 - arch: x86_64 - summary: Container cluster management - description: >- - Kubernetes is an open source system for managing containerized applications across - multiple hosts; providing basic mechanisms for deployment, maintenance, and scaling - of applications. Kubernetes builds upon a decade and a half of experience at Google - running production workloads at scale using a system called Borg, combined with - best-of-breed ideas and practices from the community. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/kubernetes.git?#98c4546e08fdd6b6adf3d9dc35d374becffc2116 - commit: 98c4546e08fdd6b6adf3d9dc35d374becffc2116 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - kubernetes: - ref: 41689fd5bb5de3125b738270c51c81ccd4b26dd7 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://github.com/kubernetes/kubernetes - documentation: https://github.com/kubernetes/kubernetes - tracker: https://github.com/kubernetes/kubernetes - profiles: - default: - rpms: - - kubernetes - - kubernetes-client - - kubernetes-kubeadm - - kubernetes-master - - kubernetes-node - api: - rpms: - - kubernetes - buildopts: - rpms: - macros: | - %_with_ignore_tests 1 - components: - rpms: - kubernetes: - rationale: Primary module component. - repository: git+https://src.fedoraproject.org/rpms/kubernetes - cache: https://src.fedoraproject.org/repo/pkgs/kubernetes - ref: 1.10 - artifacts: - rpms: - - kubernetes-0:1.10.3-1.module_2132+faf1362b.x86_64 - - kubernetes-client-0:1.10.3-1.module_2132+faf1362b.x86_64 - - kubernetes-devel-0:1.10.3-1.module_2132+faf1362b.noarch - - kubernetes-kubeadm-0:1.10.3-1.module_2132+faf1362b.x86_64 - - kubernetes-master-0:1.10.3-1.module_2132+faf1362b.x86_64 - - kubernetes-node-0:1.10.3-1.module_2132+faf1362b.x86_64 - - kubernetes-unit-test-0:1.10.3-1.module_2132+faf1362b.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: hub - stream: pre-release - version: 20180816140655 - context: 6c81f848 - arch: x86_64 - summary: A command-line wrapper for git with github shortcuts - description: >- - hub is a command line tool that wraps `git` in order to extend it with extra features - and commands that make working with GitHub easier. - - $ hub clone rtomayko/tilt - - # expands to: - $ git clone git://github.com/rtomayko/tilt.git - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/hub.git?#44bb53f774b6561906da5d069b055fa2b02a38ef - commit: 44bb53f774b6561906da5d069b055fa2b02a38ef - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - hub: - ref: 65f4d09cbf742ef0bb58cf0a9b8c7d1c05295492 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://hub.github.com - documentation: https://hub.github.com - tracker: https://github.com/github/hub/issues - profiles: - default: - rpms: - - hub - api: - rpms: - - hub - buildopts: - rpms: {} - components: - rpms: - hub: - rationale: A command-line wrapper for git with github shortcuts - repository: git://pkgs.fedoraproject.org/rpms/hub - cache: http://pkgs.fedoraproject.org/repo/pkgs/hub - ref: pre-release - artifacts: - rpms: - - hub-0:prerelease-8.module_1978+3584bea7.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: golang-ecosystem - stream: 2018.0 - version: 20180816154327 - context: cbfb2833 - arch: x86_64 - summary: The ecosystem of packages for the Go programming language - description: >- - This module contains golang based tools used as dependencies for other packages, - for instance, go-md2man, a manpage converter written in Go, along with rpm macros - for building Go based tools. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/golang-ecosystem.git?#1654fad1d9abf46a7d4f7845ea9e847b762f08a5 - commit: 1654fad1d9abf46a7d4f7845ea9e847b762f08a5 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - golang: - ref: 92882e9696b779110fd27aa11ddbc88f30eb82a2 - stream: 1.10 - context: 6c81f848 - version: 20180816140129 - filtered_rpms: [] - rpms: - go-srpm-macros: - ref: 4f85e708533960d6edfcb6e4eef29be758b25087 - go-compilers: - ref: f40831872a58d2b2b28219d8ddf2931cb2f0bc2e - golang-github-russross-blackfriday: - ref: 5b8c2ba534b8019529df9d58b92027c6a976b40e - golang-github-cpuguy83-go-md2man: - ref: 5cdf8051cae5c0596f975d526ac476e6fb4ad5f0 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://github.com/golang-github-cpuguy83-go-md2man - documentation: https://github.com/golang-github-cpuguy83-go-md2man - tracker: https://github.com/golang-github-cpuguy83-go-md2man - profiles: - default: - rpms: - - go-compilers - - go-srpm-macros - - golang-github-cpuguy83-go-md2man - - golang-github-russross-blackfriday - api: - rpms: - - go-compilers-golang-compiler - - go-srpm-macros - - golang-github-cpuguy83-go-md2man - buildopts: - rpms: - macros: | - %_with_ignore_tests 1 - components: - rpms: - go-compilers: - rationale: Build dependency for Go packages. - repository: git://pkgs.fedoraproject.org/rpms/go-compilers - cache: http://pkgs.fedoraproject.org/repo/pkgs/go-compilers - ref: f28 - go-srpm-macros: - rationale: Build dependency for Go packages. - repository: git://pkgs.fedoraproject.org/rpms/go-srpm-macros - cache: http://pkgs.fedoraproject.org/repo/pkgs/go-srpm-macros - ref: f28 - buildorder: 1 - golang-github-cpuguy83-go-md2man: - rationale: Primary component of this module. - repository: git://pkgs.fedoraproject.org/rpms/golang-github-cpuguy83-go-md2man - cache: http://pkgs.fedoraproject.org/repo/pkgs/golang-github-cpuguy83-go-md2man - ref: f28 - buildorder: 3 - golang-github-russross-blackfriday: - rationale: Build dependency for go-md2man. - repository: git://pkgs.fedoraproject.org/rpms/golang-github-russross-blackfriday - cache: http://pkgs.fedoraproject.org/repo/pkgs/golang-github-russross-blackfriday - ref: f28 - buildorder: 2 - artifacts: - rpms: - - go-compilers-golang-compiler-0:1-30.module_1812+d7358d9b.x86_64 - - go-srpm-macros-0:2-17.module_1812+d7358d9b.noarch - - golang-github-cpuguy83-go-md2man-0:1.0.7-6.20180307git1d903dc.module_2094+e5918054.x86_64 - - golang-github-cpuguy83-go-md2man-devel-0:1.0.7-6.20180307git1d903dc.module_2094+e5918054.noarch - - golang-github-russross-blackfriday-devel-0:2.0.0-2.20180628git55d61fa.module_2094+e5918054.noarch -... ---- -document: modulemd -version: 2 -data: - name: golang-ecosystem - stream: 2017.0 - version: 20180816154241 - context: cbfb2833 - arch: x86_64 - summary: The ecosystem of packages for the Go programming language - description: >- - This module contains golang based tools used as dependencies for other packages, - for instance, go-md2man, a manpage converter written in Go, along with rpm macros - for building Go based tools. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/golang-ecosystem.git?#384b17a75c5c9be71c913651126d6899e42e8d84 - commit: 384b17a75c5c9be71c913651126d6899e42e8d84 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - golang: - ref: 92882e9696b779110fd27aa11ddbc88f30eb82a2 - stream: 1.10 - context: 6c81f848 - version: 20180816140129 - filtered_rpms: [] - rpms: - go-srpm-macros: - ref: 4f85e708533960d6edfcb6e4eef29be758b25087 - go-compilers: - ref: f40831872a58d2b2b28219d8ddf2931cb2f0bc2e - golang-github-russross-blackfriday: - ref: 5b8c2ba534b8019529df9d58b92027c6a976b40e - golang-github-cpuguy83-go-md2man: - ref: 5cdf8051cae5c0596f975d526ac476e6fb4ad5f0 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://github.com/golang-github-cpuguy83-go-md2man - documentation: https://github.com/golang-github-cpuguy83-go-md2man - tracker: https://github.com/golang-github-cpuguy83-go-md2man - profiles: - default: - rpms: - - go-compilers - - go-srpm-macros - - golang-github-cpuguy83-go-md2man - - golang-github-russross-blackfriday - api: - rpms: - - go-compilers-golang-compiler - - go-srpm-macros - - golang-github-cpuguy83-go-md2man - buildopts: - rpms: - macros: | - %_with_ignore_tests 1 - components: - rpms: - go-compilers: - rationale: Build dependency for Go packages. - repository: git://pkgs.fedoraproject.org/rpms/go-compilers - cache: http://pkgs.fedoraproject.org/repo/pkgs/go-compilers - ref: f28 - go-srpm-macros: - rationale: Build dependency for Go packages. - repository: git://pkgs.fedoraproject.org/rpms/go-srpm-macros - cache: http://pkgs.fedoraproject.org/repo/pkgs/go-srpm-macros - ref: f28 - buildorder: 1 - golang-github-cpuguy83-go-md2man: - rationale: Primary component of this module. - repository: git://pkgs.fedoraproject.org/rpms/golang-github-cpuguy83-go-md2man - cache: http://pkgs.fedoraproject.org/repo/pkgs/golang-github-cpuguy83-go-md2man - ref: f28 - buildorder: 3 - golang-github-russross-blackfriday: - rationale: Build dependency for go-md2man. - repository: git://pkgs.fedoraproject.org/rpms/golang-github-russross-blackfriday - cache: http://pkgs.fedoraproject.org/repo/pkgs/golang-github-russross-blackfriday - ref: f28 - buildorder: 2 - artifacts: - rpms: - - go-compilers-golang-compiler-0:1-30.module_1941+86fd1e0a.x86_64 - - go-srpm-macros-0:2-17.module_1941+86fd1e0a.noarch - - golang-github-cpuguy83-go-md2man-0:1.0.7-6.20180307git1d903dc.module_1941+86fd1e0a.x86_64 - - golang-github-cpuguy83-go-md2man-devel-0:1.0.7-6.20180307git1d903dc.module_1941+86fd1e0a.noarch - - golang-github-russross-blackfriday-devel-0:2.0.0-2.20180628git55d61fa.module_1941+86fd1e0a.noarch -... ---- -document: modulemd -version: 2 -data: - name: golang - stream: 1.10 - version: 20180816140129 - context: 6c81f848 - arch: x86_64 - summary: The Go Programming Language - description: >- - This module provides the Go compiler and associated tools and documentation. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/golang.git?#92882e9696b779110fd27aa11ddbc88f30eb82a2 - commit: 92882e9696b779110fd27aa11ddbc88f30eb82a2 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - golang: - ref: c333e76e869a626eb5936d311dc4ba4c29a10e09 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://groups.google.com/forum/#!forum/golang-nuts - documentation: https://golang.org/doc - tracker: https://github.com/golang/go/issues - profiles: - default: - rpms: - - golang - api: - rpms: - - golang - - golang-bin - - golang-docs - - golang-misc - - golang-race - - golang-shared - - golang-src - - golang-tests - buildopts: - rpms: - macros: | - %_with_ignore_tests 1 - components: - rpms: - golang: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/golang - cache: http://pkgs.fedoraproject.org/repo/pkgs/golang - ref: f28 - artifacts: - rpms: - - golang-0:1.10.3-1.module_2044+a37cc272.x86_64 - - golang-bin-0:1.10.3-1.module_2044+a37cc272.x86_64 - - golang-docs-0:1.10.3-1.module_2044+a37cc272.noarch - - golang-misc-0:1.10.3-1.module_2044+a37cc272.noarch - - golang-race-0:1.10.3-1.module_2044+a37cc272.x86_64 - - golang-shared-0:1.10.3-1.module_2044+a37cc272.x86_64 - - golang-src-0:1.10.3-1.module_2044+a37cc272.noarch - - golang-tests-0:1.10.3-1.module_2044+a37cc272.noarch -... ---- -document: modulemd -version: 2 -data: - name: gimp - stream: 2.10 - version: 20180824144949 - context: 6c81f848 - arch: x86_64 - summary: GIMP - description: >- - A module containing GIMP, the GNU Image Manipulation Program. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/gimp.git?#413d972eaa41fbdfdff2a4fc6dfe909c0bee0f74 - commit: 413d972eaa41fbdfdff2a4fc6dfe909c0bee0f74 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - gimp: - ref: 5806be946febc58b68ec28a3af16eab0e9207435 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://www.gimp.org/ - documentation: https://www.gimp.org/docs/ - tracker: https://www.gimp.org/bugs/ - profiles: - default: - rpms: - - gimp - devel: - rpms: - - gimp-devel - - gimp-devel-tools - api: - rpms: - - gimp - - gimp-devel - - gimp-devel-tools - - gimp-libs - buildopts: - rpms: {} - components: - rpms: - gimp: - rationale: The API of this module. - repository: git+https://src.fedoraproject.org/rpms/gimp - cache: https://src.fedoraproject.org/repo/pkgs/gimp - ref: 2.10 - artifacts: - rpms: - - gimp-2:2.10.6-2.module_2129+8576126a.x86_64 - - gimp-devel-2:2.10.6-2.module_2129+8576126a.x86_64 - - gimp-devel-tools-2:2.10.6-2.module_2129+8576126a.x86_64 - - gimp-libs-2:2.10.6-2.module_2129+8576126a.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: gcsf - stream: master - version: 20180804153258 - context: b33445dc - arch: x86_64 - summary: FUSE file system based on Google Drive - description: > - GCSF is a virtual filesystem that allows users to mount their - - Google Drive account locally and interact with it as a - - regular disk partition. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/gcsf.git?#bb5cd4eaae70cda43091e1bf45043d38fa155064 - commit: bb5cd4eaae70cda43091e1bf45043d38fa155064 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - rust-gcsf: - ref: 56af97ed27afeccc68bddffac38606da5b8f8ed7 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [] - references: - community: https://github.com/harababurel/gcsf - documentation: https://github.com/harababurel/gcsf/blob/master/README.md - tracker: https://github.com/harababurel/gcsf/issues - profiles: - default: - rpms: - - gcsf - api: - rpms: - - gcsf - buildopts: - rpms: {} - components: - rpms: - rust-gcsf: - rationale: Main component. - repository: git://pkgs.fedoraproject.org/rpms/rust-gcsf - cache: http://pkgs.fedoraproject.org/repo/pkgs/rust-gcsf - ref: master - artifacts: - rpms: - - gcsf-0:0.1.17-1.module_1970+c9821572.x86_64 - - rust-gcsf-devel-0:0.1.17-1.module_1970+c9821572.noarch -... ---- -document: modulemd -version: 2 -data: - name: flatpak-runtime - stream: f29 - version: 20180821220306 - context: 6c81f848 - arch: x86_64 - summary: Flatpak Runtime - description: >- - This module defines two runtimes for Flatpaks, the 'runtime' profile that most - Flatpaks in Fedora use, and a smaller 'runtime-base' profile that is intended - to be more minimal and (slightly) more API stable. There are also corresponding - sdk and sdk-base profiles that are used to build SDKs that applications can be - built against with flatpak-builder. - license: - module: - - MIT - xmd: - flatpak: - runtimes: - sdk-base: - id: org.fedoraproject.BaseSdk - sdk: org.fedoraproject.BasePlatform - sdk: - id: org.fedoraproject.Sdk - sdk: org.fedoraproject.Platform - runtime: - id: org.fedoraproject.Platform - sdk: org.fedoraproject.Sdk - runtime-base: - id: org.fedoraproject.BasePlatform - sdk: org.fedoraproject.BaseSdk - branch: f29 - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/flatpak-runtime.git?#32b413f59feb051f360b242d065496f330f2ae9a - commit: 32b413f59feb051f360b242d065496f330f2ae9a - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - flatpak-runtime-config: - ref: eab96c8f9b8f4c96b8e1eddd0fb57bb64025da61 - flatpak-rpm-macros: - ref: e51f66a27ac1c1ef5ae64be5aef3bdcde2124b64 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - profiles: - buildroot: - rpms: - - flatpak-rpm-macros - - flatpak-runtime-config - runtime: - rpms: - - ModemManager-glib - - SDL2 - - SDL2_image - - SDL2_mixer - - SDL2_net - - SDL2_ttf - - abattis-cantarell-fonts - - acl - - adwaita-cursor-theme - - adwaita-gtk2-theme - - adwaita-icon-theme - - alsa-lib - - aspell - - at-spi2-atk - - at-spi2-core - - atk - - attr - - audit-libs - - avahi-glib - - avahi-libs - - basesystem - - bash - - brotli - - bzip2 - - bzip2-libs - - ca-certificates - - cairo - - cairo-gobject - - cdparanoia-libs - - chkconfig - - clutter - - clutter-gst3 - - clutter-gtk - - cogl - - colord-libs - - compat-readline6 - - coreutils - - coreutils-common - - cpio - - cracklib - - crypto-policies - - cryptsetup-libs - - cups-libs - - curl - - cyrus-sasl-lib - - dbus - - dbus-common - - dbus-daemon - - dbus-glib - - dbus-libs - - dbus-tools - - dbus-x11 - - dconf - - dejavu-fonts-common - - dejavu-sans-fonts - - dejavu-sans-mono-fonts - - dejavu-serif-fonts - - desktop-file-utils - - device-mapper - - device-mapper-libs - - elfutils - - elfutils-default-yama-scope - - elfutils-libelf - - elfutils-libs - - emacs-filesystem - - enchant - - eosrei-emojione-fonts - - expat - - fedora-gpg-keys - - fedora-release - - fedora-repos - - fedora-repos-rawhide - - file - - file-libs - - filesystem - - findutils - - flac-libs - - flatpak-runtime-config - - fontconfig - - fontpackages-filesystem - - freetype - - fribidi - - gawk - - gcr - - gdbm - - gdbm-libs - - gdk-pixbuf2 - - gdk-pixbuf2-modules - - geoclue2 - - geoclue2-libs - - gjs - - glib-networking - - glib2 - - glibc - - glibc-all-langpacks - - glibc-common - - glibc-minimal-langpack - - gmp - - gnome-themes-extra - - gnu-free-fonts-common - - gnu-free-mono-fonts - - gnu-free-sans-fonts - - gnu-free-serif-fonts - - gnupg - - gnupg2 - - gnupg2-smime - - gnutls - - gobject-introspection - - google-crosextra-caladea-fonts - - google-crosextra-carlito-fonts - - google-noto-emoji-color-fonts - - gpgme - - graphite2 - - grep - - gsettings-desktop-schemas - - gsm - - gssdp - - gstreamer1 - - gstreamer1-plugins-bad-free - - gstreamer1-plugins-base - - gtk-update-icon-cache - - gtk2 - - gtk2-engines - - gtk3 - - gupnp - - gupnp-igd - - gzip - - harfbuzz - - harfbuzz-icu - - hicolor-icon-theme - - hunspell - - hunspell-en-US - - hwdata - - hyphen - - ibus-libs - - info - - iptables-libs - - iso-codes - - jasper-libs - - jbigkit-libs - - json-c - - json-glib - - keyutils-libs - - kmod-libs - - krb5-libs - - krb5-server - - krb5-workstation - - lcms2 - - lcms2-utils - - less - - libICE - - libSM - - libX11 - - libX11-common - - libX11-xcb - - libXScrnSaver - - libXau - - libXcomposite - - libXcursor - - libXdamage - - libXdmcp - - libXext - - libXfixes - - libXft - - libXi - - libXinerama - - libXpm - - libXrandr - - libXrender - - libXt - - libXtst - - libXv - - libXxf86vm - - libacl - - libappstream-glib - - libarchive - - libargon2 - - libassuan - - libasyncns - - libatomic - - libattr - - libblkid - - libcanberra - - libcanberra-gtk2 - - libcanberra-gtk3 - - libcap - - libcap-ng - - libcom_err - - libcroco - - libcurl - - libdatrie - - libdb - - libdrm - - libdvdnav - - libdvdread - - libedit - - libepoxy - - liberation-fonts-common - - liberation-mono-fonts - - liberation-sans-fonts - - liberation-serif-fonts - - libev - - libevdev - - libexif - - libfdisk - - libffi - - libgcab1 - - libgcc - - libgcrypt - - libgfortran - - libglvnd - - libglvnd-egl - - libglvnd-gles - - libglvnd-glx - - libglvnd-opengl - - libgomp - - libgpg-error - - libgudev - - libgusb - - libicu - - libidn2 - - libinput - - libjpeg-turbo - - libkadm5 - - libksba - - libmetalink - - libmodman - - libmount - - libmpc - - libmpcdec - - libnghttp2 - - libnice - - libnotify - - libnsl - - libnsl2 - - libogg - - libpcap - - libpciaccess - - libpkgconf - - libpng - - libproxy - - libpsl - - libpwquality - - libquadmath - - librsvg2 - - librsvg2-tools - - libsamplerate - - libseccomp - - libsecret - - libselinux - - libsemanage - - libsepol - - libsigsegv - - libsmartcols - - libsndfile - - libsoup - - libsrtp - - libss - - libssh - - libstdc++ - - libstemmer - - libtasn1 - - libtdb - - libthai - - libtheora - - libtiff - - libtirpc - - libtool-ltdl - - libunistring - - libusb - - libusbx - - libutempter - - libuuid - - libvdpau - - libverto - - libverto-libev - - libvisual - - libvorbis - - libwacom - - libwacom-data - - libwayland-client - - libwayland-cursor - - libwayland-egl - - libwayland-server - - libwebp - - libxcb - - libxcrypt - - libxkbcommon - - libxkbcommon-x11 - - libxml2 - - libxshmfence - - libxslt - - llvm-libs - - llvm6.0-libs - - logrotate - - lz4-libs - - mesa-dri-drivers - - mesa-filesystem - - mesa-libEGL - - mesa-libGL - - mesa-libgbm - - mesa-libglapi - - mesa-libxatracker - - mesa-vulkan-drivers - - mlocate - - mozjs52 - - mpfr - - mpg123-libs - - mtdev - - mythes - - ncompress - - ncurses - - ncurses-base - - ncurses-compat-libs - - ncurses-libs - - nettle - - npth - - nspr - - nss - - nss-softokn - - nss-softokn-freebl - - nss-sysinit - - nss-tools - - nss-util - - ocl-icd - - openal-soft - - openldap - - openssl - - openssl-libs - - opus - - orc - - p11-kit - - p11-kit-trust - - pam - - pango - - pcre - - pcre-cpp - - pcre2 - - pcre2-utf16 - - pcre2-utf32 - - pinentry - - pixman - - pkgconf - - pkgconf-m4 - - pkgconf-pkg-config - - popt - - procps-ng - - publicsuffix-list-dafsa - - pulseaudio-libs - - pulseaudio-libs-glib2 - - pulseaudio-utils - - python-pip-wheel - - python-setuptools-wheel - - python-unversioned-command - - python2 - - python2-libproxy - - python2-libs - - python2-libxml2 - - python2-pip - - python2-setuptools - - python3 - - python3-libs - - python3-pip - - python3-setuptools - - qrencode-libs - - readline - - rest - - rpcgen - - sed - - setup - - shadow-utils - - shared-mime-info - - sound-theme-freedesktop - - soundtouch - - speex - - speexdsp - - spirv-tools-libs - - sqlite-libs - - systemd - - systemd-libs - - systemd-pam - - tar - - turbojpeg - - tzdata - - unzip - - util-linux - - vte-profile - - vte291 - - vulkan-loader - - vulkan-validation-layers - - webkit2gtk3 - - webkit2gtk3-jsc - - webrtc-audio-processing - - which - - woff2 - - words - - xcb-util - - xcb-util-cursor - - xcb-util-image - - xcb-util-keysyms - - xcb-util-renderutil - - xcb-util-wm - - xdg-user-dirs - - xdg-utils - - xkeyboard-config - - xml-common - - xz - - xz-libs - - xz-lzma-compat - - yelp - - yelp-libs - - yelp-xsl - - zenity - - zip - - zlib - runtime-base: - rpms: - - ModemManager-glib - - SDL2 - - SDL2_image - - SDL2_mixer - - SDL2_net - - SDL2_ttf - - acl - - adwaita-cursor-theme - - adwaita-icon-theme - - alsa-lib - - aspell - - at-spi2-atk - - at-spi2-core - - atk - - attr - - audit-libs - - avahi-glib - - avahi-libs - - basesystem - - bash - - brotli - - bzip2 - - bzip2-libs - - ca-certificates - - cairo - - cairo-gobject - - cdparanoia-libs - - chkconfig - - colord-libs - - compat-readline6 - - coreutils - - coreutils-common - - cpio - - cracklib - - crypto-policies - - cryptsetup-libs - - cups-libs - - curl - - cyrus-sasl-lib - - dbus - - dbus-common - - dbus-daemon - - dbus-libs - - dbus-tools - - dbus-x11 - - dconf - - dejavu-fonts-common - - dejavu-sans-fonts - - dejavu-sans-mono-fonts - - dejavu-serif-fonts - - desktop-file-utils - - device-mapper - - device-mapper-libs - - elfutils - - elfutils-default-yama-scope - - elfutils-libelf - - elfutils-libs - - emacs-filesystem - - eosrei-emojione-fonts - - expat - - fedora-gpg-keys - - fedora-release - - fedora-repos - - fedora-repos-rawhide - - file - - file-libs - - filesystem - - findutils - - flac-libs - - flatpak-runtime-config - - fontconfig - - fontpackages-filesystem - - freetype - - fribidi - - gawk - - gdbm - - gdbm-libs - - gdk-pixbuf2 - - gdk-pixbuf2-modules - - geoclue2 - - geoclue2-libs - - glib-networking - - glib2 - - glibc - - glibc-all-langpacks - - glibc-common - - glibc-minimal-langpack - - gmp - - gnu-free-fonts-common - - gnu-free-mono-fonts - - gnu-free-sans-fonts - - gnu-free-serif-fonts - - gnupg - - gnupg2 - - gnupg2-smime - - gnutls - - gobject-introspection - - google-crosextra-caladea-fonts - - google-crosextra-carlito-fonts - - gpgme - - graphite2 - - grep - - gsettings-desktop-schemas - - gsm - - gssdp - - gstreamer1 - - gstreamer1-plugins-bad-free - - gstreamer1-plugins-base - - gtk-update-icon-cache - - gtk3 - - gupnp - - gupnp-igd - - gzip - - harfbuzz - - harfbuzz-icu - - hicolor-icon-theme - - hunspell - - hunspell-en-US - - hwdata - - hyphen - - ibus-libs - - info - - iptables-libs - - iso-codes - - jasper-libs - - jbigkit-libs - - json-c - - json-glib - - keyutils-libs - - kmod-libs - - krb5-libs - - krb5-server - - krb5-workstation - - lcms2 - - lcms2-utils - - less - - libICE - - libSM - - libX11 - - libX11-common - - libX11-xcb - - libXScrnSaver - - libXau - - libXcomposite - - libXcursor - - libXdamage - - libXdmcp - - libXext - - libXfixes - - libXft - - libXi - - libXinerama - - libXpm - - libXrandr - - libXrender - - libXt - - libXtst - - libXv - - libXxf86vm - - libacl - - libappstream-glib - - libarchive - - libargon2 - - libassuan - - libasyncns - - libatomic - - libattr - - libblkid - - libcap - - libcap-ng - - libcom_err - - libcroco - - libcurl - - libdatrie - - libdb - - libdrm - - libdvdnav - - libdvdread - - libedit - - libepoxy - - liberation-fonts-common - - liberation-mono-fonts - - liberation-sans-fonts - - liberation-serif-fonts - - libev - - libexif - - libfdisk - - libffi - - libgcab1 - - libgcc - - libgcrypt - - libgfortran - - libglvnd - - libglvnd-egl - - libglvnd-gles - - libglvnd-glx - - libglvnd-opengl - - libgomp - - libgpg-error - - libgudev - - libgusb - - libicu - - libidn2 - - libjpeg-turbo - - libkadm5 - - libksba - - libmetalink - - libmodman - - libmount - - libmpc - - libmpcdec - - libnghttp2 - - libnice - - libnotify - - libnsl - - libnsl2 - - libogg - - libpcap - - libpciaccess - - libpkgconf - - libpng - - libproxy - - libpsl - - libpwquality - - libquadmath - - librsvg2 - - librsvg2-tools - - libsamplerate - - libseccomp - - libsecret - - libselinux - - libsemanage - - libsepol - - libsigsegv - - libsmartcols - - libsndfile - - libsoup - - libsrtp - - libss - - libssh - - libstdc++ - - libstemmer - - libtasn1 - - libthai - - libtheora - - libtiff - - libtirpc - - libtool-ltdl - - libunistring - - libusb - - libusbx - - libutempter - - libuuid - - libvdpau - - libverto - - libverto-libev - - libvisual - - libvorbis - - libwayland-client - - libwayland-cursor - - libwayland-egl - - libwayland-server - - libwebp - - libxcb - - libxcrypt - - libxkbcommon - - libxkbcommon-x11 - - libxml2 - - libxshmfence - - libxslt - - llvm-libs - - llvm6.0-libs - - logrotate - - lz4-libs - - mesa-libEGL - - mesa-libGL - - mesa-libgbm - - mesa-libglapi - - mesa-libxatracker - - mesa-vulkan-drivers - - mlocate - - mpfr - - mpg123-libs - - mythes - - ncompress - - ncurses - - ncurses-base - - ncurses-compat-libs - - ncurses-libs - - nettle - - npth - - nspr - - nss - - nss-softokn - - nss-softokn-freebl - - nss-sysinit - - nss-tools - - nss-util - - ocl-icd - - openal-soft - - openldap - - openssl - - openssl-libs - - opus - - orc - - p11-kit - - p11-kit-trust - - pam - - pango - - pcre - - pcre-cpp - - pcre2 - - pcre2-utf16 - - pcre2-utf32 - - pinentry - - pixman - - pkgconf - - pkgconf-m4 - - pkgconf-pkg-config - - popt - - procps-ng - - publicsuffix-list-dafsa - - pulseaudio-libs - - pulseaudio-libs-glib2 - - pulseaudio-utils - - python-unversioned-command - - python2 - - python2-libproxy - - python2-libs - - python2-libxml2 - - python2-pip - - python2-setuptools - - python3 - - python3-libs - - python3-pip - - python3-setuptools - - qrencode-libs - - readline - - rest - - rpcgen - - sed - - setup - - shadow-utils - - shared-mime-info - - soundtouch - - speex - - speexdsp - - spirv-tools-libs - - sqlite-libs - - systemd - - systemd-libs - - systemd-pam - - tar - - turbojpeg - - tzdata - - unzip - - util-linux - - vulkan-loader - - vulkan-validation-layers - - webrtc-audio-processing - - which - - words - - xcb-util - - xcb-util-cursor - - xcb-util-image - - xcb-util-keysyms - - xcb-util-renderutil - - xcb-util-wm - - xdg-user-dirs - - xdg-utils - - xkeyboard-config - - xml-common - - xz - - xz-libs - - xz-lzma-compat - - zenity - - zip - - zlib - sdk: - rpms: - - ModemManager-glib - - SDL2 - - SDL2-devel - - SDL2_image - - SDL2_image-devel - - SDL2_mixer - - SDL2_mixer-devel - - SDL2_net - - SDL2_net-devel - - SDL2_ttf - - SDL2_ttf-devel - - abattis-cantarell-fonts - - acl - - adwaita-cursor-theme - - adwaita-gtk2-theme - - adwaita-icon-theme - - adwaita-icon-theme-devel - - alsa-lib - - alsa-lib-devel - - annobin - - aspell - - aspell-devel - - at-spi2-atk - - at-spi2-atk-devel - - at-spi2-core - - at-spi2-core-devel - - atk - - atk-devel - - attr - - audit-libs - - autoconf - - autoconf-archive - - autogen-libopts - - automake - - avahi-glib - - avahi-libs - - basesystem - - bash - - bash-completion - - bc - - binutils - - bison - - boost-regex - - brotli - - brotli-devel - - byacc - - bzip2 - - bzip2-devel - - bzip2-libs - - ca-certificates - - cairo - - cairo-devel - - cairo-gobject - - cairo-gobject-devel - - cairo-tools - - ccache - - cdparanoia-libs - - check - - check-devel - - chkconfig - - chrpath - - clang - - clang-analyzer - - clang-devel - - clang-libs - - clang-tools-extra - - clutter - - clutter-devel - - clutter-gst3 - - clutter-gst3-devel - - clutter-gtk - - clutter-gtk-devel - - cmake - - cmake-data - - cmake-filesystem - - cmake-rpm-macros - - cogl - - cogl-devel - - colord-libs - - compat-readline6 - - coreutils - - coreutils-common - - cpio - - cpp - - cracklib - - cracklib-devel - - crypto-policies - - cryptsetup-libs - - ctags - - cups-devel - - cups-libs - - curl - - cvs - - cvsps - - cyrus-sasl - - cyrus-sasl-devel - - cyrus-sasl-lib - - dbus - - dbus-common - - dbus-daemon - - dbus-devel - - dbus-glib - - dbus-glib-devel - - dbus-libs - - dbus-tools - - dbus-x11 - - dconf - - dconf-devel - - dejavu-fonts-common - - dejavu-sans-fonts - - dejavu-sans-mono-fonts - - dejavu-serif-fonts - - desktop-file-utils - - device-mapper - - device-mapper-libs - - diffutils - - docbook-dtds - - docbook-style-dsssl - - docbook-style-xsl - - docbook-utils - - dwz - - e2fsprogs - - e2fsprogs-devel - - e2fsprogs-libs - - efi-srpm-macros - - elfutils - - elfutils-default-yama-scope - - elfutils-devel - - elfutils-libelf - - elfutils-libelf-devel - - elfutils-libs - - elinks - - emacs-filesystem - - enchant - - enchant-devel - - eosrei-emojione-fonts - - expat - - expat-devel - - fedora-gpg-keys - - fedora-release - - fedora-repos - - fedora-repos-rawhide - - file - - file-libs - - filesystem - - findutils - - fipscheck - - fipscheck-lib - - flac - - flac-devel - - flac-libs - - flatpak-runtime-config - - flex - - fontconfig - - fontconfig-devel - - fontpackages-filesystem - - fpc-srpm-macros - - freetype - - freetype-devel - - fribidi - - fribidi-devel - - fuse-libs - - gawk - - gc - - gcc - - gcc-c++ - - gcr - - gcr-devel - - gdb - - gdb-headless - - gdbm - - gdbm-devel - - gdbm-libs - - gdk-pixbuf2 - - gdk-pixbuf2-devel - - gdk-pixbuf2-modules - - geoclue2 - - geoclue2-devel - - geoclue2-libs - - gettext - - gettext-common-devel - - gettext-devel - - gettext-libs - - ghc-srpm-macros - - giflib - - giflib-devel - - git - - git-clang-format - - git-core - - git-core-doc - - git-cvs - - gjs - - gjs-devel - - glib-networking - - glib2 - - glib2-devel - - glibc - - glibc-all-langpacks - - glibc-common - - glibc-devel - - glibc-headers - - glibc-minimal-langpack - - gmp - - gmp-c++ - - gmp-devel - - gnat-srpm-macros - - gnome-common - - gnome-themes-extra - - gnu-free-fonts-common - - gnu-free-mono-fonts - - gnu-free-sans-fonts - - gnu-free-serif-fonts - - gnupg - - gnupg2 - - gnupg2-smime - - gnutls - - gnutls-c++ - - gnutls-dane - - gnutls-devel - - gnutls-utils - - go-srpm-macros - - gobject-introspection - - gobject-introspection-devel - - google-crosextra-caladea-fonts - - google-crosextra-carlito-fonts - - google-noto-emoji-color-fonts - - gperf - - gpgme - - gpgme-devel - - gpm-libs - - graphite2 - - graphite2-devel - - grep - - groff - - groff-base - - groff-perl - - gsettings-desktop-schemas - - gsettings-desktop-schemas-devel - - gsm - - gssdp - - gstreamer1 - - gstreamer1-devel - - gstreamer1-plugins-bad-free - - gstreamer1-plugins-bad-free-devel - - gstreamer1-plugins-base - - gstreamer1-plugins-base-devel - - gtk-doc - - gtk-update-icon-cache - - gtk2 - - gtk2-devel - - gtk2-engines - - gtk2-engines-devel - - gtk3 - - gtk3-devel - - guile - - gupnp - - gupnp-igd - - gvfs-client - - gvfs-devel - - gzip - - harfbuzz - - harfbuzz-devel - - harfbuzz-icu - - hicolor-icon-theme - - hunspell - - hunspell-devel - - hunspell-en-US - - hwdata - - hyphen - - hyphen-devel - - ibus - - ibus-devel - - ibus-gtk2 - - ibus-gtk3 - - ibus-libs - - ibus-setup - - icu - - info - - intltool - - iptables-libs - - isl - - iso-codes - - iso-codes-devel - - itstool - - jasper-libs - - jbigkit-libs - - jq - - jq-devel - - json-c - - json-c-devel - - json-glib - - json-glib-devel - - jsoncpp - - kernel-headers - - keyutils-libs - - keyutils-libs-devel - - kmod-libs - - krb5-devel - - krb5-libs - - krb5-server - - krb5-workstation - - lcms2 - - lcms2-devel - - lcms2-utils - - less - - libICE - - libICE-devel - - libSM - - libSM-devel - - libX11 - - libX11-common - - libX11-devel - - libX11-xcb - - libXScrnSaver - - libXScrnSaver-devel - - libXau - - libXau-devel - - libXaw - - libXcomposite - - libXcomposite-devel - - libXcursor - - libXcursor-devel - - libXdamage - - libXdamage-devel - - libXdmcp - - libXdmcp-devel - - libXext - - libXext-devel - - libXfixes - - libXfixes-devel - - libXft - - libXft-devel - - libXi - - libXi-devel - - libXinerama - - libXinerama-devel - - libXmu - - libXpm - - libXpm-devel - - libXrandr - - libXrandr-devel - - libXrender - - libXrender-devel - - libXt - - libXt-devel - - libXtst - - libXtst-devel - - libXv - - libXv-devel - - libXxf86misc - - libXxf86vm - - libXxf86vm-devel - - libacl - - libacl-devel - - libappstream-glib - - libappstream-glib-builder - - libappstream-glib-builder-devel - - libappstream-glib-devel - - libarchive - - libarchive-devel - - libargon2 - - libassuan - - libassuan-devel - - libasyncns - - libatomic - - libatomic_ops - - libatomic_ops-devel - - libattr - - libattr-devel - - libbabeltrace - - libblkid - - libblkid-devel - - libcanberra - - libcanberra-devel - - libcanberra-gtk2 - - libcanberra-gtk3 - - libcap - - libcap-devel - - libcap-ng - - libcom_err - - libcom_err-devel - - libcroco - - libcroco-devel - - libcurl - - libcurl-devel - - libdatrie - - libdatrie-devel - - libdb - - libdb-cxx - - libdb-cxx-devel - - libdb-devel - - libdb-utils - - libdrm - - libdrm-devel - - libdvdnav - - libdvdread - - libedit - - libedit-devel - - libepoxy - - libepoxy-devel - - liberation-fonts-common - - liberation-mono-fonts - - liberation-sans-fonts - - liberation-serif-fonts - - libev - - libevdev - - libevent - - libexif - - libexif-devel - - libfdisk - - libfdisk-devel - - libffi - - libffi-devel - - libgcab1 - - libgcab1-devel - - libgcc - - libgcrypt - - libgcrypt-devel - - libgfortran - - libglvnd - - libglvnd-core-devel - - libglvnd-devel - - libglvnd-egl - - libglvnd-gles - - libglvnd-glx - - libglvnd-opengl - - libgomp - - libgpg-error - - libgpg-error-devel - - libgudev - - libgusb - - libicu - - libicu-devel - - libidn - - libidn-devel - - libidn2 - - libinput - - libinput-devel - - libipt - - libjpeg-turbo - - libjpeg-turbo-devel - - libkadm5 - - libksba - - libmcpp - - libmetalink - - libmodman - - libmount - - libmount-devel - - libmpc - - libmpc-devel - - libmpcdec - - libnghttp2 - - libnice - - libnotify - - libnotify-devel - - libnsl - - libnsl2 - - libnsl2-devel - - libogg - - libogg-devel - - libpcap - - libpciaccess - - libpciaccess-devel - - libpipeline - - libpkgconf - - libpng - - libpng-devel - - libproxy - - libproxy-devel - - libpsl - - libpwquality - - libquadmath - - librsvg2 - - librsvg2-devel - - librsvg2-tools - - libsamplerate - - libsamplerate-devel - - libseccomp - - libseccomp-devel - - libsecret - - libsecret-devel - - libselinux - - libselinux-devel - - libsemanage - - libsepol - - libsepol-devel - - libsigsegv - - libsmartcols - - libsmartcols-devel - - libsndfile - - libsndfile-devel - - libsoup - - libsoup-devel - - libsrtp - - libss - - libss-devel - - libssh - - libstdc++ - - libstdc++-devel - - libstemmer - - libtasn1 - - libtasn1-devel - - libtasn1-tools - - libtdb - - libthai - - libthai-devel - - libtheora - - libtheora-devel - - libtiff - - libtiff-devel - - libtirpc - - libtirpc-devel - - libtool - - libtool-ltdl - - libtool-ltdl-devel - - libunistring - - libusb - - libusbx - - libutempter - - libuuid - - libuuid-devel - - libuv - - libva - - libva-devel - - libva-utils - - libvdpau - - libvdpau-devel - - libvdpau-trace - - libverto - - libverto-devel - - libverto-libev - - libvisual - - libvorbis - - libvorbis-devel - - libvpx - - libvpx-devel - - libwacom - - libwacom-data - - libwayland-client - - libwayland-cursor - - libwayland-egl - - libwayland-server - - libwebp - - libwebp-devel - - libxcb - - libxcb-devel - - libxcrypt - - libxcrypt-devel - - libxkbcommon - - libxkbcommon-devel - - libxkbcommon-x11 - - libxkbcommon-x11-devel - - libxkbfile - - libxml2 - - libxml2-devel - - libxshmfence - - libxshmfence-devel - - libxslt - - libxslt-devel - - libyaml - - libyaml-devel - - libzstd - - llvm - - llvm-devel - - llvm-libs - - llvm6.0-libs - - logrotate - - lua-libs - - lz4-libs - - m4 - - make - - mallard-rng - - man-db - - man2html-core - - mcpp - - mercurial - - mesa-dri-drivers - - mesa-filesystem - - mesa-libEGL - - mesa-libEGL-devel - - mesa-libGL - - mesa-libGL-devel - - mesa-libGLES - - mesa-libGLES-devel - - mesa-libgbm - - mesa-libgbm-devel - - mesa-libglapi - - mesa-libxatracker - - mesa-libxatracker-devel - - mesa-vulkan-devel - - mesa-vulkan-drivers - - meson - - mlocate - - mozjs52 - - mozjs52-devel - - mpfr - - mpfr-devel - - mpg123-devel - - mpg123-libs - - mtdev - - mythes - - mythes-devel - - nasm - - ncompress - - ncurses - - ncurses-base - - ncurses-c++-libs - - ncurses-compat-libs - - ncurses-devel - - ncurses-libs - - nettle - - nettle-devel - - nim-srpm-macros - - ninja-build - - npth - - nspr - - nspr-devel - - nss - - nss-devel - - nss-pkcs11-devel - - nss-softokn - - nss-softokn-devel - - nss-softokn-freebl - - nss-softokn-freebl-devel - - nss-sysinit - - nss-tools - - nss-util - - nss-util-devel - - nss_db - - nss_hesiod - - nss_nis - - numactl-libs - - ocaml-srpm-macros - - ocl-icd - - ocl-icd-devel - - oniguruma - - openal-soft - - openal-soft-devel - - openblas-srpm-macros - - opencl-headers - - openjade - - openjpeg2 - - openldap - - opensp - - openssh - - openssh-clients - - openssl - - openssl-devel - - openssl-libs - - opus - - opus-devel - - orc - - orc-compiler - - orc-devel - - p11-kit - - p11-kit-devel - - p11-kit-trust - - pam - - pam-devel - - pango - - pango-devel - - patch - - pcre - - pcre-cpp - - pcre-devel - - pcre-utf16 - - pcre-utf32 - - pcre2 - - pcre2-devel - - pcre2-utf16 - - pcre2-utf32 - - perf - - perl-Algorithm-Diff - - perl-Archive-Tar - - perl-Archive-Zip - - perl-CPAN - - perl-CPAN-Meta - - perl-CPAN-Meta-Requirements - - perl-CPAN-Meta-YAML - - perl-Carp - - perl-Compress-Bzip2 - - perl-Compress-Raw-Bzip2 - - perl-Compress-Raw-Zlib - - perl-DBD-SQLite - - perl-DBI - - perl-Data-Dumper - - perl-Data-OptList - - perl-Data-Section - - perl-Devel-Size - - perl-Digest - - perl-Digest-MD5 - - perl-Digest-SHA - - perl-Encode - - perl-Encode-devel - - perl-Errno - - perl-Error - - perl-Exporter - - perl-ExtUtils-CBuilder - - perl-ExtUtils-Command - - perl-ExtUtils-Install - - perl-ExtUtils-MM-Utils - - perl-ExtUtils-MakeMaker - - perl-ExtUtils-Manifest - - perl-ExtUtils-ParseXS - - perl-File-HomeDir - - perl-File-Path - - perl-File-Temp - - perl-File-Which - - perl-Filter - - perl-Getopt-Long - - perl-Git - - perl-HTTP-Tiny - - perl-IO - - perl-IO-Compress - - perl-IO-Socket-IP - - perl-IO-Zlib - - perl-IPC-Cmd - - perl-JSON-PP - - perl-Locale-Maketext - - perl-Locale-Maketext-Simple - - perl-MIME-Base64 - - perl-MRO-Compat - - perl-Math-BigInt - - perl-Math-Complex - - perl-Module-Build - - perl-Module-CoreList - - perl-Module-CoreList-tools - - perl-Module-Load - - perl-Module-Load-Conditional - - perl-Module-Metadata - - perl-Net-Ping - - perl-Package-Generator - - perl-Params-Check - - perl-Params-Util - - perl-PathTools - - perl-Perl-OSType - - perl-Pod-Checker - - perl-Pod-Escapes - - perl-Pod-Html - - perl-Pod-Parser - - perl-Pod-Perldoc - - perl-Pod-Simple - - perl-Pod-Usage - - perl-SGMLSpm - - perl-Scalar-List-Utils - - perl-Socket - - perl-Software-License - - perl-Storable - - perl-Sub-Exporter - - perl-Sub-Install - - perl-Term-ANSIColor - - perl-Term-Cap - - perl-TermReadKey - - perl-Test-Harness - - perl-Text-Diff - - perl-Text-Glob - - perl-Text-ParseWords - - perl-Text-Tabs+Wrap - - perl-Text-Template - - perl-Text-Unidecode - - perl-Thread-Queue - - perl-Time-HiRes - - perl-Time-Local - - perl-URI - - perl-Unicode-EastAsianWidth - - perl-Unicode-Normalize - - perl-XML-Parser - - perl-XML-XPath - - perl-constant - - perl-devel - - perl-encoding - - perl-inc-latest - - perl-interpreter - - perl-libintl-perl - - perl-libnet - - perl-libnetcfg - - perl-libs - - perl-local-lib - - perl-macros - - perl-open - - perl-parent - - perl-podlators - - perl-srpm-macros - - perl-threads - - perl-threads-shared - - perl-utils - - perl-version - - pinentry - - pixman - - pixman-devel - - pkgconf - - pkgconf-m4 - - pkgconf-pkg-config - - poppler - - poppler-data - - popt - - popt-devel - - procps-ng - - publicsuffix-list-dafsa - - pulseaudio-libs - - pulseaudio-libs-devel - - pulseaudio-libs-glib2 - - pulseaudio-utils - - pygobject3-devel - - python-rpm-macros - - python-srpm-macros - - python-unversioned-command - - python2 - - python2-cairo - - python2-devel - - python2-gobject - - python2-gobject-base - - python2-libproxy - - python2-libs - - python2-libxml2 - - python2-mako - - python2-markupsafe - - python2-pip - - python2-rpm-macros - - python2-setuptools - - python2-xpyb - - python3 - - python3-cairo - - python3-cairo-devel - - python3-devel - - python3-gobject - - python3-gobject-base - - python3-libs - - python3-libxml2 - - python3-mako - - python3-markupsafe - - python3-pip - - python3-pyparsing - - python3-rpm-generators - - python3-rpm-macros - - python3-setuptools - - python3-six - - python36 - - qrencode-libs - - qt5-srpm-macros - - readline - - readline-devel - - redhat-rpm-config - - rest - - rhash - - rpcgen - - rpcsvc-proto-devel - - rpm - - rpm-libs - - rpm-plugin-selinux - - ruby - - ruby-irb - - ruby-libs - - rubygem-io-console - - rubygem-json - - rubygem-openssl - - rubygem-psych - - rubygem-rake - - rubygem-rdoc - - rubygems - - rubypick - - rust-srpm-macros - - sed - - setup - - sgml-common - - shadow-utils - - shared-mime-info - - slang - - slang-slsh - - sound-theme-freedesktop - - soundtouch - - source-highlight - - speex - - speex-devel - - speexdsp - - speexdsp-devel - - spirv-tools-libs - - sqlite - - sqlite-devel - - sqlite-libs - - strace - - subunit - - subunit-devel - - systemd - - systemd-devel - - systemd-libs - - systemd-pam - - systemtap-sdt-devel - - tar - - tcl - - tcl-devel - - texinfo - - texinfo-tex - - texlive-amsfonts - - texlive-base - - texlive-bibtex - - texlive-cm - - texlive-collection-basic - - texlive-dvipdfmx - - texlive-dvips - - texlive-enctex - - texlive-epsf - - texlive-etex - - texlive-etex-pkg - - texlive-glyphlist - - texlive-graphics-def - - texlive-gsftopk - - texlive-hyph-utf8 - - texlive-hyphen-base - - texlive-ifluatex - - texlive-ifxetex - - texlive-knuth-lib - - texlive-knuth-local - - texlive-kpathsea - - texlive-latex-fonts - - texlive-lib - - texlive-lua-alt-getopt - - texlive-luatex - - texlive-makeindex - - texlive-metafont - - texlive-mflogo - - texlive-mfware - - texlive-pdftex - - texlive-plain - - texlive-tetex - - texlive-tex - - texlive-tex-ini-files - - texlive-texconfig - - texlive-texlive-common-doc - - texlive-texlive-docindex - - texlive-texlive-en - - texlive-texlive-msg-translations - - texlive-texlive-scripts - - texlive-texlive.infra - - texlive-unicode-data - - texlive-updmap-map - - texlive-xdvi - - tk - - turbojpeg - - turbojpeg-devel - - tzdata - - unbound-libs - - unzip - - util-linux - - vala - - vala-compat - - vala-compat-tools - - valgrind - - valgrind-devel - - valgrind-tools-devel - - vim-filesystem - - vim-minimal - - vte-profile - - vte291 - - vte291-devel - - vulkan-headers - - vulkan-loader - - vulkan-loader-devel - - vulkan-validation-layers - - vulkan-validation-layers-devel - - wayland-devel - - wayland-protocols-devel - - webkit2gtk3 - - webkit2gtk3-devel - - webkit2gtk3-jsc - - webkit2gtk3-jsc-devel - - webrtc-audio-processing - - which - - woff2 - - woff2-devel - - words - - xcb-proto - - xcb-util - - xcb-util-cursor - - xcb-util-cursor-devel - - xcb-util-devel - - xcb-util-image - - xcb-util-image-devel - - xcb-util-keysyms - - xcb-util-keysyms-devel - - xcb-util-renderutil - - xcb-util-renderutil-devel - - xcb-util-wm - - xcb-util-wm-devel - - xdg-user-dirs - - xdg-utils - - xkeyboard-config - - xkeyboard-config-devel - - xml-common - - xorg-x11-proto-devel - - xorg-x11-server-utils - - xorg-x11-util-macros - - xorg-x11-xauth - - xorg-x11-xinit - - xorg-x11-xkb-utils - - xorg-x11-xtrans-devel - - xz - - xz-devel - - xz-libs - - xz-lzma-compat - - yasm - - yelp - - yelp-devel - - yelp-libs - - yelp-tools - - yelp-xsl - - yelp-xsl-devel - - zenity - - zip - - zlib - - zlib-devel - - zziplib - sdk-base: - rpms: - - ModemManager-glib - - SDL2 - - SDL2-devel - - SDL2_image - - SDL2_image-devel - - SDL2_mixer - - SDL2_mixer-devel - - SDL2_net - - SDL2_net-devel - - SDL2_ttf - - SDL2_ttf-devel - - acl - - adwaita-cursor-theme - - adwaita-icon-theme - - alsa-lib - - alsa-lib-devel - - annobin - - aspell - - aspell-devel - - at-spi2-atk - - at-spi2-atk-devel - - at-spi2-core - - at-spi2-core-devel - - atk - - atk-devel - - attr - - audit-libs - - autoconf - - autogen-libopts - - automake - - avahi-glib - - avahi-libs - - basesystem - - bash - - bash-completion - - bc - - binutils - - bison - - boost-regex - - brotli - - byacc - - bzip2 - - bzip2-devel - - bzip2-libs - - ca-certificates - - cairo - - cairo-devel - - cairo-gobject - - cairo-gobject-devel - - cairo-tools - - ccache - - cdparanoia-libs - - check - - check-devel - - chkconfig - - chrpath - - clang - - clang-analyzer - - clang-devel - - clang-libs - - clang-tools-extra - - cmake - - cmake-data - - cmake-filesystem - - cmake-rpm-macros - - colord-libs - - compat-readline6 - - coreutils - - coreutils-common - - cpio - - cpp - - cracklib - - cracklib-devel - - crypto-policies - - cryptsetup-libs - - ctags - - cups-devel - - cups-libs - - curl - - cvs - - cvsps - - cyrus-sasl - - cyrus-sasl-devel - - cyrus-sasl-lib - - dbus - - dbus-common - - dbus-daemon - - dbus-devel - - dbus-libs - - dbus-tools - - dbus-x11 - - dconf - - dconf-devel - - dejavu-fonts-common - - dejavu-sans-fonts - - dejavu-sans-mono-fonts - - dejavu-serif-fonts - - desktop-file-utils - - device-mapper - - device-mapper-libs - - diffutils - - docbook-dtds - - docbook-style-dsssl - - docbook-style-xsl - - docbook-utils - - dwz - - e2fsprogs - - e2fsprogs-devel - - e2fsprogs-libs - - efi-srpm-macros - - elfutils - - elfutils-default-yama-scope - - elfutils-devel - - elfutils-libelf - - elfutils-libelf-devel - - elfutils-libs - - elinks - - emacs-filesystem - - eosrei-emojione-fonts - - expat - - expat-devel - - fedora-gpg-keys - - fedora-release - - fedora-repos - - fedora-repos-rawhide - - file - - file-libs - - filesystem - - findutils - - fipscheck - - fipscheck-lib - - flac - - flac-devel - - flac-libs - - flatpak-runtime-config - - flex - - fontconfig - - fontconfig-devel - - fontpackages-filesystem - - fpc-srpm-macros - - freetype - - freetype-devel - - fribidi - - fribidi-devel - - fuse-libs - - gawk - - gc - - gcc - - gcc-c++ - - gdb - - gdb-headless - - gdbm - - gdbm-devel - - gdbm-libs - - gdk-pixbuf2 - - gdk-pixbuf2-devel - - gdk-pixbuf2-modules - - geoclue2 - - geoclue2-devel - - geoclue2-libs - - gettext - - gettext-common-devel - - gettext-devel - - gettext-libs - - ghc-srpm-macros - - giflib - - giflib-devel - - git - - git-clang-format - - git-core - - git-core-doc - - git-cvs - - glib-networking - - glib2 - - glib2-devel - - glibc - - glibc-all-langpacks - - glibc-common - - glibc-devel - - glibc-headers - - glibc-minimal-langpack - - gmp - - gmp-c++ - - gmp-devel - - gnat-srpm-macros - - gnu-free-fonts-common - - gnu-free-mono-fonts - - gnu-free-sans-fonts - - gnu-free-serif-fonts - - gnupg - - gnupg2 - - gnupg2-smime - - gnutls - - gnutls-c++ - - gnutls-dane - - gnutls-devel - - gnutls-utils - - go-srpm-macros - - gobject-introspection - - gobject-introspection-devel - - google-crosextra-caladea-fonts - - google-crosextra-carlito-fonts - - gperf - - gpgme - - gpgme-devel - - gpm-libs - - graphite2 - - graphite2-devel - - grep - - groff - - groff-base - - groff-perl - - gsettings-desktop-schemas - - gsettings-desktop-schemas-devel - - gsm - - gssdp - - gstreamer1 - - gstreamer1-devel - - gstreamer1-plugins-bad-free - - gstreamer1-plugins-bad-free-devel - - gstreamer1-plugins-base - - gstreamer1-plugins-base-devel - - gtk-doc - - gtk-update-icon-cache - - gtk2 - - gtk3 - - gtk3-devel - - guile - - gupnp - - gupnp-igd - - gzip - - harfbuzz - - harfbuzz-devel - - harfbuzz-icu - - hicolor-icon-theme - - hunspell - - hunspell-devel - - hunspell-en-US - - hwdata - - hyphen - - hyphen-devel - - ibus - - ibus-devel - - ibus-gtk2 - - ibus-gtk3 - - ibus-libs - - ibus-setup - - icu - - info - - intltool - - iptables-libs - - isl - - iso-codes - - iso-codes-devel - - itstool - - jasper-libs - - jbigkit-libs - - jq - - jq-devel - - json-c - - json-c-devel - - json-glib - - json-glib-devel - - jsoncpp - - kernel-headers - - keyutils-libs - - keyutils-libs-devel - - kmod-libs - - krb5-devel - - krb5-libs - - krb5-server - - krb5-workstation - - lcms2 - - lcms2-devel - - lcms2-utils - - less - - libICE - - libICE-devel - - libSM - - libSM-devel - - libX11 - - libX11-common - - libX11-devel - - libX11-xcb - - libXScrnSaver - - libXScrnSaver-devel - - libXau - - libXau-devel - - libXaw - - libXcomposite - - libXcomposite-devel - - libXcursor - - libXcursor-devel - - libXdamage - - libXdamage-devel - - libXdmcp - - libXdmcp-devel - - libXext - - libXext-devel - - libXfixes - - libXfixes-devel - - libXft - - libXft-devel - - libXi - - libXi-devel - - libXinerama - - libXinerama-devel - - libXmu - - libXpm - - libXpm-devel - - libXrandr - - libXrandr-devel - - libXrender - - libXrender-devel - - libXt - - libXt-devel - - libXtst - - libXtst-devel - - libXv - - libXv-devel - - libXxf86misc - - libXxf86vm - - libXxf86vm-devel - - libacl - - libacl-devel - - libappstream-glib - - libappstream-glib-builder - - libappstream-glib-builder-devel - - libappstream-glib-devel - - libarchive - - libarchive-devel - - libargon2 - - libassuan - - libassuan-devel - - libasyncns - - libatomic - - libatomic_ops - - libatomic_ops-devel - - libattr - - libattr-devel - - libbabeltrace - - libblkid - - libblkid-devel - - libcap - - libcap-devel - - libcap-ng - - libcom_err - - libcom_err-devel - - libcroco - - libcroco-devel - - libcurl - - libcurl-devel - - libdatrie - - libdatrie-devel - - libdb - - libdb-cxx - - libdb-cxx-devel - - libdb-devel - - libdb-utils - - libdrm - - libdrm-devel - - libdvdnav - - libdvdread - - libedit - - libedit-devel - - libepoxy - - libepoxy-devel - - liberation-fonts-common - - liberation-mono-fonts - - liberation-sans-fonts - - liberation-serif-fonts - - libev - - libevent - - libexif - - libexif-devel - - libfdisk - - libfdisk-devel - - libffi - - libffi-devel - - libgcab1 - - libgcab1-devel - - libgcc - - libgcrypt - - libgcrypt-devel - - libgfortran - - libglvnd - - libglvnd-core-devel - - libglvnd-devel - - libglvnd-egl - - libglvnd-gles - - libglvnd-glx - - libglvnd-opengl - - libgomp - - libgpg-error - - libgpg-error-devel - - libgudev - - libgusb - - libicu - - libicu-devel - - libidn - - libidn-devel - - libidn2 - - libipt - - libjpeg-turbo - - libjpeg-turbo-devel - - libkadm5 - - libksba - - libmcpp - - libmetalink - - libmodman - - libmount - - libmount-devel - - libmpc - - libmpc-devel - - libmpcdec - - libnghttp2 - - libnice - - libnotify - - libnsl - - libnsl2 - - libnsl2-devel - - libogg - - libogg-devel - - libpcap - - libpciaccess - - libpciaccess-devel - - libpipeline - - libpkgconf - - libpng - - libpng-devel - - libproxy - - libproxy-devel - - libpsl - - libpwquality - - libquadmath - - librsvg2 - - librsvg2-devel - - librsvg2-tools - - libsamplerate - - libsamplerate-devel - - libseccomp - - libseccomp-devel - - libsecret - - libselinux - - libselinux-devel - - libsemanage - - libsepol - - libsepol-devel - - libsigsegv - - libsmartcols - - libsmartcols-devel - - libsndfile - - libsndfile-devel - - libsoup - - libsoup-devel - - libsrtp - - libss - - libss-devel - - libssh - - libstdc++ - - libstdc++-devel - - libstemmer - - libtasn1 - - libtasn1-devel - - libtasn1-tools - - libthai - - libthai-devel - - libtheora - - libtheora-devel - - libtiff - - libtiff-devel - - libtirpc - - libtirpc-devel - - libtool - - libtool-ltdl - - libtool-ltdl-devel - - libunistring - - libusb - - libusbx - - libutempter - - libuuid - - libuuid-devel - - libuv - - libva - - libva-devel - - libva-utils - - libvdpau - - libvdpau-devel - - libvdpau-trace - - libverto - - libverto-devel - - libverto-libev - - libvisual - - libvorbis - - libvorbis-devel - - libvpx - - libvpx-devel - - libwayland-client - - libwayland-cursor - - libwayland-egl - - libwayland-server - - libwebp - - libwebp-devel - - libxcb - - libxcb-devel - - libxcrypt - - libxcrypt-devel - - libxkbcommon - - libxkbcommon-devel - - libxkbcommon-x11 - - libxkbcommon-x11-devel - - libxkbfile - - libxml2 - - libxml2-devel - - libxshmfence - - libxshmfence-devel - - libxslt - - libxslt-devel - - libyaml - - libyaml-devel - - libzstd - - llvm - - llvm-devel - - llvm-libs - - llvm6.0-libs - - logrotate - - lua-libs - - lz4-libs - - m4 - - make - - man-db - - man2html-core - - mcpp - - mercurial - - mesa-filesystem - - mesa-libEGL - - mesa-libEGL-devel - - mesa-libGL - - mesa-libGL-devel - - mesa-libGLES - - mesa-libGLES-devel - - mesa-libgbm - - mesa-libgbm-devel - - mesa-libglapi - - mesa-libxatracker - - mesa-libxatracker-devel - - mesa-vulkan-devel - - mesa-vulkan-drivers - - meson - - mlocate - - mpfr - - mpfr-devel - - mpg123-devel - - mpg123-libs - - mythes - - mythes-devel - - nasm - - ncompress - - ncurses - - ncurses-base - - ncurses-c++-libs - - ncurses-compat-libs - - ncurses-devel - - ncurses-libs - - nettle - - nettle-devel - - nim-srpm-macros - - ninja-build - - npth - - nspr - - nspr-devel - - nss - - nss-devel - - nss-pkcs11-devel - - nss-softokn - - nss-softokn-devel - - nss-softokn-freebl - - nss-softokn-freebl-devel - - nss-sysinit - - nss-tools - - nss-util - - nss-util-devel - - nss_db - - nss_hesiod - - nss_nis - - numactl-libs - - ocaml-srpm-macros - - ocl-icd - - ocl-icd-devel - - oniguruma - - openal-soft - - openal-soft-devel - - openblas-srpm-macros - - opencl-headers - - openjade - - openjpeg2 - - openldap - - opensp - - openssh - - openssh-clients - - openssl - - openssl-devel - - openssl-libs - - opus - - orc - - orc-compiler - - orc-devel - - p11-kit - - p11-kit-devel - - p11-kit-trust - - pam - - pam-devel - - pango - - pango-devel - - patch - - pcre - - pcre-cpp - - pcre-devel - - pcre-utf16 - - pcre-utf32 - - pcre2 - - pcre2-devel - - pcre2-utf16 - - pcre2-utf32 - - perf - - perl-Algorithm-Diff - - perl-Archive-Tar - - perl-Archive-Zip - - perl-CPAN - - perl-CPAN-Meta - - perl-CPAN-Meta-Requirements - - perl-CPAN-Meta-YAML - - perl-Carp - - perl-Compress-Bzip2 - - perl-Compress-Raw-Bzip2 - - perl-Compress-Raw-Zlib - - perl-DBD-SQLite - - perl-DBI - - perl-Data-Dumper - - perl-Data-OptList - - perl-Data-Section - - perl-Devel-Size - - perl-Digest - - perl-Digest-MD5 - - perl-Digest-SHA - - perl-Encode - - perl-Encode-devel - - perl-Errno - - perl-Error - - perl-Exporter - - perl-ExtUtils-CBuilder - - perl-ExtUtils-Command - - perl-ExtUtils-Install - - perl-ExtUtils-MM-Utils - - perl-ExtUtils-MakeMaker - - perl-ExtUtils-Manifest - - perl-ExtUtils-ParseXS - - perl-File-HomeDir - - perl-File-Path - - perl-File-Temp - - perl-File-Which - - perl-Filter - - perl-Getopt-Long - - perl-Git - - perl-HTTP-Tiny - - perl-IO - - perl-IO-Compress - - perl-IO-Socket-IP - - perl-IO-Zlib - - perl-IPC-Cmd - - perl-JSON-PP - - perl-Locale-Maketext - - perl-Locale-Maketext-Simple - - perl-MIME-Base64 - - perl-MRO-Compat - - perl-Math-BigInt - - perl-Math-Complex - - perl-Module-Build - - perl-Module-CoreList - - perl-Module-CoreList-tools - - perl-Module-Load - - perl-Module-Load-Conditional - - perl-Module-Metadata - - perl-Net-Ping - - perl-Package-Generator - - perl-Params-Check - - perl-Params-Util - - perl-PathTools - - perl-Perl-OSType - - perl-Pod-Checker - - perl-Pod-Escapes - - perl-Pod-Html - - perl-Pod-Parser - - perl-Pod-Perldoc - - perl-Pod-Simple - - perl-Pod-Usage - - perl-SGMLSpm - - perl-Scalar-List-Utils - - perl-Socket - - perl-Software-License - - perl-Storable - - perl-Sub-Exporter - - perl-Sub-Install - - perl-Term-ANSIColor - - perl-Term-Cap - - perl-TermReadKey - - perl-Test-Harness - - perl-Text-Diff - - perl-Text-Glob - - perl-Text-ParseWords - - perl-Text-Tabs+Wrap - - perl-Text-Template - - perl-Text-Unidecode - - perl-Thread-Queue - - perl-Time-HiRes - - perl-Time-Local - - perl-URI - - perl-Unicode-EastAsianWidth - - perl-Unicode-Normalize - - perl-XML-Parser - - perl-XML-XPath - - perl-constant - - perl-devel - - perl-encoding - - perl-inc-latest - - perl-interpreter - - perl-libintl-perl - - perl-libnet - - perl-libnetcfg - - perl-libs - - perl-local-lib - - perl-macros - - perl-open - - perl-parent - - perl-podlators - - perl-srpm-macros - - perl-threads - - perl-threads-shared - - perl-utils - - perl-version - - pinentry - - pixman - - pixman-devel - - pkgconf - - pkgconf-m4 - - pkgconf-pkg-config - - poppler - - poppler-data - - popt - - popt-devel - - procps-ng - - publicsuffix-list-dafsa - - pulseaudio-libs - - pulseaudio-libs-devel - - pulseaudio-libs-glib2 - - pulseaudio-utils - - python-rpm-macros - - python-srpm-macros - - python-unversioned-command - - python2 - - python2-devel - - python2-libproxy - - python2-libs - - python2-libxml2 - - python2-mako - - python2-markupsafe - - python2-pip - - python2-rpm-macros - - python2-setuptools - - python3 - - python3-cairo - - python3-devel - - python3-gobject - - python3-gobject-base - - python3-libs - - python3-libxml2 - - python3-mako - - python3-markupsafe - - python3-pip - - python3-pyparsing - - python3-rpm-generators - - python3-rpm-macros - - python3-setuptools - - python3-six - - python36 - - qrencode-libs - - qt5-srpm-macros - - readline - - readline-devel - - redhat-rpm-config - - rest - - rhash - - rpcgen - - rpcsvc-proto-devel - - rpm - - rpm-libs - - rpm-plugin-selinux - - ruby - - ruby-irb - - ruby-libs - - rubygem-io-console - - rubygem-json - - rubygem-openssl - - rubygem-psych - - rubygem-rake - - rubygem-rdoc - - rubygems - - rubypick - - rust-srpm-macros - - sed - - setup - - sgml-common - - shadow-utils - - shared-mime-info - - slang - - slang-slsh - - soundtouch - - source-highlight - - speex - - speex-devel - - speexdsp - - speexdsp-devel - - spirv-tools-libs - - sqlite - - sqlite-devel - - sqlite-libs - - strace - - subunit - - subunit-devel - - systemd - - systemd-libs - - systemd-pam - - systemtap-sdt-devel - - tar - - tcl - - tcl-devel - - texinfo - - texinfo-tex - - texlive-amsfonts - - texlive-base - - texlive-bibtex - - texlive-cm - - texlive-collection-basic - - texlive-dvipdfmx - - texlive-dvips - - texlive-enctex - - texlive-epsf - - texlive-etex - - texlive-etex-pkg - - texlive-glyphlist - - texlive-graphics-def - - texlive-gsftopk - - texlive-hyph-utf8 - - texlive-hyphen-base - - texlive-ifluatex - - texlive-ifxetex - - texlive-knuth-lib - - texlive-knuth-local - - texlive-kpathsea - - texlive-latex-fonts - - texlive-lib - - texlive-lua-alt-getopt - - texlive-luatex - - texlive-makeindex - - texlive-metafont - - texlive-mflogo - - texlive-mfware - - texlive-pdftex - - texlive-plain - - texlive-tetex - - texlive-tex - - texlive-tex-ini-files - - texlive-texconfig - - texlive-texlive-common-doc - - texlive-texlive-docindex - - texlive-texlive-en - - texlive-texlive-msg-translations - - texlive-texlive-scripts - - texlive-texlive.infra - - texlive-unicode-data - - texlive-updmap-map - - texlive-xdvi - - tk - - turbojpeg - - turbojpeg-devel - - tzdata - - unbound-libs - - unzip - - util-linux - - vala - - valgrind - - valgrind-devel - - valgrind-tools-devel - - vim-filesystem - - vim-minimal - - vulkan-headers - - vulkan-loader - - vulkan-loader-devel - - vulkan-validation-layers - - vulkan-validation-layers-devel - - wayland-devel - - wayland-protocols-devel - - webrtc-audio-processing - - which - - words - - xcb-proto - - xcb-util - - xcb-util-cursor - - xcb-util-cursor-devel - - xcb-util-devel - - xcb-util-image - - xcb-util-image-devel - - xcb-util-keysyms - - xcb-util-keysyms-devel - - xcb-util-renderutil - - xcb-util-renderutil-devel - - xcb-util-wm - - xcb-util-wm-devel - - xdg-user-dirs - - xdg-utils - - xkeyboard-config - - xkeyboard-config-devel - - xml-common - - xorg-x11-proto-devel - - xorg-x11-server-utils - - xorg-x11-util-macros - - xorg-x11-xauth - - xorg-x11-xinit - - xorg-x11-xkb-utils - - xorg-x11-xtrans-devel - - xz - - xz-devel - - xz-libs - - xz-lzma-compat - - yasm - - zenity - - zip - - zlib - - zlib-devel - - zziplib - api: - rpms: - - flatpak-rpm-macros - - flatpak-runtime-config - buildopts: - rpms: {} - components: - rpms: - flatpak-rpm-macros: - rationale: Set up build root for flatpak RPMS - repository: git+https://src.fedoraproject.org/rpms/flatpak-rpm-macros - cache: https://src.fedoraproject.org/repo/pkgs/flatpak-rpm-macros - ref: master - flatpak-runtime-config: - rationale: Runtime configuration files - repository: git+https://src.fedoraproject.org/rpms/flatpak-runtime-config - cache: https://src.fedoraproject.org/repo/pkgs/flatpak-runtime-config - ref: master - artifacts: - rpms: - - flatpak-rpm-macros-0:27-6.module_2021+15e5e3e7.noarch - - flatpak-runtime-config-0:27-7.module_2021+15e5e3e7.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: eog - stream: master - version: 20180821163756 - context: 775baa8e - arch: x86_64 - summary: Eye of GNOME Application Module - description: > - The Eye of GNOME image viewer (eog) is the official image viewer for the GNOME - desktop. It can view single image files in a variety of formats, as well as large - image collections. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/eog.git?#375e2f73492aba2a9c8c892b5152d588e553c19c - commit: 375e2f73492aba2a9c8c892b5152d588e553c19c - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - flatpak-runtime: - ref: 2b45d61997c37c41f4cc127842f01d30024db74d - stream: f29 - context: 6c81f848 - version: 20180820180704 - filtered_rpms: [] - rpms: - eog: - ref: 96166844a72788cd7e6fc278aeedc1e3da5ec816 - libpeas: - ref: 8e162f875ac7e00dd90f3d791d40484f91012415 - gnome-desktop3: - ref: 981addd1ddeee303df8518e479439cd9e4478c66 - bubblewrap: - ref: aaaaaae81d69644c0502125b338a4c86ff2e0a0e - exempi: - ref: ab39221162cac7c025060a14cac712c73b38b431 - dependencies: - - buildrequires: - flatpak-runtime: [f29] - requires: - flatpak-runtime: [f29] - profiles: - default: - rpms: - - eog - buildopts: - rpms: {} - components: - rpms: - bubblewrap: - rationale: Runtime dependency. - repository: git+https://src.fedoraproject.org/rpms/bubblewrap - cache: https://src.fedoraproject.org/repo/pkgs/bubblewrap - ref: f29 - eog: - rationale: Application package - repository: git+https://src.fedoraproject.org/rpms/eog - cache: https://src.fedoraproject.org/repo/pkgs/eog - ref: f29 - buildorder: 1 - exempi: - rationale: Runtime dependency. - repository: git+https://src.fedoraproject.org/rpms/exempi - cache: https://src.fedoraproject.org/repo/pkgs/exempi - ref: f29 - gnome-desktop3: - rationale: Runtime dependency. - repository: git+https://src.fedoraproject.org/rpms/gnome-desktop3 - cache: https://src.fedoraproject.org/repo/pkgs/gnome-desktop3 - ref: f29 - libpeas: - rationale: Runtime dependency. - repository: git+https://src.fedoraproject.org/rpms/libpeas - cache: https://src.fedoraproject.org/repo/pkgs/libpeas - ref: f29 - artifacts: - rpms: - - bubblewrap-0:0.3.0-2.module_2123+73a9ef6f.x86_64 - - eog-0:3.28.3-1.module_2123+73a9ef6f.x86_64 - - eog-devel-0:3.28.3-1.module_2123+73a9ef6f.x86_64 - - eog-tests-0:3.28.3-1.module_2123+73a9ef6f.x86_64 - - exempi-0:2.4.5-3.module_2123+73a9ef6f.x86_64 - - exempi-devel-0:2.4.5-3.module_2123+73a9ef6f.x86_64 - - gnome-desktop3-0:3.29.90.1-1.module_2123+73a9ef6f.x86_64 - - gnome-desktop3-devel-0:3.29.90.1-1.module_2123+73a9ef6f.x86_64 - - gnome-desktop3-tests-0:3.29.90.1-1.module_2123+73a9ef6f.x86_64 - - libpeas-0:1.22.0-9.module_2123+73a9ef6f.x86_64 - - libpeas-devel-0:1.22.0-9.module_2123+73a9ef6f.x86_64 - - libpeas-gtk-0:1.22.0-9.module_2123+73a9ef6f.x86_64 - - libpeas-loader-python3-0:1.22.0-9.module_2123+73a9ef6f.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: dwm - stream: latest - version: 20180814184656 - context: 6c81f848 - arch: x86_64 - summary: Dynamic window manager for X - description: >- - dwm is a dynamic window manager for X. It manages windows in tiled, monocle, - and floating layouts. All of the layouts can be applied dynamically, optimizing - the environment for the application in use and the task performed. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/dwm.git?#bde94bfe3c38c6c064c8dd484fe2e638768fae7b - commit: bde94bfe3c38c6c064c8dd484fe2e638768fae7b - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - dwm: - ref: b85c993bf46a22fcdfa017f2c16e135bc578c3be - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://suckless.org/ - documentation: https://dwm.suckless.org/ - profiles: - default: - description: The minimal, distribution-compiled dwm binary. - rpms: - - dwm - user: - description: Includes distrribution-compiled dwm as well as a helper script - to apply user patches and configuration, dwm-user. - rpms: - - dwm - - dwm-user - buildopts: - rpms: {} - components: - rpms: - dwm: - rationale: The main component of this module. - repository: git://pkgs.fedoraproject.org/rpms/dwm - cache: http://pkgs.fedoraproject.org/repo/pkgs/dwm - ref: latest - artifacts: - rpms: - - dwm-0:6.1-1.20180602gitb69c870.module_2012+7328f38d.x86_64 - - dwm-user-0:6.1-1.20180602gitb69c870.module_2012+7328f38d.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: dwm - stream: 6.1 - version: 20180813122714 - context: 6c81f848 - arch: x86_64 - summary: Dynamic window manager for X - description: >- - dwm is a dynamic window manager for X. It manages windows in tiled, monocle, - and floating layouts. All of the layouts can be applied dynamically, optimizing - the environment for the application in use and the task performed. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/dwm.git?#8f0dc77f8e89fe04a44c3bb3a77dec21d3c4a9dd - commit: 8f0dc77f8e89fe04a44c3bb3a77dec21d3c4a9dd - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - dwm: - ref: 62a7aa6320bb31e6140ddae9eeeb7e98963d31a3 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://suckless.org/ - documentation: https://dwm.suckless.org/ - profiles: - default: - description: The minimal, distribution-compiled dwm binary. - rpms: - - dwm - user: - description: Includes distrribution-compiled dwm as well as a helper script - to apply user patches and configuration, dwm-user. - rpms: - - dwm - - dwm-user - api: - rpms: - - dwm - - dwm-user - buildopts: - rpms: {} - components: - rpms: - dwm: - rationale: The main component of this module. - repository: git://pkgs.fedoraproject.org/rpms/dwm - cache: http://pkgs.fedoraproject.org/repo/pkgs/dwm - ref: 6.1 - artifacts: - rpms: - - dwm-0:6.1-8.module_1995+c3e93812.x86_64 - - dwm-user-0:6.1-8.module_1995+c3e93812.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: dwm - stream: 6.0 - version: 20180813144159 - context: 6c81f848 - arch: x86_64 - summary: Dynamic window manager for X - description: >- - dwm is a dynamic window manager for X. It manages windows in tiled, monocle, - and floating layouts. All of the layouts can be applied dynamically, optimizing - the environment for the application in use and the task performed. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/dwm.git?#9b78dc232c321e9e8c93bd55f7e95dc113459a39 - commit: 9b78dc232c321e9e8c93bd55f7e95dc113459a39 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - dwm: - ref: 43decc0e45e7fe8286356b3a51f64e05f13f3823 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://suckless.org/ - documentation: https://dwm.suckless.org/ - profiles: - default: - description: The minimal, distribution-compiled dwm binary. - rpms: - - dwm - user: - description: Includes distrribution-compiled dwm as well as a helper script - to apply user patches and configuration, dwm-user. - rpms: - - dwm - - dwm-user - api: - rpms: - - dwm - - dwm-user - buildopts: - rpms: {} - components: - rpms: - dwm: - rationale: The main component of this module. - repository: git://pkgs.fedoraproject.org/rpms/dwm - cache: http://pkgs.fedoraproject.org/repo/pkgs/dwm - ref: 6.0 - artifacts: - rpms: - - dwm-0:6.0-1.module_1997+c375c79c.x86_64 - - dwm-user-0:6.0-1.module_1997+c375c79c.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: docker - stream: 2017.0 - version: 20180816194539 - context: 3ff668f0 - arch: x86_64 - summary: Module for docker runtime and docker-distribution - description: >- - Docker is an open-source engine that automates the deployment of any application - as a lightweight, portable, self-sufficient container that will run virtually - anywhere. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/docker.git?#3dd5060deeb1517577c78b0259f94530fc2aae15 - commit: 3dd5060deeb1517577c78b0259f94530fc2aae15 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - golang: - ref: 92882e9696b779110fd27aa11ddbc88f30eb82a2 - stream: 1.10 - context: 6c81f848 - version: 20180816140129 - filtered_rpms: [] - golang-ecosystem: - ref: 384b17a75c5c9be71c913651126d6899e42e8d84 - stream: 2017.0 - context: cbfb2833 - version: 20180816154241 - filtered_rpms: [] - rpms: - docker: - ref: 7c17c91d74be490fe27a5a8c0a7e7ed4307a735d - docker-distribution: - ref: 215123409e61eecb1b5d6e4fb5b4b63196674b2e - dependencies: - - buildrequires: - platform: [f29] - requires: - container-tools: [2017.0] - platform: [f29] - references: - community: htts://github.com/projectatomic/docker - documentation: https://github.com/projectatomic/docker - tracker: https://github.com/projectatomic/docker - profiles: - default: - rpms: - - docker - - docker-distribution - api: - rpms: - - docker - - docker-common - - docker-distribution - - docker-fish-completion - - docker-logrotate - - docker-lvm-plugin - - docker-novolume-plugin - - docker-rhel-push-plugin - - docker-vim - - docker-zsh-completion - buildopts: - rpms: {} - components: - rpms: - docker: - rationale: Primary component of this module. - repository: git://pkgs.fedoraproject.org/rpms/docker - cache: http://pkgs.fedoraproject.org/repo/pkgs/docker - ref: f28 - docker-distribution: - rationale: Primary component of this module. - repository: git://pkgs.fedoraproject.org/rpms/docker-distribution - cache: http://pkgs.fedoraproject.org/repo/pkgs/docker-distribution - ref: f28 - artifacts: - rpms: - - docker-2:1.13.1-61.git9cb56fd.module_2109+7c83ead1.x86_64 - - docker-common-2:1.13.1-61.git9cb56fd.module_2109+7c83ead1.x86_64 - - docker-devel-2:1.13.1-61.git9cb56fd.module_2109+7c83ead1.noarch - - docker-distribution-0:2.6.2-7.git48294d9.module_1641+02d06da9.x86_64 - - docker-fish-completion-2:1.13.1-61.git9cb56fd.module_2109+7c83ead1.x86_64 - - docker-logrotate-2:1.13.1-61.git9cb56fd.module_2109+7c83ead1.x86_64 - - docker-lvm-plugin-2:1.13.1-61.git9cb56fd.module_2109+7c83ead1.x86_64 - - docker-novolume-plugin-2:1.13.1-61.git9cb56fd.module_2109+7c83ead1.x86_64 - - docker-rhel-push-plugin-2:1.13.1-61.git9cb56fd.module_2109+7c83ead1.x86_64 - - docker-unit-test-2:1.13.1-61.git9cb56fd.module_2109+7c83ead1.x86_64 - - docker-vim-2:1.13.1-61.git9cb56fd.module_2109+7c83ead1.x86_64 - - docker-zsh-completion-2:1.13.1-61.git9cb56fd.module_2109+7c83ead1.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: django - stream: 1.6 - version: 20180828135711 - context: 6c81f848 - arch: x86_64 - summary: A high-level Python Web framework - description: >- - Django is a high-level Python Web framework that encourages rapid development - and a clean, pragmatic design. It focuses on automating as much as possible and - adhering to the DRY (Don't Repeat Yourself) principle. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/django.git?#da53d66d3db1aa5f6afd75887b00fa26849bcc0a - commit: da53d66d3db1aa5f6afd75887b00fa26849bcc0a - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - python-django: - ref: 9e50c9cc5cc0bd23e92ee58b2b2ffa14effad0a0 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://www.djangoproject.com - documentation: https://docs.djangoproject.com - tracker: https://code.djangoproject.com/query - profiles: - default: - rpms: - - python2-django - python2_development: - rpms: - - python2-django - api: - rpms: - - python2-django - buildopts: - rpms: {} - components: - rpms: - python-django: - rationale: The Django python web framework - repository: git+https://src.fedoraproject.org/rpms/python-django - cache: https://src.fedoraproject.org/repo/pkgs/python-django - ref: 1.6 - artifacts: - rpms: - - python-django-bash-completion-0:1.6.11.7-3.module_2144+ad479803.noarch - - python2-django-0:1.6.11.7-3.module_2144+ad479803.noarch -... ---- -document: modulemd -version: 2 -data: - name: cri-o - stream: 2018.0 - version: 20180529183952 - context: 3ff668f0 - arch: x86_64 - summary: Kubernetes Container Runtime Interface for OCI-based containers - description: >- - CRI-O is the Kubernetes Container Runtime Interface for OCI-based containers. - license: - module: - - ASL 2.0 - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/cri-o.git?#8c90882569bc8a63408be7b634bc2c094533e3a3 - commit: 8c90882569bc8a63408be7b634bc2c094533e3a3 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 4 - filtered_rpms: [] - golang: - ref: d6ad30745aef89e89b266908b713ea92fe73a834 - stream: 1.10 - context: 6c81f848 - version: 20180529132243 - filtered_rpms: [] - golang-ecosystem: - ref: 698fdf86122ea5f47cc89793a05ce841e0e0023b - stream: 2017.0 - context: 05251d78 - version: 20180409165640 - filtered_rpms: [] - rpms: - cri-o: - ref: 4746e937b245100643f2efcbe90ef154a717c9e6 - cri-tools: - ref: a5b6369696fd69fcb7242837428dd2f836cbc2df - dependencies: - - buildrequires: - platform: [f29] - requires: - container-tools: [2017.0] - platform: [f29] - references: - community: https://docs.pagure.org/modularity/ - documentation: https://github.com/modularity-modules/docker - tracker: https://github.com/modularity-modules/cri-o - profiles: - default: - rpms: - - cri-o - - cri-tools - api: - rpms: - - conmon - - cri-o - - cri-tools - buildopts: - rpms: {} - components: - rpms: - cri-o: - rationale: Primary component of this module. - repository: git://pkgs.fedoraproject.org/rpms/cri-o - cache: http://pkgs.fedoraproject.org/repo/pkgs/cri-o - ref: f28 - cri-tools: - rationale: Primary component of this module. - repository: git://pkgs.fedoraproject.org/rpms/cri-tools - cache: http://pkgs.fedoraproject.org/repo/pkgs/cri-tools - ref: f28 - artifacts: - rpms: - - conmon-2:1.10.1-1.git728df92.module_1818+7c6ae394.x86_64 - - cri-o-2:1.10.1-1.git728df92.module_1818+7c6ae394.x86_64 - - cri-o-integration-tests-2:1.10.1-1.git728df92.module_1818+7c6ae394.x86_64 - - cri-tools-0:1.0.0-5.gitf6ed14e.module_1818+7c6ae394.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: cri-o - stream: 2017.0 - version: 20180816135947 - context: 3ff668f0 - arch: x86_64 - summary: Kubernetes Container Runtime Interface for OCI-based containers - description: >- - CRI-O is the Kubernetes Container Runtime Interface for OCI-based containers. - license: - module: - - ASL 2.0 - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/cri-o.git?#ea55eba4c063a7a5dc36991edbf010e2b8df3e49 - commit: ea55eba4c063a7a5dc36991edbf010e2b8df3e49 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - golang: - ref: d6ad30745aef89e89b266908b713ea92fe73a834 - stream: 1.10 - context: 6c81f848 - version: 20180529132243 - filtered_rpms: [] - golang-ecosystem: - ref: 4188f37999c72f87bab2b59dab2bc14fa31bbee2 - stream: 2017.0 - context: cbfb2833 - version: 20180724154421 - filtered_rpms: [] - rpms: - cri-o: - ref: 5650cabcd0105a7c42d1a396af36f674be82a812 - dependencies: - - buildrequires: - platform: [f29] - requires: - container-tools: [2017.0] - platform: [f29] - references: - community: https://docs.pagure.org/modularity/ - documentation: https://github.com/modularity-modules/docker - tracker: https://github.com/modularity-modules/cri-o - profiles: - default: - rpms: - - cri-o - api: - rpms: - - conmon - - cri-o - buildopts: - rpms: {} - components: - rpms: - cri-o: - rationale: Primary component of this module. - repository: git://pkgs.fedoraproject.org/rpms/cri-o - cache: http://pkgs.fedoraproject.org/repo/pkgs/cri-o - ref: f28 - artifacts: - rpms: - - conmon-2:1.11.1-1.git1759204.module_2042+335cf4b5.x86_64 - - cri-o-2:1.11.1-1.git1759204.module_2042+335cf4b5.x86_64 - - cri-o-integration-tests-2:1.11.1-1.git1759204.module_2042+335cf4b5.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: cri-o - stream: 1.11 - version: 20180827233205 - context: 6c81f848 - arch: x86_64 - summary: Kubernetes Container Runtime Interface for OCI-based containers - description: >- - CRI-O is the Kubernetes Container Runtime Interface for OCI-based containers. - license: - module: - - ASL 2.0 - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/cri-o.git?#17501669e29cfdcb41346f2fe31e2c4196a408e8 - commit: 17501669e29cfdcb41346f2fe31e2c4196a408e8 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - cri-o: - ref: c759c453e3c9c3d33fa9bb740ab15d49a3ee987e - cri-tools: - ref: 4285d2f99d8a75678bf185da32ae19a44a3c4f08 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://docs.pagure.org/modularity/ - documentation: https://github.com/modularity-modules/docker - tracker: https://github.com/modularity-modules/cri-o - profiles: - default: - rpms: - - cri-o - - cri-tools - api: - rpms: - - conmon - - cri-o - - cri-tools - buildopts: - rpms: {} - components: - rpms: - cri-o: - rationale: Primary component of this module. - repository: git+https://src.fedoraproject.org/rpms/cri-o - cache: https://src.fedoraproject.org/repo/pkgs/cri-o - ref: 1.11 - cri-tools: - rationale: Primary component of this module. - repository: git+https://src.fedoraproject.org/rpms/cri-tools - cache: https://src.fedoraproject.org/repo/pkgs/cri-tools - ref: 1.11 - artifacts: - rpms: - - conmon-2:1.11.2-2.git3eac3b2.module_2141+e7e01fef.x86_64 - - cri-o-2:1.11.2-2.git3eac3b2.module_2141+e7e01fef.x86_64 - - cri-tools-0:1.11.1-1.git404b126.module_2138+be1ea703.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: container-tools - stream: 2018.0 - version: 20180816194520 - context: cb85db27 - arch: x86_64 - summary: Common tools and dependencies for container runtimes - description: >- - Contains SELinux policies, binaries and other dependencies for use with container - runtimes - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/container-tools.git?#31b761077ffd9f584efa534c16a3aed454aef977 - commit: 31b761077ffd9f584efa534c16a3aed454aef977 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - golang: - ref: 92882e9696b779110fd27aa11ddbc88f30eb82a2 - stream: 1.10 - context: 6c81f848 - version: 20180816140129 - filtered_rpms: [] - golang-ecosystem: - ref: 1654fad1d9abf46a7d4f7845ea9e847b762f08a5 - stream: 2018.0 - context: cbfb2833 - version: 20180816154327 - filtered_rpms: [] - rpms: - atomic: - ref: 6cec22f4c5825958a7a702586a1f8bb8aa15f854 - python-docker-pycreds: - ref: 5347f5fb0029c9664a0e5de07d733747568cd08d - skopeo: - ref: 37201821cfb686ab9a5009fe8b066982978e2458 - containernetworking-cni: - ref: 5741bb6612f10603e0b40306e6eaaffb8067a22d - buildah: - ref: 430c7a0285af77ab4a462568cb07f9f8f0c83cf2 - python-docker: - ref: 2807ee649da39b46336a79f4795d0ed2d8b496cf - container-selinux: - ref: 02a599cecb197d9c2261d1af30e4895e806f7bca - container-storage-setup: - ref: fa451e89ac98aa45131ca68d35f47197d863deb0 - oci-register-machine: - ref: 9c3980edbc2cdcede251b59b24faddf495c7d1b4 - podman: - ref: c92ca272fcee01526152095c12516e8091040524 - oci-umount: - ref: 14f111761a8e6691eb88589d58be4db35a9fa727 - python-varlink: - ref: a7229e7b3653cd920028a7dc50aa223e7fcd8778 - oci-systemd-hook: - ref: 7b9e5e15cba8f89cf729b6580e46fe3e3fb18c11 - runc: - ref: 9f4d6de82cac64f4604d12676e322c7d30661962 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://github.com/projectatomic - documentation: https://projectatomic.io - tracker: https://github.com/projectatomic - profiles: - default: - rpms: - - atomic - - buildah - - container-selinux - - container-storage-setup - - containernetworking-cni - - oci-register-machine - - oci-systemd-hook - - oci-umount - - podman - - python-docker - - python-docker-pycreds - - python-varlink - - runc - - skopeo - api: - rpms: - - atomic - - atomic-registries - - buildah - - container-selinux - - container-storage-setup - - containernetworking-cni - - oci-register-machine - - oci-systemd-hook - - oci-umount - - podman - - python2-docker - - python2-docker-pycreds - - python3-docker - - python3-docker-pycreds - - python3-podman - - python3-varlink - - runc - - skopeo - - skopeo-containers - buildopts: - rpms: - macros: | - %_with_ignore_tests 1 - components: - rpms: - atomic: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/atomic - cache: http://pkgs.fedoraproject.org/repo/pkgs/atomic - ref: f28 - buildorder: 1 - buildah: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/buildah - cache: http://pkgs.fedoraproject.org/repo/pkgs/buildah - ref: f28 - container-selinux: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/container-selinux - cache: http://pkgs.fedoraproject.org/repo/pkgs/container-selinux - ref: f28 - container-storage-setup: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/container-storage-setup - cache: http://pkgs.fedoraproject.org/repo/pkgs/container-storage-setup - ref: f28 - containernetworking-cni: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/containernetworking-cni - cache: http://pkgs.fedoraproject.org/repo/pkgs/containernetworking-cni - ref: f28 - oci-register-machine: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/oci-register-machine - cache: http://pkgs.fedoraproject.org/repo/pkgs/oci-register-machine - ref: f28 - oci-systemd-hook: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/oci-systemd-hook - cache: http://pkgs.fedoraproject.org/repo/pkgs/oci-systemd-hook - ref: f28 - oci-umount: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/oci-umount - cache: http://pkgs.fedoraproject.org/repo/pkgs/oci-umount - ref: f28 - podman: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/podman - cache: http://pkgs.fedoraproject.org/repo/pkgs/podman - ref: f28 - buildorder: 1 - python-docker: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/python-docker - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-docker - ref: f28 - python-docker-pycreds: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/python-docker-pycreds - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-docker-pycreds - ref: f28 - python-varlink: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/python-varlink - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-varlink - ref: f28 - runc: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/runc - cache: http://pkgs.fedoraproject.org/repo/pkgs/runc - ref: f28 - skopeo: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/skopeo - cache: http://pkgs.fedoraproject.org/repo/pkgs/skopeo - ref: f28 - artifacts: - rpms: - - atomic-0:1.22.1-2.module_1816+29c6bc78.x86_64 - - atomic-registries-0:1.22.1-2.module_1816+29c6bc78.x86_64 - - buildah-0:1.3-1.git4888163.module_2106+3b446c4f.x86_64 - - container-selinux-2:2.69-3.git452b90d.module_2106+3b446c4f.noarch - - container-storage-setup-0:0.11.0-1.git42c9d9c.module_2106+3b446c4f.noarch - - containernetworking-cni-0:0.7.1-1.module_2106+3b446c4f.x86_64 - - containernetworking-cni-devel-0:0.7.1-1.module_2106+3b446c4f.noarch - - containernetworking-cni-unit-test-devel-0:0.7.1-1.module_2106+3b446c4f.x86_64 - - containers-common-0:0.1.31-14.dev.gitb0b750d.module_2106+3b446c4f.x86_64 - - oci-register-machine-0:0-7.1.git66fa845.module_1816+29c6bc78.x86_64 - - oci-systemd-hook-1:0.1.17-3.gitbd86a79.module_2106+3b446c4f.x86_64 - - oci-umount-2:2.3.4-1.git87f9237.module_1816+29c6bc78.x86_64 - - podman-0:0.8.2.1-1.gitf38eb4f.module_2106+3b446c4f.x86_64 - - podman-docker-0:0.8.2.1-1.gitf38eb4f.module_2106+3b446c4f.noarch - - python2-docker-0:3.2.1-1.module_1816+29c6bc78.noarch - - python2-docker-pycreds-0:0.2.2-2.module_1816+29c6bc78.noarch - - python2-docker-tests-0:3.2.1-1.module_1816+29c6bc78.noarch - - python3-docker-0:3.2.1-1.module_1816+29c6bc78.noarch - - python3-docker-pycreds-0:0.2.2-2.module_1816+29c6bc78.noarch - - python3-podman-0:0.8.2.1-1.gitf38eb4f.module_2106+3b446c4f.noarch - - python3-pypodman-0:0.8.2.1-1.gitf38eb4f.module_2106+3b446c4f.noarch - - python3-varlink-0:27.1.1-1.module_2106+3b446c4f.noarch - - runc-2:1.0.0-50.dev.git20aff4f.module_2106+3b446c4f.x86_64 - - skopeo-0:0.1.31-14.dev.gitb0b750d.module_2106+3b446c4f.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: container-tools - stream: 2017.0 - version: 20180816194450 - context: 80bd9113 - arch: x86_64 - summary: Common tools and dependencies for container runtimes - description: >- - Contains SELinux policies, binaries and other dependencies for use with container - runtimes - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/container-tools.git?#eef39c487fcfdffb12a4a18d3fccec8f0ea48d35 - commit: eef39c487fcfdffb12a4a18d3fccec8f0ea48d35 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - golang: - ref: 92882e9696b779110fd27aa11ddbc88f30eb82a2 - stream: 1.10 - context: 6c81f848 - version: 20180816140129 - filtered_rpms: [] - golang-ecosystem: - ref: 384b17a75c5c9be71c913651126d6899e42e8d84 - stream: 2017.0 - context: cbfb2833 - version: 20180816154241 - filtered_rpms: [] - rpms: - atomic: - ref: 6cec22f4c5825958a7a702586a1f8bb8aa15f854 - python-docker-pycreds: - ref: 5347f5fb0029c9664a0e5de07d733747568cd08d - skopeo: - ref: 37201821cfb686ab9a5009fe8b066982978e2458 - python-docker: - ref: 2807ee649da39b46336a79f4795d0ed2d8b496cf - buildah: - ref: 430c7a0285af77ab4a462568cb07f9f8f0c83cf2 - container-selinux: - ref: 02a599cecb197d9c2261d1af30e4895e806f7bca - container-storage-setup: - ref: fa451e89ac98aa45131ca68d35f47197d863deb0 - oci-register-machine: - ref: 9c3980edbc2cdcede251b59b24faddf495c7d1b4 - oci-umount: - ref: 14f111761a8e6691eb88589d58be4db35a9fa727 - runc: - ref: 9f4d6de82cac64f4604d12676e322c7d30661962 - oci-systemd-hook: - ref: 7b9e5e15cba8f89cf729b6580e46fe3e3fb18c11 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: https://github.com/projectatomic - documentation: https://projectatomic.io - tracker: https://github.com/projectatomic - profiles: - default: - rpms: - - atomic - - buildah - - container-selinux - - container-storage-setup - - oci-register-machine - - oci-systemd-hook - - oci-umount - - python-docker - - python-docker-pycreds - - runc - - skopeo - api: - rpms: - - atomic - - atomic-registries - - buildah - - container-selinux - - container-storage-setup - - oci-register-machine - - oci-systemd-hook - - oci-umount - - python2-docker - - python2-docker-pycreds - - python3-docker - - python3-docker-pycreds - - runc - - skopeo - - skopeo-containers - buildopts: - rpms: - macros: | - %_with_ignore_tests 1 - components: - rpms: - atomic: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/atomic - cache: http://pkgs.fedoraproject.org/repo/pkgs/atomic - ref: f28 - buildah: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/buildah - cache: http://pkgs.fedoraproject.org/repo/pkgs/buildah - ref: f28 - container-selinux: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/container-selinux - cache: http://pkgs.fedoraproject.org/repo/pkgs/container-selinux - ref: f28 - container-storage-setup: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/container-storage-setup - cache: http://pkgs.fedoraproject.org/repo/pkgs/container-storage-setup - ref: f28 - oci-register-machine: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/oci-register-machine - cache: http://pkgs.fedoraproject.org/repo/pkgs/oci-register-machine - ref: f28 - oci-systemd-hook: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/oci-systemd-hook - cache: http://pkgs.fedoraproject.org/repo/pkgs/oci-systemd-hook - ref: f28 - oci-umount: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/oci-umount - cache: http://pkgs.fedoraproject.org/repo/pkgs/oci-umount - ref: f28 - python-docker: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/python-docker - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-docker - ref: f28 - python-docker-pycreds: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/python-docker-pycreds - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-docker-pycreds - ref: f28 - runc: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/runc - cache: http://pkgs.fedoraproject.org/repo/pkgs/runc - ref: f28 - skopeo: - rationale: Primary component of this module - repository: git://pkgs.fedoraproject.org/rpms/skopeo - cache: http://pkgs.fedoraproject.org/repo/pkgs/skopeo - ref: f28 - artifacts: - rpms: - - atomic-0:1.22.1-2.module_1637+1872e86a.x86_64 - - atomic-registries-0:1.22.1-2.module_1637+1872e86a.x86_64 - - buildah-0:1.3-1.git4888163.module_2040+0e96cf1b.x86_64 - - container-selinux-2:2.69-3.git452b90d.module_2040+0e96cf1b.noarch - - container-storage-setup-0:0.11.0-1.git42c9d9c.module_2040+0e96cf1b.noarch - - containers-common-0:0.1.31-14.dev.gitb0b750d.module_2040+0e96cf1b.x86_64 - - oci-register-machine-0:0-7.1.git66fa845.module_1637+1872e86a.x86_64 - - oci-systemd-hook-1:0.1.17-3.gitbd86a79.module_2040+0e96cf1b.x86_64 - - oci-umount-2:2.3.4-1.git87f9237.module_1637+1872e86a.x86_64 - - python2-docker-0:3.2.1-1.module_1637+1872e86a.noarch - - python2-docker-pycreds-0:0.2.2-2.module_1637+1872e86a.noarch - - python2-docker-tests-0:3.2.1-1.module_1637+1872e86a.noarch - - python3-docker-0:3.2.1-1.module_1637+1872e86a.noarch - - python3-docker-pycreds-0:0.2.2-2.module_1637+1872e86a.noarch - - runc-2:1.0.0-50.dev.git20aff4f.module_2040+0e96cf1b.x86_64 - - skopeo-0:0.1.31-14.dev.gitb0b750d.module_2040+0e96cf1b.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: avocado - stream: stable - version: 20180816135414 - context: 6c81f848 - arch: x86_64 - summary: Framework with tools and libraries for Automated Testing - description: >- - Avocado is a set of tools and libraries (what people call these days a framework) - to perform automated testing. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/avocado.git?#10208a3095f9522485b933dbab830e3338af95e6 - commit: 10208a3095f9522485b933dbab830e3338af95e6 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - python-avocado: - ref: 87dc683a36d0862340d3af99b78fa189a1aba424 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: http://avocado-framework.github.io/ - documentation: http://avocado-framework.readthedocs.io/ - tracker: https://github.com/avocado-framework/avocado/issues - profiles: - default: - rpms: - - python2-avocado - - python2-avocado-plugins-output-html - - python2-avocado-plugins-varianter-yaml-to-mux - minimal: - rpms: - - python2-avocado - api: - rpms: - - python-avocado-examples - - python2-avocado - - python2-avocado-plugins-output-html - - python2-avocado-plugins-resultsdb - - python2-avocado-plugins-runner-docker - - python2-avocado-plugins-runner-remote - - python2-avocado-plugins-runner-vm - - python2-avocado-plugins-varianter-yaml-to-mux - buildopts: - rpms: {} - components: - rpms: - python-avocado: - rationale: Framework with tools and libraries for Automated Testing - repository: git://pkgs.fedoraproject.org/rpms/python-avocado - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-avocado - ref: master - artifacts: - rpms: - - python-avocado-examples-0:52.1-7.module_1939+1f9e88da.noarch - - python2-avocado-0:52.1-7.module_1939+1f9e88da.noarch - - python2-avocado-plugins-output-html-0:52.1-7.module_1939+1f9e88da.noarch - - python2-avocado-plugins-resultsdb-0:52.1-7.module_1939+1f9e88da.noarch - - python2-avocado-plugins-runner-docker-0:52.1-7.module_1939+1f9e88da.noarch - - python2-avocado-plugins-runner-remote-0:52.1-7.module_1939+1f9e88da.noarch - - python2-avocado-plugins-runner-vm-0:52.1-7.module_1939+1f9e88da.noarch - - python2-avocado-plugins-varianter-yaml-to-mux-0:52.1-7.module_1939+1f9e88da.noarch -... ---- -document: modulemd -version: 2 -data: - name: avocado - stream: latest - version: 20180816135607 - context: 6c81f848 - arch: x86_64 - summary: Framework with tools and libraries for Automated Testing - description: >- - Avocado is a set of tools and libraries (what people call these days a framework) - to perform automated testing. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/avocado.git?#3649cb2aa51fb496395bb2846addd70b72945543 - commit: 3649cb2aa51fb496395bb2846addd70b72945543 - buildrequires: - platform: - ref: f29 - stream: f29 - context: 00000000 - version: 5 - filtered_rpms: [] - rpms: - python-avocado: - ref: 1454277ea964bafcdf51803035e3369517d03774 - dependencies: - - buildrequires: - platform: [f29] - requires: - platform: [f29] - references: - community: http://avocado-framework.github.io/ - documentation: http://avocado-framework.readthedocs.io/ - tracker: https://github.com/avocado-framework/avocado/issues - profiles: - default: - description: Default profile installing the most commonly used avocado packages. - rpms: - - python2-avocado - - python2-avocado-plugins-output-html - - python2-avocado-plugins-varianter-yaml-to-mux - minimal: - description: Minimal profile installing only the main avocado package. - rpms: - - python2-avocado - api: - rpms: - - python-avocado-bash - - python-avocado-common - - python-avocado-examples - - python2-avocado - - python2-avocado-plugins-glib - - python2-avocado-plugins-golang - - python2-avocado-plugins-loader-yaml - - python2-avocado-plugins-output-html - - python2-avocado-plugins-result-upload - - python2-avocado-plugins-resultsdb - - python2-avocado-plugins-runner-docker - - python2-avocado-plugins-runner-remote - - python2-avocado-plugins-runner-vm - - python2-avocado-plugins-varianter-pict - - python2-avocado-plugins-varianter-yaml-to-mux - - python3-avocado - - python3-avocado-plugins-glib - - python3-avocado-plugins-golang - - python3-avocado-plugins-loader-yaml - - python3-avocado-plugins-output-html - - python3-avocado-plugins-result-upload - - python3-avocado-plugins-varianter-pict - - python3-avocado-plugins-varianter-yaml-to-mux - buildopts: - rpms: {} - components: - rpms: - python-avocado: - rationale: Framework with tools and libraries for Automated Testing - repository: git://pkgs.fedoraproject.org/rpms/python-avocado - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-avocado - ref: latest - artifacts: - rpms: - - python-avocado-bash-0:63.0-2.module_1958+f0d1ec4b.noarch - - python-avocado-common-0:63.0-2.module_1958+f0d1ec4b.noarch - - python-avocado-examples-0:63.0-2.module_1958+f0d1ec4b.noarch - - python2-avocado-0:63.0-2.module_1958+f0d1ec4b.noarch - - python2-avocado-plugins-glib-0:63.0-2.module_1958+f0d1ec4b.noarch - - python2-avocado-plugins-golang-0:63.0-2.module_1958+f0d1ec4b.noarch - - python2-avocado-plugins-loader-yaml-0:63.0-2.module_1958+f0d1ec4b.noarch - - python2-avocado-plugins-output-html-0:63.0-2.module_1958+f0d1ec4b.noarch - - python2-avocado-plugins-result-upload-0:63.0-2.module_1958+f0d1ec4b.noarch - - python2-avocado-plugins-resultsdb-0:63.0-2.module_1958+f0d1ec4b.noarch - - python2-avocado-plugins-runner-docker-0:63.0-2.module_1958+f0d1ec4b.noarch - - python2-avocado-plugins-runner-remote-0:63.0-2.module_1958+f0d1ec4b.noarch - - python2-avocado-plugins-runner-vm-0:63.0-2.module_1958+f0d1ec4b.noarch - - python2-avocado-plugins-varianter-pict-0:63.0-2.module_1958+f0d1ec4b.noarch - - python2-avocado-plugins-varianter-yaml-to-mux-0:63.0-2.module_1958+f0d1ec4b.noarch - - python3-avocado-0:63.0-2.module_1958+f0d1ec4b.noarch - - python3-avocado-plugins-glib-0:63.0-2.module_1958+f0d1ec4b.noarch - - python3-avocado-plugins-golang-0:63.0-2.module_1958+f0d1ec4b.noarch - - python3-avocado-plugins-loader-yaml-0:63.0-2.module_1958+f0d1ec4b.noarch - - python3-avocado-plugins-output-html-0:63.0-2.module_1958+f0d1ec4b.noarch - - python3-avocado-plugins-result-upload-0:63.0-2.module_1958+f0d1ec4b.noarch - - python3-avocado-plugins-varianter-pict-0:63.0-2.module_1958+f0d1ec4b.noarch - - python3-avocado-plugins-varianter-yaml-to-mux-0:63.0-2.module_1958+f0d1ec4b.noarch -... ---- -document: modulemd -version: 2 -data: - name: ant - stream: 1.10 - version: 20180629154141 - context: 819b5873 - arch: x86_64 - summary: Java build tool - description: >- - Apache Ant is a Java library and command-line tool whose mission is to drive processes - described in build files as targets and extension points dependent upon each other. - The main known usage of Ant is the build of Java applications. Ant supplies a - number of built-in tasks allowing to compile, assemble, test and run Java applications. - Ant can also be used effectively to build non Java applications, for instance - C or C++ applications. More generally, Ant can be used to pilot any type of process - which can be described in terms of targets and tasks. - license: - module: - - MIT - xmd: - mbs: - mse: TRUE - scmurl: https://src.fedoraproject.org/modules/ant.git?#efb686945a977ec8322eca2401e96e8da0f4e3f2 - commit: efb686945a977ec8322eca2401e96e8da0f4e3f2 - buildrequires: - javapackages-tools: - ref: 1e429a4d686d3fdd1d93ce7e8ac7254148ea3471 - stream: 201801 - context: b43b0c8f - version: 20180629150827 - filtered_rpms: [] - platform: - ref: virtual - stream: f28 - context: 00000000 - version: 4 - filtered_rpms: [] - rpms: - ant: - ref: 1b60ebd3ac34e2c4648c4a5377c9e51fc44d658c - dependencies: - - requires: - platform: [] - profiles: - default: - rpms: - - ant - api: - rpms: - - ant - filter: - rpms: - - ant-antlr - - ant-apache-bcel - - ant-apache-bsf - - ant-apache-log4j - - ant-apache-oro - - ant-apache-regexp - - ant-apache-resolver - - ant-apache-xalan2 - - ant-commons-logging - - ant-commons-net - - ant-javadoc - - ant-javamail - - ant-jdepend - - ant-jmf - - ant-jsch - - ant-junit - - ant-manual - - ant-swing - - ant-testutil - - ant-xz - buildopts: - rpms: - macros: | - %_with_xmvn_javadoc 1 - %_without_asciidoc 1 - %_without_avalon 1 - %_without_bouncycastle 1 - %_without_cython 1 - %_without_dafsa 1 - %_without_desktop 1 - %_without_doxygen 1 - %_without_dtd 1 - %_without_eclipse 1 - %_without_ehcache 1 - %_without_emacs 1 - %_without_equinox 1 - %_without_fop 1 - %_without_ftp 1 - %_without_gradle 1 - %_without_groovy 1 - %_without_hadoop 1 - %_without_hsqldb 1 - %_without_itext 1 - %_without_jackson 1 - %_without_jmh 1 - %_without_jna 1 - %_without_jpa 1 - %_without_junit5 1 - %_without_logback 1 - %_without_markdown 1 - %_without_memcached 1 - %_without_memoryfilesystem 1 - %_without_obr 1 - %_without_python 1 - %_without_reporting 1 - %_without_scm 1 - %_without_snappy 1 - %_without_spring 1 - %_without_ssh 1 - %_without_testlib 1 - components: - rpms: - ant: - rationale: 'Module API. - -' - repository: git://pkgs.fedoraproject.org/rpms/ant - cache: http://pkgs.fedoraproject.org/repo/pkgs/ant - ref: javapackages - buildorder: 10 - artifacts: - rpms: - - ant-0:1.10.4-1.module_1886+ece9a977.noarch - - ant-lib-0:1.10.4-1.module_1886+ece9a977.noarch -... ---- -document: modulemd-defaults -version: 1 -data: - module: nodejs - profiles: - 6: [default] - 8: [default] - 9: [default] - intents: {} -... ---- -document: modulemd-defaults -version: 1 -data: - module: reviewboard - profiles: - 2.5: [default] - 3.0: [default] - intents: {} -... ---- -document: modulemd-defaults -version: 1 -data: - module: ant - profiles: - 1.10: [default] - intents: {} -... ---- -document: modulemd-defaults -version: 1 -data: - module: dwm - stream: 6.1 - profiles: - 6.0: [default] - 6.1: [default] - latest: [default] - intents: {} -... ---- -document: modulemd-defaults -version: 1 -data: - module: maven - profiles: - 3.5: [default] - intents: {} -... ---- -document: modulemd-defaults -version: 1 -data: - module: django - profiles: - 1.6: [default] - intents: {} -... diff --git a/modulemd-1.8.16/test_data/latest_version.yaml b/modulemd-1.8.16/test_data/latest_version.yaml deleted file mode 100644 index a1b5734..0000000 --- a/modulemd-1.8.16/test_data/latest_version.yaml +++ /dev/null @@ -1,600 +0,0 @@ ---- -# Document type identifier -document: modulemd -# Module metadata format version -version: 1 -data: - # Module name, optional - # Typically filled in by the buildsystem, using the VCS repository - # name as the name of the module. - name: foo - # Module update stream, optional - # Typically filled in by the buildsystem, using the VCS branch name - # as the name of the stream. - stream: stream-name - # Module version, integer, optional, cannot be negative - # Typically filled in by the buildsystem, using the VCS commit - # timestamp. Module version defines upgrade path for the particular - # update stream. - version: 20160927144203 - # Module context flag, optional - # The context flag serves to distinguish module builds with the - # same name, stream and version and plays an important role in - # future automatic module stream name expansion. - # Filled in by the buildsystem. A short hash of the module's name, - # stream, version and its expanded runtime dependencies. - context: c0ffee43 - # Module artifact architecture, optional - # Contains a string describing the module's artifacts' main hardware - # architecture compatibility, distinguishing the module artifact, - # e.g. a repository, from others with the same name, stream, version and - # context. This is not a generic hardware family (i.e. basearch). - # Examples: i386, i486, armv7hl, x86_64 - # Filled in by the buildsystem during the compose stage. - arch: x86_64 - # A short summary describing the module, required - summary: An example module - # A verbose description of the module, required - description: >- - A module for the demonstration of the metadata format. Also, - the obligatory lorem ipsum dolor sit amet goes right here. - # The end of life, aka Best Before, optional. - # A UTC date in the ISO 8601 format signifying the day when this - # module goes EOL, i.e. starting the day below, this module won't - # receive any more updates. Typically defined in an external data - # source and filled in by the buildsystem. - # Obsolete: use servicelevels instead - eol: 2077-10-03 - # Service levels, optional - # This is a dictionary of important dates (and possibly supplementary data - # in the future) that describes the end point of certain functionality, - # such as the date when the module will transition to "security fixes only" - # or go completely end-of-life - servicelevels: - security: - eol: 2019-03-30 - features: - eol: 2018-12-31 - # Module and content licenses in the Fedora license identifier - # format, required - license: - # Module license, required - # This list covers licenses used for the module metadata, SPEC - # files or extra patches - module: - - MIT - # Content license, optional - # A list of licenses used by the packages in the module. - # This should be populated by build tools, not the module author. - content: - - Beerware - - GPLv2+ - - zlib - # Extensible metadata block - # A dictionary of user-defined keys and values. - # Optional. Defaults to an empty dictionary. - xmd: - some_key: some_data - some_list: - - a - - b - some_dict: - a: alpha - b: beta - some_other_list: - - c - - d - some_other_dict: - another_key: more_data - yet_another_key: - - this - - is - - getting - - silly - # Module dependencies, if any. Optional. - # TODO: Provides, conflicts, obsoletes, recommends, etc. - # Do we even need those? - # TODO: Stream name globbing or regular expression support - dependencies: - # Build dependencies of this module, optional - # Keys are module names, values are the stream names - # These modules define the buildroot for this module - buildrequires: - platform: and-its-stream-name - extra-build-env: and-its-stream-name-too - # Run-time dependencies of this module, optional - # Keys are module names, values are their stream names - requires: - platform: and-its-stream-name - # References to external resources, typically upstream, optional - references: - # Upstream community website, if it exists, optional - community: http://www.example.com/ - # Upstream documentation, if it exists, optional - documentation: http://www.example.com/ - # Upstream bug tracker, if it exists, optional - tracker: http://www.example.com/ - # Profiles define the end user's use cases for the module. They consist of - # package lists of components to be installed by default if the module is - # enabled. The keys are the profile names and contain package lists by - # component type. There are several profiles defined below. Suggested - # behavior for package managers is to just enable repository for selected - # module. Then users are able to install packages on their own. If they - # select a specific profile, the package manager should install all - # packages of that profile. - # Optional, defaults to no profile definitions. - profiles: - # The default profile, used unless any other profile was selected. - # Optional, defaults to empty lists. - default: - rpms: - - bar - - bar-extras - - baz - # Defines a set of packages which are meant to be installed inside - # container image artifact. - # Optional. - container: - rpms: - - bar - - bar-devel - # This profile provides minimal set of packages providing functionality - # of this module. This is meant to be used on target systems where size - # of the distribution is a real concern. - # Optional. - minimal: - # A verbose description of the module, optional - description: Minimal profile installing only the bar package. - rpms: - - bar - # A set of packages which should be installed into the buildroot of a - # module which depends on this module. Specifically, it is used to - # flesh out the build group in koji. - # Optional. - buildroot: - rpms: - - bar-devel - # Very similar to the buildroot profile above, this is used by the - # build system to specify any additional packages which should be - # installed during the buildSRPMfromSCM step in koji. - # Optional. - srpm-buildroot: - rpms: - - bar-extras - # Test for unusual cases - unusual: - rpms: [] - moreunusual: {} - # Module API - # Optional, defaults to no API. - api: - # The module's public RPM-level API. - # A list of binary RPM names that are considered to be the - # main and stable feature of the module; binary RPMs not listed - # here are considered "unsupported" or "implementation details". - # In the example here we don't list the xyz package as it's only - # included as a dependency of xxx. However, we list a subpackage - # of bar, bar-extras. - # Optional, defaults to an empty list. - rpms: - - bar - - bar-extras - - bar-devel - - baz - - xxx - # Module component filters - # Optional, defaults to no filters. - filter: - # RPM names not to be included in the module. - # By default, all built binary RPMs are included. In the example - # we exclude a subpackage of bar, bar-nonfoo from our module. - # Optional, defaults to an empty list. - rpms: - - baz-nonfoo - # Component build options - # Additional per component type module-wide build options. - # Optional - buildopts: - # RPM-specific build options - # Optional - rpms: - # Additional macros that should be defined in the - # RPM buildroot, appended to the default set. Care should be - # taken so that the newlines are preserved. Literal style - # block is recommended, with or without the trailing newline. - # Optional - macros: | - %demomacro 1 - %demomacro2 %{demomacro}23 - # Functional components of the module, optional - components: - # RPM content of the module, optional - # Keys are the VCS/SRPM names, values dictionaries holding - # additional information. - rpms: - bar: - # Why is this component present. - # A simple, free-form string. - # Required. - rationale: We need this to demonstrate stuff. - # Use this repository if it's different from the build - # system configuration. - # Optional. - repository: https://pagure.io/bar.git - # Use this lookaside cache if it's different from the - # build system configuration. - # Optional. - cache: https://example.com/cache - # Use this specific commit has, branch name or tag for - # the build. If ref is a branch name, the branch HEAD - # will be used. If no ref is given, the master branch - # is assumed. - # Optional. - ref: 26ca0c0 - # baz has no extra options - baz: - rationale: This one is here to demonstrate other stuff. - xxx: - rationale: xxx demonstrates arches and multilib. - # xxx is only available on the listed architectures. - # Optional, defaults to all available arches. - arches: [ i686, x86_64 ] - # A list of architectures with multilib - # installs, i.e. both i686 and x86_64 - # versions will be installed on x86_64. - # Optional, defaults to no multilib. - multilib: [ x86_64 ] - xyz: - rationale: xyz is a bundled dependency of xxx. - # Build order group - # When building, components are sorted by build order tag - # and built in batches grouped by their buildorder value. - # Built batches are then re-tagged into the buildroot. - # Multiple components can have the same buildorder index - # to map them into build groups. - # Optional, defaults to zero. - # Integer, negative values are allowed. - # In this example, bar, baz and xxx are built first in - # no particular order, then tagged into the buildroot, - # then, finally, xyz is built. - buildorder: 10 - # Module content of this module - # Included modules are built in the shared buildroot, together with - # other included content. Keys are module names, values additional - # component information. Note this only includes components and their - # properties from the referenced module and doesn't inherit any - # additional module metadata such as the module's dependencies or - # component buildopts. The included components are built in their - # defined buildorder as sub-build groups. - # Optional - modules: - includedmodule: - # Why is this module included? - # Required - rationale: Included in the stack, just because. - # Link to VCS repository that contains the modulemd file - # if it differs from the buildsystem default configuration. - # Optional. - repository: https://pagure.io/includedmodule.git - # See the rpms ref. - ref: somecoolbranchname - # See the rpms buildorder. - buildorder: 100 - # Artifacts shipped with this module - # This section lists binary artifacts shipped with the module, allowing - # software management tools to handle module bundles. This section is - # populated by the module build system. - # Optional - artifacts: - # RPM artifacts shipped with this module - # A set of NEVRAs associated with this module. - # Optional - rpms: - - bar-0:1.23-1.module_deadbeef.x86_64 - - bar-devel-0:1.23-1.module_deadbeef.x86_64 - - bar-extras-0:1.23-1.module_deadbeef.x86_64 - - baz-0:42-42.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.i686 - - xyz-0:1-1.module_deadbeef.x86_64 -... ---- -# Document type identifier -document: modulemd -# Module metadata format version -version: 1 -data: - # Module name, optional - # Typically filled in by the buildsystem, using the VCS repository - # name as the name of the module. - name: foo - # Module update stream, optional - # Typically filled in by the buildsystem, using the VCS branch name - # as the name of the stream. - stream: stream-name - # Module version, integer, optional, cannot be negative - # Typically filled in by the buildsystem, using the VCS commit - # timestamp. Module version defines upgrade path for the particular - # update stream. - version: 20180928144203 - # Module context flag, optional - # The context flag serves to distinguish module builds with the - # same name, stream and version and plays an important role in - # future automatic module stream name expansion. - # Filled in by the buildsystem. A short hash of the module's name, - # stream, version and its expanded runtime dependencies. - context: c0ffee43 - # Module artifact architecture, optional - # Contains a string describing the module's artifacts' main hardware - # architecture compatibility, distinguishing the module artifact, - # e.g. a repository, from others with the same name, stream, version and - # context. This is not a generic hardware family (i.e. basearch). - # Examples: i386, i486, armv7hl, x86_64 - # Filled in by the buildsystem during the compose stage. - arch: x86_64 - # A short summary describing the module, required - summary: An example module - # A verbose description of the module, required - description: >- - A module for the demonstration of the metadata format. Also, - the obligatory lorem ipsum dolor sit amet goes right here. - # The end of life, aka Best Before, optional. - # A UTC date in the ISO 8601 format signifying the day when this - # module goes EOL, i.e. starting the day below, this module won't - # receive any more updates. Typically defined in an external data - # source and filled in by the buildsystem. - # Obsolete: use servicelevels instead - eol: 2077-10-03 - # Service levels, optional - # This is a dictionary of important dates (and possibly supplementary data - # in the future) that describes the end point of certain functionality, - # such as the date when the module will transition to "security fixes only" - # or go completely end-of-life - servicelevels: - security: - eol: 2019-03-30 - features: - eol: 2018-12-31 - # Module and content licenses in the Fedora license identifier - # format, required - license: - # Module license, required - # This list covers licenses used for the module metadata, SPEC - # files or extra patches - module: - - MIT - # Content license, optional - # A list of licenses used by the packages in the module. - # This should be populated by build tools, not the module author. - content: - - Beerware - - GPLv2+ - - zlib - # Extensible metadata block - # A dictionary of user-defined keys and values. - # Optional. Defaults to an empty dictionary. - xmd: - some_key: some_data - some_list: - - a - - b - some_dict: - a: alpha - b: beta - some_other_list: - - c - - d - some_other_dict: - another_key: more_data - yet_another_key: - - this - - is - - getting - - silly - # Module dependencies, if any. Optional. - # TODO: Provides, conflicts, obsoletes, recommends, etc. - # Do we even need those? - # TODO: Stream name globbing or regular expression support - dependencies: - # Build dependencies of this module, optional - # Keys are module names, values are the stream names - # These modules define the buildroot for this module - buildrequires: - platform: and-its-stream-name - extra-build-env: and-its-stream-name-too - # Run-time dependencies of this module, optional - # Keys are module names, values are their stream names - requires: - platform: and-its-stream-name - # References to external resources, typically upstream, optional - references: - # Upstream community website, if it exists, optional - community: http://www.example.com/ - # Upstream documentation, if it exists, optional - documentation: http://www.example.com/ - # Upstream bug tracker, if it exists, optional - tracker: http://www.example.com/ - # Profiles define the end user's use cases for the module. They consist of - # package lists of components to be installed by default if the module is - # enabled. The keys are the profile names and contain package lists by - # component type. There are several profiles defined below. Suggested - # behavior for package managers is to just enable repository for selected - # module. Then users are able to install packages on their own. If they - # select a specific profile, the package manager should install all - # packages of that profile. - # Optional, defaults to no profile definitions. - profiles: - # The default profile, used unless any other profile was selected. - # Optional, defaults to empty lists. - default: - rpms: - - bar - - bar-extras - - baz - # Defines a set of packages which are meant to be installed inside - # container image artifact. - # Optional. - container: - rpms: - - bar - - bar-devel - # This profile provides minimal set of packages providing functionality - # of this module. This is meant to be used on target systems where size - # of the distribution is a real concern. - # Optional. - minimal: - # A verbose description of the module, optional - description: Minimal profile installing only the bar package. - rpms: - - bar - # A set of packages which should be installed into the buildroot of a - # module which depends on this module. Specifically, it is used to - # flesh out the build group in koji. - # Optional. - buildroot: - rpms: - - bar-devel - # Very similar to the buildroot profile above, this is used by the - # build system to specify any additional packages which should be - # installed during the buildSRPMfromSCM step in koji. - # Optional. - srpm-buildroot: - rpms: - - bar-extras - # Test for unusual cases - unusual: - rpms: [] - moreunusual: {} - # Module API - # Optional, defaults to no API. - api: - # The module's public RPM-level API. - # A list of binary RPM names that are considered to be the - # main and stable feature of the module; binary RPMs not listed - # here are considered "unsupported" or "implementation details". - # In the example here we don't list the xyz package as it's only - # included as a dependency of xxx. However, we list a subpackage - # of bar, bar-extras. - # Optional, defaults to an empty list. - rpms: - - bar - - bar-extras - - bar-devel - - baz - - xxx - # Module component filters - # Optional, defaults to no filters. - filter: - # RPM names not to be included in the module. - # By default, all built binary RPMs are included. In the example - # we exclude a subpackage of bar, bar-nonfoo from our module. - # Optional, defaults to an empty list. - rpms: - - baz-nonfoo - # Component build options - # Additional per component type module-wide build options. - # Optional - buildopts: - # RPM-specific build options - # Optional - rpms: - # Additional macros that should be defined in the - # RPM buildroot, appended to the default set. Care should be - # taken so that the newlines are preserved. Literal style - # block is recommended, with or without the trailing newline. - # Optional - macros: | - %demomacro 1 - %demomacro2 %{demomacro}23 - # Functional components of the module, optional - components: - # RPM content of the module, optional - # Keys are the VCS/SRPM names, values dictionaries holding - # additional information. - rpms: - bar: - # Why is this component present. - # A simple, free-form string. - # Required. - rationale: We need this to demonstrate stuff. - # Use this repository if it's different from the build - # system configuration. - # Optional. - repository: https://pagure.io/bar.git - # Use this lookaside cache if it's different from the - # build system configuration. - # Optional. - cache: https://example.com/cache - # Use this specific commit has, branch name or tag for - # the build. If ref is a branch name, the branch HEAD - # will be used. If no ref is given, the master branch - # is assumed. - # Optional. - ref: 26ca0c0 - # baz has no extra options - baz: - rationale: This one is here to demonstrate other stuff. - xxx: - rationale: xxx demonstrates arches and multilib. - # xxx is only available on the listed architectures. - # Optional, defaults to all available arches. - arches: [ i686, x86_64 ] - # A list of architectures with multilib - # installs, i.e. both i686 and x86_64 - # versions will be installed on x86_64. - # Optional, defaults to no multilib. - multilib: [ x86_64 ] - xyz: - rationale: xyz is a bundled dependency of xxx. - # Build order group - # When building, components are sorted by build order tag - # and built in batches grouped by their buildorder value. - # Built batches are then re-tagged into the buildroot. - # Multiple components can have the same buildorder index - # to map them into build groups. - # Optional, defaults to zero. - # Integer, negative values are allowed. - # In this example, bar, baz and xxx are built first in - # no particular order, then tagged into the buildroot, - # then, finally, xyz is built. - buildorder: 10 - # Module content of this module - # Included modules are built in the shared buildroot, together with - # other included content. Keys are module names, values additional - # component information. Note this only includes components and their - # properties from the referenced module and doesn't inherit any - # additional module metadata such as the module's dependencies or - # component buildopts. The included components are built in their - # defined buildorder as sub-build groups. - # Optional - modules: - includedmodule: - # Why is this module included? - # Required - rationale: Included in the stack, just because. - # Link to VCS repository that contains the modulemd file - # if it differs from the buildsystem default configuration. - # Optional. - repository: https://pagure.io/includedmodule.git - # See the rpms ref. - ref: somecoolbranchname - # See the rpms buildorder. - buildorder: 100 - # Artifacts shipped with this module - # This section lists binary artifacts shipped with the module, allowing - # software management tools to handle module bundles. This section is - # populated by the module build system. - # Optional - artifacts: - # RPM artifacts shipped with this module - # A set of NEVRAs associated with this module. - # Optional - rpms: - - bar-0:1.23-1.module_deadbeef.x86_64 - - bar-devel-0:1.23-1.module_deadbeef.x86_64 - - bar-extras-0:1.23-1.module_deadbeef.x86_64 - - baz-0:42-42.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.i686 - - xyz-0:1-1.module_deadbeef.x86_64 -... \ No newline at end of file diff --git a/modulemd-1.8.16/test_data/long-valid.yaml b/modulemd-1.8.16/test_data/long-valid.yaml deleted file mode 100644 index 9e9ac6c..0000000 --- a/modulemd-1.8.16/test_data/long-valid.yaml +++ /dev/null @@ -1,462 +0,0 @@ ---- -document: modulemd -version: 2 -data: - name: django - stream: 1.6 - version: 20180307130104 - context: c2c572ec - summary: A high-level Python Web framework - description: >- - Django is a high-level Python Web framework that encourages rapid development - and a clean, pragmatic design. It focuses on automating as much as possible and - adhering to the DRY (Don't Repeat Yourself) principle. - license: - module: - - MIT - xmd: - mbs: - scmurl: https://src.fedoraproject.org/modules/django.git?#90c50f8ad1cb5ca41d62632699c375dce6353adf - commit: 90c50f8ad1cb5ca41d62632699c375dce6353adf - buildrequires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - rpms: - python-django: - ref: 1c3a01558a435b56f8ef4f8fc0e5c1cd35f006a5 - requires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - dependencies: - - buildrequires: - platform: [f28] - requires: - platform: [f28] - references: - community: https://www.djangoproject.com - documentation: https://docs.djangoproject.com - tracker: https://code.djangoproject.com/query - profiles: - default: - rpms: - - python2-django - python2_development: - rpms: - - python2-django - api: - rpms: - - python2-django - components: - rpms: - python-django: - rationale: The Django python web framework - repository: git://pkgs.fedoraproject.org/rpms/python-django - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-django - ref: 1.6 - artifacts: - rpms: - - python-django-bash-completion-0:1.6.11.7-1.module_1560+089ce146.noarch - - python2-django-0:1.6.11.7-1.module_1560+089ce146.noarch -... ---- -document: modulemd -version: 2 -data: - name: nodejs - stream: 6 - version: 20180308155546 - context: c2c572ec - summary: Javascript runtime - description: >- - Node.js is a platform built on Chrome''s JavaScript runtime for easily building - fast, scalable network applications. Node.js uses an event-driven, non-blocking - I/O model that makes it lightweight and efficient, perfect for data-intensive - real-time applications that run across distributed devices. - license: - module: - - MIT - xmd: - mbs: - scmurl: https://src.fedoraproject.org/modules/nodejs.git?#2d349c5055939081aefa37d71cd77051d235cb79 - commit: 2d349c5055939081aefa37d71cd77051d235cb79 - buildrequires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - rpms: - nodejs: - ref: 374ae23edf3676653fec706a5c81c5cdf019ce11 - requires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - dependencies: - - buildrequires: - platform: [f28] - requires: - platform: [f28] - references: - community: http://nodejs.org - documentation: http://nodejs.org/en/docs - tracker: https://github.com/nodejs/node/issues - profiles: - default: - rpms: - - nodejs - - npm - development: - rpms: - - nodejs - - nodejs-devel - - npm - minimal: - rpms: - - nodejs - api: - rpms: - - nodejs - - nodejs-devel - - npm - components: - rpms: - nodejs: - rationale: Javascript runtime and npm package manager. - repository: git://pkgs.fedoraproject.org/rpms/nodejs - cache: http://pkgs.fedoraproject.org/repo/pkgs/nodejs - ref: 6 - buildorder: 10 - artifacts: - rpms: - - nodejs-1:6.13.1-1.module_1575+55808bea.x86_64 - - nodejs-devel-1:6.13.1-1.module_1575+55808bea.x86_64 - - nodejs-docs-1:6.13.1-1.module_1575+55808bea.noarch - - npm-1:3.10.10-1.6.13.1.1.module_1575+55808bea.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: nodejs - stream: 8 - version: 20180308143646 - context: c2c572ec - summary: Javascript runtime - description: >- - Node.js is a platform built on Chrome''s JavaScript runtime for easily building - fast, scalable network applications. Node.js uses an event-driven, non-blocking - I/O model that makes it lightweight and efficient, perfect for data-intensive - real-time applications that run across distributed devices. - license: - module: - - MIT - xmd: - mbs: - scmurl: https://src.fedoraproject.org/modules/nodejs.git?#4dc5da13fa51c5a5cc9f02a81d71416bc6ce787e - commit: 4dc5da13fa51c5a5cc9f02a81d71416bc6ce787e - buildrequires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - rpms: - nodejs: - ref: 64f8f82763943f764d25225c2d95ae065490b10a - requires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - dependencies: - - buildrequires: - platform: [f28] - requires: - platform: [f28] - references: - community: http://nodejs.org - documentation: http://nodejs.org/en/docs - tracker: https://github.com/nodejs/node/issues - profiles: - default: - rpms: - - nodejs - - npm - development: - rpms: - - nodejs - - nodejs-devel - - npm - minimal: - rpms: - - nodejs - api: - rpms: - - nodejs - - nodejs-devel - - npm - components: - rpms: - nodejs: - rationale: Javascript runtime and npm package manager. - repository: git://pkgs.fedoraproject.org/rpms/nodejs - cache: http://pkgs.fedoraproject.org/repo/pkgs/nodejs - ref: 8 - buildorder: 10 - artifacts: - rpms: - - nodejs-1:8.10.0-3.module_1572+d7ec111e.x86_64 - - nodejs-devel-1:8.10.0-3.module_1572+d7ec111e.x86_64 - - nodejs-docs-1:8.10.0-3.module_1572+d7ec111e.noarch - - npm-1:5.6.0-1.8.10.0.3.module_1572+d7ec111e.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: nodejs - stream: 9 - version: 20180308142225 - context: c2c572ec - summary: Javascript runtime - description: >- - Node.js is a platform built on Chrome''s JavaScript runtime for easily building - fast, scalable network applications. Node.js uses an event-driven, non-blocking - I/O model that makes it lightweight and efficient, perfect for data-intensive - real-time applications that run across distributed devices. - license: - module: - - MIT - xmd: - mbs: - scmurl: https://src.fedoraproject.org/modules/nodejs.git?#3f3665745cb84576f1faa66646cb8c37913ec461 - commit: 3f3665745cb84576f1faa66646cb8c37913ec461 - buildrequires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - rpms: - nodejs: - ref: 65648a2672dc03641b9eaa4d25a8f19d94fd90c3 - requires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 4 - dependencies: - - buildrequires: - platform: [f28] - requires: - platform: [f28] - references: - community: http://nodejs.org - documentation: http://nodejs.org/en/docs - tracker: https://github.com/nodejs/node/issues - profiles: - default: - rpms: - - nodejs - - npm - development: - rpms: - - nodejs - - nodejs-devel - - npm - minimal: - rpms: - - nodejs - api: - rpms: - - nodejs - - nodejs-devel - - npm - components: - rpms: - nodejs: - rationale: Javascript runtime and npm package manager. - repository: git://pkgs.fedoraproject.org/rpms/nodejs - cache: http://pkgs.fedoraproject.org/repo/pkgs/nodejs - ref: 9 - buildorder: 10 - artifacts: - rpms: - - nodejs-1:9.8.0-1.module_1571+4f4bc63d.x86_64 - - nodejs-devel-1:9.8.0-1.module_1571+4f4bc63d.x86_64 - - nodejs-docs-1:9.8.0-1.module_1571+4f4bc63d.noarch - - npm-1:5.6.0-1.9.8.0.1.module_1571+4f4bc63d.x86_64 -... ---- -document: modulemd -version: 2 -data: - name: reviewboard - stream: 2.5 - version: 20180206144254 - context: e0c83381 - summary: A web-based code review tool - description: >- - Review Board is a powerful web-based code review tool that offers developers an - easy way to handle code reviews. It scales well from small projects to large companies - and offers a variety of tools to take much of the stress and time out of the code - review process. - license: - module: - - MIT - xmd: - mbs: - scmurl: https://src.fedoraproject.org/modules/reviewboard.git?#1738e1ce6352c0d4da31ba137cab0b5dc5f30166 - commit: 1738e1ce6352c0d4da31ba137cab0b5dc5f30166 - buildrequires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 3 - django: - ref: 14fb96b250feec2e2c883e06255de2c36faa7313 - stream: 1.6 - filtered_rpms: [] - version: 20180117164842 - rpms: - python-django-multiselectfield: - ref: 149bf58875fb7b55efe29e1735baf96d44eb99a9 - ReviewBoard: - ref: 5d28213f6a797e5ce28ad05ab23f80fe67353da8 - python-django-evolution: - ref: 512424e1fc4b99f6f74c01a4130a4d9402b56b4e - python-django-pipeline: - ref: f019137be96cf86f49a81001fef47a0c7ab6aa35 - python-markdown: - ref: 0af9dd03b4822c04be2742b39b5a4d48ef2d2222 - python-django-haystack: - ref: 20fe71a6fc50a83b24578fbaf86e94a4ca584d31 - python-djblets: - ref: d5634779089456ff3d0ac7b78eec81e13ff4c733 - requires: - platform: - ref: virtual - stream: f28 - filtered_rpms: [] - version: 3 - django: - ref: 14fb96b250feec2e2c883e06255de2c36faa7313 - stream: 1.6 - filtered_rpms: [] - version: 20180117164842 - dependencies: - - buildrequires: - django: [1.6] - platform: [f28] - requires: - django: [1.6] - platform: [f28] - references: - community: https://www.reviewboard.org - documentation: https://www.reviewboard.org/docs - tracker: https://hellosplat.com/s/beanbag/tickets/ - profiles: - default: - rpms: - - ReviewBoard - server: - rpms: - - ReviewBoard - api: - rpms: - - ReviewBoard - - python2-djblets - components: - rpms: - ReviewBoard: - rationale: The Review Board code review tool - repository: git://pkgs.fedoraproject.org/rpms/ReviewBoard - cache: http://pkgs.fedoraproject.org/repo/pkgs/ReviewBoard - ref: 2.5 - buildorder: 20 - python-django-evolution: - rationale: A database modification library used and maintained by the Review - Board upstream - repository: git://pkgs.fedoraproject.org/rpms/python-django-evolution - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-django-evolution - ref: 0.7 - python-django-haystack: - rationale: An older version of the Haystack search library for Django, needed - for compatibility. - repository: git://pkgs.fedoraproject.org/rpms/python-django-haystack - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-django-haystack - ref: 2.4 - python-django-multiselectfield: - rationale: An older version of a mult-select form field needed by Review Board. - repository: git://pkgs.fedoraproject.org/rpms/python-django-multiselectfield - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-django-multiselectfield - ref: 0.1 - python-django-pipeline: - rationale: An older version of this asset-packaging library for Django that - is compatible with Review Board. - repository: git://pkgs.fedoraproject.org/rpms/python-django-pipeline - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-django-pipeline - ref: 1.3 - python-djblets: - rationale: Review Board tool library - repository: git://pkgs.fedoraproject.org/rpms/python-djblets - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-djblets - ref: 0.9 - buildorder: 10 - python-markdown: - rationale: An older version of this Markdown implementation that is compatible - with Review Board. - repository: git://pkgs.fedoraproject.org/rpms/python-markdown - cache: http://pkgs.fedoraproject.org/repo/pkgs/python-markdown - ref: 2.4 - artifacts: - rpms: - - ReviewBoard-0:2.5.17-17.module_d032b812.noarch - - python-django-haystack-docs-0:2.4.1-12.module_d032b812.noarch - - python2-django-evolution-1:0.7.7-12.module_d032b812.noarch - - python2-django-haystack-0:2.4.1-12.module_d032b812.noarch - - python2-django-multiselectfield-0:0.1.3-10.module_d032b812.noarch - - python2-django-pipeline-0:1.3.27-11.module_d032b812.noarch - - python2-djblets-0:0.9.9-13.module_d032b812.noarch - - python2-markdown-0:2.4.1-11.module_d032b812.noarch - - python3-markdown-0:2.4.1-11.module_d032b812.noarch -... ---- -document: modulemd-defaults -version: 1 -data: - module: nodejs - profiles: - 6: [default] - 8: [default] - 9: [default] -... ---- -document: modulemd-defaults -version: 1 -data: - module: reviewboard - stream: 2.5 - profiles: - 2.5: [default] -... ---- -document: modulemd-defaults -version: 1 -data: - module: django - profiles: - 1.6: [default] -... diff --git a/modulemd-1.8.16/test_data/mixed-v2.yaml b/modulemd-1.8.16/test_data/mixed-v2.yaml deleted file mode 100644 index 87906a1..0000000 --- a/modulemd-1.8.16/test_data/mixed-v2.yaml +++ /dev/null @@ -1,375 +0,0 @@ ---- -document: notreal -version: 3 ---- -document: modulemd-defaults -document: someotherdoc -version: threeve ---- -document: modulemd-defaults -version: threeve ---- -document: modulemd-defaults -version: 1 -version: threeve ---- -document: [notreal] -version: 3 ---- -document: notreal -version: [3] ---- -# Document type identifier -document: modulemd -# Module metadata format version -version: 2 -data: - # Module name, optional - # Typically filled in by the buildsystem, using the VCS repository - # name as the name of the module. - name: foo - # Module update stream, optional - # Typically filled in by the buildsystem, using the VCS branch name - # as the name of the stream. - stream: stream-name - # Module version, integer, optional, cannot be negative - # Typically filled in by the buildsystem, using the VCS commit - # timestamp. Module version defines upgrade path for the particular - # update stream. - version: 20160927144203 - # Module context flag, optional - # The context flag serves to distinguish module builds with the - # same name, stream and version and plays an important role in - # future automatic module stream name expansion. - # Filled in by the buildsystem. A short hash of the module's name, - # stream, version and its expanded runtime dependencies. - context: c0ffee43 - # Module artifact architecture, optional - # Contains a string describing the module's artifacts' main hardware - # architecture compatibility, distinguishing the module artifact, - # e.g. a repository, from others with the same name, stream, version and - # context. This is not a generic hardware family (i.e. basearch). - # Examples: i386, i486, armv7hl, x86_64 - # Filled in by the buildsystem during the compose stage. - arch: x86_64 - # A short summary describing the module, required - summary: An example module - # A verbose description of the module, required - description: >- - A module for the demonstration of the metadata format. Also, - the obligatory lorem ipsum dolor sit amet goes right here. - # Service levels, optional - # This is a dictionary of important dates (and possibly supplementary data - # in the future) that describes the end point of certain functionality, - # such as the date when the module will transition to "security fixes only" - # or go completely end-of-life. - # Filled in by the buildsystem. Service level names might have special - # meaning to other systems. Defined externally. - servicelevels: - rawhide: - # EOL dates are the ISO 8601 format. - eol: 2077-10-23 - stable_api: - eol: 2077-10-23 - bug_fixes: - eol: 2077-10-23 - security_fixes: - eol: 2077-10-23 - # Module and content licenses in the Fedora license identifier - # format, required - license: - # Module license, required - # This list covers licenses used for the module metadata, SPEC - # files or extra patches - module: - - MIT - # Content license, optional - # A list of licenses used by the packages in the module. - # This should be populated by build tools, not the module author. - content: - - Beerware - - GPLv2+ - - zlib - # Extensible metadata block - # A dictionary of user-defined keys and values. - # Optional. Defaults to an empty dictionary. - xmd: - some_key: some_data - some_list: - - a - - b - some_dict: - a: alpha - b: beta - some_other_list: - - c - - d - some_other_dict: - another_key: more_data - yet_another_key: - - this - - is - - getting - - silly - # Module dependencies, if any. Optional. - # A list of dictionaries describing build and runtime dependencies - # of this module. Each list item describes a combination of dependencies - # this module can be built or run against. - # Dependency keys are module names, dependency values are lists of - # required streams. The lists can be both inclusive (listing compatible - # streams) or exclusive (accepting every stream except for those listed). - # An empty list implies all active existing streams are supported. - # Requiring multiple streams at build time will result in multiple - # builds. Requiring multiple streams at runtime implies the module - # is compatible with all of them. If the same module streams are listed - # in both the build time and the runtime block, the build tools translate - # the runtime block so that it matches the stream the module was built - # against. Multiple builds result in multiple output modulemd files. - # See below for an example. - # TODO: Provides, conflicts, obsoletes, recommends, etc. - # Do we even need those? - # The example below illustrates how to build the same module in four - # different ways, with varying build time and runtime dependencies. - dependencies: - # Build on all available platforms except for f27, f28 and epel7 - # After build, the runtime dependency will match the one used for - # the build. - - buildrequires: - platform: [-f27, -f28, -epel7] - requires: - platform: [-f27, -f28, -epel7] - # For platform:f27 perform two builds, one with buildtools:v2, another - # with buildtools:v2 in the buildroot. Both will also utilize - # compatible:v3. At runtime, buildtools isn't required and either - # compatible:v3 or compatible:v4 can be installed. - - buildrequires: - platform: [f27] - buildtools: [v1, v2] - compatible: [v3] - requires: - platform: [f27] - compatible: [v3, v4] - # For platform:f28 builds, require either runtime:a or runtime:b at - # runtime. Only one build is performed. - - buildrequires: - platform: [f28] - requires: - platform: [f28] - runtime: [a, b] - # For platform:epel7, build against against all available extras - # streams and moreextras:foo and moreextras:bar. The number of builds - # in this case will be 2 * . - # At runtime, both extras and moreextras will match whatever stream was - # used for build. - - buildrequires: - platform: [epel7] - extras: [] - moreextras: [foo, bar] - requires: - platform: [epel7] - extras: [] - moreextras: [foo, bar] - # References to external resources, typically upstream, optional - references: - # Upstream community website, if it exists, optional - community: http://www.example.com/ - # Upstream documentation, if it exists, optional - documentation: http://www.example.com/ - # Upstream bug tracker, if it exists, optional - tracker: http://www.example.com/ - # Profiles define the end user's use cases for the module. They consist of - # package lists of components to be installed by default if the module is - # enabled. The keys are the profile names and contain package lists by - # component type. There are several profiles defined below. Suggested - # behavior for package managers is to just enable repository for selected - # module. Then users are able to install packages on their own. If they - # select a specific profile, the package manager should install all - # packages of that profile. - # Optional, defaults to no profile definitions. - profiles: - # The default profile, used unless any other profile was selected. - # Optional, defaults to empty lists. - default: - rpms: - - bar - - bar-extras - - baz - # Defines a set of packages which are meant to be installed inside - # container image artifact. - # Optional. - container: - rpms: - - bar - - bar-devel - # This profile provides minimal set of packages providing functionality - # of this module. This is meant to be used on target systems where size - # of the distribution is a real concern. - # Optional. - minimal: - # A verbose description of the module, optional - description: Minimal profile installing only the bar package. - rpms: - - bar - # A set of packages which should be installed into the buildroot of a - # module which depends on this module. Specifically, it is used to - # flesh out the build group in koji. - # Optional. - buildroot: - rpms: - - bar-devel - # Very similar to the buildroot profile above, this is used by the - # build system to specify any additional packages which should be - # installed during the buildSRPMfromSCM step in koji. - # Optional. - srpm-buildroot: - rpms: - - bar-extras - # Test for unusual cases - unusual: - rpms: [] - moreunusual: {} - # Module API - # Optional, defaults to no API. - api: - # The module's public RPM-level API. - # A list of binary RPM names that are considered to be the - # main and stable feature of the module; binary RPMs not listed - # here are considered "unsupported" or "implementation details". - # In the example here we don't list the xyz package as it's only - # included as a dependency of xxx. However, we list a subpackage - # of bar, bar-extras. - # Optional, defaults to an empty list. - rpms: - - bar - - bar-extras - - bar-devel - - baz - - xxx - # Module component filters - # Optional, defaults to no filters. - filter: - # RPM names not to be included in the module. - # By default, all built binary RPMs are included. In the example - # we exclude a subpackage of bar, bar-nonfoo from our module. - # Optional, defaults to an empty list. - rpms: - - baz-nonfoo - # Component build options - # Additional per component type module-wide build options. - # Optional - buildopts: - # RPM-specific build options - # Optional - rpms: - # Additional macros that should be defined in the - # RPM buildroot, appended to the default set. Care should be - # taken so that the newlines are preserved. Literal style - # block is recommended, with or without the trailing newline. - # Optional - macros: | - %demomacro 1 - %demomacro2 %{demomacro}23 - # Functional components of the module, optional - components: - # RPM content of the module, optional - # Keys are the VCS/SRPM names, values dictionaries holding - # additional information. - rpms: - bar: - # Why is this component present. - # A simple, free-form string. - # Required. - rationale: We need this to demonstrate stuff. - # Use this repository if it's different from the build - # system configuration. - # Optional. - repository: https://pagure.io/bar.git - # Use this lookaside cache if it's different from the - # build system configuration. - # Optional. - cache: https://example.com/cache - # Use this specific commit has, branch name or tag for - # the build. If ref is a branch name, the branch HEAD - # will be used. If no ref is given, the master branch - # is assumed. - # Optional. - ref: 26ca0c0 - # baz has no extra options - baz: - rationale: This one is here to demonstrate other stuff. - xxx: - rationale: xxx demonstrates arches and multilib. - # xxx is only available on the listed architectures. - # Optional, defaults to all available arches. - arches: [ i686, x86_64 ] - # A list of architectures with multilib - # installs, i.e. both i686 and x86_64 - # versions will be installed on x86_64. - # Optional, defaults to no multilib. - multilib: [ x86_64 ] - xyz: - rationale: xyz is a bundled dependency of xxx. - # Build order group - # When building, components are sorted by build order tag - # and built in batches grouped by their buildorder value. - # Built batches are then re-tagged into the buildroot. - # Multiple components can have the same buildorder index - # to map them into build groups. - # Optional, defaults to zero. - # Integer, negative values are allowed. - # In this example, bar, baz and xxx are built first in - # no particular order, then tagged into the buildroot, - # then, finally, xyz is built. - buildorder: 10 - # Module content of this module - # Included modules are built in the shared buildroot, together with - # other included content. Keys are module names, values additional - # component information. Note this only includes components and their - # properties from the referenced module and doesn't inherit any - # additional module metadata such as the module's dependencies or - # component buildopts. The included components are built in their - # defined buildorder as sub-build groups. - # Optional - modules: - includedmodule: - # Why is this module included? - # Required - rationale: Included in the stack, just because. - # Link to VCS repository that contains the modulemd file - # if it differs from the buildsystem default configuration. - # Optional. - repository: https://pagure.io/includedmodule.git - # See the rpms ref. - ref: somecoolbranchname - # See the rpms buildorder. - buildorder: 100 - # Artifacts shipped with this module - # This section lists binary artifacts shipped with the module, allowing - # software management tools to handle module bundles. This section is - # populated by the module build system. - # Optional - artifacts: - # RPM artifacts shipped with this module - # A set of NEVRAs associated with this module. - # Optional - rpms: - - bar-0:1.23-1.module_deadbeef.x86_64 - - bar-devel-0:1.23-1.module_deadbeef.x86_64 - - bar-extras-0:1.23-1.module_deadbeef.x86_64 - - baz-0:42-42.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.i686 - - xyz-0:1-1.module_deadbeef.x86_64 ---- -document: someotherdoc -version: threeve ---- -document: modulemd -version: 2 -data: - summary: Foo - description: > - Bar - license: - module: - - MIT diff --git a/modulemd-1.8.16/test_data/translations.yaml b/modulemd-1.8.16/test_data/translations.yaml deleted file mode 100644 index fb024c8..0000000 --- a/modulemd-1.8.16/test_data/translations.yaml +++ /dev/null @@ -1,249 +0,0 @@ ---- -document: modulemd -version: 2 -data: - name: foo - stream: stream-name - version: 20160927144203 - context: c0ffee43 - # Examples: i386, i486, armv7hl, x86_64 - arch: x86_64 - summary: An example module - description: >- - A module for the demonstration of the metadata format. Also, - the obligatory lorem ipsum dolor sit amet goes right here. - servicelevels: - rawhide: - # EOL dates are the ISO 8601 format. - eol: 2077-10-23 - stable_api: - eol: 2077-10-23 - bug_fixes: - eol: 2077-10-23 - security_fixes: - eol: 2077-10-23 - license: - module: - - MIT - content: - - Beerware - - GPLv2+ - - zlib - xmd: - some_key: some_data - dependencies: - - buildrequires: - platform: [-f27, -f28, -epel7] - requires: - platform: [-f27, -f28, -epel7] - - buildrequires: - platform: [f27] - buildtools: [v1, v2] - compatible: [v3] - requires: - platform: [f27] - compatible: [v3, v4] - - buildrequires: - platform: [f28] - requires: - platform: [f28] - runtime: [a, b] - - buildrequires: - platform: [epel7] - extras: [] - moreextras: [foo, bar] - requires: - platform: [epel7] - extras: [] - moreextras: [foo, bar] - references: - community: http://www.example.com/ - documentation: http://www.example.com/ - tracker: http://www.example.com/ - profiles: - default: - description: An example profile - rpms: - - bar - - bar-extras - - baz - container: - rpms: - - bar - - bar-devel - minimal: - description: Minimal profile installing only the bar package. - rpms: - - bar - buildroot: - rpms: - - bar-devel - srpm-buildroot: - rpms: - - bar-extras - api: - rpms: - - bar - - bar-extras - - bar-devel - - baz - - xxx - filter: - rpms: - - baz-nonfoo - buildopts: - rpms: - macros: | - %demomacro 1 - %demomacro2 %{demomacro}23 - whitelist: - - fooscl-1-bar - - fooscl-1-baz - - xxx - - xyz - components: - rpms: - bar: - rationale: We need this to demonstrate stuff. - repository: https://pagure.io/bar.git - cache: https://example.com/cache - ref: 26ca0c0 - baz: - rationale: This one is here to demonstrate other stuff. - xxx: - rationale: xxx demonstrates arches and multilib. - arches: [ i686, x86_64 ] - multilib: [ x86_64 ] - xyz: - rationale: xyz is a bundled dependency of xxx. - buildorder: 10 - modules: - includedmodule: - rationale: Included in the stack, just because. - repository: https://pagure.io/includedmodule.git - ref: somecoolbranchname - buildorder: 100 - artifacts: - rpms: - - bar-0:1.23-1.module_deadbeef.x86_64 - - bar-devel-0:1.23-1.module_deadbeef.x86_64 - - bar-extras-0:1.23-1.module_deadbeef.x86_64 - - baz-0:42-42.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.x86_64 - - xxx-0:1-1.module_deadbeef.i686 - - xyz-0:1-1.module_deadbeef.x86_64 -... ---- -document: modulemd-translations -version: 1 -data: - # Module name that matches - module: foo - # Module stream that doesn't match - stream: nonmatchingstream - modified: 201805231425 - translations: - en_GB: - summary: An example module - description: An example module. - profiles: - default: An example profile - es_ES: - summary: Un módulo de ejemplo - description: Un módulo de ejemplo. - profiles: - default: Un perfil de ejemplo - ja: - summary: モジュールの例 - description: モジュールの例です。 - profiles: - default: プロファイルの例 -... ---- -document: modulemd-translations -version: 1 -data: - # Module name that doesn't match - module: notarealmodule - # Module stream that doesn't match - stream: nonmatchingstream - modified: 201805231425 - translations: - en_GB: - summary: An example module - description: An example module. - profiles: - default: An example profile - es_ES: - summary: Un módulo de ejemplo - description: Un módulo de ejemplo. - profiles: - default: Un perfil de ejemplo - ja: - summary: モジュールの例 - description: モジュールの例です。 - profiles: - default: プロファイルの例 -... ---- -document: modulemd-translations -version: 1 -data: - # Module name that matches - module: foo - # Module stream that matches - stream: stream-name - modified: 201805231425 - translations: - en_GB: - summary: An example module - description: An example module. - profiles: - default: An example profile - es_ES: - summary: Un módulo de ejemplo - description: Un módulo de ejemplo. - profiles: - default: Un perfil de ejemplo - ja: - summary: モジュールの例 - description: モジュールの例です。 - profiles: - default: プロファイルの例 -... ---- -document: modulemd-translations -version: 1 -data: - # Module name that matches - module: foo - # Module stream that matches - stream: stream-name - # Modified time way in the past - modified: 201105231425 - translations: - en_GB: - summary: An old example module - description: An example module. - profiles: - default: An example profile - es_ES: - summary: Un módulo de ejemplo - description: Un módulo de ejemplo. - profiles: - default: Un perfil de ejemplo - ja: - summary: モジュールの例 - description: モジュールの例です。 - profiles: - default: プロファイルの例 -... ---- -document: modulemd-defaults -version: 1 -data: - module: foo - stream: stream-name - profiles: - stream_name: [default] -... \ No newline at end of file diff --git a/modulemd-1.8.16/translations/spec.v1.yaml b/modulemd-1.8.16/translations/spec.v1.yaml deleted file mode 100644 index a17ea9b..0000000 --- a/modulemd-1.8.16/translations/spec.v1.yaml +++ /dev/null @@ -1,36 +0,0 @@ -# Document type identifier -document: modulemd-translations -# Module metadata format version -version: 1 -data: - # Module name these translations apply to (required) - module: foo - # Module stream these translations apply to (required) - stream: latest - # A 64-bit unsigned integer. Use YYYYMMDDHHMM to easily identify the last - # modification time. Use UTC for consistency. - # When merging, entries with a newer 'modified' value will override any - # earlier values. (required) - modified: 201805231425 - # Translations (section is required, may contain zero entries) - translations: - en_GB: - # The translation of the summary. (required) - summary: An example module - # The translation of the description. (required) - description: An example module. - # Translation for profile descriptions (optional) - profiles: - profile_a: An example profile - es_ES: - summary: Un módulo de ejemplo - description: Un módulo de ejemplo. - # Translation for profile descriptions (optional) - profiles: - profile_a: Un perfil de ejemplo - ja: - summary: モジュールの例 - description: モジュールの例です。 - # Translations for profile descriptions (optional) - profiles: - profile_a: プロファイルの例 \ No newline at end of file