diff -pruN 0+git20221028+ds-2/debian/changelog 0+git20221028+ds-2ubuntu1/debian/changelog
--- 0+git20221028+ds-2/debian/changelog	2023-01-06 14:20:32.000000000 +0000
+++ 0+git20221028+ds-2ubuntu1/debian/changelog	2023-01-16 11:47:45.000000000 +0000
@@ -1,3 +1,11 @@
+linux-apfs-rw (0+git20221028+ds-2ubuntu1) lunar; urgency=medium
+
+  * Merge from Debian, remaining changes:
+    - Fix u64 math without using
+    -lgcc. https://github.com/linux-apfs/linux-apfs-rw/pull/35
+
+ -- Dimitri John Ledkov <dimitri.ledkov@canonical.com>  Mon, 16 Jan 2023 11:47:45 +0000
+
 linux-apfs-rw (0+git20221028+ds-2) unstable; urgency=medium
 
   * d/control:
@@ -18,6 +26,19 @@ linux-apfs-rw (0+git20220815+ds-1) unsta
 
  -- Gürkan Myczko <tar@debian.org>  Mon, 15 Aug 2022 16:00:08 +0200
 
+linux-apfs-rw (0+git20220214+ds-2ubuntu2) kinetic; urgency=medium
+
+  * Fix u64 math without using -lgcc.
+
+ -- Dimitri John Ledkov <dimitri.ledkov@canonical.com>  Wed, 24 Aug 2022 11:56:29 +0100
+
+linux-apfs-rw (0+git20220214+ds-2ubuntu1) kinetic; urgency=medium
+
+  * Support Linux 5.19 (LP: #1982115):
+    - debian/patches/0001-Linux-5.19-support-new-fs-ops.patch
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Tue, 19 Jul 2022 14:03:08 +0000
+
 linux-apfs-rw (0+git20220214+ds-2) unstable; urgency=medium
 
   * Source only upload.
diff -pruN 0+git20221028+ds-2/debian/control 0+git20221028+ds-2ubuntu1/debian/control
--- 0+git20221028+ds-2/debian/control	2023-01-06 14:20:32.000000000 +0000
+++ 0+git20221028+ds-2ubuntu1/debian/control	2023-01-16 11:47:45.000000000 +0000
@@ -1,7 +1,8 @@
 Source: linux-apfs-rw
 Section: kernel
 Priority: optional
-Maintainer: Gürkan Myczko <tar@debian.org>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Gürkan Myczko <tar@debian.org>
 Build-Depends: debhelper-compat (= 13), dh-sequence-dkms
 Standards-Version: 4.6.0
 Homepage: https://github.com/linux-apfs/linux-apfs-rw
diff -pruN 0+git20221028+ds-2/debian/patches/fix-ftbfs-math64.patch 0+git20221028+ds-2ubuntu1/debian/patches/fix-ftbfs-math64.patch
--- 0+git20221028+ds-2/debian/patches/fix-ftbfs-math64.patch	1970-01-01 00:00:00.000000000 +0000
+++ 0+git20221028+ds-2ubuntu1/debian/patches/fix-ftbfs-math64.patch	2023-01-16 11:47:37.000000000 +0000
@@ -0,0 +1,85 @@
+Description: use linux/math64.h for u64 division
+ otherwise gcc emits calls to functions from -lgcc
+Index: linux-apfs-rw-0+git20221028+ds/apfs.h
+===================================================================
+--- linux-apfs-rw-0+git20221028+ds.orig/apfs.h
++++ linux-apfs-rw-0+git20221028+ds/apfs.h
+@@ -6,6 +6,7 @@
+ #ifndef _APFS_H
+ #define _APFS_H
+ 
++#include <linux/math64.h>
+ #include <linux/buffer_head.h>
+ #include <linux/fs.h>
+ #include <linux/list.h>
+@@ -321,7 +322,7 @@ static inline int apfs_max_maps_per_bloc
+ 	unsigned long maps_size;
+ 
+ 	maps_size = (sb->s_blocksize - sizeof(struct apfs_checkpoint_map_phys));
+-	return maps_size / sizeof(struct apfs_checkpoint_mapping);
++	return div_u64(maps_size, sizeof(struct apfs_checkpoint_mapping));
+ }
+ 
+ /*
+Index: linux-apfs-rw-0+git20221028+ds/object.c
+===================================================================
+--- linux-apfs-rw-0+git20221028+ds.orig/object.c
++++ linux-apfs-rw-0+git20221028+ds/object.c
+@@ -28,9 +28,9 @@ static u64 apfs_fletcher64(void *addr, s
+ 	}
+ 
+ 	c1 = sum1 + sum2;
+-	c1 = 0xFFFFFFFF - do_div(c1, 0xFFFFFFFF);
++	c1 = 0xFFFFFFFF - div_u64(c1, 0xFFFFFFFF);
+ 	c2 = sum1 + c1;
+-	c2 = 0xFFFFFFFF - do_div(c2, 0xFFFFFFFF);
++	c2 = 0xFFFFFFFF - div_u64(c2, 0xFFFFFFFF);
+ 
+ 	return (c2 << 32) | c1;
+ }
+@@ -170,8 +170,9 @@ static inline u32 apfs_index_in_data_are
+ 	u64 data_base = le64_to_cpu(raw_sb->nx_xp_data_base);
+ 	u32 data_index = le32_to_cpu(raw_sb->nx_xp_data_index);
+ 	u32 data_blks = le32_to_cpu(raw_sb->nx_xp_data_blocks);
+-
+-	return (bno - data_base + data_blks - data_index) % data_blks;
++	u32 remainder;
++	div_u64_rem(bno - data_base + data_blks - data_index, data_blks, &remainder);
++	return remainder;
+ }
+ 
+ /**
+Index: linux-apfs-rw-0+git20221028+ds/spaceman.c
+===================================================================
+--- linux-apfs-rw-0+git20221028+ds.orig/spaceman.c
++++ linux-apfs-rw-0+git20221028+ds/spaceman.c
+@@ -3,6 +3,7 @@
+  * Copyright (C) 2019 Ernesto A. Fernández <ernesto.mnd.fernandez@gmail.com>
+  */
+ 
++#include <linux/math64.h>
+ #include <linux/buffer_head.h>
+ #include <linux/fs.h>
+ #include "apfs.h"
+@@ -969,7 +970,7 @@ static int apfs_main_free(struct super_b
+ 
+ 	if(!sm_raw->sm_blocks_per_chunk || !sm_raw->sm_chunks_per_cib)
+ 		return -EINVAL;
+-	chunk_idx = bno / sm->sm_blocks_per_chunk;
++	chunk_idx = div_u64(bno, sm->sm_blocks_per_chunk);
+ 	cib_idx = chunk_idx / sm->sm_chunks_per_cib;
+ 	chunk_idx -= cib_idx * sm->sm_chunks_per_cib;
+ 
+Index: linux-apfs-rw-0+git20221028+ds/transaction.c
+===================================================================
+--- linux-apfs-rw-0+git20221028+ds.orig/transaction.c
++++ linux-apfs-rw-0+git20221028+ds/transaction.c
+@@ -278,7 +278,7 @@ int apfs_cpoint_data_free(struct super_b
+ 	 * We can't leave a hole in the data area, so we need to shift all
+ 	 * blocks that come after @bno one position back.
+ 	 */
+-	bno_i = (bno - data_base + data_blks - data_index) % data_blks;
++	div_u64_rem(bno - data_base + data_blks - data_index, data_blks, &bno_i);
+ 	for (i = bno_i; i < data_len - 1; ++i) {
+ 		struct buffer_head *old_bh, *new_bh;
+ 		int err;
diff -pruN 0+git20221028+ds-2/debian/patches/series 0+git20221028+ds-2ubuntu1/debian/patches/series
--- 0+git20221028+ds-2/debian/patches/series	1970-01-01 00:00:00.000000000 +0000
+++ 0+git20221028+ds-2ubuntu1/debian/patches/series	2023-01-16 11:47:30.000000000 +0000
@@ -0,0 +1 @@
+fix-ftbfs-math64.patch
