Tuesday, February 11, 2025

Félix Tshisekedi

 Félix Antoine Tshisekedi Tshilombo[1] (French: [feliks ɑ̃twan tʃisekedi tʃilombo]; born 13 June 1963)[2] is a Congolese politician who has been the fifth president of the Democratic Republic of the Congo since 24 January 2019.[3]

He is the leader of the Union for Democracy and Social Progress (UDPS), the DRC's oldest and largest party,[4] succeeding his late father Étienne Tshisekedi in that role, a three-time Prime Minister of Zaire and opposition leader during the reign of Mobutu Sese Seko. Tshisekedi was the UDPS party's candidate for president in the December 2018 general election, which he was awarded, despite accusations of irregularities from several election monitoring organisations and other opposition parties. The Constitutional Court of the DRC upheld his victory after another opposition politician, Martin Fayulu, challenged the result, but Tshisekedi has been accused of making a deal with his predecessor, Joseph Kabila. The election marked the first peaceful transition of power since the DRC's independence from Belgium in 1960.

Since the Common Front for Congo (FCC) coalition, which is aligned with Kabila, still controlled the parliament and provincial governorships, Tshisekedi's ability to govern or even appoint a new Prime Minister was limited for the first six months of his term. He named his coalition partner and political heavyweight, Vital Kamerhe, as his Chief of Cabinet, at first having designated him prime minister but not having the parliamentary support to have him successfully appointed.[5] In May 2019 he reached a deal with the parliament's Kabila-aligned majority to appoint Sylvestre Ilunga prime minister.[6] On 27 July 2019, negotiations finally ended between Tshisekedi and the parliament, agreeing on the formation of a new cabinet.[7]

In May 2024, there was a failed coup attempt against him.[8]

Early life and education

[edit]

Tshisekedi, a member of the Luba ethnic group, was born in Kinshasa on 13 June 1963 to mother Marthe and father Étienne Tshisekedi, who served as Prime Minister of Zaire in the 1990s.[9] He had a comfortable life as a youth in the capital, but when his father created the UDPS in the early 1980s, publicly opposing Mobutu, Félix was forced to accompany him into house arrest in his native village in central Kasaï. This put his studies on hold. In 1985, Mobutu allowed him, his mother, and his brothers to leave Kasaï. He went on to live in Brussels, Belgium, where he worked at odd jobs, delivering pizza and cleaning jobs; he later became an active UDPS member.[2]

Political career

[edit]

Early political career

[edit]

In late 2008, Tshisekedi was named the UDPS National Secretary for external relations.[10] In November 2011, he obtained a seat in the National Assembly, representing the city of Mbuji Mayi in Kasai-Oriental province. He did not take his seat, citing a fraudulent election,[citation needed] and his mandate was invalidated for "absenteeism".[10]

In May 2013, he refused a position of rapporteur at the Independent National Electoral Commission (CENI), saying that he did not want to put his political career on hold[11] as CENI's article 17 excludes membership for those who are members of a political formation.[10]

In October 2016, Tshisekedi became vice secretary general of the UDPS.[10]

2018 election to the presidency

[edit]

On 31 March 2018, he was elected to lead the UDPS, after his father's death on 1 February 2017.[12] The same day, the UDPS nominated him for president in the December 2018 general election.[1]

On 10 January 2019, it was announced that Tshisekedi had won the presidency of the DRC in the December 2018 election.[13] He defeated another opposition leader, Martin Fayulu, and Emmanuel Ramazani Shadary, who was supported by term-limited outgoing President Kabila, who had been president for 18 years. Fayulu, the runner-up, alleged vote rigging and challenged the election results.[14] On 19 January, the Constitutional Court dismissed the challenge, officially making Tshisekedi president-elect.[15] He was sworn in as president on 24 January 2019,[16] taking office the next day.[3] This marked the first time since the Congo gained independence in 1960 that an incumbent president peacefully transferred power to the opposition.[17]

On 20 January, South Africa congratulated Tshisekedi on his election despite the African Union and EU warning of doubts over the result announced by the Constitutional Court.[18]

Tenure as president (2019–present)

[edit]

After Tshisekedi was sworn in, it was reported that a member of Kabila's coalition would be picked to serve as his Prime Minister.[19][20]

