diff --git a/bird-1.6.3_verbose.build.patch b/bird-1.6.3_verbose.build.patch deleted file mode 100644 index e8c18d1..0000000 --- a/bird-1.6.3_verbose.build.patch +++ /dev/null @@ -1,23 +0,0 @@ -Index: bird-1.6.3/tools/Rules.in -=================================================================== ---- bird-1.6.3.orig/tools/Rules.in -+++ bird-1.6.3/tools/Rules.in -@@ -68,14 +68,14 @@ subdir: all.o - all.o: $(objs) - # $(LD) -r -o $@ $^ - # Changed to $(CC) because $(LD) has problems with crosscompiling -- @echo LD -r -o $@ $^ -- @$(CC) -nostdlib -r -o $@ $^ -+# @echo LD -r -o $@ $^ -+ $(CC) -nostdlib -r -o $@ $^ - - endif - - %.o: $(src-path)%.c -- @echo CC -o $@ -c $< -- @$(CC) $(CFLAGS) -o $@ -c $< -+# @echo CC -o $@ -c $< -+ $(CC) $(CFLAGS) -o $@ -c $< - - ifndef source-dep - source-dep := $(source) diff --git a/bird-1.6.8.tar.gz b/bird-1.6.8.tar.gz deleted file mode 100644 index ccc52ce..0000000 --- a/bird-1.6.8.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6c61ab5d2ef59d2559a8735b8252b5a0238013b43e5fb8a96c5d9d06e7bc00b2 -size 1042222 diff --git a/bird-2.0.7.tar.gz b/bird-2.0.7.tar.gz new file mode 100644 index 0000000..331cc0b --- /dev/null +++ b/bird-2.0.7.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:631d2b58aebdbd651aaa3c68c3756c02ebfe5b1e60d307771ea909eeaa5b1066 +size 1993395 diff --git a/bird.changes b/bird.changes index 6f4158d..aaf4d66 100644 --- a/bird.changes +++ b/bird.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Fri Sep 11 07:16:11 UTC 2020 - Dirk Mueller + +- update to 2.0.2: + o Integrated IPv4 + IPv6 design + * many changes, see included NEWS for details + * obsoletes separate bird6/bird-common subpackages + +- remove bird-1.6.3_verbose.build.patch bufferoverflow.patch: obsolete +- add gcc10.patch (fix build with gcc 10), disable -fcommon again +- reenable fortify-source + ------------------------------------------------------------------- Wed Jun 17 11:26:13 UTC 2020 - Paolo Stivanin diff --git a/bird.spec b/bird.spec index aff1fc3..d216aaa 100644 --- a/bird.spec +++ b/bird.spec @@ -21,7 +21,7 @@ %define bird_home %{_localstatedir}/lib/bird %define bird_runtimedir %{_rundir}/%{name} Name: bird -Version: 1.6.8 +Version: 2.0.7 Release: 0 Summary: The BIRD Internet Routing Daemon License: GPL-2.0-or-later @@ -29,17 +29,19 @@ Group: Productivity/Networking/Routing URL: https://bird.network.cz/ Source: ftp://bird.network.cz/pub/bird/bird-%{version}.tar.gz Source1: bird.service -Source2: bird6.service Source3: bird.tmpfiles.d -Patch0: bird-1.6.3_verbose.build.patch -Patch1: bufferoverflow.patch +Patch0: gcc10.patch BuildRequires: bison BuildRequires: flex BuildRequires: ncurses-devel BuildRequires: pkgconfig BuildRequires: readline-devel BuildRequires: pkgconfig(systemd) -Requires: bird-common +Provides: bird6 = %{version} +Provides: bird6:%{_sbindir}/bird6 +Obsoletes: bird6 < %{version} +Provides: bird-common = %{version} +Obsoletes: bird-common < %{version} %description BIRD is an implementation for routing Internet Protocol packets. IPv4 @@ -47,35 +49,14 @@ and IPv6 are supported by running separate daemons. It establishes multiple routing tables, and uses BGP, RIP, and OSPF routing protocols, as well as statically defined routes. -This package holds the IPv4 binaries. - -%package -n bird6 -Summary: The BIRD Internet Routing Daemon for IPv6 -Group: Productivity/Networking/Routing -Requires: bird-common - -%description -n bird6 -BIRD is an implementation for routing Internet Protocol packets. IPv4 -and IPv6 are supported by running separate daemons. It establishes -multiple routing tables, and uses BGP, RIP, and OSPF routing -protocols, as well as statically defined routes. - -This package holds the IPv6 binaries. - -%package common -Summary: Common files for the BIRD Internet Routing Daemon -Group: Productivity/Networking/Routing -Requires(pre): shadow -%{?systemd_requires} - -%description common -BIRD is an implementation for routing Internet Protocol packets. +This package holds the IPv4+IPv6 binaries. This package holds common files and directories. %package doc Summary: Documentation for the BIRD Internet Routing Daemon Group: Documentation/HTML +BuildRequires: perl-FindBin-Real %description doc BIRD is an implementation for routing Internet Protocol packets. @@ -85,73 +66,44 @@ This package holds the HTML documentation. %prep %setup -q %patch0 -p1 -%patch1 -p1 %build -# gcc detects overflow in strncpy at proto/rip/packets.c:215:5 -# but it's false alarm, relax gcc (-D_FORTIFY_SOURCE=1) -# see http://bird.network.cz/pipermail/bird-users/2016-May/010380.html -export CFLAGS="${RPM_OPT_FLAGS//-D_FORTIFY_SOURCE=2/-D_FORTIFY_SOURCE=0} -fpic -DPIC -fno-strict-aliasing -Wno-parentheses -Wno-pointer-sign -fcommon" +export CFLAGS="${RPM_OPT_FLAGS} -fpic -DPIC -fno-strict-aliasing -Wno-parentheses -Wno-pointer-sign" export LDFLAGS="-Wl,-z,relro -pie" -%define _configure ../configure -mkdir 4 6 -pushd 4 %configure \ --with-runtimedir=%{bird_runtimedir} -make %{?_smp_mflags} -popd -pushd 6 -%configure --enable-ipv6 \ - --with-runtimedir=%{bird_runtimedir} -make %{?_smp_mflags} -popd +%make_build all +# requires linuxdoctools +# make docs %install -%make_install -C 4 -%make_install -C 6 +%make_install install -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/bird.service -install -D -m 0644 %{SOURCE2} %{buildroot}%{_unitdir}/bird6.service install -D -m 0644 %{SOURCE3} %{buildroot}%{_tmpfilesdir}/%{name}.conf ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcbird -ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcbird6 install -D -d -m 0750 %{buildroot}%{bird_home} install -D -d -m 0750 %{buildroot}%{_docdir}/%{name}/ -cp -av NEWS README doc/bird*.html %{buildroot}%{_docdir}/%{name}/ -%pre common +%check +make test + +%pre # Create bird user/group getent group %{bird_group} >/dev/null || groupadd -r %{bird_group} getent passwd %{bird_user} >/dev/null || useradd -r -g %{bird_group} -d %{bird_home} -s /sbin/nologin -c "Bird routing daemon" %{bird_user} -exit 0 - -%post common -systemd-tmpfiles --create %{_tmpfilesdir}/%{name}.conf || true - -%pre %service_add_pre bird.service -%pre -n bird6 -%service_add_pre bird6.service - %preun %service_del_preun bird.service -%preun -n bird6 -%service_del_preun bird6.service - %post +systemd-tmpfiles --create %{_tmpfilesdir}/%{name}.conf || true %service_add_post bird.service -%post -n bird6 -%service_add_post bird6.service - %postun %service_del_postun bird.service -%postun -n bird6 -%service_del_postun bird6.service - %files %config(noreplace) %attr(0640,root,%{bird_group}) %{_sysconfdir}/bird.conf %{_sbindir}/bird @@ -159,24 +111,12 @@ systemd-tmpfiles --create %{_tmpfilesdir}/%{name}.conf || true %{_sbindir}/birdcl %{_sbindir}/rcbird %{_unitdir}/bird.service - -%files -n bird6 -%config(noreplace) %attr(0640,root,%{bird_group}) %{_sysconfdir}/bird6.conf -%{_sbindir}/bird6 -%{_sbindir}/birdc6 -%{_sbindir}/birdcl6 -%{_sbindir}/rcbird6 -%{_unitdir}/bird6.service - -%files common %dir %attr(750,%{bird_user},%{bird_group}) %{bird_home} %{_tmpfilesdir}/%{name}.conf %dir %attr(-,%{bird_user},%{bird_group}) %ghost %{bird_runtimedir} -%dir %{_docdir}/%{name} -%doc %{_docdir}/%{name}/README -%doc %{_docdir}/%{name}/NEWS %files doc -%doc %{_docdir}/%{name}/bird*.html +%doc NEWS README +%doc doc/bird.conf.* %changelog diff --git a/bird6.service b/bird6.service deleted file mode 100644 index f4ca2f1..0000000 --- a/bird6.service +++ /dev/null @@ -1,17 +0,0 @@ -[Unit] -Description=The BIRD Internet Routing Daemon (IPv6) -Documentation=http://bird.network.cz/doc/bird.html -Wants=network.target -After=network.target -ConditionFileIsExecutable=/usr/sbin/bird6 - -[Service] -Type=simple -ExecStartPre=/usr/sbin/bird6 -p -u bird -g bird -ExecStart=/usr/sbin/bird6 -u bird -g bird -f -P /run/bird/bird6.pid $BIRD_OPTIONS -ExecReload=/usr/bin/kill -HUP $MAINPID -PIDFile=/run/bird/bird6.pid -Restart=on-failure - -[Install] -WantedBy=multi-user.target diff --git a/bufferoverflow.patch b/bufferoverflow.patch deleted file mode 100644 index 5bbd801..0000000 --- a/bufferoverflow.patch +++ /dev/null @@ -1,32 +0,0 @@ -Index: bird-1.6.3/proto/rip/packets.c -=================================================================== ---- bird-1.6.3.orig/proto/rip/packets.c -+++ bird-1.6.3/proto/rip/packets.c -@@ -56,13 +56,20 @@ struct rip_block_auth - { - u16 must_be_ffff; - u16 auth_type; -- char password[0]; -- u16 packet_len; -- u8 key_id; -- u8 auth_len; -- u32 seq_num; -- u32 unused1; -- u32 unused2; -+ /* -+ * use anonymous struct/union to get around a fortify source warnings about overwriting the password buffer -+ */ -+ union { -+ char password[RIP_PASSWD_LENGTH]; -+ struct { -+ u16 packet_len; -+ u8 key_id; -+ u8 auth_len; -+ u32 seq_num; -+ u32 unused1; -+ u32 unused2; -+ } -+ }; - }; - - /* Authentication tail, RFC 4822 */ diff --git a/gcc10.patch b/gcc10.patch new file mode 100644 index 0000000..f38b666 --- /dev/null +++ b/gcc10.patch @@ -0,0 +1,15 @@ +https://bird.network.cz/pipermail/bird-users/2020-February/014211.html + +diff --git a/nest/route.h b/nest/route.h +index d2a07f09..b927db5f 100644 +--- a/nest/route.h ++++ b/nest/route.h +@@ -458,7 +458,7 @@ typedef struct rta { + protocol-specific metric is availabe */ + + +-const char * rta_dest_names[RTD_MAX]; ++extern const char * rta_dest_names[RTD_MAX]; + + static inline const char *rta_dest_name(uint n) + { return (n < RTD_MAX) ? rta_dest_names[n] : "???"; }