Re: Bug#1121530: libreoffice: Please build with -fPIE on sparc64 to fix FTBFS

Rene Engelhard <[email protected]>
Newsgroups gmane.linux.debian.ports.sparc,gmane.linux.debian.devel.openoffice
Organization Debian Project
Message-ID <[email protected]>
Hi,

Am 29.11.25 um 12:33 schrieb John Paul Adrian Glaubitz:
> That's great! Hope you can make this change as suggested.
Built on stadler, just doing a verification build here on amd64. Will then push if it works.
> Once a new version of the
> libreoffice package has been uploaded, I'll look into debugging possible testsuite
> failures on sparc64.

The "minimal set" done currently at least passes on stadler (including the test-rust_uno-example autopkgtest which I massaged to run against the locally-built LO inside the Debian tree), a full make check would need a build with the attached patch (also running on stadler right now).

Regards,


Rene
tests.diff (text/x-patch, 17.2 KB)
diff --git a/control b/control
index 33ed78a28..d776f5444 100644
--- a/control
+++ b/control
@@ -26,7 +26,7 @@ Build-Depends: autoconf,
                gperf,
                java-common (>= 0.75) <!nojava>,
                javahelper [!armel !armhf !hppa !kfreebsd-amd64 !kfreebsd-i386 !mips64 !powerpcspe !ppc64el !s390x !sparc] <!nojava>,
-               junit4 [amd64 arm64] <!nocheck !nojava>,
+               junit4 [amd64 arm64 sparc64] <!nocheck !nojava>,
                libabw-dev (<< 0.2~),
                libabw-dev (>= 0.1),
                libarchive-zip-perl [!armel !armhf !hppa !kfreebsd-amd64 !kfreebsd-i386 !mips64 !powerpcspe !ppc64el !s390x !sparc] <!nojava>,