On 13 March 2019, Tshisekedi signed a decree to pardon approximately 700 prisoners, including imprisoned political opponents of Kabila, and this decision followed his promise given the week before to allow the return of exiles.[21]

Félix Tshisekedi with U.S. Secretary of State Mike Pompeo, April 2019

In early 2019, negotiations were underway between Tshisekedi and Kabila's FCC coalition that controlled the National Assembly and Senate. In late April, Jeune Afrique reported that Kabila proposed to Tshisekedi the mining company executive Albert Yuma as a candidate for prime minister. Yuma supports the new Mining Code adopted in 2018, which put the DRC in dispute with international mining companies, and Tshisekedi has been under foreign pressure to not appoint him.[22][23] The Civil Society of South Kivu recommended to Tshisekedi the appointment of his chief of staff Vital Kamerhe as prime minister.[24] For months, Tshisekedi continued working with ministers of Kabila's government as he was hamstrung by parliament. He faced challenges in dealing with the Kivu conflict as well as the Ebola outbreak in the region.[25] In early March, Tshisekedi started a program to improve infrastructure, transport, education, housing, communication, health, water, and agriculture.[26]

Tshisekedi and Russian President Vladimir Putin at the Russia–Africa Summit on 23 October 2019

Most of the provincial governorships were also won by Kabila-affiliated candidates.[27]

On 20 May 2019, Tshisekedi reached a deal with the FCC coalition and Kabila, appointing the career civil servant Sylvestre Ilunga as prime minister. Ilunga began his political career in the 1970s and held a number of cabinet posts under Mobutu Sese Seko before his overthrow in 1997. He is also an ally of Kabila.[28][29][30] In late July 2019, Tshisekedi reached a deal with parliament on forming a new government. Ilunga's new cabinet would include 65 members, 48 ministers and 17 vice-ministers, which should be divided between the Kabila-aligned FCC and Tshisekedi's CACH alliance. The majority of the ministries went to the FCC, including three of the six most important ones (Defence, Justice, and Finance), while the Foreign Affairs, Interior, and Budget portfolios went to Tshisekedi's allies.[31]

Tshisekedi and U.S. President Joe Biden at the 2021 G20 Rome summit, October 2021

After a power struggle saw the coalition with allies of Tshisekedi's predecessor break down and many legislators were won over, Ilunga was forced to leave office and Tshisekedi appointed Gécamines leader Jean-Michel Sama Lukonde as successor on 15 February 2021.[32]

On 12 April 2021, Tshisekedi formally ended his two-year coalition with Kabila and his allies when prime minister Sama Lukonde formed a new government. On national television, Tshisekedi’s spokesman Kasongo Mwema Yamba Yamba announced a number of new appointments, including Antoinette N’Samba Kalambayi as mines minister.[33] The president succeeded in ousting the last remaining elements of his government who were loyal to Kabila.[34]

Tshisekedi with Israeli President Isaac Herzog in Jerusalem, Israel, October 2021

Tshisekedi has called for a review of mining contracts signed with China by his predecessor Joseph Kabila,[35] especially the Sicomines multibillion 'minerals-for-infrastructure' deal.[36][37] He has also promised to end and reverse deforestation in the Democratic Republic of the Congo by 2030, in the COP26 climate summit's first major agreement.[38]

In October 2022, Tshisekedi ruled out bringing in Russian mercenaries to help quell a raging conflict in the east of the country and vowed to press on with economic development plans despite the insecurity in the region.[39] Also that same month he announced military reforms to create a more cohesive national army, which has been a diverse mix of integrated rebel groups and the former military of Mobutu's Zaire. The reform included a new military spending bill.[40] Other measures that he took to strengthen Congo's defenses included appointing new military chiefs, hiring Romanian private military contractors, and bringing additional peacekeepers from the EAC and SADC into the Kivu region.[41]

Tshisekedi with French President Emmanuel Macron and European Commissioner Jutta Urpilainen in Kinshasa, 4 March 2023

After the 2023 presidential election, Tshisekedi had a clear lead in his run for a second term.[42] On 31 December 2023, officials said that Tshisekedi had been re-elected with 73% of the vote. Nine opposition candidates signed a declaration rejecting the election and called for a rerun.[43]

In May 2023, he visited China and met with Chinese President Xi Jinping to strengthen the partnership with China and renegotiate mining contracts for the DRC's mineral reserves. The Democratic Republic of Congo is a major producer and exporter of copper, uranium and cobalt.[44]

