From 3ccb71840f27b7b8803182cec41159d2c90fcfba Mon Sep 17 00:00:00 2001 From: whoisxxx Date: Tue, 9 Jun 2020 21:15:57 +0800 Subject: [PATCH 1/5] update assets/Core_openEuler-20.03-LTS.list. --- assets/Core_openEuler-20.03-LTS.list | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/assets/Core_openEuler-20.03-LTS.list b/assets/Core_openEuler-20.03-LTS.list index f6a3b248..ddcddfd8 100644 --- a/assets/Core_openEuler-20.03-LTS.list +++ b/assets/Core_openEuler-20.03-LTS.list @@ -1,5 +1,8 @@ # This is a list of RPMS which support basic Linux function such as dnf, ssh. -# +# You can get this list via +# "dnf install NetworkManager coreutils dnf dnf-plugins-core vim openssh +# passwd procps-ng systemd systemd-udev" +# ================================================================================ Package Arch Version Repo Size ================================================================================ -- Gitee From 5444fdd4d3ae3c3314fa71cafa6db619a792d366 Mon Sep 17 00:00:00 2001 From: whoisxxx Date: Wed, 22 Jul 2020 18:36:00 +0800 Subject: [PATCH 2/5] Modify script of mkrootfs Mv minimal installation list to global.inc & fix some bug Signed-off-by: whoisxxx --- globals.inc | 5 +++++ mkfs-oe.sh | 40 ++++++++++++++++++++++------------------ 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/globals.inc b/globals.inc index a2058934..289f0372 100755 --- a/globals.inc +++ b/globals.inc @@ -23,3 +23,8 @@ DEBUG=true #WEB_RPM_REPO_SRV=http://192.168.0.100:8000/risc-v/RPMS/ WEB_RPM_REPO_SRV=https//isrc.iscas.ac.cn/mirror/fedora/alt/risc-v/RPMS/ #WEB_RPM_REPO_SYNC=http://192.168.0.104/oelriscv + +# Preinstalled packages +CORE_RPMS="systemd vim coreutils net-tools systemd-udev libssh openssh passwd NetworkManager dnf wget procps-ng dnf-plugins-core" +BUILD_TOOLS="rpm-build autoconf make gdb dnf-utils git texinfo gcc gcc-c++" +OBS_RPMS="osc build sudo iputils ntpdate vim cpio curl perl-Compress-Zlib perl-TimeDate perl-Data-Dumper perl-XML-Parser screen psmisc bash binutils bsdtar lzma util-linux openslp lvm2 perl-Digest-MD5 git screen tmux wget expect" diff --git a/mkfs-oe.sh b/mkfs-oe.sh index f6ab396f..568c15d6 100755 --- a/mkfs-oe.sh +++ b/mkfs-oe.sh @@ -8,18 +8,18 @@ # in RISC-V system, or x86/aarch64 system that support # cross-arch dnf installation. -. globals.inc +# . globals.inc -CORE_RPMS="systemd vim coreutils net-tools systemd-udev libssh openssh passwd git NetworkManager dnf wget procps-ng dnf-plugins-core rpm-build" +INSTALL_RPMS="$CORE_RPMS $BUILD_TOOLS" set -e set -x mkdir -p /var/tmp/ -rm -f /var/tmp/* +rm -f /var/tmp/oe-rv.raw # Create parted and formatted disk -truncate -s 10G /var/tmp/oe-rv.raw +truncate -s 2G /var/tmp/oe-rv.raw losetup -P $(losetup -f) /var/tmp/oe-rv.raw loopdev=$(losetup -a | grep oe-rv.raw | awk -F: '{print $1;}') fdisk $loopdev << EOF @@ -33,32 +33,36 @@ EOF mkfs -t ext4 ${loopdev}p1 # Create the installroot -mkdir /var/tmp/mnt +mkdir -p /var/tmp/mnt mount -o loop /${loopdev}p1 /var/tmp/mnt + mkdir /var/tmp/mnt/{dev,proc,sys} -mount -t proc /proc /var/tmp/mnt/proc -mount --rbind /sys /var/tmp/mnt/sys -mount --rbind /dev /var/tmp/mnt/dev -mount --make-rslave /var/tmp/mnt/dev -mount --make-rslave /var/tmp/mnt/sys +mkdir /var/tmp/mnt/dev/pts +mount -t proc proc /var/tmp/mnt/proc +mount -t sysfs sysfs /var/tmp/mnt/sys +mount -t devpts pts /var/tmp/mnt/dev/pts +mount -o bind /dev /var/tmp/mnt/dev rpm --root /var/tmp/mnt --initdb -sed -e "s,@RPMREPOWEBSRV@,$WEB_RPM_REPO_SRV,g" < ./assets/openEuler-rv64.repo.in > /etc/yum.repo.d/oe-riscv.repo -dnf install --installroot /var/tmp/mnt --repo oe-rv $CORE_RPMS -y -echo "Change default passwd to empty" -sed -i '1s/*//' /var/tmp/mnt/etc/shadow +dnf install --installroot /var/tmp/mnt $INSTALL_RPMS +cp /etc/yum.repos.d/oe-rv.repo /var/tmp/mnt/etc/yum.repos.d/ + +echo "Set default passwd to openEuler12#$" + +echo "root:openEuler12#$" | chpasswd -R /var/tmp/mnt/ echo openEuler-RISCV-rare > /var/tmp/mnt/etc/hostname sync sleep 5 -umount -R /var/tmp/mnt/dev -umount -R /var/tmp/mnt/sys -umount /var/tmp/mnt/proc +umount -l /var/tmp/mnt/dev +umount -l /var/tmp/mnt/dev/pts +umount /var/tmp/mnt/sys +umount /var/tmp/mnt/proc umount /var/tmp/mnt losetup -d $loopdev -qemu-img convert -f raw -O qcow2 /var/tmp/oe-rv.raw /var/tmp/oe-rv-rare.qcow2 +qemu-img convert -f raw -O qcow2 /var/tmp/oe-rv.raw /var/tmp/oe-rv.qcow2 rm -rf /var/tmp/oe-rv.raw -- Gitee From 083548cc95e1a79c6d34c67b6c9eba02989b71a7 Mon Sep 17 00:00:00 2001 From: whoisxxx Date: Thu, 6 Aug 2020 16:48:39 +0800 Subject: [PATCH 3/5] Mv initial installation rpm list Signed-off-by: whoisxxx --- globals.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/globals.inc b/globals.inc index 289f0372..9f55dcd4 100755 --- a/globals.inc +++ b/globals.inc @@ -26,5 +26,5 @@ WEB_RPM_REPO_SRV=https//isrc.iscas.ac.cn/mirror/fedora/alt/risc-v/RPMS/ # Preinstalled packages CORE_RPMS="systemd vim coreutils net-tools systemd-udev libssh openssh passwd NetworkManager dnf wget procps-ng dnf-plugins-core" -BUILD_TOOLS="rpm-build autoconf make gdb dnf-utils git texinfo gcc gcc-c++" +BUILD_TOOLS="rpm-build autoconf make gdb dnf-utils git texinfo gcc gcc-c++ hostname" OBS_RPMS="osc build sudo iputils ntpdate vim cpio curl perl-Compress-Zlib perl-TimeDate perl-Data-Dumper perl-XML-Parser screen psmisc bash binutils bsdtar lzma util-linux openslp lvm2 perl-Digest-MD5 git screen tmux wget expect" -- Gitee From 6b3e200c1dc79d1136bd3bcea0c041a5feb7d06e Mon Sep 17 00:00:00 2001 From: whoisxxx Date: Thu, 6 Aug 2020 16:55:59 +0800 Subject: [PATCH 4/5] Temporarly remove qemu-img tool Currently qemu-img is not avaliable in openEuler RISC-V environment, enable it when it is ready. Signed-off-by: whoisxxx --- mkfs-oe.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/mkfs-oe.sh b/mkfs-oe.sh index 568c15d6..351b573e 100755 --- a/mkfs-oe.sh +++ b/mkfs-oe.sh @@ -8,7 +8,7 @@ # in RISC-V system, or x86/aarch64 system that support # cross-arch dnf installation. -# . globals.inc +. globals.inc INSTALL_RPMS="$CORE_RPMS $BUILD_TOOLS" @@ -19,7 +19,7 @@ mkdir -p /var/tmp/ rm -f /var/tmp/oe-rv.raw # Create parted and formatted disk -truncate -s 2G /var/tmp/oe-rv.raw +truncate -s 10G /var/tmp/oe-rv.raw losetup -P $(losetup -f) /var/tmp/oe-rv.raw loopdev=$(losetup -a | grep oe-rv.raw | awk -F: '{print $1;}') fdisk $loopdev << EOF @@ -36,8 +36,8 @@ mkfs -t ext4 ${loopdev}p1 mkdir -p /var/tmp/mnt mount -o loop /${loopdev}p1 /var/tmp/mnt -mkdir /var/tmp/mnt/{dev,proc,sys} -mkdir /var/tmp/mnt/dev/pts +mkdir -p /var/tmp/mnt/{dev,proc,sys} +mkdir -p /var/tmp/mnt/dev/pts mount -t proc proc /var/tmp/mnt/proc mount -t sysfs sysfs /var/tmp/mnt/sys mount -t devpts pts /var/tmp/mnt/dev/pts @@ -45,6 +45,7 @@ mount -o bind /dev /var/tmp/mnt/dev rpm --root /var/tmp/mnt --initdb +sed -e "s,@RPMREPOWEBSRV@,$WEB_RPM_REPO_SRV,g" < ./assets/openEuler-rv64.repo.in > /etc/yum.repo.d/oe-riscv.repo dnf install --installroot /var/tmp/mnt $INSTALL_RPMS cp /etc/yum.repos.d/oe-rv.repo /var/tmp/mnt/etc/yum.repos.d/ @@ -64,5 +65,7 @@ umount /var/tmp/mnt/proc umount /var/tmp/mnt losetup -d $loopdev -qemu-img convert -f raw -O qcow2 /var/tmp/oe-rv.raw /var/tmp/oe-rv.qcow2 -rm -rf /var/tmp/oe-rv.raw +# Currently lack of qemu-img on openEuler RISC-V, +# you can do this step in a x86 or aarch64 host +#qemu-img convert -f raw -O qcow2 /var/tmp/oe-rv.raw /var/tmp/oe-rv.qcow2 +#rm -rf /var/tmp/oe-rv.raw -- Gitee From 563f93e1ead7eaefc234081de7c6666450fdbaff Mon Sep 17 00:00:00 2001 From: whoisxxx Date: Mon, 17 Aug 2020 19:15:40 +0800 Subject: [PATCH 5/5] RISC-V package list and convert tools Signed-off-by: whoisxxx --- RISC-V_proj_list/RISC-V_list.yaml | 3097 +++++++++++++++++++++++++++++ RISC-V_proj_list/service2yaml.py | 172 ++ 2 files changed, 3269 insertions(+) create mode 100644 RISC-V_proj_list/RISC-V_list.yaml create mode 100644 RISC-V_proj_list/service2yaml.py diff --git a/RISC-V_proj_list/RISC-V_list.yaml b/RISC-V_proj_list/RISC-V_list.yaml new file mode 100644 index 00000000..f124d4a0 --- /dev/null +++ b/RISC-V_proj_list/RISC-V_list.yaml @@ -0,0 +1,3097 @@ +## Sample yaml file: +#- name:risc-v-kernel +# src: +# url: openeuler/kernel +# revision: v5.5.19 #default master +# version: 5.5.19 +# exclude: .git +# compression: bz2 +# file2compress: *.tar +# spec: +# url: src-openeuler/risc-v-kernel +# exclude: kernel.spec +# +packages: +- name:CUnit + spec: + url: src-openeuler/CUnit +- name:CreateImage + compression: bz2 + file2compress: *.tar +- name:GeoIP + spec: + url: src-openeuler/GeoIP +- name:GeoIP-GeoLite-data + spec: + url: src-openeuler/GeoIP-GeoLite-data +- name:Judy + spec: + url: src-openeuler/Judy +- name:ModemManager + spec: + url: src-openeuler/ModemManager +- name:NetworkManager + spec: + url: src-openeuler/NetworkManager +- name:TeXamator + spec: + url: src-openeuler/TeXamator +- name:abattis-cantarell-fonts + spec: + url: src-openeuler/abattis-cantarell-fonts +- name:accountsservice + spec: + url: src-openeuler/accountsservice +- name:acl + spec: + url: src-openeuler/acl +- name:adcli + spec: + url: src-openeuler/adcli +- name:adobe-mappings-cmap + spec: + url: src-openeuler/adobe-mappings-cmap +- name:adobe-mappings-pdf + spec: + url: src-openeuler/adobe-mappings-pdf +- name:adwaita-icon-theme + spec: + url: src-openeuler/adwaita-icon-theme +- name:alsa-firmware + spec: + url: src-openeuler/alsa-firmware +- name:alsa-lib + spec: + url: src-openeuler/alsa-lib +- name:alsa-tools + spec: + url: src-openeuler/alsa-tools +- name:anaconda-user-help + spec: + url: src-openeuler/anaconda-user-help +- name:annobin + spec: + url: src-openeuler/annobin +- name:anthy + spec: + url: src-openeuler/anthy +- name:apache2-mod_xforward + spec: + url: src-openeuler/apache2-mod_xforward +- name:apr + spec: + url: src-openeuler/apr +- name:apr-util + spec: + url: src-openeuler/apr-util +- name:argon2 + spec: + url: src-openeuler/argon2 +- name:arptables + spec: + url: src-openeuler/arptables +- name:arpwatch + spec: + url: src-openeuler/arpwatch +- name:asciidoc + spec: + url: src-openeuler/asciidoc +- name:aspell + spec: + url: src-openeuler/aspell +- name:at-spi2-atk + spec: + url: src-openeuler/at-spi2-atk +- name:at-spi2-core + spec: + url: src-openeuler/at-spi2-core +- name:atf + spec: + url: src-openeuler/atf +- name:atk + spec: + url: src-openeuler/atk +- name:atkmm + spec: + url: src-openeuler/atkmm +- name:atmel-firmware + spec: + url: src-openeuler/atmel-firmware +- name:attr + spec: + url: src-openeuler/attr +- name:audiofile + spec: + url: src-openeuler/audiofile +- name:audit + spec: + url: src-openeuler/audit +- name:augeas + spec: + url: src-openeuler/augeas +- name:autoconf + spec: + url: src-openeuler/autoconf +- name:autoconf-archive + spec: + url: src-openeuler/autoconf-archive +- name:autoconf213 + spec: + url: src-openeuler/autoconf213 +- name:autogen + spec: + url: src-openeuler/autogen +- name:automake + spec: + url: src-openeuler/automake +- name:avahi + spec: + url: src-openeuler/avahi +- name:babel + spec: + url: src-openeuler/babel +- name:babeltrace + spec: + url: src-openeuler/babeltrace +- name:babl + spec: + url: src-openeuler/babl +- name:basesystem + spec: + url: src-openeuler/basesystem +- name:bash + spec: + url: src-openeuler/bash +- name:bash-completion + spec: + url: src-openeuler/bash-completion +- name:bc + spec: + url: src-openeuler/bc +- name:bind + spec: + url: src-openeuler/bind +- name:binutils + spec: + url: src-openeuler/binutils +- name:bison + spec: + url: src-openeuler/bison +- name:bluez + spec: + url: src-openeuler/bluez +- name:boost + spec: + url: src-openeuler/boost +- name:bpg-fonts + spec: + url: src-openeuler/bpg-fonts +- name:bridge-utils + spec: + url: src-openeuler/bridge-utils +- name:brotli + spec: + url: src-openeuler/brotli +- name:bubblewrap + spec: + url: src-openeuler/bubblewrap +- name:byacc + spec: + url: src-openeuler/byacc +- name:bzip2 + spec: + url: src-openeuler/bzip2 +- name:ca-certificates + spec: + url: src-openeuler/ca-certificates +- name:cachefilesd + spec: + url: src-openeuler/cachefilesd +- name:cairo + spec: + url: src-openeuler/cairo +- name:cdparanoia + spec: + url: src-openeuler/cdparanoia +- name:check + spec: + url: src-openeuler/check +- name:chkconfig + spec: + url: src-openeuler/chkconfig +- name:chrpath + spec: + url: src-openeuler/chrpath +- name:cim-schema + spec: + url: src-openeuler/cim-schema +- name:cjkuni-ukai-fonts + spec: + url: src-openeuler/cjkuni-ukai-fonts +- name:cldr-emoji-annotation + spec: + url: src-openeuler/cldr-emoji-annotation +- name:cloud-utils + spec: + url: src-openeuler/cloud-utils +- name:cmake + spec: + url: src-openeuler/cmake +- name:cmocka + spec: + url: src-openeuler/cmocka +- name:color-filesystem + spec: + url: src-openeuler/color-filesystem +- name:colord + spec: + url: src-openeuler/colord +- name:convmv + spec: + url: src-openeuler/convmv +- name:copy-jdk-configs + spec: + url: src-openeuler/copy-jdk-configs +- name:coreutils + spec: + url: src-openeuler/coreutils +- name:cpio + spec: + url: src-openeuler/cpio +- name:cppunit + spec: + url: src-openeuler/cppunit +- name:cracklib + spec: + url: src-openeuler/cracklib +- name:cronie + spec: + url: src-openeuler/cronie +- name:crontabs + spec: + url: src-openeuler/crontabs +- name:crypto-policies + spec: + url: src-openeuler/crypto-policies +- name:cryptsetup + spec: + url: src-openeuler/cryptsetup +- name:cscope + spec: + url: src-openeuler/cscope +- name:ctags + spec: + url: src-openeuler/ctags +- name:cups + spec: + url: src-openeuler/cups +- name:curl + spec: + url: src-openeuler/curl +- name:custom_build_tool + spec: + url: src-openeuler/custom_build_tool + compression: bz2 + file2compress: *.tar +- name:cyrus-sasl + spec: + url: src-openeuler/cyrus-sasl +- name:dblatex + spec: + url: src-openeuler/dblatex +- name:dbus + spec: + url: src-openeuler/dbus +- name:dbus-glib + spec: + url: src-openeuler/dbus-glib +- name:dbus-python + spec: + url: src-openeuler/dbus-python +- name:debootstrap + spec: + url: src-openeuler/debootstrap +- name:dejagnu + spec: + url: src-openeuler/dejagnu +- name:dejavu-fonts + spec: + url: src-openeuler/dejavu-fonts +- name:deltarpm + spec: + url: src-openeuler/deltarpm +- name:desktop-file-utils + spec: + url: src-openeuler/desktop-file-utils +- name:dhcp + spec: + url: src-openeuler/dhcp +- name:diffstat + spec: + url: src-openeuler/diffstat +- name:diffutils + spec: + url: src-openeuler/diffutils +- name:dkms + spec: + url: src-openeuler/dkms +- name:dnf + spec: + url: src-openeuler/dnf +- name:dnf-plugins-core + spec: + url: src-openeuler/dnf-plugins-core +- name:docbook-dtds + spec: + url: src-openeuler/docbook-dtds +- name:docbook-style-dsssl + spec: + url: src-openeuler/docbook-style-dsssl +- name:docbook-style-xsl + spec: + url: src-openeuler/docbook-style-xsl +- name:docbook-utils + spec: + url: src-openeuler/docbook-utils +- name:docbook5-style-xsl + spec: + url: src-openeuler/docbook5-style-xsl +- name:docker-compose + spec: + url: src-openeuler/docker-compose +- name:dos2unix + spec: + url: src-openeuler/dos2unix +- name:dosfstools + spec: + url: src-openeuler/dosfstools +- name:dotconf + spec: + url: src-openeuler/dotconf +- name:doxygen + spec: + url: src-openeuler/doxygen +- name:dwz + spec: + url: src-openeuler/dwz +- name:e2fsprogs + spec: + url: src-openeuler/e2fsprogs +- name:ebtables + spec: + url: src-openeuler/ebtables +- name:ed + spec: + url: src-openeuler/ed +- name:efi-rpm-macros + spec: + url: src-openeuler/efi-rpm-macros +- name:eglexternalplatform + spec: + url: src-openeuler/eglexternalplatform +- name:elfutils + spec: + url: src-openeuler/elfutils +- name:elinks + spec: + url: src-openeuler/elinks +- name:emacs + spec: + url: src-openeuler/emacs +- name:emacs-auctex + spec: + url: src-openeuler/emacs-auctex +- name:enchant2 + spec: + url: src-openeuler/enchant2 +- name:environment-modules + spec: + url: src-openeuler/environment-modules +- name:ethtool + spec: + url: src-openeuler/ethtool +- name:expat + spec: + url: src-openeuler/expat +- name:expect + spec: + url: src-openeuler/expect +- name:fakechroot + spec: + url: src-openeuler/fakechroot +- name:fdupes + spec: + url: src-openeuler/fdupes +- name:file + spec: + url: src-openeuler/file +- name:file-roller + spec: + url: src-openeuler/file-roller +- name:filesystem + spec: + url: src-openeuler/filesystem +- name:findutils + spec: + url: src-openeuler/findutils +- name:fipscheck + spec: + url: src-openeuler/fipscheck +- name:firewalld + spec: + url: src-openeuler/firewalld +- name:flac + spec: + url: src-openeuler/flac +- name:flex + spec: + url: src-openeuler/flex +- name:fltk + spec: + url: src-openeuler/fltk +- name:fontconfig + spec: + url: src-openeuler/fontconfig +- name:fonts-rpm-macros + spec: + url: src-openeuler/fonts-rpm-macros +- name:fpaste + spec: + url: src-openeuler/fpaste +- name:freeglut + spec: + url: src-openeuler/freeglut +- name:freetype + spec: + url: src-openeuler/freetype +- name:fribidi + spec: + url: src-openeuler/fribidi +- name:fros + spec: + url: src-openeuler/fros +- name:fuse + spec: + url: src-openeuler/fuse +- name:fuse-python + spec: + url: src-openeuler/fuse-python +- name:fxload + spec: + url: src-openeuler/fxload +- name:gamin + spec: + url: src-openeuler/gamin +- name:gawk + spec: + url: src-openeuler/gawk +- name:gc + spec: + url: src-openeuler/gc +- name:gcab + spec: + url: src-openeuler/gcab +- name:gcc + spec: + url: src-openeuler/gcc +- name:gcc_secure + spec: + url: src-openeuler/gcc_secure +- name:gcr + spec: + url: src-openeuler/gcr +- name:gd + spec: + url: src-openeuler/gd +- name:gdb + spec: + url: src-openeuler/gdb +- name:gdbm + spec: + url: src-openeuler/gdbm +- name:gdk-pixbuf2 + spec: + url: src-openeuler/gdk-pixbuf2 +- name:gdm + spec: + url: src-openeuler/gdm +- name:geoclue2 + spec: + url: src-openeuler/geoclue2 +- name:geolite2 + spec: + url: src-openeuler/geolite2 +- name:gettext + spec: + url: src-openeuler/gettext +- name:gflags + spec: + url: src-openeuler/gflags +- name:ghostscript + spec: + url: src-openeuler/ghostscript +- name:giflib + spec: + url: src-openeuler/giflib +- name:git + spec: + url: src-openeuler/git +- name:glib + spec: + url: src-openeuler/glib +- name:glib-networking + spec: + url: src-openeuler/glib-networking +- name:glib2 + spec: + url: src-openeuler/glib2 +- name:glibc + spec: + url: src-openeuler/glibc +- name:glibmm24 + spec: + url: src-openeuler/glibmm24 +- name:gmp + spec: + url: src-openeuler/gmp +- name:gnome-common + spec: + url: src-openeuler/gnome-common +- name:gnupg2 + spec: + url: src-openeuler/gnupg2 +- name:gnutls + spec: + url: src-openeuler/gnutls +- name:gobject-introspection + spec: + url: src-openeuler/gobject-introspection +- name:google-droid-fonts + spec: + url: src-openeuler/google-droid-fonts +- name:gperf + spec: + url: src-openeuler/gperf +- name:gpgme + spec: + url: src-openeuler/gpgme +- name:gpm + spec: + url: src-openeuler/gpm +- name:graphite2 + spec: + url: src-openeuler/graphite2 +- name:graphviz + spec: + url: src-openeuler/graphviz +- name:grep + spec: + url: src-openeuler/grep +- name:groff + spec: + url: src-openeuler/groff +- name:grubby + spec: + url: src-openeuler/grubby +- name:gsettings-desktop-schemas + spec: + url: src-openeuler/gsettings-desktop-schemas +- name:gsm + spec: + url: src-openeuler/gsm +- name:gstreamer + spec: + url: src-openeuler/gstreamer +- name:gstreamer-plugins-base + spec: + url: src-openeuler/gstreamer-plugins-base +- name:gstreamer-plugins-good + spec: + url: src-openeuler/gstreamer-plugins-good +- name:gstreamer1 + spec: + url: src-openeuler/gstreamer1 +- name:gstreamer1-plugins-bad-free + spec: + url: src-openeuler/gstreamer1-plugins-bad-free +- name:gstreamer1-plugins-base + spec: + url: src-openeuler/gstreamer1-plugins-base +- name:gstreamer1-plugins-good + spec: + url: src-openeuler/gstreamer1-plugins-good +- name:gtk + spec: + url: src-openeuler/gtk +- name:gtk-doc + spec: + url: src-openeuler/gtk-doc +- name:gtk-vnc + spec: + url: src-openeuler/gtk-vnc +- name:gtk2 + spec: + url: src-openeuler/gtk2 +- name:gtk3 + spec: + url: src-openeuler/gtk3 +- name:guile + spec: + url: src-openeuler/guile +- name:gzip + spec: + url: src-openeuler/gzip +- name:harfbuzz + spec: + url: src-openeuler/harfbuzz +- name:haveged + spec: + url: src-openeuler/haveged +- name:hdparm + spec: + url: src-openeuler/hdparm +- name:help2man + spec: + url: src-openeuler/help2man +- name:hfsplus-tools + spec: + url: src-openeuler/hfsplus-tools +- name:hicolor-icon-theme + spec: + url: src-openeuler/hicolor-icon-theme +- name:hostname + spec: + url: src-openeuler/hostname +- name:httpd + spec: + url: src-openeuler/httpd +- name:hwdata + spec: + url: src-openeuler/hwdata +- name:hyphen + spec: + url: src-openeuler/hyphen +- name:i2c-tools + spec: + url: src-openeuler/i2c-tools +- name:icfg + spec: + url: src-openeuler/icfg +- name:icoutils + spec: + url: src-openeuler/icoutils +- name:icu + spec: + url: src-openeuler/icu +- name:ima-evm-utils + spec: + url: src-openeuler/ima-evm-utils +- name:initscripts + spec: + url: src-openeuler/initscripts +- name:intltool + spec: + url: src-openeuler/intltool +- name:iotop + spec: + url: src-openeuler/iotop +- name:ipcalc + spec: + url: src-openeuler/ipcalc +- name:iperf3 + spec: + url: src-openeuler/iperf3 +- name:iproute + spec: + url: src-openeuler/iproute +- name:ipset + spec: + url: src-openeuler/ipset +- name:iptables + spec: + url: src-openeuler/iptables +- name:iputils + spec: + url: src-openeuler/iputils +- name:ipxe + spec: + url: src-openeuler/ipxe +- name:irqbalance + spec: + url: src-openeuler/irqbalance +- name:iso-codes + spec: + url: src-openeuler/iso-codes +- name:itstool + spec: + url: src-openeuler/itstool +- name:ivtv-firmware + spec: + url: src-openeuler/ivtv-firmware +- name:jansson + spec: + url: src-openeuler/jansson +- name:javapackages-tools + spec: + url: src-openeuler/javapackages-tools +- name:jbig2dec + spec: + url: src-openeuler/jbig2dec +- name:jbigkit + spec: + url: src-openeuler/jbigkit +- name:jemalloc + spec: + url: src-openeuler/jemalloc +- name:jfsutils + spec: + url: src-openeuler/jfsutils +- name:jomolhari-fonts + spec: + url: src-openeuler/jomolhari-fonts +- name:json-c + spec: + url: src-openeuler/json-c +- name:json-glib + spec: + url: src-openeuler/json-glib +- name:jsoncpp + spec: + url: src-openeuler/jsoncpp +- name:julietaula-montserrat-fonts + spec: + url: src-openeuler/julietaula-montserrat-fonts +- name:kde-filesystem + spec: + url: src-openeuler/kde-filesystem +- name:kde-settings + spec: + url: src-openeuler/kde-settings +- name:keyrings-filesystem + spec: + url: src-openeuler/keyrings-filesystem +- name:keyutils + spec: + url: src-openeuler/keyutils +- name:khmeros-fonts + spec: + url: src-openeuler/khmeros-fonts +- name:kmod + spec: + url: src-openeuler/kmod +- name:krb5 + spec: + url: src-openeuler/krb5 +- name:lato-fonts + spec: + url: src-openeuler/lato-fonts +- name:lcms2 + spec: + url: src-openeuler/lcms2 +- name:less + spec: + url: src-openeuler/less +- name:libICE + spec: + url: src-openeuler/libICE +- name:libSM + spec: + url: src-openeuler/libSM +- name:libX11 + spec: + url: src-openeuler/libX11 +- name:libXau + spec: + url: src-openeuler/libXau +- name:libXaw + spec: + url: src-openeuler/libXaw +- name:libXcomposite + spec: + url: src-openeuler/libXcomposite +- name:libXcursor + spec: + url: src-openeuler/libXcursor +- name:libXdamage + spec: + url: src-openeuler/libXdamage +- name:libXdmcp + spec: + url: src-openeuler/libXdmcp +- name:libXext + spec: + url: src-openeuler/libXext +- name:libXfixes + spec: + url: src-openeuler/libXfixes +- name:libXft + spec: + url: src-openeuler/libXft +- name:libXi + spec: + url: src-openeuler/libXi +- name:libXinerama + spec: + url: src-openeuler/libXinerama +- name:libXmu + spec: + url: src-openeuler/libXmu +- name:libXpm + spec: + url: src-openeuler/libXpm +- name:libXrandr + spec: + url: src-openeuler/libXrandr +- name:libXrender + spec: + url: src-openeuler/libXrender +- name:libXt + spec: + url: src-openeuler/libXt +- name:libXtst + spec: + url: src-openeuler/libXtst +- name:libXxf86dga + spec: + url: src-openeuler/libXxf86dga +- name:libXxf86misc + spec: + url: src-openeuler/libXxf86misc +- name:libXxf86vm + spec: + url: src-openeuler/libXxf86vm +- name:libaec + spec: + url: src-openeuler/libaec +- name:libaesgm + spec: + url: src-openeuler/libaesgm +- name:libaio + spec: + url: src-openeuler/libaio +- name:libappstream-glib + spec: + url: src-openeuler/libappstream-glib +- name:libarchive + spec: + url: src-openeuler/libarchive +- name:libart_lgpl + spec: + url: src-openeuler/libart_lgpl +- name:libassuan + spec: + url: src-openeuler/libassuan +- name:libasyncns + spec: + url: src-openeuler/libasyncns +- name:libatomic_ops + spec: + url: src-openeuler/libatomic_ops +- name:libcap + spec: + url: src-openeuler/libcap +- name:libcap-ng + spec: + url: src-openeuler/libcap-ng +- name:libcgroup + spec: + url: src-openeuler/libcgroup +- name:libclc + spec: + url: src-openeuler/libclc +- name:libcomps + spec: + url: src-openeuler/libcomps +- name:libcroco + spec: + url: src-openeuler/libcroco +- name:libdaemon + spec: + url: src-openeuler/libdaemon +- name:libdatrie + spec: + url: src-openeuler/libdatrie +- name:libdb + spec: + url: src-openeuler/libdb +- name:libdbi + spec: + url: src-openeuler/libdbi +- name:libdbusmenu + spec: + url: src-openeuler/libdbusmenu +- name:libdnf + spec: + url: src-openeuler/libdnf +- name:libdrm + spec: + url: src-openeuler/libdrm +- name:libdvdread + spec: + url: src-openeuler/libdvdread +- name:libecap + spec: + url: src-openeuler/libecap +- name:libedit + spec: + url: src-openeuler/libedit +- name:libell + spec: + url: src-openeuler/libell +- name:libepoxy + spec: + url: src-openeuler/libepoxy +- name:liberation-fonts + spec: + url: src-openeuler/liberation-fonts +- name:libesmtp + spec: + url: src-openeuler/libesmtp +- name:libestr + spec: + url: src-openeuler/libestr +- name:libev + spec: + url: src-openeuler/libev +- name:libevdev + spec: + url: src-openeuler/libevdev +- name:libevent + spec: + url: src-openeuler/libevent +- name:libevhtp + spec: + url: src-openeuler/libevhtp +- name:libfastjson + spec: + url: src-openeuler/libfastjson +- name:libffi + spec: + url: src-openeuler/libffi + exclude: libffi.spec +- name:libfontenc + spec: + url: src-openeuler/libfontenc +- name:libgcrypt + spec: + url: src-openeuler/libgcrypt +- name:libglvnd + spec: + url: src-openeuler/libglvnd +- name:libgpg-error + spec: + url: src-openeuler/libgpg-error +- name:libgudev + spec: + url: src-openeuler/libgudev +- name:libgusb + spec: + url: src-openeuler/libgusb +- name:libhbaapi + spec: + url: src-openeuler/libhbaapi +- name:libical + spec: + url: src-openeuler/libical +- name:libid3tag + spec: + url: src-openeuler/libid3tag +- name:libidn + spec: + url: src-openeuler/libidn +- name:libidn2 + spec: + url: src-openeuler/libidn2 +- name:libijs + spec: + url: src-openeuler/libijs +- name:libimagequant + spec: + url: src-openeuler/libimagequant +- name:libjpeg-turbo + spec: + url: src-openeuler/libjpeg-turbo +- name:libksba + spec: + url: src-openeuler/libksba +- name:liblognorm + spec: + url: src-openeuler/liblognorm +- name:libmad + spec: + url: src-openeuler/libmad +- name:libmaxminddb + spec: + url: src-openeuler/libmaxminddb +- name:libmbim + spec: + url: src-openeuler/libmbim +- name:libmetalink + spec: + url: src-openeuler/libmetalink +- name:libmicrohttpd + spec: + url: src-openeuler/libmicrohttpd +- name:libmnl + spec: + url: src-openeuler/libmnl +- name:libmodman + spec: + url: src-openeuler/libmodman +- name:libmodulemd + spec: + url: src-openeuler/libmodulemd +- name:libmpc + spec: + url: src-openeuler/libmpc +- name:libmpcdec + spec: + url: src-openeuler/libmpcdec +- name:libmspack + spec: + url: src-openeuler/libmspack +- name:libndp + spec: + url: src-openeuler/libndp +- name:libnet + spec: + url: src-openeuler/libnet +- name:libnetfilter_conntrack + spec: + url: src-openeuler/libnetfilter_conntrack +- name:libnetfilter_cthelper + spec: + url: src-openeuler/libnetfilter_cthelper +- name:libnetfilter_cttimeout + spec: + url: src-openeuler/libnetfilter_cttimeout +- name:libnetfilter_queue + spec: + url: src-openeuler/libnetfilter_queue +- name:libnfnetlink + spec: + url: src-openeuler/libnfnetlink +- name:libnfs + spec: + url: src-openeuler/libnfs +- name:libnftnl + spec: + url: src-openeuler/libnftnl +- name:libnl3 + spec: + url: src-openeuler/libnl3 +- name:libnotify + spec: + url: src-openeuler/libnotify +- name:libnsl2 + spec: + url: src-openeuler/libnsl2 +- name:libogg + spec: + url: src-openeuler/libogg +- name:libomxil-bellagio + spec: + url: src-openeuler/libomxil-bellagio +- name:libpaper + spec: + url: src-openeuler/libpaper +- name:libpcap + spec: + url: src-openeuler/libpcap +- name:libpipeline + spec: + url: src-openeuler/libpipeline +- name:libpng + spec: + url: src-openeuler/libpng +- name:libpng12 + spec: + url: src-openeuler/libpng12 +- name:libproxy + spec: + url: src-openeuler/libproxy +- name:libpsl + spec: + url: src-openeuler/libpsl +- name:libpwquality + spec: + url: src-openeuler/libpwquality +- name:libqmi + spec: + url: src-openeuler/libqmi +- name:librabbitmq + spec: + url: src-openeuler/librabbitmq +- name:libraw1394 + spec: + url: src-openeuler/libraw1394 +- name:librdkafka + spec: + url: src-openeuler/librdkafka +- name:librelp + spec: + url: src-openeuler/librelp +- name:librepo + spec: + url: src-openeuler/librepo +- name:libreport + spec: + url: src-openeuler/libreport +- name:librsvg2 + spec: + url: src-openeuler/librsvg2 +- name:libseccomp + spec: + url: src-openeuler/libseccomp +- name:libsecret + spec: + url: src-openeuler/libsecret +- name:libselinux + spec: + url: src-openeuler/libselinux +- name:libsemanage + spec: + url: src-openeuler/libsemanage +- name:libsepol + spec: + url: src-openeuler/libsepol +- name:libsigsegv + spec: + url: src-openeuler/libsigsegv +- name:libsmi + spec: + url: src-openeuler/libsmi +- name:libsolv + spec: + url: src-openeuler/libsolv +- name:libsoup + spec: + url: src-openeuler/libsoup +- name:libspiro + spec: + url: src-openeuler/libspiro +- name:libsrtp + spec: + url: src-openeuler/libsrtp +- name:libssh + spec: + url: src-openeuler/libssh +- name:libssh2 + spec: + url: src-openeuler/libssh2 +- name:libstemmer + spec: + url: src-openeuler/libstemmer +- name:libtar + spec: + url: src-openeuler/libtar +- name:libtasn1 + spec: + url: src-openeuler/libtasn1 +- name:libteam + spec: + url: src-openeuler/libteam +- name:libthai + spec: + url: src-openeuler/libthai +- name:libtheora + spec: + url: src-openeuler/libtheora +- name:libtiff + spec: + url: src-openeuler/libtiff +- name:libtirpc + spec: + url: src-openeuler/libtirpc +- name:libtool + spec: + url: src-openeuler/libtool +- name:libunistring + spec: + url: src-openeuler/libunistring +- name:libusb + spec: + url: src-openeuler/libusb +- name:libusbmuxd + spec: + url: src-openeuler/libusbmuxd +- name:libusbx + spec: + url: src-openeuler/libusbx +- name:libuser + spec: + url: src-openeuler/libuser +- name:libutempter + spec: + url: src-openeuler/libutempter +- name:libuv + spec: + url: src-openeuler/libuv +- name:libverto + spec: + url: src-openeuler/libverto +- name:libvisual + spec: + url: src-openeuler/libvisual +- name:libvoikko + spec: + url: src-openeuler/libvoikko +- name:libwebp + spec: + url: src-openeuler/libwebp +- name:libwpe + spec: + url: src-openeuler/libwpe +- name:libx86emu + spec: + url: src-openeuler/libx86emu +- name:libxcb + spec: + url: src-openeuler/libxcb +- name:libxcrypt + spec: + url: src-openeuler/libxcrypt +- name:libxkbcommon + spec: + url: src-openeuler/libxkbcommon +- name:libxkbfile + spec: + url: src-openeuler/libxkbfile +- name:libxml2 + spec: + url: src-openeuler/libxml2 +- name:libxshmfence + spec: + url: src-openeuler/libxshmfence +- name:libxslt + spec: + url: src-openeuler/libxslt +- name:libyaml + spec: + url: src-openeuler/libyaml +- name:libzip + spec: + url: src-openeuler/libzip +- name:linux-firmware + spec: + url: src-openeuler/linux-firmware +- name:linuxconsoletools + spec: + url: src-openeuler/linuxconsoletools +- name:linuxptp + spec: + url: src-openeuler/linuxptp +- name:lksctp-tools + spec: + url: src-openeuler/lksctp-tools +- name:lmdb + spec: + url: src-openeuler/lmdb +- name:lockdev + spec: + url: src-openeuler/lockdev +- name:logrotate + spec: + url: src-openeuler/logrotate +- name:logwatch + spec: + url: src-openeuler/logwatch +- name:lrzsz + spec: + url: src-openeuler/lrzsz +- name:lsscsi + spec: + url: src-openeuler/lsscsi +- name:lua + spec: + url: src-openeuler/lua +- name:lua-expat + spec: + url: src-openeuler/lua-expat +- name:lua-filesystem + spec: + url: src-openeuler/lua-filesystem +- name:lua-json + spec: + url: src-openeuler/lua-json +- name:lua-lpeg + spec: + url: src-openeuler/lua-lpeg +- name:lua-lunit + spec: + url: src-openeuler/lua-lunit +- name:lua-posix + spec: + url: src-openeuler/lua-posix +- name:lua-socket + spec: + url: src-openeuler/lua-socket +- name:lvm2 + spec: + url: src-openeuler/lvm2 +- name:lynx + spec: + url: src-openeuler/lynx +- name:lz4 + spec: + url: src-openeuler/lz4 +- name:lzo + spec: + url: src-openeuler/lzo +- name:lzop + spec: + url: src-openeuler/lzop +- name:m2crypto + spec: + url: src-openeuler/m2crypto +- name:m4 + spec: + url: src-openeuler/m4 +- name:mac-robber + spec: + url: src-openeuler/mac-robber +- name:mailcap + spec: + url: src-openeuler/mailcap +- name:mailx + spec: + url: src-openeuler/mailx +- name:make + spec: + url: src-openeuler/make +- name:mallard-rng + spec: + url: src-openeuler/mallard-rng +- name:man-db + spec: + url: src-openeuler/man-db +- name:man-pages + spec: + url: src-openeuler/man-pages +- name:mariadb-connector-c + spec: + url: src-openeuler/mariadb-connector-c +- name:mcpp + spec: + url: src-openeuler/mcpp +- name:mesa + spec: + url: src-openeuler/mesa +- name:mesa-libGLU + spec: + url: src-openeuler/mesa-libGLU +- name:mesa-libGLw + spec: + url: src-openeuler/mesa-libGLw +- name:meson + spec: + url: src-openeuler/meson +- name:mlocate + spec: + url: src-openeuler/mlocate +- name:mobile-broadband-provider-info + spec: + url: src-openeuler/mobile-broadband-provider-info +- name:mozilla-filesystem + spec: + url: src-openeuler/mozilla-filesystem +- name:mozjs52 + spec: + url: src-openeuler/mozjs52 +- name:mpfr + spec: + url: src-openeuler/mpfr +- name:mrtg + spec: + url: src-openeuler/mrtg +- name:mt-st + spec: + url: src-openeuler/mt-st +- name:mtdev + spec: + url: src-openeuler/mtdev +- name:mtx + spec: + url: src-openeuler/mtx +- name:multilib-rpm-config + spec: + url: src-openeuler/multilib-rpm-config +- name:mypaint-brushes + spec: + url: src-openeuler/mypaint-brushes +- name:ncompress + spec: + url: src-openeuler/ncompress +- name:ncurses + spec: + url: src-openeuler/ncurses +- name:ndisc6 + spec: + url: src-openeuler/ndisc6 +- name:neon + spec: + url: src-openeuler/neon +- name:net-tools + spec: + url: src-openeuler/net-tools +- name:nettle + spec: + url: src-openeuler/nettle +- name:newt + spec: + url: src-openeuler/newt +- name:nghttp2 + spec: + url: src-openeuler/nghttp2 +- name:ninja-build + spec: + url: src-openeuler/ninja-build +- name:npth + spec: + url: src-openeuler/npth +- name:nspr + spec: + url: src-openeuler/nspr +- name:nss + spec: + url: src-openeuler/nss +- name:nss-altfiles + spec: + url: src-openeuler/nss-altfiles +- name:nss-pem + spec: + url: src-openeuler/nss-pem +- name:nss_wrapper + spec: + url: src-openeuler/nss_wrapper +- name:ntp + spec: + url: src-openeuler/ntp +- name:ntpstat + spec: + url: src-openeuler/ntpstat +- name:numactl + spec: + url: src-openeuler/numactl +- name:numad + spec: + url: src-openeuler/numad +- name:numpy + spec: + url: src-openeuler/numpy +- name:nvme-cli + spec: + url: src-openeuler/nvme-cli +- name:obs-env + spec: + url: src-openeuler/obs-env +- name:obs-service-download_files + spec: + url: src-openeuler/obs-service-download_files +- name:obs-service-extract_file + spec: + url: src-openeuler/obs-service-extract_file +- name:obs-service-rust2rpm + spec: + url: src-openeuler/obs-service-rust2rpm +- name:obs-service-set_version + spec: + url: src-openeuler/obs-service-set_version +- name:oniguruma + spec: + url: src-openeuler/oniguruma +- name:openEuler-indexhtml + spec: + url: src-openeuler/openEuler-indexhtml + compression: gz + file2compress: *.tar +- name:openEuler-logos + spec: + url: src-openeuler/openEuler-logos + compression: xz + file2compress: *.tar +- name:openEuler-release + spec: + url: src-openeuler/openEuler-release + compression: gz + file2compress: *.tar +- name:openEuler-repos + spec: + url: src-openeuler/openEuler-repos +- name:openEuler-rpm-config + spec: + url: src-openeuler/openEuler-rpm-config +- name:opencc + spec: + url: src-openeuler/opencc +- name:openjade + spec: + url: src-openeuler/openjade +- name:openjpeg2 + spec: + url: src-openeuler/openjpeg2 +- name:openldap + spec: + url: src-openeuler/openldap +- name:opensbi + spec: + url: src-openeuler/opensbi +- name:openslp + spec: + url: src-openeuler/openslp +- name:opensp + spec: + url: src-openeuler/opensp +- name:openssh + spec: + url: src-openeuler/openssh +- name:openssl + spec: + url: src-openeuler/openssl + exclude: openssl.spec +- name:openssl-pkcs11 + spec: + url: src-openeuler/openssl-pkcs11 +- name:opus + spec: + url: src-openeuler/opus +- name:os-prober + spec: + url: src-openeuler/os-prober +- name:osc + spec: + url: src-openeuler/osc +- name:overpass-fonts + spec: + url: src-openeuler/overpass-fonts +- name:p11-kit + spec: + url: src-openeuler/p11-kit +- name:paktype-naqsh-fonts + spec: + url: src-openeuler/paktype-naqsh-fonts +- name:paktype-naskh-basic-fonts + spec: + url: src-openeuler/paktype-naskh-basic-fonts +- name:paktype-tehreer-fonts + spec: + url: src-openeuler/paktype-tehreer-fonts +- name:pam + spec: + url: src-openeuler/pam +- name:pam_krb5 + spec: + url: src-openeuler/pam_krb5 +- name:pango + spec: + url: src-openeuler/pango +- name:paratype-pt-sans-fonts + spec: + url: src-openeuler/paratype-pt-sans-fonts +- name:parted + spec: + url: src-openeuler/parted +- name:passwd + spec: + url: src-openeuler/passwd +- name:patch + spec: + url: src-openeuler/patch +- name:patchutils + spec: + url: src-openeuler/patchutils +- name:pax + spec: + url: src-openeuler/pax +- name:pciutils + spec: + url: src-openeuler/pciutils +- name:pcre + spec: + url: src-openeuler/pcre +- name:pcre2 + spec: + url: src-openeuler/pcre2 +- name:perl + spec: + url: src-openeuler/perl +- name:perl-Algorithm-Diff + spec: + url: src-openeuler/perl-Algorithm-Diff +- name:perl-Archive-Tar + spec: + url: src-openeuler/perl-Archive-Tar +- name:perl-B-Debug + spec: + url: src-openeuler/perl-B-Debug +- name:perl-CPAN + spec: + url: src-openeuler/perl-CPAN +- name:perl-CPAN-Meta + spec: + url: src-openeuler/perl-CPAN-Meta +- name:perl-CPAN-Meta-Requirements + spec: + url: src-openeuler/perl-CPAN-Meta-Requirements +- name:perl-CPAN-Meta-YAML + spec: + url: src-openeuler/perl-CPAN-Meta-YAML +- name:perl-Carp + spec: + url: src-openeuler/perl-Carp +- name:perl-Compress-Bzip2 + spec: + url: src-openeuler/perl-Compress-Bzip2 +- name:perl-Compress-Raw-Bzip2 + spec: + url: src-openeuler/perl-Compress-Raw-Bzip2 +- name:perl-Compress-Raw-Zlib + spec: + url: src-openeuler/perl-Compress-Raw-Zlib +- name:perl-Config-Perl-V + spec: + url: src-openeuler/perl-Config-Perl-V +- name:perl-DB_File + spec: + url: src-openeuler/perl-DB_File +- name:perl-Data-Dumper + spec: + url: src-openeuler/perl-Data-Dumper +- name:perl-Devel-PPPort + spec: + url: src-openeuler/perl-Devel-PPPort +- name:perl-Digest + spec: + url: src-openeuler/perl-Digest +- name:perl-Digest-MD5 + spec: + url: src-openeuler/perl-Digest-MD5 +- name:perl-Digest-SHA + spec: + url: src-openeuler/perl-Digest-SHA +- name:perl-Encode + spec: + url: src-openeuler/perl-Encode +- name:perl-Encode-Locale + spec: + url: src-openeuler/perl-Encode-Locale +- name:perl-Env + spec: + url: src-openeuler/perl-Env +- name:perl-Error + spec: + url: src-openeuler/perl-Error +- name:perl-Exporter + spec: + url: src-openeuler/perl-Exporter +- name:perl-ExtUtils-Install + spec: + url: src-openeuler/perl-ExtUtils-Install +- name:perl-ExtUtils-MakeMaker + spec: + url: src-openeuler/perl-ExtUtils-MakeMaker +- name:perl-ExtUtils-Manifest + spec: + url: src-openeuler/perl-ExtUtils-Manifest +- name:perl-ExtUtils-ParseXS + spec: + url: src-openeuler/perl-ExtUtils-ParseXS +- name:perl-Fedora-VSP + spec: + url: src-openeuler/perl-Fedora-VSP +- name:perl-File-Copy-Recursive + spec: + url: src-openeuler/perl-File-Copy-Recursive +- name:perl-File-Fetch + spec: + url: src-openeuler/perl-File-Fetch +- name:perl-File-HomeDir + spec: + url: src-openeuler/perl-File-HomeDir +- name:perl-File-Path + spec: + url: src-openeuler/perl-File-Path +- name:perl-File-Temp + spec: + url: src-openeuler/perl-File-Temp +- name:perl-File-Which + spec: + url: src-openeuler/perl-File-Which +- name:perl-Filter + spec: + url: src-openeuler/perl-Filter +- name:perl-Filter-Simple + spec: + url: src-openeuler/perl-Filter-Simple +- name:perl-Getopt-Long + spec: + url: src-openeuler/perl-Getopt-Long +- name:perl-HTML-Parser + spec: + url: src-openeuler/perl-HTML-Parser +- name:perl-HTTP-Tiny + spec: + url: src-openeuler/perl-HTTP-Tiny +- name:perl-IO-Compress + spec: + url: src-openeuler/perl-IO-Compress +- name:perl-IO-Socket-IP + spec: + url: src-openeuler/perl-IO-Socket-IP +- name:perl-IPC-Cmd + spec: + url: src-openeuler/perl-IPC-Cmd +- name:perl-IPC-SysV + spec: + url: src-openeuler/perl-IPC-SysV +- name:perl-IPC-System-Simple + spec: + url: src-openeuler/perl-IPC-System-Simple +- name:perl-JSON-PP + spec: + url: src-openeuler/perl-JSON-PP +- name:perl-Locale-Codes + spec: + url: src-openeuler/perl-Locale-Codes +- name:perl-Locale-Maketext + spec: + url: src-openeuler/perl-Locale-Maketext +- name:perl-MIME-Base64 + spec: + url: src-openeuler/perl-MIME-Base64 +- name:perl-Math-BigInt + spec: + url: src-openeuler/perl-Math-BigInt +- name:perl-Math-BigInt-FastCalc + spec: + url: src-openeuler/perl-Math-BigInt-FastCalc +- name:perl-Math-BigRat + spec: + url: src-openeuler/perl-Math-BigRat +- name:perl-Module-CoreList + spec: + url: src-openeuler/perl-Module-CoreList +- name:perl-Module-Load + spec: + url: src-openeuler/perl-Module-Load +- name:perl-Module-Load-Conditional + spec: + url: src-openeuler/perl-Module-Load-Conditional +- name:perl-Module-Metadata + spec: + url: src-openeuler/perl-Module-Metadata +- name:perl-Net-SSLeay + spec: + url: src-openeuler/perl-Net-SSLeay +- name:perl-Params-Check + spec: + url: src-openeuler/perl-Params-Check +- name:perl-PathTools + spec: + url: src-openeuler/perl-PathTools +- name:perl-Perl-OSType + spec: + url: src-openeuler/perl-Perl-OSType +- name:perl-PerlIO-via-QuotedPrint + spec: + url: src-openeuler/perl-PerlIO-via-QuotedPrint +- name:perl-Pod-Checker + spec: + url: src-openeuler/perl-Pod-Checker +- name:perl-Pod-Escapes + spec: + url: src-openeuler/perl-Pod-Escapes +- name:perl-Pod-Parser + spec: + url: src-openeuler/perl-Pod-Parser +- name:perl-Pod-Perldoc + spec: + url: src-openeuler/perl-Pod-Perldoc +- name:perl-Pod-Simple + spec: + url: src-openeuler/perl-Pod-Simple +- name:perl-Pod-Usage + spec: + url: src-openeuler/perl-Pod-Usage +- name:perl-SGMLSpm + spec: + url: src-openeuler/perl-SGMLSpm +- name:perl-Scalar-List-Utils + spec: + url: src-openeuler/perl-Scalar-List-Utils +- name:perl-Socket + spec: + url: src-openeuler/perl-Socket +- name:perl-Storable + spec: + url: src-openeuler/perl-Storable +- name:perl-Switch + spec: + url: src-openeuler/perl-Switch +- name:perl-Sys-Syslog + spec: + url: src-openeuler/perl-Sys-Syslog +- name:perl-Term-ANSIColor + spec: + url: src-openeuler/perl-Term-ANSIColor +- name:perl-Term-Cap + spec: + url: src-openeuler/perl-Term-Cap +- name:perl-TermReadKey + spec: + url: src-openeuler/perl-TermReadKey +- name:perl-Test-Harness + spec: + url: src-openeuler/perl-Test-Harness +- name:perl-Test-Simple + spec: + url: src-openeuler/perl-Test-Simple +- name:perl-Text-Balanced + spec: + url: src-openeuler/perl-Text-Balanced +- name:perl-Text-Diff + spec: + url: src-openeuler/perl-Text-Diff +- name:perl-Text-ParseWords + spec: + url: src-openeuler/perl-Text-ParseWords +- name:perl-Text-Unidecode + spec: + url: src-openeuler/perl-Text-Unidecode +- name:perl-Text-WrapI18N + spec: + url: src-openeuler/perl-Text-WrapI18N +- name:perl-Thread-Queue + spec: + url: src-openeuler/perl-Thread-Queue +- name:perl-Time-HiRes + spec: + url: src-openeuler/perl-Time-HiRes +- name:perl-Time-Local + spec: + url: src-openeuler/perl-Time-Local +- name:perl-TimeDate + spec: + url: src-openeuler/perl-TimeDate +- name:perl-URI + spec: + url: src-openeuler/perl-URI +- name:perl-Unicode-Collate + spec: + url: src-openeuler/perl-Unicode-Collate +- name:perl-Unicode-EastAsianWidth + spec: + url: src-openeuler/perl-Unicode-EastAsianWidth +- name:perl-Unicode-Normalize + spec: + url: src-openeuler/perl-Unicode-Normalize +- name:perl-XML-Parser + spec: + url: src-openeuler/perl-XML-Parser +- name:perl-XML-XPath + spec: + url: src-openeuler/perl-XML-XPath +- name:perl-YAML-LibYAML + spec: + url: src-openeuler/perl-YAML-LibYAML +- name:perl-autodie + spec: + url: src-openeuler/perl-autodie +- name:perl-bignum + spec: + url: src-openeuler/perl-bignum +- name:perl-constant + spec: + url: src-openeuler/perl-constant +- name:perl-experimental + spec: + url: src-openeuler/perl-experimental +- name:perl-generators + spec: + url: src-openeuler/perl-generators +- name:perl-libintl-perl + spec: + url: src-openeuler/perl-libintl-perl +- name:perl-libnet + spec: + url: src-openeuler/perl-libnet +- name:perl-libwww-perl + spec: + url: src-openeuler/perl-libwww-perl +- name:perl-parent + spec: + url: src-openeuler/perl-parent +- name:perl-perlfaq + spec: + url: src-openeuler/perl-perlfaq +- name:perl-podlators + spec: + url: src-openeuler/perl-podlators +- name:perl-threads + spec: + url: src-openeuler/perl-threads +- name:perl-threads-shared + spec: + url: src-openeuler/perl-threads-shared +- name:perl-version + spec: + url: src-openeuler/perl-version +- name:pigz + spec: + url: src-openeuler/pigz +- name:pixman + spec: + url: src-openeuler/pixman +- name:pkcs11-helper + spec: + url: src-openeuler/pkcs11-helper +- name:pkgconf + spec: + url: src-openeuler/pkgconf +- name:pnm2ppa + spec: + url: src-openeuler/pnm2ppa +- name:policycoreutils + spec: + url: src-openeuler/policycoreutils +- name:polkit + spec: + url: src-openeuler/polkit +- name:poppler + spec: + url: src-openeuler/poppler +- name:poppler-data + spec: + url: src-openeuler/poppler-data +- name:popt + spec: + url: src-openeuler/popt +- name:postgresql + spec: + url: src-openeuler/postgresql +- name:pps-tools + spec: + url: src-openeuler/pps-tools +- name:pptp + spec: + url: src-openeuler/pptp +- name:prefetch_tuning + spec: + url: src-openeuler/prefetch_tuning +- name:procmail + spec: + url: src-openeuler/procmail +- name:procps-ng + spec: + url: src-openeuler/procps-ng +- name:proj + spec: + url: src-openeuler/proj +- name:psacct + spec: + url: src-openeuler/psacct +- name:psmisc + spec: + url: src-openeuler/psmisc +- name:psutils + spec: + url: src-openeuler/psutils +- name:publicsuffix-list + spec: + url: src-openeuler/publicsuffix-list +- name:pyatspi + spec: + url: src-openeuler/pyatspi +- name:pycairo + spec: + url: src-openeuler/pycairo +- name:pygobject2 + spec: + url: src-openeuler/pygobject2 +- name:pygobject3 + spec: + url: src-openeuler/pygobject3 +- name:pygtk2 + spec: + url: src-openeuler/pygtk2 +- name:pyparsing + spec: + url: src-openeuler/pyparsing +- name:python-IPy + spec: + url: src-openeuler/python-IPy +- name:python-PyMySQL + spec: + url: src-openeuler/python-PyMySQL +- name:python-SecretStorage + spec: + url: src-openeuler/python-SecretStorage +- name:python-alsa + spec: + url: src-openeuler/python-alsa +- name:python-aniso8601 + spec: + url: src-openeuler/python-aniso8601 +- name:python-apipkg + spec: + url: src-openeuler/python-apipkg +- name:python-argcomplete + spec: + url: src-openeuler/python-argcomplete +- name:python-asn1crypto + spec: + url: src-openeuler/python-asn1crypto +- name:python-atomicwrites + spec: + url: src-openeuler/python-atomicwrites +- name:python-attrs + spec: + url: src-openeuler/python-attrs +- name:python-augeas + spec: + url: src-openeuler/python-augeas +- name:python-backports + spec: + url: src-openeuler/python-backports +- name:python-backports-ssl_match_hostname + spec: + url: src-openeuler/python-backports-ssl_match_hostname +- name:python-backports-unittest_mock + spec: + url: src-openeuler/python-backports-unittest_mock +- name:python-backports_abc + spec: + url: src-openeuler/python-backports_abc +- name:python-bcrypt + spec: + url: src-openeuler/python-bcrypt +- name:python-beautifulsoup4 + spec: + url: src-openeuler/python-beautifulsoup4 +- name:python-blinker + spec: + url: src-openeuler/python-blinker +- name:python-bottle + spec: + url: src-openeuler/python-bottle +- name:python-cached_property + spec: + url: src-openeuler/python-cached_property +- name:python-cffi + spec: + url: src-openeuler/python-cffi +- name:python-chardet + spec: + url: src-openeuler/python-chardet +- name:python-cheetah + spec: + url: src-openeuler/python-cheetah +- name:python-cherrypy + spec: + url: src-openeuler/python-cherrypy +- name:python-click + spec: + url: src-openeuler/python-click +- name:python-configobj + spec: + url: src-openeuler/python-configobj +- name:python-configparser + spec: + url: src-openeuler/python-configparser +- name:python-configshell + spec: + url: src-openeuler/python-configshell +- name:python-constantly + spec: + url: src-openeuler/python-constantly +- name:python-construct + spec: + url: src-openeuler/python-construct +- name:python-contextlib2 + spec: + url: src-openeuler/python-contextlib2 +- name:python-coverage + spec: + url: src-openeuler/python-coverage +- name:python-cryptography-vectors + spec: + url: src-openeuler/python-cryptography-vectors +- name:python-cups + spec: + url: src-openeuler/python-cups +- name:python-cycler + spec: + url: src-openeuler/python-cycler +- name:python-dateutil + spec: + url: src-openeuler/python-dateutil +- name:python-decorator + spec: + url: src-openeuler/python-decorator +- name:python-dict2xml + spec: + url: src-openeuler/python-dict2xml +- name:python-distro + spec: + url: src-openeuler/python-distro +- name:python-dmidecode + spec: + url: src-openeuler/python-dmidecode +- name:python-dns + spec: + url: src-openeuler/python-dns +- name:python-docker + spec: + url: src-openeuler/python-docker +- name:python-docker-pycreds + spec: + url: src-openeuler/python-docker-pycreds +- name:python-dockerpty + spec: + url: src-openeuler/python-dockerpty +- name:python-docopt + spec: + url: src-openeuler/python-docopt +- name:python-docutils + spec: + url: src-openeuler/python-docutils +- name:python-ecdsa + spec: + url: src-openeuler/python-ecdsa +- name:python-enchant + spec: + url: src-openeuler/python-enchant +- name:python-entrypoints + spec: + url: src-openeuler/python-entrypoints +- name:python-enum34 + spec: + url: src-openeuler/python-enum34 +- name:python-ethtool + spec: + url: src-openeuler/python-ethtool +- name:python-evdev + spec: + url: src-openeuler/python-evdev +- name:python-execnet + spec: + url: src-openeuler/python-execnet +- name:python-extras + spec: + url: src-openeuler/python-extras +- name:python-filelock + spec: + url: src-openeuler/python-filelock +- name:python-fixtures + spec: + url: src-openeuler/python-fixtures +- name:python-flask + spec: + url: src-openeuler/python-flask +- name:python-flask-restful + spec: + url: src-openeuler/python-flask-restful +- name:python-flit + spec: + url: src-openeuler/python-flit +- name:python-fonttools + spec: + url: src-openeuler/python-fonttools +- name:python-freezegun + spec: + url: src-openeuler/python-freezegun +- name:python-funcsigs + spec: + url: src-openeuler/python-funcsigs +- name:python-futures + spec: + url: src-openeuler/python-futures +- name:python-genshi + spec: + url: src-openeuler/python-genshi +- name:python-gflags + spec: + url: src-openeuler/python-gflags +- name:python-google-apputils + spec: + url: src-openeuler/python-google-apputils +- name:python-hamcrest + spec: + url: src-openeuler/python-hamcrest +- name:python-html5lib + spec: + url: src-openeuler/python-html5lib +- name:python-httplib2 + spec: + url: src-openeuler/python-httplib2 +- name:python-humanize + spec: + url: src-openeuler/python-humanize +- name:python-hwdata + spec: + url: src-openeuler/python-hwdata +- name:python-hyperlink + spec: + url: src-openeuler/python-hyperlink +- name:python-hypothesis + spec: + url: src-openeuler/python-hypothesis +- name:python-idna + spec: + url: src-openeuler/python-idna +- name:python-imagesize + spec: + url: src-openeuler/python-imagesize +- name:python-incremental + spec: + url: src-openeuler/python-incremental +- name:python-iniparse + spec: + url: src-openeuler/python-iniparse +- name:python-inotify + spec: + url: src-openeuler/python-inotify +- name:python-ipaddress + spec: + url: src-openeuler/python-ipaddress +- name:python-iso8601 + spec: + url: src-openeuler/python-iso8601 +- name:python-itsdangerous + spec: + url: src-openeuler/python-itsdangerous +- name:python-jinja2 + spec: + url: src-openeuler/python-jinja2 +- name:python-jsonpatch + spec: + url: src-openeuler/python-jsonpatch +- name:python-jsonpointer + spec: + url: src-openeuler/python-jsonpointer +- name:python-jsonschema + spec: + url: src-openeuler/python-jsonschema +- name:python-junitxml + spec: + url: src-openeuler/python-junitxml +- name:python-jwt + spec: + url: src-openeuler/python-jwt +- name:python-keyczar + spec: + url: src-openeuler/python-keyczar +- name:python-kitchen + spec: + url: src-openeuler/python-kitchen +- name:python-kiwisolver + spec: + url: src-openeuler/python-kiwisolver +- name:python-kmod + spec: + url: src-openeuler/python-kmod +- name:python-ldap + spec: + url: src-openeuler/python-ldap +- name:python-linecache2 + spec: + url: src-openeuler/python-linecache2 +- name:python-linux-procfs + spec: + url: src-openeuler/python-linux-procfs +- name:python-lit + spec: + url: src-openeuler/python-lit +- name:python-logutils + spec: + url: src-openeuler/python-logutils +- name:python-lxml + spec: + url: src-openeuler/python-lxml +- name:python-mako + spec: + url: src-openeuler/python-mako +- name:python-markdown + spec: + url: src-openeuler/python-markdown +- name:python-markupsafe + spec: + url: src-openeuler/python-markupsafe +- name:python-meh + spec: + url: src-openeuler/python-meh +- name:python-memcached + spec: + url: src-openeuler/python-memcached +- name:python-mimeparse + spec: + url: src-openeuler/python-mimeparse +- name:python-mock + spec: + url: src-openeuler/python-mock +- name:python-more-itertools + spec: + url: src-openeuler/python-more-itertools +- name:python-mox + spec: + url: src-openeuler/python-mox +- name:python-mysqlclient + spec: + url: src-openeuler/python-mysqlclient +- name:python-netaddr + spec: + url: src-openeuler/python-netaddr +- name:python-nose + spec: + url: src-openeuler/python-nose +- name:python-ntplib + spec: + url: src-openeuler/python-ntplib +- name:python-oauthlib + spec: + url: src-openeuler/python-oauthlib +- name:python-olefile + spec: + url: src-openeuler/python-olefile +- name:python-ordered-set + spec: + url: src-openeuler/python-ordered-set +- name:python-packaging + spec: + url: src-openeuler/python-packaging +- name:python-paramiko + spec: + url: src-openeuler/python-paramiko +- name:python-parse + spec: + url: src-openeuler/python-parse +- name:python-paste + spec: + url: src-openeuler/python-paste +- name:python-path + spec: + url: src-openeuler/python-path +- name:python-pbr + spec: + url: src-openeuler/python-pbr +- name:python-pecan + spec: + url: src-openeuler/python-pecan +- name:python-pip + spec: + url: src-openeuler/python-pip +- name:python-pluggy + spec: + url: src-openeuler/python-pluggy +- name:python-ply + spec: + url: src-openeuler/python-ply +- name:python-pocketlint + spec: + url: src-openeuler/python-pocketlint +- name:python-polib + spec: + url: src-openeuler/python-polib +- name:python-pretend + spec: + url: src-openeuler/python-pretend +- name:python-prettytable + spec: + url: src-openeuler/python-prettytable +- name:python-productmd + spec: + url: src-openeuler/python-productmd +- name:python-psutil + spec: + url: src-openeuler/python-psutil +- name:python-pyasn1 + spec: + url: src-openeuler/python-pyasn1 +- name:python-pycparser + spec: + url: src-openeuler/python-pycparser +- name:python-pycurl + spec: + url: src-openeuler/python-pycurl +- name:python-pygments + spec: + url: src-openeuler/python-pygments +- name:python-pymongo + spec: + url: src-openeuler/python-pymongo +- name:python-pynacl + spec: + url: src-openeuler/python-pynacl +- name:python-pysocks + spec: + url: src-openeuler/python-pysocks +- name:python-pytest-cov + spec: + url: src-openeuler/python-pytest-cov +- name:python-pytest-expect + spec: + url: src-openeuler/python-pytest-expect +- name:python-pytest-fixture-config + spec: + url: src-openeuler/python-pytest-fixture-config +- name:python-pytest-mock + spec: + url: src-openeuler/python-pytest-mock +- name:python-pytest-shutil + spec: + url: src-openeuler/python-pytest-shutil +- name:python-pytest-virtualenv + spec: + url: src-openeuler/python-pytest-virtualenv +- name:python-pytoml + spec: + url: src-openeuler/python-pytoml +- name:python-pyudev + spec: + url: src-openeuler/python-pyudev +- name:python-redis + spec: + url: src-openeuler/python-redis +- name:python-reportlab + spec: + url: src-openeuler/python-reportlab +- name:python-repoze-lru + spec: + url: src-openeuler/python-repoze-lru +- name:python-requests + spec: + url: src-openeuler/python-requests +- name:python-requests-file + spec: + url: src-openeuler/python-requests-file +- name:python-requests-ftp + spec: + url: src-openeuler/python-requests-ftp +- name:python-rpm-generators + spec: + url: src-openeuler/python-rpm-generators +- name:python-rsa + spec: + url: src-openeuler/python-rsa +- name:python-rtslib + spec: + url: src-openeuler/python-rtslib +- name:python-ruamel-yaml + spec: + url: src-openeuler/python-ruamel-yaml +- name:python-ruamel-yaml-clib + spec: + url: src-openeuler/python-ruamel-yaml-clib +- name:python-schedutils + spec: + url: src-openeuler/python-schedutils +- name:python-scikit-optimize + spec: + url: src-openeuler/python-scikit-optimize +- name:python-semantic_version + spec: + url: src-openeuler/python-semantic_version +- name:python-setuptools + spec: + url: src-openeuler/python-setuptools +- name:python-setuptools_git + spec: + url: src-openeuler/python-setuptools_git +- name:python-setuptools_scm + spec: + url: src-openeuler/python-setuptools_scm +- name:python-simplegeneric + spec: + url: src-openeuler/python-simplegeneric +- name:python-simpleline + spec: + url: src-openeuler/python-simpleline +- name:python-singledispatch + spec: + url: src-openeuler/python-singledispatch +- name:python-six + spec: + url: src-openeuler/python-six +- name:python-slip + spec: + url: src-openeuler/python-slip +- name:python-snowballstemmer + spec: + url: src-openeuler/python-snowballstemmer +- name:python-sphinx + spec: + url: src-openeuler/python-sphinx +- name:python-sphinx-theme-alabaster + spec: + url: src-openeuler/python-sphinx-theme-alabaster +- name:python-sphinx_rtd_theme + spec: + url: src-openeuler/python-sphinx_rtd_theme +- name:python-sphinxcontrib-spelling + spec: + url: src-openeuler/python-sphinxcontrib-spelling +- name:python-sphinxcontrib-websupport + spec: + url: src-openeuler/python-sphinxcontrib-websupport +- name:python-sqlalchemy + spec: + url: src-openeuler/python-sqlalchemy +- name:python-subprocess32 + spec: + url: src-openeuler/python-subprocess32 +- name:python-sure + spec: + url: src-openeuler/python-sure +- name:python-systemd + spec: + url: src-openeuler/python-systemd +- name:python-tempita + spec: + url: src-openeuler/python-tempita +- name:python-testscenarios + spec: + url: src-openeuler/python-testscenarios +- name:python-testtools + spec: + url: src-openeuler/python-testtools +- name:python-texttable + spec: + url: src-openeuler/python-texttable +- name:python-threadpoolctl + spec: + url: src-openeuler/python-threadpoolctl +- name:python-toml + spec: + url: src-openeuler/python-toml +- name:python-tornado + spec: + url: src-openeuler/python-tornado +- name:python-tqdm + spec: + url: src-openeuler/python-tqdm +- name:python-traceback2 + spec: + url: src-openeuler/python-traceback2 +- name:python-u-msgpack-python + spec: + url: src-openeuler/python-u-msgpack-python +- name:python-unittest2 + spec: + url: src-openeuler/python-unittest2 +- name:python-urlgrabber + spec: + url: src-openeuler/python-urlgrabber +- name:python-urllib3 + spec: + url: src-openeuler/python-urllib3 +- name:python-urwid + spec: + url: src-openeuler/python-urwid +- name:python-varlink + spec: + url: src-openeuler/python-varlink +- name:python-virtualenv + spec: + url: src-openeuler/python-virtualenv +- name:python-waitress + spec: + url: src-openeuler/python-waitress +- name:python-webencodings + spec: + url: src-openeuler/python-webencodings +- name:python-webob + spec: + url: src-openeuler/python-webob +- name:python-websocket-client + spec: + url: src-openeuler/python-websocket-client +- name:python-webtest + spec: + url: src-openeuler/python-webtest +- name:python-werkzeug + spec: + url: src-openeuler/python-werkzeug +- name:python-which + spec: + url: src-openeuler/python-which +- name:python-whoosh + spec: + url: src-openeuler/python-whoosh +- name:python-zipp + spec: + url: src-openeuler/python-zipp +- name:python-zope-event + spec: + url: src-openeuler/python-zope-event +- name:python-zope-interface + spec: + url: src-openeuler/python-zope-interface +- name:python2 + spec: + url: src-openeuler/python2 +- name:python2-typing + spec: + url: src-openeuler/python2-typing +- name:python3 + spec: + url: src-openeuler/python3 +- name:python3-mallard-ducktype + spec: + url: src-openeuler/python3-mallard-ducktype +- name:pytz + spec: + url: src-openeuler/pytz +- name:pyxattr + spec: + url: src-openeuler/pyxattr +- name:qrencode + spec: + url: src-openeuler/qrencode +- name:qt5 + spec: + url: src-openeuler/qt5 +- name:qt5-doc + spec: + url: src-openeuler/qt5-doc +- name:quota + spec: + url: src-openeuler/quota +- name:re2 + spec: + url: src-openeuler/re2 +- name:readline + spec: + url: src-openeuler/readline +- name:recode + spec: + url: src-openeuler/recode +- name:rest + spec: + url: src-openeuler/rest +- name:rhash + spec: + url: src-openeuler/rhash +- name:risc-v-kernel + src: + url: openeuler/kernel + revision: v5.5.19 + version: 5.5.19 + exclude: .git + compression: bz2 + file2compress: *.tar + spec: + url: src-openeuler/risc-v-kernel + exclude: kernel.spec +- name:rootfiles + spec: + url: src-openeuler/rootfiles +- name:rootsh + spec: + url: src-openeuler/rootsh +- name:rpcbind + spec: + url: src-openeuler/rpcbind +- name:rpcsvc-proto + spec: + url: src-openeuler/rpcsvc-proto +- name:rpm + spec: + url: src-openeuler/rpm +- name:rpmdevtools + spec: + url: src-openeuler/rpmdevtools +- name:rpmrebuild + spec: + url: src-openeuler/rpmrebuild +- name:rsync + spec: + url: src-openeuler/rsync +- name:ruby + spec: + url: src-openeuler/ruby +- name:ruby-common + spec: + url: src-openeuler/ruby-common +- name:sanlock + spec: + url: src-openeuler/sanlock +- name:satyr + spec: + url: src-openeuler/satyr +- name:sblim-cmpi-devel + spec: + url: src-openeuler/sblim-cmpi-devel +- name:screen + spec: + url: src-openeuler/screen +- name:scrub + spec: + url: src-openeuler/scrub +- name:security-tool + spec: + url: src-openeuler/security-tool + compression: bz2 + file2compress: *.tar +- name:sed + spec: + url: src-openeuler/sed +- name:sendmail + spec: + url: src-openeuler/sendmail +- name:setup + spec: + url: src-openeuler/setup +- name:sg3_utils + spec: + url: src-openeuler/sg3_utils +- name:sgml-common + spec: + url: src-openeuler/sgml-common +- name:shadow + spec: + url: src-openeuler/shadow +- name:shared-mime-info + spec: + url: src-openeuler/shared-mime-info +- name:sharutils + spec: + url: src-openeuler/sharutils +- name:sil-abyssinica-fonts + spec: + url: src-openeuler/sil-abyssinica-fonts +- name:sil-scheherazade-fonts + spec: + url: src-openeuler/sil-scheherazade-fonts +- name:slang + spec: + url: src-openeuler/slang +- name:smp_utils + spec: + url: src-openeuler/smp_utils +- name:snappy + spec: + url: src-openeuler/snappy +- name:softhsm + spec: + url: src-openeuler/softhsm +- name:sos + spec: + url: src-openeuler/sos +- name:soundtouch + spec: + url: src-openeuler/soundtouch +- name:source-highlight + spec: + url: src-openeuler/source-highlight +- name:speexdsp + spec: + url: src-openeuler/speexdsp +- name:spice-protocol + spec: + url: src-openeuler/spice-protocol +- name:sqlite + spec: + url: src-openeuler/sqlite +- name:star + spec: + url: src-openeuler/star +- name:stix-fonts + spec: + url: src-openeuler/stix-fonts +- name:strace + spec: + url: src-openeuler/strace +- name:stunnel + spec: + url: src-openeuler/stunnel +- name:subunit + spec: + url: src-openeuler/subunit +- name:sudo + spec: + url: src-openeuler/sudo +- name:swig + spec: + url: src-openeuler/swig +- name:symlinks + spec: + url: src-openeuler/symlinks +- name:sysfsutils + spec: + url: src-openeuler/sysfsutils +- name:sysstat + spec: + url: src-openeuler/sysstat +- name:systemd + spec: + url: src-openeuler/systemd +- name:systemtap + spec: + url: src-openeuler/systemtap +- name:taglib + spec: + url: src-openeuler/taglib +- name:tar + spec: + url: src-openeuler/tar +- name:targetcli + spec: + url: src-openeuler/targetcli +- name:tcl + spec: + url: src-openeuler/tcl +- name:tcllib + spec: + url: src-openeuler/tcllib +- name:tcp_wrappers + spec: + url: src-openeuler/tcp_wrappers +- name:telepathy-filesystem + spec: + url: src-openeuler/telepathy-filesystem +- name:texi2html + spec: + url: src-openeuler/texi2html +- name:texinfo + spec: + url: src-openeuler/texinfo +- name:texlive + spec: + url: src-openeuler/texlive +- name:texlive-base + spec: + url: src-openeuler/texlive-base +- name:thai-scalable-fonts + spec: + url: src-openeuler/thai-scalable-fonts +- name:thin-provisioning-tools + spec: + url: src-openeuler/thin-provisioning-tools +- name:tibetan-machine-uni-fonts + spec: + url: src-openeuler/tibetan-machine-uni-fonts +- name:tidy + spec: + url: src-openeuler/tidy +- name:time + spec: + url: src-openeuler/time +- name:tinycdb + spec: + url: src-openeuler/tinycdb +- name:tinyxml2 + spec: + url: src-openeuler/tinyxml2 +- name:tix + spec: + url: src-openeuler/tix +- name:tk + spec: + url: src-openeuler/tk +- name:tmux + spec: + url: src-openeuler/tmux +- name:tokyocabinet + spec: + url: src-openeuler/tokyocabinet +- name:traceroute + spec: + url: src-openeuler/traceroute +- name:transfig + spec: + url: src-openeuler/transfig +- name:tree + spec: + url: src-openeuler/tree +- name:trousers + spec: + url: src-openeuler/trousers +- name:ttmkfdir + spec: + url: src-openeuler/ttmkfdir +- name:tuned + spec: + url: src-openeuler/tuned +- name:tzdata + spec: + url: src-openeuler/tzdata +- name:uchardet + spec: + url: src-openeuler/uchardet +- name:uname-build-checks + spec: + url: src-openeuler/uname-build-checks +- name:unbound + spec: + url: src-openeuler/unbound +- name:unicode-emoji + spec: + url: src-openeuler/unicode-emoji +- name:unicode-ucd + spec: + url: src-openeuler/unicode-ucd +- name:unixODBC + spec: + url: src-openeuler/unixODBC +- name:unzip + spec: + url: src-openeuler/unzip +- name:upower + spec: + url: src-openeuler/upower +- name:urw-base35-fonts + spec: + url: src-openeuler/urw-base35-fonts +- name:usb_modeswitch-data + spec: + url: src-openeuler/usb_modeswitch-data +- name:ustr + spec: + url: src-openeuler/ustr +- name:utf8proc + spec: + url: src-openeuler/utf8proc +- name:util-linux + spec: + url: src-openeuler/util-linux +- name:uuid + spec: + url: src-openeuler/uuid +- name:vala + spec: + url: src-openeuler/vala +- name:vconfig + spec: + url: src-openeuler/vconfig +- name:vim + spec: + url: src-openeuler/vim +- name:virt-what + spec: + url: src-openeuler/virt-what +- name:vulkan-headers + spec: + url: src-openeuler/vulkan-headers +- name:wavpack + spec: + url: src-openeuler/wavpack +- name:wayland + spec: + url: src-openeuler/wayland +- name:wayland-protocols + spec: + url: src-openeuler/wayland-protocols +- name:webkit2gtk3 + spec: + url: src-openeuler/webkit2gtk3 +- name:wget + spec: + url: src-openeuler/wget +- name:which + spec: + url: src-openeuler/which +- name:woff2 + spec: + url: src-openeuler/woff2 +- name:words + spec: + url: src-openeuler/words +- name:wpa_supplicant + spec: + url: src-openeuler/wpa_supplicant +- name:wpebackend-fdo + spec: + url: src-openeuler/wpebackend-fdo +- name:wqy-microhei-fonts + spec: + url: src-openeuler/wqy-microhei-fonts +- name:wqy-zenhei-fonts + spec: + url: src-openeuler/wqy-zenhei-fonts +- name:xcb-proto + spec: + url: src-openeuler/xcb-proto +- name:xcb-util + spec: + url: src-openeuler/xcb-util +- name:xdg-dbus-proxy + spec: + url: src-openeuler/xdg-dbus-proxy +- name:xdg-desktop-portal + spec: + url: src-openeuler/xdg-desktop-portal +- name:xdg-desktop-portal-gtk + spec: + url: src-openeuler/xdg-desktop-portal-gtk +- name:xfsprogs + spec: + url: src-openeuler/xfsprogs +- name:xhtml1-dtds + spec: + url: src-openeuler/xhtml1-dtds +- name:xkeyboard-config + spec: + url: src-openeuler/xkeyboard-config +- name:xmlrpc-c + spec: + url: src-openeuler/xmlrpc-c +- name:xmlto + spec: + url: src-openeuler/xmlto +- name:xmltoman + spec: + url: src-openeuler/xmltoman +- name:xorg-x11-drivers + spec: + url: src-openeuler/xorg-x11-drivers +- name:xorg-x11-font-utils + spec: + url: src-openeuler/xorg-x11-font-utils +- name:xorg-x11-fonts + spec: + url: src-openeuler/xorg-x11-fonts +- name:xorg-x11-proto-devel + spec: + url: src-openeuler/xorg-x11-proto-devel +- name:xorg-x11-server-utils + spec: + url: src-openeuler/xorg-x11-server-utils +- name:xorg-x11-util-macros + spec: + url: src-openeuler/xorg-x11-util-macros +- name:xorg-x11-xauth + spec: + url: src-openeuler/xorg-x11-xauth +- name:xorg-x11-xbitmaps + spec: + url: src-openeuler/xorg-x11-xbitmaps +- name:xorg-x11-xtrans-devel + spec: + url: src-openeuler/xorg-x11-xtrans-devel +- name:xz + spec: + url: src-openeuler/xz +- name:yajl + spec: + url: src-openeuler/yajl +- name:yaml-cpp + spec: + url: src-openeuler/yaml-cpp +- name:zd1211-firmware + spec: + url: src-openeuler/zd1211-firmware +- name:zip + spec: + url: src-openeuler/zip +- name:zlib + spec: + url: src-openeuler/zlib +- name:zopfli + spec: + url: src-openeuler/zopfli +- name:zstd + spec: + url: src-openeuler/zstd +- name:zziplib + spec: + url: src-openeuler/zziplib diff --git a/RISC-V_proj_list/service2yaml.py b/RISC-V_proj_list/service2yaml.py new file mode 100644 index 00000000..a882a053 --- /dev/null +++ b/RISC-V_proj_list/service2yaml.py @@ -0,0 +1,172 @@ +#!/usr/bin/env python3 +## convert _service.xml to/from riscv_proj_list.yaml +## USAGE: service2yaml -- convert _service to yaml +## [TODO] service2yaml -r -- convert yaml to _services +## yaml format +## -> ,,... +## -> [[, , ], [, , ]] +## yaml sample: +## packages: +## - name: opensbi +## spec: +## url: src-openeuler/opensbi +## - name: risc-v-kernel +## src: +## url: openeuler/kernel #refers to https://gitee.com/openeuler/kernel +## revision: v5.5.19 +## version: 5.5.19 +## exclude: .git +## compression: bz2 +## file2compress: *.tar +## spec: +## url: src-openeuler/risc-v-kernel #refers to https://gitee.com/src-openeuler/kernel +## exclude: .git +## + + +import argparse +import atexit +import datetime +import glob +import hashlib +import logging +import os +import re +import shutil +import subprocess +import sys +import tarfile + +import yaml + +riscv_proj_file = "riscv_proj_list.yaml" +service_file = "/home/oe-rv/gitee/autobuild-openeuler4riscv/obs_proj_list/_service" +service_dir = "/home/oe-rv/gitee/autobuild-openeuler4riscv/obs_proj_list/service_dir" +test_yaml_file = "/home/oe-rv/gitee/autobuild-openeuler4riscv/obs_proj_list/test.yaml" + +def import_xml_parser(): + global ET + try: + import lxml.etree as ET + xml_parser = ET.XMLParser(remove_comments=False) + except ImportError: + import xml.etree.ElementTree as ET + xml_parser = None + if not hasattr(ET, 'ParseError'): + try: + import xml.parsers.expat + except: + raise RuntimeError("Couldn't load XML parser error") + return xml_parser + +def handle_xml_service(service): + """ """ + ret_str = "" + service_type = service.attrib['name'] + if service_type == "tar_scm": + ret_str += " src:\n" + for param in service.findall("param[@name='url']"): + """handle get tarball from git url""" + url = param.text + #print("param url value = ", param.text) + """extract string between ':' and '.git' """ + url = url[eval('url.find(\':\') + 1'):url.find('.git')] + ret_str += " url: " + url + '\n' + for param in service.findall("param[@name='revision']"): + """handle_revision""" + revision = param.text + #print("param revision value = ", param.text) + ret_str += " revision: " + revision + '\n' + for param in service.findall("param[@name='version']"): + """handle_version""" + version = param.text + #print("param version value = ", param.text) + ret_str += " version: " + version + '\n' + for param in service.findall("param[@name='exclude']"): + """handle_version""" + exclude = param.text + #print("param exclude value = ", param.text) + ret_str += " exclude: " + exclude + '\n' + elif service_type == "recompress": + for param in service.findall("param[@name='compression']"): + """handle recompress type""" + type = param.text + #print("compress type = ", type) + ret_str += " compression: " + type + '\n' + for param in service.findall("param[@name='file']"): + file = param.text + #print("compress file = ", param.text) + ret_str += " file2compress: " + file + '\n' + elif service_type == "tar_scm_kernel_repo": + ret_str += " spec:\n" + for param in service.findall("param[@name='url']"): + """handle src server repo""" + url = param.text + url = url[url.rfind('/') + 1:len(url)] + #print("src url repo= ", url) + ret_str += " url: " + "src-openeuler/" + url + '\n' + for param in service.findall("param[@name='exclude']"): + file = param.text + #print("exclude file = ", param.text) + ret_str += " exclude: " + file + '\n' + else: + print("unrecongnized service type") + + return ret_str + +def xml2yaml(xmlfile): + """ Convert _service.xml to appending to riscv_proj_list.yaml """ + print("handle file:" + xmlfile) + xml_parser = import_xml_parser() + try: + xml_data_tree = ET.parse(xmlfile, parser=xml_parser) + except StandardError as e: + print(e) + raise + if xml_data_tree is None: + print("parse xml tree root error") + else: + root = xml_data_tree.getroot() + scm_services = root.findall("service") + service_str = "" + for service in scm_services: + """items returns [(name, tar_scm)]""" + #print("service: ", service.attrib['name']) + service_str += handle_xml_service(service) + return service_str.rstrip('\n') + return "unhandle errors in xml2yaml!" + +def yaml2xml(yaml_file): + """ Convert riscv_proj_list.yaml to xmls in service directory """ + print("TODO yaml2xml") + +# service_dir = sys.argv[1] +if __name__ == "__main__": + service_dir = sys.argv[1] + yamlfile = sys.argv[2] + + str_buf = "packages:\n" + for dir in sorted(os.listdir(service_dir)): + package = dir + if package.startswith('.'): + continue + + str_buf += "- name:" + package + '\n' + for file in os.listdir(service_dir + "/" + package): + if file != "_service": + continue + str_buf += xml2yaml(service_dir + "/" + package + "/" + file) + f = open(yamlfile, "a") + print(str_buf, file = f) + f.close() + str_buf = "" +# module_xml2yaml(service_file) + +""" + + + repo + next/openEuler/acl + + +""" -- Gitee