@@ -171,48 +171,48 @@ Build-Depends: autoconf,
                zip,
                zlib1g-dev
 Build-Depends-Arch: afdko-bin [alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 loong64 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
-                    at-spi2-core [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
+                    at-spi2-core [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
                     clang [!alpha !hppa !ia64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !s390x !sparc !sparc64],
                     coinor-libcoinmp-dev,
                     coinor-libcoinutils-dev,
-                    culmus [amd64 arm64 i386 ppc64el riscv64 s390x] <!nocheck>,
-                    dbus-x11 [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
+                    culmus [amd64 arm64 sparc64 i386 ppc64el riscv64 s390x] <!nocheck>,
+                    dbus-x11 [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
                     dh-cargo [!alpha !hppa !ia64 !kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mipsel !mips64 !powerpc !powerpcspe !sparc],
                     firebird-dev (<< 5.0~) [!m68k],
                     firebird-dev (>= 4.0) [!m68k],
                     firebird4.0-server-core [!m68k] <!nocheck>,
-                    fontconfig [amd64 arm64 i386 ppc64el riscv64 s390x] <!nocheck>,
-                    fonts-crosextra-caladea [amd64 arm64 i386 ppc64el riscv64 s390x] <!nocheck>,
-                    fonts-crosextra-carlito (>= 20230309) [amd64 arm64 i386 ppc64el riscv64 s390x] <!nocheck>,
-                    fonts-dejavu [amd64 arm64 i386 ppc64el riscv64 s390x] <!nocheck>,
-                    fonts-hosny-amiri (>= 1.000) [amd64 arm64 i386 ppc64el riscv64 s390x] <!nocheck>,
-                    fonts-liberation (>= 1:2) [amd64 arm64 i386 ppc64el riscv64 s390x] <!nocheck>,
-                    fonts-linuxlibertine [amd64 arm64 i386 ppc64el riscv64 s390x] <!nocheck>,
-                    fonts-noto-core [amd64 arm64 i386 ppc64el riscv64 s390x] <!nocheck>,
+                    fontconfig [amd64 arm64 sparc64 i386 ppc64el riscv64 s390x] <!nocheck>,
+                    fonts-crosextra-caladea [amd64 arm64 sparc64 i386 ppc64el riscv64 s390x] <!nocheck>,
+                    fonts-crosextra-carlito (>= 20230309) [amd64 arm64 sparc64 i386 ppc64el riscv64 s390x] <!nocheck>,
+                    fonts-dejavu [amd64 arm64 sparc64 i386 ppc64el riscv64 s390x] <!nocheck>,
+                    fonts-hosny-amiri (>= 1.000) [amd64 arm64 sparc64 i386 ppc64el riscv64 s390x] <!nocheck>,
+                    fonts-liberation (>= 1:2) [amd64 arm64 sparc64 i386 ppc64el riscv64 s390x] <!nocheck>,
+                    fonts-linuxlibertine [amd64 arm64 sparc64 i386 ppc64el riscv64 s390x] <!nocheck>,
+                    fonts-noto-core [amd64 arm64 sparc64 i386 ppc64el riscv64 s390x] <!nocheck>,
                     fonts-opensymbol <!pkg.libreoffice.opensymbolbuild>,
-                    gdb [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
-                    ghostscript [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
+                    gdb [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
+                    ghostscript [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
                     gir1.2-gdk-3.0-dev <!nogir>,
                     gir1.2-gdkpixbuf-2.0-dev <!nogir>,
                     gir1.2-gio-2.0-dev <!nogir>,
                     gir1.2-gobject-2.0-dev <!nogir>,
                     gir1.2-gtk-3.0-dev <!nogir>,
                     gobject-introspection (>= 1.80) <!nogir>,
-                    gpg [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
-                    gpg-agent [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
-                    gpgconf [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
-                    hunspell-en-us [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
-                    hyphen-de [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
-                    hyphen-en-us [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
-                    hyphen-hu [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
-                    imagemagick [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
+                    gpg [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
+                    gpg-agent [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
+                    gpgconf [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
+                    hunspell-en-us [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
+                    hyphen-de [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
+                    hyphen-en-us [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
+                    hyphen-hu [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
+                    imagemagick [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
                     libabsl-dev [alpha amd64 arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 loong64 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
                     libatk1.0-dev,
-                    libatspi2.0-dev [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
+                    libatspi2.0-dev [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
                     libavahi-client-dev,
                     libcairo2-dev,
                     libcppunit-dev,
-                    libcppunit-dev (>= 1.15.1-4) [amd64 arm64],
+                    libcppunit-dev (>= 1.15.1-4) [amd64 arm64 sparc64],
                     libdbus-1-dev,
                     libebook1.2-dev,
                     libglib2.0-dev,
@@ -235,18 +235,18 @@ Build-Depends-Arch: afdko-bin [alpha amd64 arm64 armel armhf hppa i386 ia64 kfre
                     libxml2-dev (>= 2.14.3+dfsg-0exp3) <!nocheck>,
                     llvm [!alpha !hppa !ia64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !s390x !sparc !sparc64],
                     locales <!nocheck> | locales-all <!nocheck>,
-                    poppler-data [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
-                    pstoedit [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
-                    python3-lxml [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck !nopython>,
-                    python3-pip [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck !nopython>,
-                    python3-setuptools [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck !nopython>,
-                    python3-venv [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck !nopython>,
+                    poppler-data [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
+                    pstoedit [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
+                    python3-lxml [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck !nopython>,
+                    python3-pip [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck !nopython>,
+                    python3-setuptools [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck !nopython>,
+                    python3-venv [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck !nopython>,
                     qmake6 (>= 6.5.0),
                     qt6-base-dev (>= 6.5.0),
                     qt6-base-dev-tools (>= 6.5.0),
                     qt6-multimedia-dev (>= 6.5.0),
-                    xauth [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>,
-                    xvfb [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64] <!nocheck>
+                    xauth [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>,
+                    xvfb [!alpha !armel !armhf !hppa !i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !loong64 !m68k !mips !mipsel !mips64 !mips64el !powerpc !powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc] <!nocheck>
 Build-Depends-Indep: ant [!armel !armhf !hppa !kfreebsd-amd64 !kfreebsd-i386 !mips64 !powerpcspe !ppc64el !s390x !sparc] <!nojava>,
                      ant-optional [!armel !armhf !hppa !kfreebsd-amd64 !kfreebsd-i386 !mips64 !powerpcspe !ppc64el !s390x !sparc] <!nojava>,
                      apparmor <!nocheck>,
@@ -264,7 +264,7 @@ Build-Depends-Indep: ant [!armel !armhf !hppa !kfreebsd-amd64 !kfreebsd-i386 !mi
                      symlinks
 Build-Conflicts: amd-libopencl1,
                  clang [alpha hppa ia64 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390x sparc sparc64],
-                 gpg-from-sq [amd64 arm64] <!nocheck>,
+                 gpg-from-sq [amd64 arm64 sparc64] <!nocheck>,
                  nvidia-glx-dev,
                  nvidia-glx-legacy-dev,
                  nvidia-libopencl1
@@ -272,7 +272,7 @@ Standards-Version: 4.0.1
 Rules-Requires-Root: no
 Vcs-Git: https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice.git -b debian-experimental-26.2
 Vcs-Browser: https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice
-Bugs: 
+Bugs: mailto:[email protected]
 Homepage: http://www.libreoffice.org
 
 Package: libreoffice
diff --git a/rules b/rules
index db96ec694..a73ae381e 100755
--- a/rules
+++ b/rules
@@ -658,12 +658,12 @@ OOO_CLANG_SUPPORTED_ARCHS := $(filter-out alpha ia64 ppc64el mipsel mips64el,$(O
 $(eval $(call gen_no_archs,OOO_CLANG_SUPPORTED_ARCHS))
 
 # supported upstream (upstream does aarch64 flatpak builds)
-OOO_CHECK_ARCHS := amd64 arm64
+OOO_CHECK_ARCHS := amd64 arm64 sparc64
 $(eval $(call gen_no_archs,OOO_CHECK_ARCHS))
-OOO_JUNIT_ARCHS := amd64 arm64
+OOO_JUNIT_ARCHS := amd64 arm64 sparc64
 $(eval $(call gen_no_archs,OOO_JUNIT_ARCHS))
 
-OOO_CHECK_FATAL_ARCHS := amd64 arm64
+OOO_CHECK_FATAL_ARCHS := amd64 arm64 sparc64
 
 ## original idea was without armhf, but since --disable-cve-tests for 32bit archs (see below)
 ## this now also passes. and the autopkgtests also pass (also the junit ones).
diff --git a/tests/control b/tests/control
index 4fdfe79c8..dda65894b 100644
--- a/tests/control
+++ b/tests/control
@@ -27,7 +27,7 @@ Restrictions: superficial
 
 ## Is there a need for this small test given we run the UI tests etc.?
 #Tests: smoketest
-#Architecture: amd64 arm64
+#Architecture: amd64 arm64 sparc64
 #Depends: @builddeps@, libreoffice-smoketest-data, libreoffice-dev, libreoffice-core, libreoffice-writer, libreoffice-calc, libreoffice-impress, libreoffice-math, libreoffice-base, libreoffice-sdbc-hsqldb, libreoffice-sdbc-firebird
 #Restrictions: allow-stderr, build-needed, rw-build-tree, superficial
 
@@ -143,7 +143,7 @@ Restrictions: allow-stderr, superficial
 #Restrictions: build-needed, rw-build-tree, allow-stderr, superficial, skippable
 
 Tests: junit-subsequentcheck
-Architecture: amd64 arm64
+Architecture: amd64 arm64 sparc64
 Depends: @builddeps@, libreoffice-core, libreoffice-writer, libreoffice-calc, libreoffice-impress, libreoffice-math, libreoffice-base, libreoffice-subsequentcheckbase, libreoffice-sdbc-hsqldb, libreoffice-sdbc-firebird
 Restrictions: allow-stderr, skippable
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.