On 19 May 2024, he was targeted, alongside his ally Vital Kamerhe, in an attempted coup launched by the self-proclaimed New Zaire, but managed to foil the attempt quickly.[8][45][46][47]

In October 2024, Tshisekedi walked out of the Francophone heads of state retreat in Paris after French president Emmanuel Macron failed to mention the conflicts in the eastern DRC in his speech. He also boycotted a luncheon hosted by Organisation internationale de la Francophonie head and former Rwandan foreign minister Louise Mushikiwabo.[48]

On 18 January 2025, Tshisekedi reaffirmed Kinshasa's refusal to engage in dialogue with the M23 rebels, stating, "Legitimizing these criminals would be an insult to the victims and to international law".[49]

Due to Rwanda's support for the Goma offensive by the M23 rebels, the DRC severed diplomatic ties between the two countries on 26 January 2025.[50] Tshisekedi called for a national mobilization, urging citizens to rally behind FARDC against what he called "Rwanda's barbaric aggression".[51]



0 Comments:

Post a Comment

Comment here

Subscribe to Post Comments [Atom]

<< Home

.

Nzayisenga Adrien

Rwanda • Africa • History • Business • Technology • Knowledge

Page Views
0
Visitors
0
AdSense Revenue
Check AdSense

Support Nzayisenga Adrien

Ushobora gushyigikira ibikorwa byacu by'ubushakashatsi, ubumenyi, amateka n'itangazamakuru.

Support / Pay

Uko system ikora

Abasomyi basura blog → Google igatanga ads → abantu bareba cyangwa bagakanda ads mu buryo busanzwe → AdSense ikabara amafaranga → Google ikishyura konti yawe hakurikijwe payment settings za AdSense.

Ntukande ku matangazo yawe kandi ntusabe abandi kuyakandaho. Clicks zigomba kuba genuine.

. Rwanda Nziza Ngobyi Iduhetse | ADFID TV | Nzayisenga Adrien ADFID Africa | Digital Library & AI Content Creator

ADFID Africa

African knowledge, digital publishing and AI-powered content creation in one platform.

🤖 AI Content Creator

Create articles, YouTube scripts, Shorts, Facebook posts and SEO content.

📚 Digital Library

Store and manage your African books, research and educational resources.

📺 ADFID TV

Transform written articles into video-ready scripts.

💰 Monetization

Prepare your platform for advertising, subscriptions and reader support.

🤖 ADFID TV AI Content Creator

Create multiple content formats from one article.

📚 ADFID Africa Digital Library

📤 Upload E-Book

📊 ADFID Dashboard

Books

0

Articles Created

0

AI Generations

0

Platform Status

ONLINE

System Information

This running version stores demo data in your browser using localStorage.

For a production platform, connect this interface to a real backend, database, authentication system and AI API.

❤️ Support ADFID Africa

Support Knowledge & African Digital Content

Your support can help develop educational materials, African history resources, digital books and media content.


Email: nayisengadrianos@gmail.com

Mobile: +250 784 296 338

