Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Debian 13 trixieで変わった 64bit time t 移行について
Search
Norimitsu Sugimoto
September 06, 2025
Technology
17
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Debian 13 trixieで変わった 64bit time t 移行について
MiniDebConf Japan 2025 発表資料
https://tokyodebian-team.pages.debian.net/minidebconf-japan-2025/
Norimitsu Sugimoto
September 06, 2025
More Decks by Norimitsu Sugimoto
See All by Norimitsu Sugimoto
Debian Updates - OSC 2026 Tokyo/Spring
dictoss
0
21
Debian Updates - OSC 2025 Online/Fall
dictoss
0
15
さくらの夕べ Debianナイト - さくらのVPS編
dictoss
0
1.3k
Debian Updates - OSC 2025 Tokyo/Spring
dictoss
0
61
How I met the Debian JP study session and the openSUSE developer community in Japan.
dictoss
0
74
Debian Updates - OSC 2024 Online/Fall
dictoss
0
86
Debianの開発の近況 - ODC2024
dictoss
0
99
Debianの開発の近況 - ODC2023
dictoss
0
55
Debian Update - OSC 2023 Online/Spring
dictoss
0
110
Other Decks in Technology
See All in Technology
三人寄ればチューリング完全
puhitaku
5
2.3k
도구에서 동료까지: 10년차 AI 스타트업의 AI 적응기
inureyes
PRO
1
320
なぜ Temporal の大小比較には compare しかないのか / Why Does Temporal Only Have compare() for Comparisons
kazukihayase
1
190
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
codmoninc
0
190
LLM Internals: 언어 모델의 계보와 알고리즘 진화 (2023~2026)
inureyes
PRO
1
830
20分でわかるセキュアAPI
nwiizo
2
320
巨大気象データと戦う ― サロゲートモデル学習を高速化する圧縮技術
gpuunite_official
0
190
AI開発に用いられるHPC技術について
gpuunite_official
0
200
強化学習「理論」入門
enakai00
3
3.6k
AI時代のアウトプット――変わったこと、変わらないこと / Devsumi 2026 Kansai #devsumi
jnchito
0
440
Model Studio CLI × Token Plan
maigo999
0
200
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
22k
Mobile First: as difficult as doing things right
swwweet
225
10k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
500
The Mindset for Success: Future Career Progression
greggifford
PRO
0
460
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
660
A Soul's Torment
seathinner
6
3.5k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Designing Experiences People Love
moore
143
24k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Transcript
Debian 13 trixieͰมΘͬͨ 64bit time t Ҡߦʹ͍ͭͯ MiniDebConf Japan 2025
Norimitsu SUGIMOTO (ਿຊ యॆ)
[email protected]
2025-09-06
͜ͷࢿྉʹ͍ͭͯ ౦ژΤϦΞ Debian ษڧձͷ Web αΠτ͔Β PDF Λ μϯϩʔυͰ͖·͢ https://tokyodebian-team.pages.debian.net/
2025-09-minidebconf.html ษڧձؔ Debian ษڧձͱҰॹʹΦϯϥΠϯͰ΄΅ ຖ݄։࠵͍ͯ͠·͢
࣍ ࣗݾհ 2038 ͱ Debian 13 trixie ͷ 2038 ରԠ
trixie ͚ύοέʔδͰඞཁͳରԠ ιϑτΣΞࣗମͷઃܭɾ࣮ͷ֬ೝ ·ͱΊ ࢀߟࢿྉ
ࣗݾհ Norimitsu SUGIMOTO (ਿຊ యॆ)
[email protected]
Twitter: @dictoss MiniDebConf Japan
2025 ͷ࣮ߦҕһ Debian JP Project ձ (2024-2025) ւಓѴࢢͷग़ ւಓѴߴֶߍɺւಓڭҭେֶѴߍΛଔۀ ౦ژͰγεςϜ։ൃͷࣄΛ͍ͯ͠·͢ (python ͳͲ Ͱ Web αΠτ։ൃɺ௨৴ϓϩάϥϜ։ൃ)
2038 ͱ
2038ͱ UNIX ࣌ؒͱ͍͏ʮ1970 1 ݄ 1 0 ࣌
0 0 ඵʯΛ 0 ͱͯ͠ 1 ඵ͝ͱʹ 1 Ճࢉ͢Δ࣌ؒͷදݱํ๏ UNIX/Linux ͷଟ͘Ͱ UNIX ࣌ؒΛදݱ͢Δ time t ܕ Λ༻͍͓ͯΓɺ32bit OS ͷ߹ʮlong ܕʯͱ͍͏ 4 όΠτූ߸͖Λ༻͍͍ͯͨ 4 όΠτූ߸͖ͷ߹ UTC Ͱ 2038 1 ݄ 19 3 ࣌ 14 7 ඵΛա͗ΔͱΦʔόʔϑϩʔ͢Δɻ ͕ 0 ʹͳΓ 1970 ʹͬͯ͠·͏͜ͱͰίϯ ϐϡʔλ͕ޡ࡞ಈ͢ΔՄೳੑ͕͋Δ ͜ͷ͜ͱ ʮ2038 ʯͱݺΕ͍ͯΔ UNIX/Linux ͷଟ͘ͷ 64bit OS ͷ߹ long ܕ 8 όΠτූ߸͖ʹͳΔͨΊɺ2038 ൃੜ͠ͳ͍
Debian 13 trixie ͷ 2038 ରԠ (1) ϦϦʔεϊʔτ 2.2.6. 64
Ϗοτ time t ABI ͷҠߦ 1 i386 Λআͯ͘͢ͷΞʔΩςΫνϟ 64 Ϗοτ time t ABI Λ͏Α͏ʹͳΓɺ2038 Λ ͑ͨΛαϙʔτ͢ΔΑ͏ʹͳΓ·ͨ͠ɻ 32 ϏοτͷΞʔΩςΫνϟ (armel ͓Αͼ armhf) Ͱ ɺଟͷϥΠϒϥϦͷ ABI มߋ͕ͦͷϥΠϒϥϦͷ ”soname” ͷมߋͳ͠ʹ࣮ࢪ͞Ε·ͨ͠ɻ͜ΕΒͷΞʔ ΩςΫνϟͰɺαʔυύʔςΟʔͷιϑτΣΞ ύοέʔδ࠶ίϯύΠϧɾ࠶Ϗϧυ͕ඞཁͰɺͦ͠ ͯ੩͔ʹσʔλଛࣦ͍ͯ͠ΔՄೳੑ͕͋ΔͷͰਫ਼͕ࠪ ඞཁͰ͢ɻ i386 ΞʔΩςΫνϟ͜ͷҠߦͷର֎Ͱ͢ɻ͜Ε ୈҰͷׂ͕ϨΨγʔͳιϑτΣΞΛαϙʔτ͢Δ ͜ͱ͔ͩΒͰ͢ɻ 1https://www.debian.org/releases/trixie/release-notes/ whats-new.ja.html#bit-time-t-abi-transition
Debian 13 trixie ͷ 2038 ରԠ (2) ͳͥ trixie ͷλΠϛϯάͳͷ͔
2020-03-29 linux-5.6 ϦϦʔε 32bit ൛Ͱ࣌ࠁΛ 64bit Ͱอ࣋͢ΔΑ͏ʹมߋ 2021-08-01 glibc-2.34 ͕ϦϦʔε TIME BITS=64 ϚΫϩʹରԠ linux glibc debian 2020-03-29 linux-5.6 - - 2021-08-01 - glibc-2.34 - 2021-08-15 - - debian 11 linux-5.10, glibc-2.31 2023-07-22 - - debian 12 linux-6.1, glibc-2.36 2025-08-09 - - debian 13 linux-6.12, glibc-2.41
trixie ͚ ύοέʔδ Ͱඞཁͳ ରԠ
trixie ͚ύοέʔδͰඞཁͳରԠ (1) ίϯύΠϧΦϓγϣϯͷมߋ debian/control ͷमਖ਼ ϏϧυͱΠϯετʔϧ֬ೝ ιϑτΣΞࣗମͷઃఆɾ࣮ͷ֬ೝ ύοέʔδͷΞοϓϩʔυ (આ໌ׂѪ)
trixie ͚ύοέʔδͰඞཁͳରԠ (2) ύοέʔδͷίϯύΠϧΦϓγϣϯ͕มߋ Ϗϧυ͢Δϗετ্Ͱ dpkg-buildflags ίϚϯυΛ࣮ߦ͢Δ ͱ֬ೝՄೳ $ sudo
apt-get install build-essential devscripts $ dpkg-buildflags armhf ͷ debian12 ͱ debian13 ʹ͓͚Δ CPPFLAGS ͷࠩ -CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2 +CPPFLAGS=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 +CPPFLAGS_FOR_BUILD=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 2GB ͑ϑΝΠϧରԠͱ TIME BITS=64 ϚΫϩ͕Ճ
trixie ͚ύοέʔδͰඞཁͳରԠ (3) debian/control ͷमਖ਼ ྫࣔʣlibmyapp ΛҠߦ͢Δ߹ Package: libmyappt64 ఏڙ͢ΔϥΠϒϥϦύοέʔδ໊ͷඌʹ
t64 ΛՃ ͢Δ໋໊نଇʹͳͬͨ Replaces: libmyapp bookworm ͔ΒͷΞοϓάϨʔυ࣌ʹैདྷͷύοέʔδ ໊͔Β t64 ͕ඌʹͭ͘Α͏มߋͨ͜͠ͱΛࣔ͢ Build-Depends: dpkg-dev (>= 1.22.5)2 -D TIME BITS=64 Λࢦఆ͢ΔΑ͏ʹͳͬͨॳΊͯͷ dpkg-dev ͷόʔδϣϯ Depends: (ґଘ͢ΔϥΠϒϥϦͰ t64 ͕ඌʹ͋Δύο έʔδશͯमਖ਼) 2https://wiki.debian.org/ReleaseGoals/64bit-time
trixie ͚ύοέʔδͰඞཁͳରԠ (4) ϏϧυͱΠϯετʔϧ֬ೝ $ debuild -uc -us ύοέʔδͷΫϦʔϯϏϧυ pbuilder
/ cowbuilder sbuild Πϯετʔϧςετ autopkgtest piuparts
ιϑτΣ Ξࣗମͷ ઃܭɾ࣮ ͷ֬ೝ
ιϑτΣΞࣗମͷઃܭɾ࣮ͷ֬ೝ (1a) $ vi src/time64.c #include <stdio.h> #include <time.h> struct
mytime{ int a; /* 4 byte */ time_t t; /* 4-8 byte */ int b; /* 4 byte */ }; int main(int argc, char *argv[]){ printf("sizeof(int) = %lu\n", sizeof(int)); printf("sizeof(long) = %lu\n", sizeof(long)); printf("sizeof(time_t) = %lu\n", sizeof(time_t)); printf("sizeof(struct mytime) = %lu\n", sizeof(struct mytime)); return 0; } $ make gcc -Wall -g -c src/time64.c -o src/time64.o gcc -Wall -g -o a.out src/time64.o
ιϑτΣΞࣗମͷઃఆɾ࣮ͷ֬ೝ (1b) ڥʹΑΔมͷόΠτͷҧ͍ όΠτ Debian 12 Debian 12 Debian 13
amd64 armhf armhf sizeof(int) 4 4 4 sizeof(long) 8 4 4 sizeof(time t) 8 4 8 sizeof(struct mytime) 24 12 24 time t ܕͷมͷαΠζ 4 byte ͔Β 8 byte ૿͑Δ time t ܕΛؚΉߏମͷϝϞϦαΠζͱΦϑηοτ αΠζ͕ (ύσΟϯάͰ) େ͖͘ͳΔ߹͕͋Δ ߏମͷϝϞϦΛͦͷ··όΠφϦͰϑΝΠϧॻ͖ ࠐΉ߹௨৴Ͱૹ৴͍ͯ͠Δ߹چγεςϜͱޓ ͕ແ͘ͳΔ
ιϑτΣΞࣗମͷઃܭɾ࣮ͷ֬ೝ (2) ݹ͍όʔδϣϯͷ Debian ͔Β 64bit time t Ҡߦͷҙ ϑΝΠϧγεςϜ
ext ܥ ext4 Ҡߦ͢Δ͜ͱ (ext2/ext3 2038 ͋Γ) xfs linux-5.10 ΑΓݹ͍ڥͰϑΥʔϚοτͨ͠߹ 2038 ͋Γ σʔλϕʔε ܕఆٛͰ࣌ࠁΛ 32bit Ͱѻ͍ͬͯΔ߹͋Γ (ྫ: mysql ͷ timestamp ܕ) NTP αʔό / NTP ΫϥΠΞϯτ NTP (ϓϩτίϧ) ͷ 2036 (1900 ࢝·Γ) 2010 ൃߦͷ RFC5905 Λ࣮ͨ͠ NTPv4 ରԠ൛ͳ ΒӨڹͳ͠ Debian 12 ͔Β NTP ΫϥΠΞϯτͷσϑΥϧτ systemd-timesyncd Debian 12 Ͱ ntp ύοέʔδҠߦύοέʔδʹͳΓ ntpsec ஔ ͦͷଞͷҠߦઌ chronyɺopenntpd ͕બࢶ
·ͱΊ Debian 13 trixie Ͱ debian/control ͷ࡞๏͕มΘͬͨ 32bit ڥͰ time
t ܕ debian ύοέʔδͷϏϧυ ࣌Ҏ֎Ͱඪ४Ͱ 64bit มߋ (i386 আ͘) time t ܕͷαΠζมߋͰߏମͷϝϞϦͷαΠζΦ ϑηοτ͕มΘͬͯɺϓϩάϥϜ͕ѻ͏ϑΝΠϧ ௨৴Ͱޓੑ͕͋Δ͔֬ೝ͕ඞཁ ϓϩάϥϜΛ࠶Ϗϧυ͢ΔҎ֎ʹ 32bit time t ͕ ӅΕ͓ͯΓͣ͞ରԠ͕ඞཁ
ࢀߟจݙ Debian wiki - ReleaseGoals 64bit-time https: //wiki.debian.org/ReleaseGoals/64bit-time Yocto Α·
ୈ 3 ճʮLinux ͷ 2038 ʯ https: //www.lineo.co.jp/blog/yocto/vol03-2038.html