法律 · LEGAL
著作權與原始碼
本版文案已由 Sebastian 認可。每一個live版本都必須有自己的公開原始碼與發布識別;日後版本仍須由發布流程產生自己的exact identity,不沿用前版。
本服務以 GNU Affero General Public License v3 授權。不是部分、不是雙授權——公開的原始碼樹整棵是它,發布清單裡的授權表述就是一行 AGPL-3.0-only。
01
取得你正在使用的那一版
AGPL 第 13 條要求你能取得的,是你正在互動的那一版的對應原始碼——不是程式庫當下的最新狀態。後端會持續更新,線上跑的版本不必然等於公開程式庫的最新提交,所以取得路徑必須從你這一側的證據出發,而不是從我們的說法出發。
- 打開你那一次計算的〈計算收據〉。 它在結果頁裡,屬於驗證層。這份收據是隨計算一起產生的,不是我們事後補的。
- 讀「版本與來源」表裡的後端公開原始碼修訂與前端公開原始碼修訂兩列。 前端與後端分開發布,兩個修訂可能不同,要各自對應,不要把其中一個套到另一個上。值都是 40 位小寫十六進位字元,由發布流程寫入,不是有人手打的。
- 打開同一張表的後端原始碼網址與前端原始碼網址。 https://github.com/sa3952/Armillary/tree/<公開原始碼修訂>
同一張表還會列出建置識別、組合發布識別、後端 image 與前端 artifact 的摘要值。這些發布列只在服務回報了發布身分時出現;本機或診斷建置沒有。收據在結果頁、列印版面與「運算結果+驗算資料」匯出裡都有,預設的「運算結果」匯出不含收據。
前端 artifact 摘要若要由第三方獨立重算,需要該版本的前端發布收據;它隨每次發布一起公開在 github.com/sa3952/Armillary。
這個識別碼不是有人手打上去的。後端的公開原始碼修訂在建置映像時,由同一個建置參數同時寫進映像標籤與應用程式設定;部署時由發布工具核對:載入映像時確認標籤等於要發布的修訂,切換後再確認服務回報的修訂與標籤相同,不同就自動換回前一版。範圍要說清楚:它是發布可追溯性的強化,不單獨證明簽出是乾淨的、原始碼提供是完整的,或已符合 AGPL 的全部義務。
02
為什麼這一頁不手填版本號
因為真正的版本必須來自目前服務回傳的發布識別,不能由文案作者猜寫。
每一個live版本都必須有自己的public revision、source archive與exact image identity。這條identity chain只回答它所屬的那個版本;後續版本仍須建立自己的chain,不能沿用前一版的答案。
依內部裁決,這一頁的版本識別與封存檔欄位只能由發布收據產生器寫入,禁止手動填寫。收據缺失或前後矛盾時,流程失敗關閉——寧可讓公開文件維持未發布,也不接受手打的身分。
Release producer先建立可匿名取得的public revision與source archive,再把exact image與runtime自報識別綁回該revision;任何一段缺失或矛盾都會停止release。前一版的證據不會預填到下一版。
03
隨服務一起送出的東西
下列每一項的確切版本與雜湊值固定在鎖定檔與物料清單裡。各授權分別適用,不因本頁的總述而被取代。
| 項目 | 授權 | 出處與姓名標示 |
|---|---|---|
| Swiss Ephemeris 經 pyswisseph 2.10.3.2 |
GNU AGPL v3 或更新版本 pyswisseph 的授權;Swiss Ephemeris 本身為雙授權,本專案走 AGPL 路線 |
Copyright © 1997–2021 Astrodienst AG, Switzerland 作者:Dieter Koch、Alois Treindl |
| Swephelp pyswisseph 內附的輔助程式,編入同一個擴充模組 |
GNU GPL v2 或更新版本 | 作者:Stanislas Marquis;不屬於 Swiss Ephemeris 本體 |
| 星曆檔 基於 JPL DE441 |
同上 | 由 Astrodienst 建立,隨映像一起送出(見下方摘要) |
| 全球地名 cities500 衍生快照 |
CC BY 4.0 | GeoNames,geonames.org 另以 GeoNames 的 admin1CodesASCII、admin2Codes 與 alternateNamesV2 取得行政區名稱與繁體中文地名,同為 CC BY 4.0。 |
| 臺灣地名 行政區域 + 聚落 |
政府資料開放 授權條款 1.0 |
內政部地政司 2026「臺灣地區地名資料_行政區域類」、「臺灣地區地名資料_聚落類」(2026-10-09 取得;資料集未標版本號) data.gov.tw/dataset/40281 data.gov.tw/dataset/53677 此開放資料依政府資料開放授權條款 (Open Government Data License) 進行公眾釋出,使用者於遵守本條款各項規定之前提下,得利用之。政府資料開放授權條款:https://data.gov.tw/license |
| 時區資料 | Public Domain | IANA 時區資料庫。所用版本寫進每一份計算卷宗 |
| Python 相依套件 確切組成以production lock與映像的軟體物料清單(SBOM)為準,不以本頁手抄套件清單代替 |
MIT / BSD / PSF / Apache 等,各自適用 |
確切版本與雜湊固定於 deploy/requirements.lock;軟體物料清單(SBOM):Gate D 由映像以 syft 產生,與 lock 比對,保存在發佈收據中 |
| 容器基礎映像 | Debian,多為 GPL / LGPL |
python:3.14.8-slim-trixie,以摘要釘選於 deploy/Dockerfile |
星曆檔的 SHA-256
這五個檔案隨映像一起送出,內容在部署前後都被核對。你可以拿它們跟原始碼樹裡的 deploy/ephemeris.sha256 對。
Astrodienst、Swiss Ephemeris 的作者與著作權人並未控制本衍生服務,GeoNames 與內政部亦然。此處列名是授權要求的姓名標示,不表示任何一方為本服務或任何占星結果背書。地名座標是代表點,不保證到地址等級、不保證即時、不保證完整正確。
04
Debian 基底:這是揭露,不是原始碼提供
這個區分是刻意的,而且它是本頁最容易被寫錯的一段。
由交付二進位檔觸發。而這個映像不交付給任何人——不推送到任何 registry,也不交給任何人執行。使用本服務的人收到的是 HTTP 回應,不是映像。
由網路互動觸發。它涵蓋本應用程式與 pyswisseph,由上方的公開程式庫履行——完整履行的前提見第 02 節。
如果這件事改變——映像被推送到 registry、交給任何人、或由第三方執行——Debian 元件就需要一條原始碼取得路徑,而本頁必須據此改寫。在那之前,那些套件的上游原始碼就是 Debian 自己發布的那些,版本以物料清單記載者為準。
同一個理由決定了目前的散布形式:僅託管服務。依內部裁決,發布的是託管版本所需的對應原始碼,不散布執行映像或二進位檔。日後若有任何第三方映像、二進位或封存檔的散布,授權、來源、掃描與散布審查全部重開。
05
對應原始碼的範圍
程式碼、build 與安裝腳本、鎖定檔、介面定義,以及形成並執行該版本所需的一切對應原始碼。公開程式庫採封閉白名單複製——是逐條列出要發布什麼,不是列出要排除什麼。
私人開發歷程、內部審查報告、工作紀錄,以及與執行中服務無關的內部研究。這些不因「對應原始碼」一詞而自動成為發布範圍。
但實際部署所需的原始碼不得為了保持私密而漏發。發布集合以部署映像的實際內容與 AGPL 的定義判斷,不以我們想不想公開判斷。
06
你的資料與計算結果
權利歸屬寫在〈使用條款〉第二條:你的輸入與由它產生的結果是你的。這一節只補著作權面向的兩件事。
計算所得的客觀數值本身是否受著作權保護,依適用法律判斷。本服務不藉條款對不可受保護的事實主張排他權利。
產品輸出中的歷史尊貴表(界、面/旬、三分性、廟旺)是古代文本的轉錄。我們對這些數值不主張任何排他權利;每一套表都標明它的來源版本,包含我們是從一手文本還是從二手彙編取得的。
07
商標與官方依據
渾儀 Armillary、Astrodienst、Swiss Ephemeris、GeoNames、Python 及其他名稱與標誌,各歸其權利人所有。除授權明示者外,本頁不授與任何第三方商標的使用權,也不暗示合作或認證關係。
- GNU Affero General Public License v3gnu.org/licenses/agpl-3.0.en.html
- Swiss Ephemeris 授權astro.com/swisseph/sweph_g.htm
- Creative Commons BY 4.0creativecommons.org/licenses/by/4.0/
- 政府資料開放授權條款data.gov.tw/license
- 公開原始碼 repositorygithub.com/sa3952/Armillary
第 02 節照實列出我們為 AGPL 第 13 條做了什麼、還有什麼沒做;本頁不宣告已滿足全部義務。