require("dotenv").config(); const express = require("express"); const multer = require("multer"); const path = require("path"); const crypto = require("crypto"); const { createClient } = require("@supabase/supabase-js"); const app = express(); const PORT = process.env.PORT || 3000; const SUPABASE_URL = process.env.SUPABASE_URL; const SUPABASE_SERVICE_KEY = process.env.SUPABASE_SERVICE_KEY; const ADMIN_PASSWORD = process.env.ADMIN_PASSWORD; if (!SUPABASE_URL || !SUPABASE_SERVICE_KEY || !ADMIN_PASSWORD) { console.error("Missing required environment variables."); process.exit(1); } const supabase = createClient( SUPABASE_URL, SUPABASE_SERVICE_KEY, { auth: { autoRefreshToken: false, persistSession: false } } ); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use(express.static(path.join(__dirname, "public"))); const upload = multer({ storage: multer.memoryStorage(), limits: { fileSize: 100 * 1024 * 1024 }, fileFilter: (req, file, cb) => { const extension = path.extname(file.originalname).toLowerCase(); if ( extension !== ".pdf" && file.mimetype !== "application/pdf" ) { return cb(new Error("Only PDF files are allowed.")); } cb(null, true); } }); function checkAdmin(req, res, next) { const password = req.headers["x-admin-password"]; if (!password || password !== ADMIN_PASSWORD) { return res.status(401).json({ error: "Unauthorized" }); } next(); } function cleanFileName(name) { return name .replace(/[^a-zA-Z0-9._-]/g, "-") .replace(/-+/g, "-") .toLowerCase(); } /* GET BOOKS */ app.get("/api/books", async (req, res) => { try { const search = (req.query.search || "").trim(); let query = supabase .from("books") .select("*") .order("created_at", { ascending: false }); if (search) { query = query.or( `title.ilike.%${search}%,author.ilike.%${search}%,category.ilike.%${search}%` ); } const { data, error } = await query; if (error) { throw error; } res.json(data || []); } catch (error) { console.error(error); res.status(500).json({ error: "Unable to load books." }); } }); /* UPLOAD BOOK */ app.post( "/api/books", checkAdmin, upload.single("pdf"), async (req, res) => { try { if (!req.file) { return res.status(400).json({ error: "Please select a PDF file." }); } const title = (req.body.title || "").trim(); const author = (req.body.author || "").trim(); const description = (req.body.description || "").trim(); const category = (req.body.category || "General").trim(); if (!title || !author) { return res.status(400).json({ error: "Title and author are required." }); } const unique = crypto.randomBytes(8).toString("hex"); const filename = `${Date.now()}-${unique}-${cleanFileName(req.file.originalname)}`; const storagePath = `pdfs/${filename}`; /* Upload PDF to Supabase Storage */ const { error: uploadError } = await supabase.storage .from("books") .upload( storagePath, req.file.buffer, { contentType: "application/pdf", upsert: false } ); if (uploadError) { throw uploadError; } /* Get public PDF URL */ const { data: publicData } = supabase.storage .from("books") .getPublicUrl(storagePath); const pdfUrl = publicData.publicUrl; /* Save book information */ const { data, error } = await supabase .from("books") .insert({ title, author, description, category, pdf_path: storagePath, pdf_url: pdfUrl, downloads: 0 }) .select() .single(); if (error) { throw error; } res.json({ success: true, message: "Book uploaded successfully.", book: data }); } catch (error) { console.error(error); res.status(500).json({ error: error.message || "Book upload failed." }); } } ); /* DELETE BOOK */ app.delete( "/api/books/:id", checkAdmin, async (req, res) => { try { const id = req.params.id; const { data: book, error: findError } = await supabase .from("books") .select("*") .eq("id", id) .single(); if (findError) { throw findError; } /* Delete PDF from storage */ if (book.pdf_path) { await supabase.storage .from("books") .remove([ book.pdf_path ]); } /* Delete database record */ const { error: deleteError } = await supabase .from("books") .delete() .eq("id", id); if (deleteError) { throw deleteError; } res.json({ success: true }); } catch (error) { console.error(error); res.status(500).json({ error: "Unable to delete book." }); } } ); /* DOWNLOAD BOOK Increments download counter. */ app.get( "/api/books/:id/download", async (req, res) => { try { const id = req.params.id; const { data: book, error } = await supabase .from("books") .select("*") .eq("id", id) .single(); if (error || !book) { return res.status(404).send( "Book not found." ); } /* Increase download count */ await supabase .from("books") .update({ downloads: Number(book.downloads || 0) + 1 }) .eq("id", id); /* Redirect to PDF */ res.redirect(book.pdf_url); } catch (error) { console.error(error); res.status(500).send( "Download failed." ); } } ); /* HEALTH CHECK */ app.get("/api/health", (req, res) => { res.json({ status: "running", application: "ADFID Africa Digital Library" }); }); /* ERROR HANDLER */ app.use((error, req, res, next) => { console.error(error); res.status(400).json({ error: error.message || "Something went wrong." }); }); app.listen(PORT, () => { console.log(""); console.log( "==========================================" ); console.log( " ADFID Africa Digital Library" ); console.log( " PDF Library Server" ); console.log( ` Running: http://localhost:${PORT}` ); console.log( ` Admin: http://localhost:${PORT}/admin.html` ); console.log( "==========================================" ); }); ADFID Library Administration

ADFID AFRICA DIGITAL LIBRARY

Administrator Panel

Administrator Login