diff --git a/ChangeLog b/ChangeLog index d701586..9092432 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,8 +2,8 @@ All notable changes to this project will be documented in this file. Date based versioning is now used in this project. This is so that it doesn't get confused with the Dropbox desktop client. -Unreleased ----------- +Version 2022.12.05 +------------------ * Update to use libnautilus-extension-4 and gtk4, supporting Nautilus 43+. * Fix various uses of deprecated APIs, such as the "DeprecationWarning: isSet() is deprecated" warning. * Fix colors of ignored files in `dropbox filestatus`. diff --git a/HOWTO_PACKAGE.md b/HOWTO_PACKAGE.md index c9513d7..71d16bb 100644 --- a/HOWTO_PACKAGE.md +++ b/HOWTO_PACKAGE.md @@ -2,46 +2,60 @@ This is a work-in-progress guide on how to build Ubuntu, Debian, and Fedora packages for nautilus-dropbox. It assumes you're building from -a 16.04 Ubuntu machine. +an Ubuntu 22.10 machine for the `.deb` build and a Fedora 37 machine for the `.rpm` build. -1. Obtain the signing key. Add it to your keyring using `gpg --import /path/to/key`. +1. Obtain the signing tarball and extract all of the files into your `~/.gnupg` + directory. If producing an RPM build, also import it into RPM with + `sudo rpm --import /path/to/key`. -2. Install the build dependencies. +2. On a Debian/Ubuntu machine: + 1. Install dependencies: -This is a non-exhaustive list of what you'll need: + ``` + sudo apt-get install pbuilder debootstrap devscripts libnautilus-extension-dev cdbs gnome-common debian-archive-keyring python3-docutils + ``` -``` -sudo apt-get install pbuilder debootstrap devscripts libnautilus-extension-dev mock rpm expect createrepo cdbs gnome-common debian-archive-keyring python3-docutils -``` + 2. Copy `.pbuilderrc` to `~/.pbuilderrc` -3. Copy .pbuilderrc to ~/.pbuilderrc + 3. Create chroots for each of the Debian or Ubuntu builds you'll be doing. -4. Create chroots for each of the Debian or Ubuntu builds you'll be doing. + ``` + sudo DIST=trusty ARCH=i386 pbuilder create --debootstrapopts --variant=buildd + sudo DIST=trusty ARCH=amd64 pbuilder create --debootstrapopts --variant=buildd + sudo DIST=jessie ARCH=i386 pbuilder create --debootstrapopts --variant=buildd + sudo DIST=jessie ARCH=amd64 pbuilder create --debootstrapopts --variant=buildd + ``` -``` -sudo DIST=trusty ARCH=i386 pbuilder create --debootstrapopts --variant=buildd -sudo DIST=trusty ARCH=amd64 pbuilder create --debootstrapopts --variant=buildd -sudo DIST=jessie ARCH=i386 pbuilder create --debootstrapopts --variant=buildd -sudo DIST=jessie ARCH=amd64 pbuilder create --debootstrapopts --variant=buildd -``` + 4. Build all the packages with: `python3 build_packages.py deb` -5. Add yourself to the mock group (create it if it doesn't exist), and - then logout and login for the group to take affect. - Probably you have to run `build_packages.py` command with `sudo` permission which - means you should add your root account to the mock group. Otherwise, you will see - `The password you typed is invalid.` error. +3. On a Fedora machine: + 1. Install dependencies: -6. Copy rpm_resources/fedora-*.cfg to /etc/mock. + ``` + sudo dnf install devscripts libnautilus-extension-dev mock rpm rpm-sign rpmdevtools rpmlint expect createrepo cdbs gnome-common python3-docutils rpm-build gawk nautilus-devel + ``` - If you need to add new configs when we start targetting a new Fedora version, - you can find all the configs here: https://github.com/rpm-software-management/mock + 2. Add yourself to the mock group (create it if it doesn't exist), and + then logout and login for the group to take affect. + `build_packages.py` will use `sudo` for a few of the commands, so add both + your user account and root to the group. -7. Copy rpm_resources/.rpmmacros to ~/.rpmmacros + 3. Copy `rpm_resources/fedora-*.cfg` to `/etc/mock`. -8. Build all the packages with: `python3 build_packages.py` + If you need to add new configs when we start targetting a new Fedora + version, you can find all the configs here: + https://github.com/rpm-software-management/mock. -If the build is successful, a tar of the output will be in: /tmp/nautilus-dropbox-release.tar.gz + The configs in that repo are templatized, so you'll also have to manually + copy the template contents into your copy. -8. Update the ChangeLog with all the changes in the release. + 4. Copy `rpm_resources/.rpmmacros` to `~/.rpmmacros` -9. Tag the release and push the tag to GitHub. + 5. Build all the packages with: `python3 build_packages.py rpm` + +4. Gather the built outputs from both machines, and put them in the repo root + (this step can be done on either machine). Run `python3 build_packages.py package`. + +5. Update the ChangeLog with all the changes in the release. + +6. Tag the release and push the tag to GitHub. diff --git a/build_packages.py b/build_packages.py index c95fb99..9af6e0f 100644 --- a/build_packages.py +++ b/build_packages.py @@ -29,17 +29,17 @@ def generate_packages(self): assert self.system('rm -f /tmp/nautilus-dropbox-release.tar.gz') == 0 # Source - assert self.system('cp nautilus-dropbox-*.tar.bz2 /home/releng/result/packages') == 0 + assert self.system('cp nautilus-dropbox-*.tar.bz2 /tmp/dbx_build/result/packages') == 0 # Get dropbox.py assert self.system('make dropbox') == 0 assert self.system( - 'cp {REPO_DIR}/dropbox /home/releng/result/packages/dropbox.py'.format( + 'cp {REPO_DIR}/dropbox /tmp/dbx_build/result/packages/dropbox.py'.format( REPO_DIR=REPO_DIR, )) == 0 # Tar it up - assert self.system('cd /home/releng/result/; tar czvf /tmp/nautilus-dropbox-release.tar.gz *') == 0 + assert self.system('cd /tmp/dbx_build/result/; tar czvf /tmp/nautilus-dropbox-release.tar.gz *') == 0 def build_deb(self, dist, arch): assert self.system('sh generate-deb.sh') == 0 @@ -58,7 +58,7 @@ def build_deb(self, dist, arch): def generate_deb_repo(self, distro_upper, codenames, dist, archs): distro = distro_upper.lower() - result = '/home/releng/result/%s' % distro + result = '/tmp/dbx_build/result/%s' % distro assert self.system('rm -rf %s' % result) == 0 assert self.system('mkdir -p %s/pool/main' % result) == 0 for arch in archs: @@ -74,43 +74,43 @@ def generate_deb_repo(self, distro_upper, codenames, dist, archs): # Add pacakge symlinks files = os.listdir(os.path.join(result, 'pool', 'main')) - assert self.system('mkdir -p /home/releng/result/packages/%s' % distro) == 0 + assert self.system('mkdir -p /tmp/dbx_build/result/packages/%s' % distro) == 0 for f in files: if f.endswith('.deb'): - assert self.system('ln -s ../../%s/pool/main/%s /home/releng/result/packages/%s' % + assert self.system('ln -s ../../%s/pool/main/%s /tmp/dbx_build/result/packages/%s' % (distro, f, distro)) == 0 def generate_yum_repo(self, distro_upper, codenames, dist, archs, dist_name): distro = distro_upper.lower() - assert self.system('rm -rf /home/releng/result/fedora') == 0 - assert self.system('mkdir -p /home/releng/result/fedora/pool/') == 0 + assert self.system('rm -rf /tmp/dbx_build/result/fedora') == 0 + assert self.system('mkdir -p /tmp/dbx_build/result/fedora/pool/') == 0 for arch in archs: - assert self.system('cp %s/%s-%s/result/*.rpm /home/releng/result/fedora/pool' % (MOCK_OUT, dist, arch)) == 0 + assert self.system('cp %s/%s-%s/result/*.rpm /tmp/dbx_build/result/fedora/pool' % (MOCK_OUT, dist, arch)) == 0 - files = os.listdir('/home/releng/result/fedora/pool') + files = os.listdir('/tmp/dbx_build/result/fedora/pool') for f in files: - f = '/home/releng/result/fedora/pool/' + f + f = '/tmp/dbx_build/result/fedora/pool/' + f newname = f.replace(dist_name, 'fedora') os.rename(f, newname) old = os.getcwd() - os.chdir('/home/releng/result/fedora') + os.chdir('/tmp/dbx_build/result/fedora') try: assert self.system('DISTS="%s" sh %s/create-yum-repo.sh' % (codenames, old)) == 0 finally: os.chdir(old) # Add pacakge symlinks - assert self.system('mkdir -p /home/releng/result/packages/%s' % distro) == 0 - files = os.listdir('/home/releng/result/fedora/pool') + assert self.system('mkdir -p /tmp/dbx_build/result/packages/%s' % distro) == 0 + files = os.listdir('/tmp/dbx_build/result/fedora/pool') for f in files: if re.match(r'nautilus-dropbox-[0-9.-]*\.fedora\.(i386|x86_64)\.rpm', f): - assert self.system('ln -s ../../%s/pool/%s /home/releng/result/packages/%s' % + assert self.system('ln -s ../../%s/pool/%s /tmp/dbx_build/result/packages/%s' % (distro, f, distro)) == 0 def build_rpm(self, config): - # config='fedora-21-i386,fedora-21-x86_64' + # config='fedora-37-i386,fedora-37-x86_64' assert self.system('sh generate-rpm.sh') == 0 path = None @@ -132,7 +132,7 @@ def build_rpm(self, config): try: assert self.system( - '/usr/bin/mock -r {config} --resultdir={mock_config_out} rebuild {path}'.format( + 'sudo /usr/bin/mock -r {config} --resultdir={mock_config_out} rebuild {path}'.format( config=config, mock_config_out=mock_config_out, path=path)) == 0 @@ -141,7 +141,9 @@ def build_rpm(self, config): self.system('cat %s/*.log >&2' % (mock_config_out,)) raise else: - assert self.system('find %s/ -name *.rpm | xargs /usr/bin/expect sign-rpm.exp' % ( + username = cmd('whoami').decode('utf-8') + assert self.system('sudo chown -R %s:%s %s' % (username, username, mock_config_out)) == 0 + assert self.system('find %s/ -name *.rpm -exec /usr/bin/expect sign-rpm.exp {} \\;' % ( mock_config_out,)) == 0 def build_all(self): @@ -153,25 +155,28 @@ def build_all(self): with open("distro-info.sh") as f: exec(f.read(), {}, info) - assert self.system('rm -rf /home/releng/result') == 0 - assert self.system('mkdir -p /home/releng/result/packages') == 0 + assert self.system('rm -rf /tmp/dbx_build/result') == 0 + assert self.system('mkdir -p /tmp/dbx_build/result/packages') == 0 - # Ubuntu - self.build_deb('trusty', 'i386') - self.build_deb('trusty', 'amd64') - self.generate_deb_repo('Ubuntu', info['UBUNTU_CODENAMES'], 'trusty', ['amd64', 'i386']) + if len(sys.argv) == 1 or 'deb' in sys.argv: + # Ubuntu + self.build_deb('trusty', 'i386') + self.build_deb('trusty', 'amd64') + self.generate_deb_repo('Ubuntu', info['UBUNTU_CODENAMES'], 'trusty', ['amd64', 'i386']) - # Debian - self.build_deb('jessie', 'i386') - self.build_deb('jessie', 'amd64') - self.generate_deb_repo('Debian', info['DEBIAN_CODENAMES'], 'jessie', ['amd64', 'i386']) + # Debian + self.build_deb('jessie', 'i386') + self.build_deb('jessie', 'amd64') + self.generate_deb_repo('Debian', info['DEBIAN_CODENAMES'], 'jessie', ['amd64', 'i386']) # Fedora - self.build_rpm('fedora-21-i386') - self.build_rpm('fedora-21-x86_64') - self.generate_yum_repo('Fedora', info['FEDORA_CODENAMES'], 'fedora-21', ['i386', 'x86_64'], 'fc21') + if len(sys.argv) == 1 or 'rpm' in sys.argv: + # Fedora dropped 32-bit support several versions ago. + self.build_rpm('fedora-37-x86_64') + self.generate_yum_repo('Fedora', info['FEDORA_CODENAMES'], 'fedora-37', ['x86_64'], 'fc37') - self.generate_packages() + if len(sys.argv) == 1 or 'package' in sys.argv: + self.generate_packages() if __name__ == "__main__": diff --git a/configure.ac b/configure.ac index 0afca28..f1b996f 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ # Initialization -AC_INIT([nautilus-dropbox], 2020.03.04) +AC_INIT([nautilus-dropbox], 2022.12.05) AM_INIT_AUTOMAKE([foreign]) diff --git a/create-yum-repo.sh b/create-yum-repo.sh index f2ae020..dafdb3d 100644 --- a/create-yum-repo.sh +++ b/create-yum-repo.sh @@ -3,7 +3,7 @@ set -e # DISTS must be defined. -ARCHS="i386 x86_64" +ARCHS="x86_64" for DIST in $DISTS; do diff --git a/distro-info.sh b/distro-info.sh index d8e7aba..cfbee66 100755 --- a/distro-info.sh +++ b/distro-info.sh @@ -2,4 +2,4 @@ # This file also gets execfile'd by python so don't do anything here besides set variables. UBUNTU_CODENAMES="trusty utopic vivid wily xenial yakkety zesty artful bionic cosmic disco eoan" DEBIAN_CODENAMES="jessie stretch buster sid" -FEDORA_CODENAMES="21 22 23 24 25 26 27 28 29 30 31" +FEDORA_CODENAMES="21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37" diff --git a/generate-rpm.sh b/generate-rpm.sh index 9fa7986..84036f7 100755 --- a/generate-rpm.sh +++ b/generate-rpm.sh @@ -29,7 +29,7 @@ cat < $HOME/.rpmmacros %_tmppath $(pwd)/rpmbuild %_smp_mflags -j3 %_signature gpg -%_gpg_name 3565780E +%_gpg_name 5044912e %_gpgbin /usr/bin/gpg EOF @@ -58,7 +58,7 @@ cp nautilus-dropbox-$CURVER.tar.bz2 rpmbuild/SOURCES/ cat < rpmbuild/SPECS/nautilus-dropbox.spec %define glib_version 2.42.1 -%define nautilus_version 3.14.2 +%define nautilus_version 43.0 %define libgnome_version 2.32.1 %define pygobject3_version 3.14.0 %define pygpgme_version 0.3 @@ -75,7 +75,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id} -u -n) Requires: nautilus-extensions >= %{nautilus_version} Requires: glib2 >= %{glib_version} -Requires: libgnome >= %{gnome_version} +Requires: libgnome >= %{libgnome_version} Requires: python3 Requires: python3-gobject >= %{pygobject3_version} @@ -84,12 +84,13 @@ Requires: python3-gobject >= %{pygobject3_version} BuildRequires: nautilus-devel >= %{nautilus_version} BuildRequires: glib2-devel >= %{glib_version} BuildRequires: python3-docutils -BuildRequires: cairo-devel -BuildRequires: gtk3-devel -BuildRequires: atk-devel -BuildRequires: pango-devel -BuildRequires: python3 -BuildRequires: python3-gobject >= %{pygobject3_version} +BuildRequires: cairo-devel +BuildRequires: gcc +BuildRequires: gtk4-devel +BuildRequires: atk-devel +BuildRequires: pango-devel +BuildRequires: python3 +BuildRequires: python3-gobject >= %{pygobject3_version} %description Nautilus Dropbox is an extension that integrates the Dropbox web service with your GNOME Desktop. @@ -109,50 +110,17 @@ make %{?_smp_mflags} rm -rf \$RPM_BUILD_ROOT make install DESTDIR=\$RPM_BUILD_ROOT -if [ -d \$RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-2.0 ]; then - rm \$RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-2.0/*.la - rm \$RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-2.0/*.a - mkdir -p \$RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-3.0 - ln -s ../extensions-2.0/libnautilus-dropbox.so \$RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-3.0/ -elif [ -d \$RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-3.0 ]; then - rm \$RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-3.0/*.la - rm \$RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-3.0/*.a - mkdir -p \$RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-2.0 - ln -s ../extensions-3.0/libnautilus-dropbox.so \$RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-2.0/ -fi +rm \$RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-4/libnautilus-dropbox.{,l}a + %post /sbin/ldconfig /usr/bin/update-desktop-database &> /dev/null || : /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : -if [ \$1 -gt 1 ] ; then - # Old versions of the rpm delete the files in postun. So just in case let's make a backup copy. The backup copy will be restored in posttrans. - ln -f %{_libdir}/nautilus/extensions-3.0/libnautilus-dropbox.so{,.bak} - ln -f %{_libdir}/nautilus/extensions-2.0/libnautilus-dropbox.so{,.bak} -fi - EOF cat <<'EOF' >> rpmbuild/SPECS/nautilus-dropbox.spec -for I in /home/*/.dropbox-dist; -do - # require a minimum version of 1.0.0 - DROPBOX_VERSION="$I/VERSION" - if test -e "$DROPBOX_VERSION"; then - VERSION=`cat "$DROPBOX_VERSION"` - - case "$VERSION" in - 2.[0-9].*|1.*.*|0.*.*) - # Anything below 2.10 is deprecated! - # stop dropbox - pkill -xf $I/dropbox > /dev/null 2>&1 - sleep 0.5 - rm -rf "$I" - esac - fi -done - DEFAULTS_FILE="/etc/default/dropbox-repo" if [ ! -e "$DEFAULTS_FILE" ]; then @@ -194,9 +162,9 @@ fi PROCS=`pgrep -x nautilus` for PROC in $PROCS; do - # Extract the display variable so that we can show a box. - # Hope they have xauth to localhost. - export `cat /proc/$PROC/environ | tr "\0" "\n" | grep DISPLAY` + # Extract the display variable so that we can show a box. + # Hope they have xauth to localhost. + export `cat /proc/$PROC/environ | tr "\0" "\n" | grep DISPLAY` zenity --question --timeout=30 --title=Dropbox --text='The Nautilus File Browser has to be restarted. Any open file browser windows will be closed in the process. Do this now?' > /dev/null 2>&1 if [ $? -eq 0 ] ; then @@ -227,20 +195,7 @@ fi %posttrans /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : -# Old versions of the rpm delete these files in postun. Fortunately we have saved a backup. -if [ ! -e %{_libdir}/nautilus/extensions-3.0/libnautilus-dropbox.so ]; then - if [ -e %{_libdir}/nautilus/extensions-3.0/libnautilus-dropbox.so.bak ]; then - mv -f %{_libdir}/nautilus/extensions-3.0/libnautilus-dropbox.so{.bak,} - fi -fi -if [ ! -e %{_libdir}/nautilus/extensions-2.0/libnautilus-dropbox.so ]; then - if [ -e %{_libdir}/nautilus/extensions-2.0/libnautilus-dropbox.so.bak ]; then - mv -f %{_libdir}/nautilus/extensions-2.0/libnautilus-dropbox.so{.bak,} - fi -fi - -rm -f %{_libdir}/nautilus/extensions-3.0/libnautilus-dropbox.so.bak -rm -f %{_libdir}/nautilus/extensions-2.0/libnautilus-dropbox.so.bak +rm -f %{_libdir}/nautilus/extensions-4/libnautilus-dropbox.so.bak %clean rm -rf \$RPM_BUILD_ROOT @@ -248,8 +203,7 @@ rm -rf \$RPM_BUILD_ROOT %files %defattr(-,root,root,-) %doc -%{_libdir}/nautilus/extensions-2.0/*.so* -%{_libdir}/nautilus/extensions-3.0/*.so* +%{_libdir}/nautilus/extensions-4/*.so* %{_datadir}/icons/hicolor/* %{_datadir}/nautilus-dropbox/emblems/* %{_bindir}/dropbox diff --git a/rpm_resources/.rpmmacros b/rpm_resources/.rpmmacros index 7f6d610..a24d71c 100644 --- a/rpm_resources/.rpmmacros +++ b/rpm_resources/.rpmmacros @@ -1,2 +1,3 @@ %_signature gpg -%_gpg_name 5044912E +%_gpg_name 5044912e +%_gpgbin /usr/bin/gpg diff --git a/rpm_resources/fedora-37-x86_64.cfg b/rpm_resources/fedora-37-x86_64.cfg new file mode 100644 index 0000000..edb18a1 --- /dev/null +++ b/rpm_resources/fedora-37-x86_64.cfg @@ -0,0 +1,176 @@ +config_opts['releasever'] = '37' +config_opts['target_arch'] = 'x86_64' +config_opts['legal_host_arches'] = ('x86_64',) + +config_opts['root'] = 'fedora-{{ releasever }}-{{ target_arch }}' + +config_opts['description'] = 'Fedora {{ releasever }}' +# fedora 31+ isn't mirrored, we need to run from koji +config_opts['mirrored'] = config_opts['target_arch'] != 'i686' + +config_opts['chroot_setup_cmd'] = 'install @{% if mirrored %}buildsys-{% endif %}build' + +config_opts['dist'] = 'fc{{ releasever }}' # only useful for --resultdir variable subst +config_opts['extra_chroot_dirs'] = [ '/run/lock', ] +config_opts['package_manager'] = 'dnf' +config_opts['bootstrap_image'] = 'registry.fedoraproject.org/fedora:{{ releasever }}' + +config_opts['dnf.conf'] = """ +[main] +keepcache=1 +debuglevel=2 +reposdir=/dev/null +logfile=/var/log/yum.log +retries=20 +obsoletes=1 +gpgcheck=0 +assumeyes=1 +syslog_ident=mock +syslog_device= +install_weak_deps=0 +metadata_expire=0 +best=1 +module_platform_id=platform:f{{ releasever }} +protected_packages= +user_agent={{ user_agent }} + +# repos + +[local] +name=local +baseurl=https://kojipkgs.fedoraproject.org/repos/f{{ releasever }}-build/latest/$basearch/ +cost=2000 +enabled={{ not mirrored }} +skip_if_unavailable=False + +{% if mirrored %} +[fedora] +name=fedora +metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch +gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-{{ releasever }}-primary +gpgcheck=1 +skip_if_unavailable=False + +[updates] +name=updates +metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch +gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-{{ releasever }}-primary +gpgcheck=1 +skip_if_unavailable=False + +[updates-testing] +name=updates-testing +metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-f$releasever&arch=$basearch +enabled=0 +gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-{{ releasever }}-primary +gpgcheck=1 +skip_if_unavailable=False + +[fedora-debuginfo] +name=fedora-debuginfo +metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-$releasever&arch=$basearch +enabled=0 +gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-{{ releasever }}-primary +gpgcheck=1 +skip_if_unavailable=False + +[updates-debuginfo] +name=updates-debuginfo +metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f$releasever&arch=$basearch +enabled=0 +gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-{{ releasever }}-primary +gpgcheck=1 +skip_if_unavailable=False + +[updates-testing-debuginfo] +name=updates-testing-debuginfo +metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-debug-f$releasever&arch=$basearch +enabled=0 +gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-{{ releasever }}-primary +gpgcheck=1 +skip_if_unavailable=False + +[fedora-source] +name=fedora-source +metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-$releasever&arch=$basearch +gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-{{ releasever }}-primary +gpgcheck=1 +enabled=0 +skip_if_unavailable=False + +[updates-source] +name=updates-source +metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f$releasever&arch=$basearch +gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-{{ releasever }}-primary +gpgcheck=1 +enabled=0 +skip_if_unavailable=False + +# modular + +[fedora-modular] +name=Fedora Modular $releasever - $basearch +metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-modular-$releasever&arch=$basearch +# if you want to enable it, you should set best=0 +# see https://bugzilla.redhat.com/show_bug.cgi?id=1673851 +enabled=0 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-$releasever-primary +skip_if_unavailable=False + +[fedora-modular-debuginfo] +name=Fedora Modular $releasever - $basearch - Debug +metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-modular-debug-$releasever&arch=$basearch +enabled=0 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-$releasever-primary +skip_if_unavailable=False + +[fedora-modular-source] +name=Fedora Modular $releasever - Source +metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-modular-source-$releasever&arch=$basearch +enabled=0 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-$releasever-primary +skip_if_unavailable=False + +[updates-modular] +name=Fedora Modular $releasever - $basearch - Updates +#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/Modular/$basearch/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-modular-f$releasever&arch=$basearch +enabled=0 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch +skip_if_unavailable=False + +[updates-modular-debuginfo] +name=Fedora Modular $releasever - $basearch - Updates - Debug +#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/Modular/$basearch/debug/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-modular-debug-f$releasever&arch=$basearch +enabled=0 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch +skip_if_unavailable=False + +[updates-modular-source] +name=Fedora Modular $releasever - Updates Source +#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/Modular/SRPMS/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-modular-source-f$releasever&arch=$basearch +enabled=0 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch +skip_if_unavailable=False +{% endif %} +"""