diff --git a/.gitmodules b/.gitmodules index eb5f39c8a..3e1254002 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,10 +1,9 @@ [submodule "src/initial-setup"] path = src/initial-setup url = git@github.com:itsmanjeet/initial-setup -[submodule "src/srclang"] - path = src/srclang - url = git@github.com:itsmanjeet/srclang - [submodule "src/pkgupd"] path = src/pkgupd url = git@github.com:itsmanjeet/pkgupd +[submodule "src/capsule"] + path = src/capsule + url = git@github.com:itsmanjeet/capsule diff --git a/Makefile b/Makefile index 6abb41448..5e4b9a32d 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ export OSTREE_GPG_CONFIG export PKGUPD export CACHE_PATH -.PHONY: clean all docs version.yml channel.yml ostree-branch.yml apps +.PHONY: clean all docs version.yml channel.yml ostree-branch.yml apps TODO.ELEMENTS all: $(PKGUPD) version.yml ostree-branch.yml channel.yml ifdef ELEMENT diff --git a/TODO.ELEMENTS b/TODO.ELEMENTS index 203302a5f..5bd510a25 100644 --- a/TODO.ELEMENTS +++ b/TODO.ELEMENTS @@ -1,95 +1,73 @@ -components/rustc: update to latest version for firefox - -components/gcr.yml: check and fix update url version -components/gcr.yml: fix documentation -components/qt.yml: fix configuration files -components/qt.yml: check dependencies -components/proot.yml: fix patch +system/repo.yml: FIX components/pam.yml integration +components/icon-naming-utils.yml: fix update url +components/system-config-printer.yml: Why we need to do this manually?? +components/gnome/gnome-epub-thumbnailer.yml: fix update url +components/gnome/gdm.yml: We need to setup and use our PAM configuration +components/spice-vdagent.yml: fix configurations components/baloo.yml: check and update -components/pcsclite.yml: fix update url -components/colord-gtk.yml: enable documentation and manuals -components/libkcddb.yml: fix update url -components/lxd.yml: fix service file -components/gcr-4.yml: check and fix update url version -components/gcr-4.yml: fix documentation -components/vaapi-driver.yml: fix update url +components/postfix.yml: fix user creation +components/postfix.yml: fix systemd service file components/bsdiff.yml: fix patch -components/kbd.yml: check for patch -components/cdparanoia.yml: check with inbuilt autotools -components/spice.yml: enable gstreamer -components/libsecret.yml: enable docs and manpages -components/devel.yml: convert to layer -components/folks.yml: check build configurations -components/openssh.yml: build with builtin autotools -components/dbus-c++.yml: fix patches -components/dnsmasq.yml: fix service file -components/mariadb.yml: fix configuration file -components/colord.yml: enable bash_completion, docs and manuals +components/glibc-dbg.yml: merge this with glibc components/lxcfs.yml: fix service file components/lxcfs.yml: enable docs -components/cppgir.yml: fix update url -components/opencv3.yml: fix update url +components/apr-util.yml: fix update url +components/weston.yml: enable vaapi, pipewire, freerdp, xwayland, gstreamer +components/dbus-c++.yml: fix patches +components/libgssglue.yml: fix configuration +components/colord-gtk.yml: enable documentation and manuals +components/debian-archive-keyring.yml: fix update url +components/dnsmasq.yml: fix service file +components/schroot.yml: fix patch file +components/lm-sensors.yml: fix configuration +components/kbd.yml: check for patch +components/firefox-src.yml: libpng doesn't have APNG support +components/firefox-src.yml: update rustc compiler +components/firefox-src.yml: update nss +components/gcr.yml: check and fix update url version +components/gcr.yml: fix documentation +components/audit.yml: Learn More about it +components/audit.yml: check config path patch components/fcron.yml: fix configurations -components/xfce4-session.yml: fix update url -components/exo.yml: fix update url -components/glm.yml: fix configuration file -components/nvidia-utils.yml: check update url -components/nvidia-utils.yml: merge into nvidia layer -components/cups.yml: fix pam configuration -components/plymouth.yml: fix configurations -components/xfce4-panel.yml: fix update url components/gtk-doc.yml: fix update url -components/icon-naming-utils.yml: fix update url -components/nginx.yml: fix service file -components/nginx.yml: fix configuration file -components/dconf-editor.yml: check version -components/dqlite.yml: run autoreconf +components/proot.yml: fix patch +components/libsecret.yml: enable docs and manpages components/python2.yml: check deprecated -components/pciutils.yml: fix update script -components/dotnet.yml: fix update url -components/appstream-glib.yml: check stemmer requirement -components/egl-wayland.yml: fix nvidia wayland configuration -components/bluez.yml: enable manpages -components/protobuf.yml: fix update url -components/gnupg.yml: check version and update url +components/dpp.yml: fix update url +components/vaapi-driver.yml: fix update url +components/colord.yml: enable bash_completion, docs and manuals components/tracker.yml: enable documentation -components/audit.yml: Learn More about it -components/audit.yml: check config path patch -components/libgssglue.yml: fix configuration -components/lxc.yml: fix service file -components/spice-vdagent.yml: fix configurations -components/lm-sensors.yml: fix configuration -components/fuse2.yml: fix update url -components/gnome-epub-thumbnailer.yml: fix update url -components/schroot.yml: fix patch file -components/containerd.yml: build from source -components/espeak-ng.yml: check patch -components/espeak-ng.yml: build using builtin autotools -components/berkeley-db.yml: Fix update url -components/berkeley-db.yml: check direct source -components/gc.yml: check patch -components/openjdk.yml: fix update url -components/nvidia-settings.yml: check patch +components/lxd.yml: fix service file components/udisks.yml: check update url -components/openjdk-bin.yml: fix update url -components/openldap.yml: fix post-script and configurations -components/apr-util.yml: fix update url -components/plasma-pam.yml: fix pam configuration -components/xfce4-whiskermenu-plugin.yml: Enable GTK layer shell support -components/debian-archive-keyring.yml: fix update url -components/drkonqi.yml: fix update url -components/postfix.yml: fix user creation -components/postfix.yml: fix systemd service file -components/gtk.yml: fix update url -components/dconf.yml: enable bash_completion -components/elementary-xfce-icons.yml: build using builtin autotools components/clutter.yml: check configure options -components/libyaml-cpp.yml: fix update url +components/pcsclite.yml: fix update url +components/ca-certificates.yml: better work around +components/xfce4/exo.yml: fix update url +components/xfce4/panel-plugins/xfce4-whiskermenu-plugin.yml: Enable GTK layer shell support +components/xfce4/xfce4-panel.yml: fix update url +components/protobuf.yml: fix update url +components/dqlite.yml: run autoreconf +components/cppgir.yml: fix update url +components/lxc.yml: fix service file +components/opencv3.yml: fix update url +components/libblockdev.yml: enable nvme support +components/libkcddb.yml: fix update url +components/gnupg.yml: check version and update url +components/egl-wayland.yml: fix nvidia wayland configuration +components/dconf.yml: enable bash_completion components/pam_wrapper.yml: fix update url +components/bluez.yml: enable manpages +components/openssh.yml: build with builtin autotools +components/plasma/plasma-pam.yml: fix pam configuration +components/plasma/drkonqi.yml: fix update url +components/gcr-4.yml: check and fix update url version +components/gcr-4.yml: fix documentation +components/nginx.yml: fix service file +components/nginx.yml: fix configuration file +components/folks.yml: check build configurations +components/elementary-xfce-icons.yml: build using builtin autotools +components/cdparanoia.yml: check with inbuilt autotools +components/spice.yml: enable gstreamer components/glew.yml: fix patch -components/libblockdev.yml: enable nvme support -components/flatpak.yml: fix configurations -components/dpp.yml: fix update url -components/weston.yml: enable vaapi, pipewire, freerdp, xwayland, gstreamer -apps/dia.yml: check better way -apps/eog.yml: build with portol support +components/openldap.yml: fix post-script and configurations +components/dconf-editor.yml: check version diff --git a/apps/welcome/assets/welcome.desktop b/apps/welcome/assets/welcome.desktop new file mode 100644 index 000000000..f7cc365d0 --- /dev/null +++ b/apps/welcome/assets/welcome.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Version=1.0 +Name=Welcome Tour +Comment=Guided tutorial for new users +GenericName=Welcome Tour +Exec=welcome +Terminal=false +StartupNotify=true \ No newline at end of file diff --git a/apps/welcome/config/config.go b/apps/welcome/config/config.go new file mode 100644 index 000000000..cfa5be74e --- /dev/null +++ b/apps/welcome/config/config.go @@ -0,0 +1,22 @@ +package config + +import ( + "os" + "path" +) + +const ( + GtkDarkTheme = "Orchis-Dark" + GtkLightTheme = "Orchis-Light" + + IconDarkTheme = "Tela-dark" + IconLightTheme = "Tela-light" + + SoftwareCenter = "gnome-software" + + SupportUrl = "https://github.com/itsManjeet/rlxos/discussions" +) + +var ( + DoneFile = path.Join(os.Getenv("HOME"), ".welcome-done") +) diff --git a/apps/welcome/locale/hi.yaml b/apps/welcome/locale/hi.yaml new file mode 100644 index 000000000..8c3a04823 --- /dev/null +++ b/apps/welcome/locale/hi.yaml @@ -0,0 +1,22 @@ +- string: Welcome + translation: Welcome +- string: Welcome to RLXOS + translation: Welcome to RLXOS +- string: Back + translation: Back +- string: Looks and feel + translation: Looks and feel +- string: Applications + translation: Applications +- string: Finalize + translation: Finalize +- string: Help and Support + translation: Help and Support +- string: Finish + translation: Finish +- string: Next + translation: Next +- string: Follow to step-by-step guide to know more about rlxos + translation: Follow to step-by-step guide to know more about rlxos +- string: Get your favorite apps here + translation: Get your favorite apps here diff --git a/apps/welcome/locale/locale.go b/apps/welcome/locale/locale.go new file mode 100644 index 000000000..733eddbbd --- /dev/null +++ b/apps/welcome/locale/locale.go @@ -0,0 +1,17 @@ +package locale + +import ( + _ "embed" + "rlxos/pkg/localize" +) + +//go:embed hi.yaml +var hi []byte + +func init() { + localize.Add("hi", hi) +} + +func T(s string) string { + return localize.Translate(s) +} diff --git a/apps/welcome/main.go b/apps/welcome/main.go new file mode 100644 index 000000000..e5266c5fb --- /dev/null +++ b/apps/welcome/main.go @@ -0,0 +1,36 @@ +package main + +import ( + "github.com/diamondburned/gotk4/pkg/gdk/v4" + "github.com/diamondburned/gotk4/pkg/gio/v2" + "github.com/diamondburned/gotk4/pkg/gtk/v4" + "os" + "rlxos/apps/welcome/config" + "rlxos/apps/welcome/window" + "rlxos/apps/welcome/window/style" +) + +func main() { + app := gtk.NewApplication("dev.rlxos.Welcome", gio.ApplicationFlagsNone) + + if _, err := os.Stat(config.DoneFile); err == nil && os.Getenv("WELCOME_TOUR_AS_APP") == "" { + os.Exit(0) + } + + app.ConnectStartup(func() { + gtk.StyleContextAddProviderForDisplay( + gdk.DisplayGetDefault(), style.Provider(), + gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) + }) + + app.ConnectActivate(func() { + win := app.ActiveWindow() + if win == nil { + win = &window.NewWindow().Window + app.AddWindow(win) + } + win.Present() + }) + + os.Exit(app.Run(os.Args)) +} diff --git a/apps/welcome/window/page.go b/apps/welcome/window/page.go new file mode 100644 index 000000000..a898713fa --- /dev/null +++ b/apps/welcome/window/page.go @@ -0,0 +1,12 @@ +package window + +import "github.com/diamondburned/gotk4/pkg/gtk/v4" + +type IPage interface { + gtk.Widgetter + + CanGoBack() bool + CanGoForward() bool + + Title() string +} diff --git a/apps/welcome/window/pages/apps/apps.go b/apps/welcome/window/pages/apps/apps.go new file mode 100644 index 000000000..5d28a15dd --- /dev/null +++ b/apps/welcome/window/pages/apps/apps.go @@ -0,0 +1,71 @@ +package apps + +import ( + _ "embed" + "github.com/diamondburned/gotk4/pkg/glib/v2" + "github.com/diamondburned/gotk4/pkg/gtk/v4" + "log" + "os/exec" + "rlxos/apps/welcome/config" + . "rlxos/apps/welcome/locale" +) + +type Page struct { + gtk.Box +} + +func NewAppsPage() *Page { + p := &Page{Box: *gtk.NewBox(gtk.OrientationVertical, 0)} + p.setupUI() + return p +} + +func (p *Page) setupUI() { + p.SetVAlign(gtk.AlignCenter) + p.SetHAlign(gtk.AlignCenter) + + icon := gtk.NewImageFromIconName("applications-all-symbolic") + icon.SetPixelSize(64) + icon.SetMarginBottom(12) + p.Append(icon) + + heading := gtk.NewLabel(T("Get your favorite apps here")) + heading.AddCSSClass("heading") + p.Append(heading) + + subheading := gtk.NewLabel(T("Browse and install your favorite apps effortlessly.\nExplore new tools, utilities, and games—all available directly in the Software Center.")) + subheading.SetJustify(gtk.JustifyCenter) + subheading.SetMarginBottom(24) + p.Append(subheading) + + button := gtk.NewButtonWithLabel(T("Browse apps")) + button.ConnectClicked(func() { + button.SetSensitive(false) + button.SetLabel(T("Starting...")) + + cmd := exec.Command(config.SoftwareCenter) + if err := cmd.Start(); err != nil { + log.Println("failed to start software center", err) + } else { + go func() { + if err := cmd.Wait(); err != nil { + log.Println("failed to wait for software center", err) + } + glib.IdleAdd(func() bool { + button.SetSensitive(true) + button.SetLabel(T("Browse apps")) + return true + }) + }() + } + }) + button.SetHAlign(gtk.AlignCenter) + button.SetVAlign(gtk.AlignCenter) + p.Append(button) +} + +func (p *Page) CanGoBack() bool { return true } + +func (p *Page) CanGoForward() bool { return true } + +func (p *Page) Title() string { return T("Applications") } diff --git a/apps/welcome/window/pages/finish/finish.go b/apps/welcome/window/pages/finish/finish.go new file mode 100644 index 000000000..e71024865 --- /dev/null +++ b/apps/welcome/window/pages/finish/finish.go @@ -0,0 +1,43 @@ +package finish + +import ( + "github.com/diamondburned/gotk4/pkg/gtk/v4" + . "rlxos/apps/welcome/locale" +) + +type Page struct { + gtk.Box +} + +func NewFinishPage() *Page { + p := &Page{Box: *gtk.NewBox(gtk.OrientationVertical, 0)} + p.setupUI() + return p +} + +func (p *Page) setupUI() { + p.SetHAlign(gtk.AlignCenter) + p.SetVAlign(gtk.AlignCenter) + p.SetMarginBottom(36) + + icon := gtk.NewImageFromIconName("ticktick-tray") + icon.SetPixelSize(64) + icon.SetMarginBottom(12) + p.Append(icon) + + heading := gtk.NewLabel(T("You're All Set!")) + heading.AddCSSClass("heading") + p.Append(heading) + + subheading := gtk.NewLabel(T("Your system is ready. Dive in\nand start exploring or fine-tune your settings further.")) + subheading.SetMarginBottom(24) + subheading.SetJustify(gtk.JustifyCenter) + p.Append(subheading) + +} + +func (p *Page) CanGoBack() bool { return true } + +func (p *Page) CanGoForward() bool { return true } + +func (p *Page) Title() string { return T("Finalize") } diff --git a/apps/welcome/window/pages/looks/looks.go b/apps/welcome/window/pages/looks/looks.go new file mode 100644 index 000000000..41ef59458 --- /dev/null +++ b/apps/welcome/window/pages/looks/looks.go @@ -0,0 +1,112 @@ +package looks + +import ( + "fmt" + "log" + "os/exec" + "rlxos/apps/welcome/config" + . "rlxos/apps/welcome/locale" + + "github.com/diamondburned/gotk4/pkg/gtk/v4" +) + +type Page struct { + gtk.Box + + slider *gtk.Scale +} + +func NewLooksPage() *Page { + p := &Page{Box: *gtk.NewBox(gtk.OrientationVertical, 0)} + p.setupUI() + return p +} + +func (p *Page) setupUI() { + p.SetVAlign(gtk.AlignCenter) + p.SetMarginBottom(128) + + themeLabel := gtk.NewLabel(T("Choose Your Theme")) + themeLabel.AddCSSClass("subheading") + themeLabel.SetMarginBottom(12) + p.Append(themeLabel) + + btnBox := gtk.NewBox(gtk.OrientationHorizontal, 24) + btnBox.SetHAlign(gtk.AlignCenter) + p.Append(btnBox) + + darkThemeImage := gtk.NewImageFromIconName("dark-mode-symbolic") + darkThemeImage.SetPixelSize(64) + + darkThemeBtn := gtk.NewButton() + darkThemeBtn.SetChild(darkThemeImage) + darkThemeBtn.ConnectClicked(func() { p.SwitchToDarkTheme() }) + darkThemeBtn.AddCSSClass("circular") + btnBox.Append(darkThemeBtn) + + lightThemeImage := gtk.NewImageFromIconName("brightness-display-symbolic") + lightThemeImage.SetPixelSize(64) + + lightThemeBtn := gtk.NewButton() + lightThemeBtn.SetChild(lightThemeImage) + lightThemeBtn.ConnectClicked(func() { p.SwitchToLightTheme() }) + lightThemeBtn.AddCSSClass("circular") + btnBox.Append(lightThemeBtn) + + dpiLabel := gtk.NewLabel(T("Adjust Display Scale")) + dpiLabel.AddCSSClass("subheading") + dpiLabel.SetMarginBottom(12) + dpiLabel.SetMarginTop(54) + p.Append(dpiLabel) + + p.slider = gtk.NewScaleWithRange(gtk.OrientationHorizontal, 0, 100, 10) + for i := 0; i <= 100; i += 10 { + p.slider.AddMark(float64(i), gtk.PosTop, "") + } + p.slider.ConnectValueChanged(func() { + p.UpdateScaling() + }) + p.slider.SetMarginStart(40) + p.slider.SetMarginEnd(40) + p.slider.SetValue(20) + p.Append(p.slider) +} + +func (p *Page) UpdateScaling() { + scale := p.slider.Value() + p.setConfig("xsettings", "/Xft/DPI", fmt.Sprintf("%d", int(scale+90))) +} + +func (p *Page) SwitchToDarkTheme() { + p.setGsettings("org.gnome.desktop.interface", "gtk-theme", config.GtkDarkTheme) + p.setConfig("xsettings", "/Net/ThemeName", config.GtkDarkTheme) + + p.setGsettings("org.gnome.desktop.interface", "icon-theme", config.IconDarkTheme) + p.setConfig("xsettings", "/Net/IconThemeName", config.IconDarkTheme) +} + +func (p *Page) SwitchToLightTheme() { + p.setGsettings("org.gnome.desktop.interface", "gtk-theme", config.GtkLightTheme) + p.setConfig("xsettings", "/Net/ThemeName", config.GtkLightTheme) + + p.setGsettings("org.gnome.desktop.interface", "icon-theme", config.IconLightTheme) + p.setConfig("xsettings", "/Net/IconThemeName", config.IconLightTheme) +} + +func (p *Page) setConfig(channel, property, value string) { + if output, err := exec.Command("xfconf-query", "-c", channel, "-p", property, "-s", value).CombinedOutput(); err != nil { + log.Printf("Failed to set config %s: %s %s", property, string(output), err) + } +} + +func (p *Page) setGsettings(channel, property, value string) { + if output, err := exec.Command("gsettings", "set", channel, property, value).CombinedOutput(); err != nil { + log.Printf("Failed to set config %s: %s %s", property, string(output), err) + } +} + +func (p *Page) CanGoBack() bool { return true } + +func (p *Page) CanGoForward() bool { return true } + +func (p *Page) Title() string { return T("Customize Your Look") } diff --git a/apps/welcome/window/pages/support/support.go b/apps/welcome/window/pages/support/support.go new file mode 100644 index 000000000..bb3c2d469 --- /dev/null +++ b/apps/welcome/window/pages/support/support.go @@ -0,0 +1,70 @@ +package support + +import ( + "github.com/diamondburned/gotk4/pkg/glib/v2" + "github.com/diamondburned/gotk4/pkg/gtk/v4" + "log" + "os/exec" + "rlxos/apps/welcome/config" + . "rlxos/apps/welcome/locale" +) + +type Page struct { + gtk.Box +} + +func NewSupportPage() *Page { + p := &Page{Box: *gtk.NewBox(gtk.OrientationVertical, 0)} + p.setupUI() + return p +} + +func (p *Page) setupUI() { + p.SetVAlign(gtk.AlignCenter) + p.SetHAlign(gtk.AlignCenter) + + icon := gtk.NewImageFromIconName("help-symbolic") + icon.SetPixelSize(64) + icon.SetMarginBottom(12) + p.Append(icon) + + heading := gtk.NewLabel(T("Help & Support")) + heading.AddCSSClass("heading") + p.Append(heading) + + subheading := gtk.NewLabel(T("Need assistance? Explore our documentation\nor connect with the community for answers to your questions.")) + subheading.SetMarginBottom(24) + subheading.SetJustify(gtk.JustifyCenter) + p.Append(subheading) + + button := gtk.NewButtonWithLabel(T("Open Support")) + button.ConnectClicked(func() { + button.SetLabel(T("Starting...")) + button.SetSensitive(false) + cmd := exec.Command("exo-open", config.SupportUrl) + if err := cmd.Start(); err != nil { + log.Println("failed to load support url", err) + } else { + go func() { + if err := cmd.Wait(); err != nil { + log.Println("failed to load support url", err) + } + + glib.IdleAdd(func() bool { + button.SetSensitive(true) + button.SetLabel(T("Open Support")) + return true + }) + }() + } + }) + button.SetHAlign(gtk.AlignCenter) + button.SetVAlign(gtk.AlignCenter) + p.Append(button) +} + +func (p *Page) CanGoBack() bool { return true } + +func (p *Page) CanGoForward() bool { return true } + +func (p *Page) Title() string { return T("Help and Support") } diff --git a/apps/welcome/window/pages/welcome/welcome.go b/apps/welcome/window/pages/welcome/welcome.go new file mode 100644 index 000000000..937d8ec6c --- /dev/null +++ b/apps/welcome/window/pages/welcome/welcome.go @@ -0,0 +1,43 @@ +package welcome + +import ( + . "rlxos/apps/welcome/locale" + + "github.com/diamondburned/gotk4/pkg/gtk/v4" +) + +type Page struct { + gtk.Box +} + +func NewWelcomePage() *Page { + p := &Page{Box: *gtk.NewBox(gtk.OrientationVertical, 0)} + + p.setupUI() + + return p +} + +func (p *Page) setupUI() { + icon := gtk.NewImageFromIconName("start-here-symbolic") + icon.SetPixelSize(128) + p.Append(icon) + + p.SetVAlign(gtk.AlignCenter) + p.SetHAlign(gtk.AlignCenter) + p.SetMarginBottom(120) + + title := gtk.NewLabel(T("Welcome to RLXOS")) + title.AddCSSClass("heading") + p.Append(title) + + subtitle := gtk.NewLabel(T("Take the tour to learn your way around and discover essentials features")) + p.Append(subtitle) + +} + +func (p *Page) CanGoBack() bool { return true } + +func (p *Page) CanGoForward() bool { return true } + +func (p *Page) Title() string { return T("Welcome") } diff --git a/apps/welcome/window/style/global.css b/apps/welcome/window/style/global.css new file mode 100644 index 000000000..685dadd8e --- /dev/null +++ b/apps/welcome/window/style/global.css @@ -0,0 +1,9 @@ +.heading { + font-weight: bold; + font-size: x-large; +} + +.subheading { + font-size: large; + font-weight: bold; +} \ No newline at end of file diff --git a/apps/welcome/window/style/style.go b/apps/welcome/window/style/style.go new file mode 100644 index 000000000..deae90fb7 --- /dev/null +++ b/apps/welcome/window/style/style.go @@ -0,0 +1,22 @@ +package style + +import ( + _ "embed" + "github.com/diamondburned/gotk4/pkg/gtk/v4" + "log" + "strings" +) + +//go:embed global.css +var global string + +func Provider() *gtk.CSSProvider { + provider := gtk.NewCSSProvider() + provider.ConnectParsingError(func(section *gtk.CSSSection, err error) { + loc := section.StartLocation() + lines := strings.Split(global, "\n") + log.Printf("CSS Error (%v) at line: %q", err, lines[loc.Lines()]) + }) + provider.LoadFromString(global) + return provider +} diff --git a/apps/welcome/window/window.go b/apps/welcome/window/window.go new file mode 100644 index 000000000..d4ccdfdd8 --- /dev/null +++ b/apps/welcome/window/window.go @@ -0,0 +1,93 @@ +package window + +import ( + "github.com/diamondburned/gotk4/pkg/gtk/v4" + "os" + "rlxos/apps/welcome/config" + . "rlxos/apps/welcome/locale" + "rlxos/apps/welcome/window/pages/apps" + "rlxos/apps/welcome/window/pages/finish" + "rlxos/apps/welcome/window/pages/looks" + "rlxos/apps/welcome/window/pages/support" + "rlxos/apps/welcome/window/pages/welcome" +) + +type Window struct { + gtk.Window + stack *gtk.Stack + backBtn *gtk.Button + nextBtn *gtk.Button + + pages []IPage + idx int +} + +func NewWindow() *Window { + win := &Window{Window: *gtk.NewWindow()} + + win.setupUI() + win.setupPages() + win.updatePage() + + return win +} + +func (win *Window) setupPages() { + win.pages = append(win.pages, + welcome.NewWelcomePage(), + looks.NewLooksPage(), + apps.NewAppsPage(), + support.NewSupportPage(), + finish.NewFinishPage(), + ) + for _, page := range win.pages { + win.stack.AddChild(page) + } + + win.SetChild(win.stack) +} + +func (win *Window) setupUI() { + win.SetDefaultSize(800, 600) + + headerBar := gtk.NewHeaderBar() + headerBar.SetShowTitleButtons(false) + win.SetTitlebar(headerBar) + + win.backBtn = gtk.NewButtonWithLabel(T("Back")) + win.backBtn.ConnectClicked(func() { + win.idx-- + win.updatePage() + }) + headerBar.PackStart(win.backBtn) + + win.nextBtn = gtk.NewButtonWithLabel(T("Next")) + win.nextBtn.AddCSSClass("suggested-action") + win.nextBtn.ConnectClicked(func() { + if win.idx == len(win.pages)-1 { + _ = os.WriteFile(config.DoneFile, []byte(""), 0644) + win.Application().Quit() + return + } + win.idx++ + win.updatePage() + }) + headerBar.PackEnd(win.nextBtn) + + win.stack = gtk.NewStack() + win.stack.SetTransitionDuration(200) + win.stack.SetTransitionType(gtk.StackTransitionTypeSlideLeftRight) +} + +func (win *Window) updatePage() { + win.stack.SetVisibleChild(win.pages[win.idx]) + win.backBtn.SetSensitive(win.idx > 0 && win.pages[win.idx].CanGoBack()) + win.nextBtn.SetSensitive(win.idx < len(win.pages) && win.pages[win.idx].CanGoForward()) + if win.idx == len(win.pages)-1 { + win.nextBtn.SetLabel(T("Finish")) + } else { + win.nextBtn.SetLabel(T("Next")) + } + + win.SetTitle(win.pages[win.idx].Title()) +} diff --git a/elements/components/appcenter.yml b/elements/components/appcenter.yml new file mode 100644 index 000000000..d3de8b194 --- /dev/null +++ b/elements/components/appcenter.yml @@ -0,0 +1,21 @@ +id: appcenter +version: 8.0.0 +about: Browse and manage apps + +pre-script: |- + sed -i 's/.xml.gz/.xml/g' src/Core/FlatpakBackend.vala +depends: + - components/appstream.yml + - components/flatpak.yml + - components/libhandy.yml + - components/granite.yml + - components/libadwaita.yml + - components/gtk4.yml + - components/libportal.yml + +build-depends: + - components/meson.yml + - components/vala.yml + +sources: + - appcenter-%{version}.tar.gz::https://github.com/elementary/appcenter/archive/refs/tags/%{version}.tar.gz diff --git a/elements/components/appstream-glib.yml b/elements/components/appstream-glib.yml index fcd91b693..5ef8bf9f3 100644 --- a/elements/components/appstream-glib.yml +++ b/elements/components/appstream-glib.yml @@ -7,7 +7,6 @@ configure: > depends: - components/gtk.yml - - components/libsoup.yml - components/libyaml.yml - components/librsvg.yml - components/curl.yml diff --git a/elements/components/srclang.yml b/elements/components/capsule.yml similarity index 95% rename from elements/components/srclang.yml rename to elements/components/capsule.yml index ef88b3d31..ddd0221b1 100644 --- a/elements/components/srclang.yml +++ b/elements/components/capsule.yml @@ -1,4 +1,4 @@ -id: srclang +id: capsule version: 2.0.1 about: An Easy to learn programming Language merge: [ elements/include/rlxos.inc ] diff --git a/elements/components/ccache.yml b/elements/components/ccache.yml new file mode 100644 index 000000000..8432da751 --- /dev/null +++ b/elements/components/ccache.yml @@ -0,0 +1,30 @@ +id: ccache +version: 4.10.2 +about: Compiler cache that speeds up recompilation by caching previous compilations + +configure: >- + -DCMAKE_BUILD_TYPE=None + -Wno-dev + +post-script: |- + mkdir -p %{install-root}%{libdir}/ccache/bin + for p in gcc g++ c++ ; do + ln -s %{bindir}/ccache %{install-root}%{libdir}/ccache/bin/$p + ln -s %{bindir}/ccache %{install-root}%{libdir}/ccache/bin/%{triplet}-$p + done + + for p in cc clang clang++ ; do + ln -s %{bindir}/ccache %{install-root}%{libdir}/ccache/bin/$p + done + +depends: + - components/fmt.yml + - components/glibc.yml + - components/zstd.yml + +build-depends: + - components/cmake.yml + - components/perl.yml + +sources: + - https://github.com/ccache/ccache/releases/download/v%{version}/ccache-%{version}.tar.xz diff --git a/elements/components/colord.yml b/elements/components/colord.yml index 898cff51c..ddbdbc2e8 100644 --- a/elements/components/colord.yml +++ b/elements/components/colord.yml @@ -4,6 +4,9 @@ about: | A system service that makes it easy to manage, install, and generate color profiles +pre-script: |- + patch -Np1 -i colord-1.4.7-upstream_fixes-1.patch + configure: > --buildtype=release -D daemon_user=colord @@ -12,7 +15,7 @@ configure: > -D libcolordcompat=true -D argyllcms_sensor=false -D bash_completion=false - -D docs=false + -D docs=true -D man=false post-script: |- @@ -30,8 +33,9 @@ depends: - components/libgusb.yml - components/systemd.yml build-depends: + - components/gtk-doc.yml - components/gobject-introspection.yml - components/vala.yml sources: - https://www.freedesktop.org/software/colord/releases/colord-%{version}.tar.xz -# TODO: enable bash_completion, docs and manuals + - patches/colord/colord-1.4.7-upstream_fixes-1.patch \ No newline at end of file diff --git a/elements/components/compiz.yml b/elements/components/compiz.yml index adcb20bef..0713b34ba 100644 --- a/elements/components/compiz.yml +++ b/elements/components/compiz.yml @@ -2,12 +2,19 @@ id: compiz version: 0.9.14.2 about: Composite manager for Aiglx and Xgl, with plugins and CCSM +pre-script: |- + for p in /patches/compiz/*.patch ; do + echo "Applying $(basename $p)" + patch -Np1 -F100 -i $p + done + configure: >- -DCMAKE_CXX_STANDARD=17 -DCMAKE_BUILD_TYPE="Release" -DCOMPIZ_BUILD_WITH_RPATH=OFF -DCOMPIZ_PACKAGING_ENABLED=ON -DBUILD_GTK=ON + -DBUILD_METACITY=ON -DCOMPIZ_DEFAULT_PLUGINS="composite,opengl,decor,resize,place,move,compiztoolbox,staticswitcher,regex,animation,wall,ccp" -DCOMPIZ_BUILD_TESTING=OFF -DCOMPIZ_WERROR=OFF @@ -30,6 +37,7 @@ depends: - components/gtkmm.yml - components/startup-notification.yml - components/glu.yml + - components/metacity.yml build-depends: - components/boost.yml diff --git a/elements/components/cyrus-sasl.yml b/elements/components/cyrus-sasl.yml index c3d92bb3d..b29b6aed5 100644 --- a/elements/components/cyrus-sasl.yml +++ b/elements/components/cyrus-sasl.yml @@ -19,7 +19,7 @@ post-script: | install -v -dm700 %{install-root}/%{localstatedir}/lib/sasl depends: - - components/mariadb.yml + - components/mariadb-runtime.yml - components/pam.yml - components/krb5.yml diff --git a/elements/components/firefox.yml b/elements/components/firefox.yml index 68dee53fd..b517c3aea 100644 --- a/elements/components/firefox.yml +++ b/elements/components/firefox.yml @@ -45,4 +45,4 @@ depends: - components/alsa-lib.yml sources: - - http://ftp.mozilla.org/pub/firefox/releases/%{version}/linux-x86_64/en-US/firefox-%{version}.tar.bz2 + - http://ftp.mozilla.org/pub/firefox/releases/%{version}/linux-x86_64/en-US/firefox-%{version}.tar.bz2 \ No newline at end of file diff --git a/elements/components/flatpak.yml b/elements/components/flatpak.yml index c180924af..bd058fb63 100644 --- a/elements/components/flatpak.yml +++ b/elements/components/flatpak.yml @@ -3,16 +3,11 @@ version: 1.15.9 about: Linux application sandboxing and distribution framework post-script: | - install -v -Dm0755 /dev/stdin %{install-root}%{sysconfdir}/profile.d/flatpak.sh << EOF - if [ -n "$XDG_DATA_HOME" ] && [ -d "$XDG_DATA_HOME/flatpak/exports/bin" ]; then + install -v -Dm0755 /dev/stdin %{install-root}%{sysconfdir}/profile.d/flatpak.sh << "EOF" append_path "$XDG_DATA_HOME/flatpak/exports/bin" - elif [ -n "$HOME" ] && [ -d "$HOME/.local/share/flatpak/exports/bin" ]; then - append_path "$HOME/.local/share/flatpak/exports/bin" - fi - - if [ -d /var/lib/flatpak/exports/bin ]; then - append_path /var/lib/flatpak/exports/bin - fi + append_path "$HOME/.local/share/flatpak/exports/bin" + append_path "/var/lib/flatpak/exports/bin" + XDG_DATA_DIRS="$XDG_DATA_DIRS:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share" EOF install -v -D -t %{install-root}%{sysconfdir}/flatpak/remotes.d flathub.flatpakrepo @@ -32,7 +27,6 @@ depends: - components/glib.yml - components/json-glib.yml - components/libarchive.yml - - components/libsoup.yml - components/ostree.yml - components/polkit.yml - components/python.yml diff --git a/elements/components/gegl.yml b/elements/components/gegl.yml new file mode 100644 index 000000000..1ad7d1a31 --- /dev/null +++ b/elements/components/gegl.yml @@ -0,0 +1,15 @@ +id: gegl +version: 0.4.48 +about: GEneric Graphics Library + +configure: >- + -D libav=disabled + +depends: + - components/babl.yml + - components/json-glib.yml + - components/pango.yml + - components/py/py-gobject.yml + +sources: + - https://download.gimp.org/pub/gegl/%{version:2}/gegl-%{version}.tar.xz diff --git a/elements/components/gimp.yml b/elements/components/gimp.yml new file mode 100644 index 000000000..79a278f43 --- /dev/null +++ b/elements/components/gimp.yml @@ -0,0 +1,37 @@ +id: gimp +version: 2.10.38 +about: GNU Image Manipulation Program which is useful for photo retouching, image composition and image authoring + +depends: + - components/appstream-glib.yml + - components/gegl.yml + - components/gexiv2.yml + - components/glib-networking.yml + - components/gtk.yml + - components/harfbuzz.yml + - components/libmypaint.yml + - components/librsvg.yml + - components/libtiff.yml + - components/libxml2.yml + - components/lcms.yml + - components/mypaint-brushes.yml + - components/poppler.yml + - components/poppler-data.yml + - components/graphviz.yml + - components/iso-codes.yml + - components/libgudev.yml + - components/py/py-gobject.yml + - components/x11/libx11.yml + - components/x11/libxmu.yml + - components/xdg-utils.yml + # - components/libjxl.yml + - components/libmng.yml + - components/libunwind.yml + - components/libwebp.yml + +build-depends: + - components/ghostscript.yml + - components/gvfs.yml + +sources: + - https://anduin.linuxfromscratch.org/BLFS/gimp/gimp3-20240711.tar.xz diff --git a/elements/components/glibc-dbg.yml b/elements/components/glibc-dbg.yml new file mode 100644 index 000000000..cf795b692 --- /dev/null +++ b/elements/components/glibc-dbg.yml @@ -0,0 +1,24 @@ +id: glibc-dbg +version: 0.0.1 +about: GLibc debug files + +build-depends: + - components/bash.yml + +include: + - components/glibc.yml + +include-root: /glibc +include-parts: + - dbg + +keep-files: + - ld-(.*)\.dbg + +strip: false + +script: |- + mkdir -p %{install-root}%{libdir} + cp %{include-root}%{libdir}/ld-linux-x86-64.so.2.dbg %{install-root}%{libdir}/ + +# TODO: merge this with glibc \ No newline at end of file diff --git a/elements/components/gnome/gnome-software.yml b/elements/components/gnome/gnome-software.yml new file mode 100644 index 000000000..57cb9a1c2 --- /dev/null +++ b/elements/components/gnome/gnome-software.yml @@ -0,0 +1,35 @@ +id: gnome-software +version: 46.2 +about: GNOME Software Tools + +configure: >- + -D packagekit=false + -D tests=false + -D malcontent=false + -D fwupd=false + -D webapps=false + -D hardcoded_foss_webapps=false + -D hardcoded_proprietary_webapps=false + +depends: + - components/appstream.yml + - components/dconf.yml + - components/gdk-pixbuf.yml + - components/gsettings-desktop-schemas.yml + - components/gtk4.yml + - components/json-glib.yml + - components/hicolor-icon-theme.yml + - components/libadwaita.yml + - components/libgudev.yml + - components/libsoup3.yml + - components/libxmlb.yml + - components/pango.yml + - components/polkit.yml + - components/flatpak.yml + # - components/fwupd.yml + +build-depends: + - components/docbook-xsl.yml + +sources: + - https://download.gnome.org/sources/gnome-software/%{version:1}/gnome-software-%{version}.tar.xz diff --git a/elements/components/go.yml b/elements/components/go.yml index 5bc25e820..f92b6164a 100644 --- a/elements/components/go.yml +++ b/elements/components/go.yml @@ -1,5 +1,5 @@ id: go -version: 1.21.1 +version: 1.23.0 about: The Go Programming Language sources: diff --git a/elements/components/go/gotk4.yml b/elements/components/go/gotk4.yml new file mode 100644 index 000000000..9ac50bd83 --- /dev/null +++ b/elements/components/go/gotk4.yml @@ -0,0 +1,8 @@ +id: gotk4 +version: v0.3.1 +about: Autogenerated GTK4 bindings for Go + +gourl: github.com/diamondburned/gotk4/pkg/gtk/v4 + + +merge: [ elements/include/go-pkg.inc ] \ No newline at end of file diff --git a/elements/components/granite.yml b/elements/components/granite.yml new file mode 100644 index 000000000..b712e8989 --- /dev/null +++ b/elements/components/granite.yml @@ -0,0 +1,21 @@ +id: granite +version: 7.5.0 +about: Library that extends Gtk+ + +configure: >- + -Db_pie=false + +depends: + - components/cairo.yml + - components/gdk-pixbuf.yml + - components/gtk4.yml + - components/libgee.yml + - components/pango.yml + +build-depends: + - components/sassc.yml + - components/gobject-introspection.yml + - components/vala.yml + +sources: + - granite-%{version}.tar.gz::https://github.com/elementary/granite/archive/refs/tags/%{version}.tar.gz diff --git a/elements/components/gufw.yml b/elements/components/gufw.yml index 77d8f415c..a30cd537d 100644 --- a/elements/components/gufw.yml +++ b/elements/components/gufw.yml @@ -9,9 +9,6 @@ pre-script: |- sed -i 's/4.0/4.1/g' gufw/gufw/view/gufw.py depends: - - components/intltool.yml - - components/py/py-setuptools.yml - - components/py/py-distutils-extra.yml - components/desktop-file-utils.yml - components/gtk.yml - components/polkit.yml @@ -21,5 +18,10 @@ depends: - components/enchant.yml - components/webkitgtk.yml +build-depends: + - components/intltool.yml + - components/py/py-setuptools.yml + - components/py/py-distutils-extra.yml + sources: - https://github.com/costales/gufw/archive/%{version}/gufw-%{version}.tar.gz diff --git a/elements/components/initial-setup.yml b/elements/components/initial-setup.yml index 982fb5280..3aaa9bda2 100644 --- a/elements/components/initial-setup.yml +++ b/elements/components/initial-setup.yml @@ -1,5 +1,5 @@ id: initial-setup -version: 2.0.3 +version: 2.0.12 about: System Initial Setup merge: [ ostree-branch.yml, elements/include/rlxos.inc ] @@ -139,7 +139,7 @@ post-script: |- EOF - install -vDm 0644 /dev/stdin %{install-root}/%{datadir}/factory/%{localstatedir}/lib/initial-setup/.config/autostart/welcome-tour.desktop << "EOF" + install -vDm 0644 /dev/stdin %{install-root}/%{datadir}/factory/%{localstatedir}/lib/initial-setup/.config/autostart/welcome.desktop << "EOF" [Desktop Entry] Hidden=true EOF @@ -150,7 +150,7 @@ post-script: |- x-scheme-handler/https=firefox.desktop EOF - touch %{install-root}/%{datadir}/factory/%{localstatedir}/lib/initial-setup/.config/.welcome-tour-done + touch %{install-root}/%{datadir}/factory/%{localstatedir}/lib/initial-setup/.welcome-done install -vDm 0644 /dev/stdin %{install-root}/%{datadir}/factory/%{localstatedir}/lib/initial-setup/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml << "EOF" @@ -169,6 +169,16 @@ post-script: |- + + + + + + + + + + EOF diff --git a/elements/components/intel-ucode.yml b/elements/components/intel-ucode.yml new file mode 100644 index 000000000..9cffe44b2 --- /dev/null +++ b/elements/components/intel-ucode.yml @@ -0,0 +1,17 @@ +id: intel-ucode +version: 20240813 +about: Microcode update files for Intel CPUs + +script: |- + rm -f intel-ucode{,-with-caveats}/list + mkdir -p kernel/x86/microcode + + iucode_tool --write-earlyfw=intel-ucode.img intel-ucode{,-with-caveats}/ + + install -vDm 644 intel-ucode/* -t %{install-root}%{libdir}/firmware/intel-ucode/ + +build-depends: + - components/iucode-tool.yml + +sources: + - https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/archive/refs/tags/microcode-%{version}.tar.gz \ No newline at end of file diff --git a/elements/components/iucode-tool.yml b/elements/components/iucode-tool.yml new file mode 100644 index 000000000..ea20ba58f --- /dev/null +++ b/elements/components/iucode-tool.yml @@ -0,0 +1,9 @@ +id: iucode-tool +version: 2.3.1 +about: Tool to manipulate Intel® IA-32/X86-64 microcode bundles + +depends: + - components/glibc.yml + +sources: + - https://gitlab.com/iucode-tool/releases/raw/master/iucode-tool_%{version}.tar.xz diff --git a/elements/components/libadwaita.yml b/elements/components/libadwaita.yml index 88cb1108b..55ea3dc97 100644 --- a/elements/components/libadwaita.yml +++ b/elements/components/libadwaita.yml @@ -1,7 +1,14 @@ id: libadwaita -version: 1.5.2 +version: 1.5.3 +release: 3 about: Building blocks for modern adaptive GNOME applications +pre-script: |- + < without-adwaita-theme.patch patch src/adw-style-manager.c + +configure: >- + --buildtype=release + depends: - components/gtk4.yml - components/appstream.yml @@ -12,7 +19,7 @@ build-depends: - components/meson.yml - components/vala.yml - components/sassc.yml - - components/gtk-doc.yml sources: - https://gitlab.gnome.org/GNOME/libadwaita/-/archive/%{version}/libadwaita-%{version}.tar.gz + - patches/libadwaita/without-adwaita-theme.patch diff --git a/elements/components/libavif.yml b/elements/components/libavif.yml index c685350a5..192194c52 100644 --- a/elements/components/libavif.yml +++ b/elements/components/libavif.yml @@ -1,10 +1,11 @@ id: libavif -version: 1.1.0 +version: 1.1.1 about: A library used for encoding and decoding AVIF files configure: >- -DAVIF_CODEC_AOM=ON -DAVIF_BUILD_GDK_PIXBUF=ON + -DAVIF_LIBYUV=OFF depends: - components/libaom.yml diff --git a/elements/components/libmypaint.yml b/elements/components/libmypaint.yml new file mode 100644 index 000000000..054382bfb --- /dev/null +++ b/elements/components/libmypaint.yml @@ -0,0 +1,14 @@ +id: libmypaint +version: 1.6.1 +about: a library for making brushstrokes which is used by MyPaint and other projects + +depends: + - components/json-c.yml + - components/glib.yml + +build-depends: + - components/gobject-introspection.yml + - components/intltool.yml + +sources: + - https://github.com/mypaint/libmypaint/releases/download/v%{version}/libmypaint-%{version}.tar.xz diff --git a/elements/components/libosinfo.yml b/elements/components/libosinfo.yml index f4651bd1f..e8206da8d 100644 --- a/elements/components/libosinfo.yml +++ b/elements/components/libosinfo.yml @@ -1,5 +1,5 @@ id: libosinfo -version: 1.10.0 +version: 1.11.0 about: GObject based library API for managing information about operating systems, hypervisors and the (virtual) hardware devices they can support @@ -11,7 +11,7 @@ configure: >- depends: - components/glib.yml - components/hwdata.yml - - components/libsoup.yml + - components/libsoup3.yml - components/libxslt.yml - components/osinfo-db.yml build-depends: diff --git a/elements/components/libreoffice.yml b/elements/components/libreoffice.yml index a89bec3cd..5c4fdc9ed 100644 --- a/elements/components/libreoffice.yml +++ b/elements/components/libreoffice.yml @@ -2,7 +2,12 @@ id: libreoffice version: 24.2.5.2 about: LibreOffice is a full-featured office suite +environ: + - TAR_OPTIONS=--no-same-owner + pre-script: |- + patch -Np1 -i libreoffice-24.2.5.2-boost_fixes-2.patch + sed -i '/icuuc \\/a zlib\\' writerperfect/Library_wpftdraw.mk sed -e "/gzip -f/d" \ @@ -11,8 +16,17 @@ pre-script: |- sed -e "/distro-install-file-lists/d" -i Makefile.in + mkdir -p external/tarballs + for i in libreoffice-dictionaries-%{version} libreoffice-help-%{version} libreoffice-translations-%{version} ; do + mv $i external/tarballs/$i.tar.xz + done + + ln -sv src/libreoffice-help-%{version}/helpcontent2/ + ln -sv src/libreoffice-dictionaries-%{version}/dictionaries/ + ln -sv src/libreoffice-translations-%{version}/translations/ + ./autogen.sh - + ./configure --prefix=%{prefix} \ --sysconfdir=%{sysconfdir} \ --with-vendor=RLXOS \ @@ -22,6 +36,11 @@ pre-script: |- --without-system-dicts \ --disable-dconf \ --disable-odk \ + --disable-kf5 \ + --disable-gtk3-kde5 \ + --disable-qt5 \ + --disable-qt6 \ + --disable-gtk4 \ --enable-release-build=yes \ --enable-python=system \ --with-jdk-home=%{libdir}/openjdk \ @@ -40,14 +59,19 @@ pre-script: |- --with-system-libatomic_ops \ --with-system-libpng \ --with-system-nss \ + --with-system-odbc \ --with-system-openldap \ --with-system-openssl \ --with-system-poppler \ + --with-system-postgresql \ + --with-system-redland \ --with-system-libtiff \ --with-system-libwebp \ - --with-system-zlib - - make build + --with-system-zlib \ + CFLAGS="$CFLAGS -Wno-implicit-function-declaration -Wno-int-conversion -Wno-error " + + sed -i 's#bootstrap: check-if-root compilerplugins#bootstrap: compilerplugins#g' Makefile + make make distro-pack-install DESTDIR=%{install-root} @@ -82,6 +106,9 @@ depends: - components/glm.yml - components/gstreamer.yml - components/libwebp.yml + - components/postgresql.yml + - components/redland.yml + - components/odbc.yml build-depends: - components/apache-ant.yml @@ -89,3 +116,7 @@ build-depends: sources: - https://download.documentfoundation.org/libreoffice/src/%{version:3}/libreoffice-%{version}.tar.xz + - libreoffice-dictionaries-%{version}::https://download.documentfoundation.org/libreoffice/src/%{version:3}/libreoffice-dictionaries-%{version}.tar.xz + - libreoffice-help-%{version}::https://download.documentfoundation.org/libreoffice/src/%{version:3}/libreoffice-help-%{version}.tar.xz + - libreoffice-translations-%{version}::https://download.documentfoundation.org/libreoffice/src/%{version:3}/libreoffice-translations-%{version}.tar.xz + - https://www.linuxfromscratch.org/patches/blfs/svn/libreoffice-%{version}-boost_fixes-2.patch diff --git a/elements/components/libvirt.yml b/elements/components/libvirt.yml index 30456364c..6e556d083 100644 --- a/elements/components/libvirt.yml +++ b/elements/components/libvirt.yml @@ -1,11 +1,12 @@ id: libvirt -version: 9.7.0 +version: 10.6.0 about: API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc) pre-script: |- sed -i 's|/sysconfig/|/conf.d/|g' \ src/remote/libvirtd.service.in \ - tools/{libvirt-guests.service,libvirt-guests.sh,virt-pki-validate}.in \ + tools/{libvirt-guests.service,libvirt-guests.sh}.in \ + docs/manpages/libvirt-guests.rst \ src/locking/virtlockd.service.in \ src/logging/virtlogd.service.in sed -i 's|/usr/libexec/qemu-bridge-helper|/usr/lib/qemu/qemu-bridge-helper|g' \ @@ -34,10 +35,29 @@ configure: >- -Dsecdriver_selinux=disabled -Dstorage_vstorage=disabled -Ddtrace=disabled + -Dlibssh=disabled + -Dlibssh2=enabled -Dnumad=disabled -Dstorage_zfs=enabled -Dstorage_rbd=disabled +post-script: |- + install -vDm 0644 /dev/stdin %{install-root}%{libdir}/sysusers.d/libvirt.conf << "EOF" + g libvirt - - + u libvirt %{localstatedir}/libvirt "Libvirt QEMU user" + m libvirt libvirt + EOF + + install -vDm 0644 /dev/stdin %{install-root}%{libdir}/tmpfiles.d/libvirt.conf << "EOF" + z %{localstatedir}/lib/libvirt/qemu 0751 + EOF + + chmod 0600 %{install-root}%{sysconfdir}/libvirt/nwfilter/*.xml \ + %{install-root}%{sysconfdir}/libvirt/qemu/networks/default.xml + + chmod 700 %{install-root}%{sysconfdir}/libvirt/secrets + chmod 711 %{install-root}/var/lib/libvirt/swtpm + depends: - components/fuse.yml - components/gnutls.yml @@ -46,6 +66,7 @@ depends: - components/libxml2.yml - components/numactl.yml - components/parted.yml + - components/libnl.yml - components/polkit.yml - components/yajl.yml - components/dmidecode.yml @@ -53,6 +74,7 @@ depends: - components/gettext.yml - components/lvm2.yml - components/rpcsvc-proto.yml + - components/qemu.yml build-depends: - components/iproute2.yml diff --git a/elements/components/lightdm.yml b/elements/components/lightdm.yml index 5c554053a..0c1742327 100644 --- a/elements/components/lightdm.yml +++ b/elements/components/lightdm.yml @@ -95,11 +95,14 @@ post-script: |- install -vDm 0644 /dev/stdin %{install-root}/%{sysconfdir}/lightdm/lightdm-gtk-greeter.conf << "EOF" [greeter] background=%{datadir}/backgrounds/default-blur.jpg - theme-name=Orchis-Dark - icon-theme-name=Tela + theme-name=Orchis-Light + icon-theme-name=Tela-light font-name=IBM Plex Sans Regular 11 - panel-position=bottom + panel-position=top + user-background=false indicators=~host;~spacer;~session;~a11y;~language;~clock;~power; + transition-duration=600 + transition-type=ease-in-out EOF configure: >- diff --git a/elements/components/mariadb-runtime.yml b/elements/components/mariadb-runtime.yml new file mode 100644 index 000000000..5dbad84ac --- /dev/null +++ b/elements/components/mariadb-runtime.yml @@ -0,0 +1,24 @@ +id: mariadb-runtime +version: 10.11.8 +about: mariadb runtime + +build-depends: + - components/bash.yml + +include: + - components/mariadb.yml +include-root: /mariadb + +script: |- + mkdir -p %{install-root}%{bindir} + mkdir -p %{install-root}%{libdir}/mysql/plugin + + for bin in mariadb-config mariadb_config mysql_config ; do + cp %{include-root}%{bindir}/$bin %{install-root}%{bindir}/ + done + + for lib in mariadb mariadbd mysqlclient mysqlclient_r mysqld ; do + cp %{include-root}%{libdir}/lib${lib}.so* %{install-root}%{libdir}/ + done + + cp -r %{include-root}%{libdir}/mysql/plugin %{install-root}%{libdir}/mysql \ No newline at end of file diff --git a/elements/components/meta-xfce4.yml b/elements/components/meta-xfce4.yml index 08b2eaca6..a215efcd4 100644 --- a/elements/components/meta-xfce4.yml +++ b/elements/components/meta-xfce4.yml @@ -51,8 +51,6 @@ depends: - components/xfce4/thunar-volman.yml - - components/themes/qogir-gtk-theme.yml - - components/themes/qogir-icon-theme.yml - components/themes/grey-bird-gtk-theme.yml - components/themes/elementary-xfce-icon.yml - components/themes/orchis-gtk-theme.yml diff --git a/elements/components/metacity.yml b/elements/components/metacity.yml new file mode 100644 index 000000000..1e2451609 --- /dev/null +++ b/elements/components/metacity.yml @@ -0,0 +1,42 @@ +id: metacity +version: 3.52.0 +about: Window manager of GNOME Flashback + +build-type: autotools + +configure: >- + --disable-debug + --enable-compiler-warnings + --disable-vulkan + +depends: + - components/at-spi2-core.yml + - components/cairo.yml + - components/gdk-pixbuf.yml + - components/gsettings-desktop-schemas.yml + - components/gtk.yml + - components/libcanberra.yml + - components/libgtop.yml + - components/x11/libice.yml + - components/x11/libsm.yml + - components/x11/libx11.yml + - components/x11/libxcomposite.yml + - components/x11/libxcursor.yml + - components/x11/libxdamage.yml + - components/x11/libxext.yml + - components/x11/libxfixes.yml + - components/x11/libxinerama.yml + - components/x11/libxrandr.yml + - components/x11/libxrender.yml + - components/x11/libxres.yml + - components/x11/libxpresent.yml + - components/pango.yml + - components/startup-notification.yml + - components/zenity.yml + - components/libgtop.yml + +build-depends: + - components/autoconf-archive.yml + +sources: + - https://gitlab.gnome.org/GNOME/metacity/-/archive/%{version}/metacity-%{version}.tar.gz diff --git a/elements/components/mypaint-brushes.yml b/elements/components/mypaint-brushes.yml new file mode 100644 index 000000000..5c08b1d21 --- /dev/null +++ b/elements/components/mypaint-brushes.yml @@ -0,0 +1,9 @@ +id: mypaint-brushes +version: 1.3.1 +about: Paint brushes + +depends: + - components/libmypaint.yml + +sources: + - https://github.com/mypaint/mypaint-brushes/releases/download/v%{version}/mypaint-brushes-%{version}.tar.xz diff --git a/elements/components/odbc.yml b/elements/components/odbc.yml new file mode 100644 index 000000000..8efb15fd3 --- /dev/null +++ b/elements/components/odbc.yml @@ -0,0 +1,15 @@ +id: odbc +version: 2.3.12 +about: ODBC is an open specification for providing application developers with a predictable API with which to access data sources + +configure: >- + --sysconfdir=%{sysconfdir}/unixODBC + +post-script: |- + find doc -name "Makefile*" -delete + +sources: + - https://github.com/lurcher/unixODBC/releases/download/%{version}/unixODBC-%{version}.tar.gz + +depends: + - components/glibc.yml diff --git a/elements/components/ohmyzsh.yml b/elements/components/ohmyzsh.yml index 51be0310d..7f0d0f3bf 100644 --- a/elements/components/ohmyzsh.yml +++ b/elements/components/ohmyzsh.yml @@ -2,8 +2,8 @@ id: ohmyzsh version: master variables: - commit: c8e600f39779c6d2ef75b40304b5391a541c41df - default-theme: lukerandall + commit: b8c69d265257fae88fe504ea43cbcf2728bc1308 + default-theme: jonathan depends: - components/zsh.yml diff --git a/elements/components/osinfo-db-tools.yml b/elements/components/osinfo-db-tools.yml index b6832a70e..7b599deba 100644 --- a/elements/components/osinfo-db-tools.yml +++ b/elements/components/osinfo-db-tools.yml @@ -8,7 +8,7 @@ pre-script: |- depends: - components/json-glib.yml - components/libarchive.yml - - components/libsoup.yml + - components/libsoup3.yml - components/libxslt.yml build-depends: diff --git a/elements/components/ostree.yml b/elements/components/ostree.yml index 6fb271c41..61f67c904 100644 --- a/elements/components/ostree.yml +++ b/elements/components/ostree.yml @@ -1,5 +1,5 @@ id: ostree -version: 2024.4 +version: 2024.7 about: Operating system and container binary deployment and upgrade variables: @@ -18,6 +18,7 @@ configure: >- --without-avahi --enable-man=yes --with-dracut + --with-soup3 --with-ed25519-libsodium --disable-static @@ -33,7 +34,7 @@ depends: - components/openssl.yml - components/util-linux.yml - components/gpgme.yml - - components/libsoup.yml + - components/libsoup3.yml - components/xz.yml - components/zlib.yml build-depends: diff --git a/elements/components/picom.yml b/elements/components/picom.yml index 9c5ebc237..26fd7b421 100644 --- a/elements/components/picom.yml +++ b/elements/components/picom.yml @@ -1,10 +1,89 @@ id: picom -version: 10.2 +version: 12-rc3 about: X compositor that may fix tearing issue -release: 2 sources: - picom-%{version}.tar.gz::https://github.com/yshui/picom/archive/refs/tags/v%{version}.tar.gz +post-script: |- + install -vDm 0644 /dev/stdin %{install-root}%{sysconfdir}/xdg/picom.conf << "EOF" + shadow = true; + shadow-radius = 7; + shadow-offset-x = -7; + shadow-offset-y = -7; + + fading = true; + fade-in-step = 0.03; + fade-out-step = 0.03; + + frame-opacity = 0.7; + + corner-radius = 0; + + blur-kern = "3x3box"; + + backend = "xrender"; + + vsync = true; + + detect-rounded-corners = true; + detect-client-opacity = true; + detect-transient = true; + use-damage = true; + + rules: ({ + match = "window_type = 'tooltip'"; + fade = false; + shadow = true; + opacity = 0.75; + full-shadow = false; + }, { + match = "window_type = 'dropdown_menu' || " + "window_type = 'popup_menu' || " + "window_type = 'utility'"; + shadow = false; + }, { + match = "window_type = 'dock' || " + "window_type = 'desktop' || " + "_GTK_FRAME_EXTENTS@"; + blur-background = false; + }, { + match = "window_type != 'dock'"; + # shader = "my_shader.frag"; + }, { + match = "window_type = 'dock' || " + "window_type = 'desktop'"; + corner-radius = 0; + }, { + match = "name = 'Notification' || " + "class_g = 'Conky' || " + "class_g ?= 'Notify-osd' || " + "class_g = 'Cairo-clock' || " + "_GTK_FRAME_EXTENTS@"; + shadow = false; + }, { + match = "name = 'Whisker Menu'"; + shadow = false; + animations = ({ + triggers = [ "open", "show" ]; + preset = "slide-in"; + direction = "down"; + }, { + triggers = [ "close", "hide" ]; + preset = "slide-out"; + direction = "down"; + }); + }) + + animations = ({ + triggers = [ "open", "show" ]; + preset = "appear"; + }, { + triggers = [ "close", "hide" ]; + preset = "disappear"; + }) + + EOF + depends: - components/hicolor-icon-theme.yml - components/libconfig.yml @@ -13,6 +92,7 @@ depends: - components/pcre.yml - components/pixman.yml - components/mesa.yml + - components/libepoxy.yml - components/libglvnd.yml - components/x11/xcb-util-image.yml - components/x11/xcb-util-renderutil.yml diff --git a/elements/components/postgresql-runtime.yml b/elements/components/postgresql-runtime.yml new file mode 100644 index 000000000..b4c7ace7e --- /dev/null +++ b/elements/components/postgresql-runtime.yml @@ -0,0 +1,24 @@ +id: postgresql-runtime +version: 16.4 +about: postgresql runtime + +build-depends: + - components/bash.yml + +include: + - components/postgresql.yml +include-root: /postgresql + +script: |- + mkdir -p %{install-root}%{bindir} + mkdir -p %{install-root}%{libdir} + + for bin in clusterdb createdb createuser dropdb dropuser ecpg \ + pg_config pg_dump pg_dumpall pg_isready pg_restore \ + psql reindexdb vacuumdb ; do + cp %{include-root}%{bindir}/$bin %{install-root}%{bindir}/ + done + + for lib in ecpg ecpg_compat pgtypes pq ; do + cp %{include-root}%{libdir}/lib${lib}.so* %{install-root}%{libdir}/ + done \ No newline at end of file diff --git a/elements/components/postgresql.yml b/elements/components/postgresql.yml index 20cbbf469..4399ecc72 100644 --- a/elements/components/postgresql.yml +++ b/elements/components/postgresql.yml @@ -1,5 +1,5 @@ id: postgresql -version: 16.3 +version: 16.4 about: PostgreSQL is an advanced object-relational database management system (ORDBMS), derived from the Berkeley Postgres database management system pre-script: |- @@ -13,7 +13,6 @@ configure: >- --with-ldap --with-libxml --with-libxslt - --with-llvm --with-lz4 --with-openssl --with-pam @@ -22,7 +21,6 @@ configure: >- --with-readline --with-system-tzdata=%{datadir}/zoneinfo --with-systemd - --with-tcl --with-uuid=e2fs --with-zstd diff --git a/elements/components/raptor.yml b/elements/components/raptor.yml new file mode 100644 index 000000000..eda7484c5 --- /dev/null +++ b/elements/components/raptor.yml @@ -0,0 +1,21 @@ +id: raptor +version: 2.0.16 +about: C library that provides a set of parsers and serializers that generate Resource Description Framework (RDF) triples + +pre-script: |- + sed -i 's/20627/20627 \&\& LIBXML_VERSION < 21100/' src/raptor_libxml.c + +configure: >- + --disable-static + --with-icu-config=%{bindir}/icu-config + +depends: + - components/curl.yml + - components/libxslt.yml + - components/icu.yml + +build-depends: + - components/gtk-doc.yml + +sources: + - https://download.librdf.org/source/raptor2-%{version}.tar.gz diff --git a/elements/components/rasqal.yml b/elements/components/rasqal.yml new file mode 100644 index 000000000..317b81b5c --- /dev/null +++ b/elements/components/rasqal.yml @@ -0,0 +1,12 @@ +id: rasqal +version: 0.9.33 +about: Resource Description Framework (RDF) query language + +configure: >- + --disable-static + +depends: + - components/raptor.yml + +sources: + - https://download.librdf.org/source/rasqal-%{version}.tar.gz diff --git a/elements/components/redland.yml b/elements/components/redland.yml new file mode 100644 index 000000000..c592b6695 --- /dev/null +++ b/elements/components/redland.yml @@ -0,0 +1,12 @@ +id: redland +version: 1.0.17 +about: Resource Description Framework + +configure: >- + --disable-static + +sources: + - https://download.librdf.org/source/redland-%{version}.tar.gz + +depends: + - components/rasqal.yml diff --git a/elements/components/runc.yml b/elements/components/runc.yml index 9ce06ce5d..31fa3fdcd 100644 --- a/elements/components/runc.yml +++ b/elements/components/runc.yml @@ -1,7 +1,7 @@ id: runc version: 1.1.9 about: A lightweight universal runtime container - +release: 1 build-dir: "." script: |- export GO111MODULE=auto diff --git a/elements/components/sysroot.yml b/elements/components/sysroot.yml index cc36380e8..d52b34be0 100644 --- a/elements/components/sysroot.yml +++ b/elements/components/sysroot.yml @@ -1,5 +1,5 @@ id: sysroot -version: 2.0.8 +version: 2.0.9 about: Package Management and Updater Daemon merge: [ elements/include/rlxos.inc ] diff --git a/elements/components/v4l-utils.yml b/elements/components/v4l-utils.yml index 5832f89ee..97d84fd58 100644 --- a/elements/components/v4l-utils.yml +++ b/elements/components/v4l-utils.yml @@ -2,6 +2,8 @@ id: v4l-utils version: 1.28.1 about: A series of utilities for media devices +configure: >- + -D gconv=disabled depends: - components/alsa-lib.yml - components/glu.yml diff --git a/elements/components/welcome-tour.yml b/elements/components/welcome-tour.yml deleted file mode 100644 index 943058ad7..000000000 --- a/elements/components/welcome-tour.yml +++ /dev/null @@ -1,19 +0,0 @@ -id: welcome-tour -version: 2.0 -about: RLXOS welcome tour -merge: [elements/include/rlxos.inc] - -post-script: |- - install -v -D -m 0755 /dev/stdin %{install-root}/%{sysconfdir}/xdg/autostart/welcome-tour.desktop << "EOF" - [Desktop Entry] - Name=Welcome Tour - Comment=RLXOS Welcome tour - Icon=welcome-tour - Exec=env WELCOME_TOUR_AUTOSTART=1 %{bindir}/welcome-tour - Terminal=false - Type=Application - EOF - - -depends: - - components/gtkmm.yml diff --git a/elements/components/welcome.yml b/elements/components/welcome.yml new file mode 100644 index 000000000..a184c06bb --- /dev/null +++ b/elements/components/welcome.yml @@ -0,0 +1,7 @@ +id: welcome +version: 2.2 +about: RLXOS welcome tour +merge: [ elements/include/app.inc ] + +extra-commands: |- + install -v -D -m 0755 -t %{install-root}/%{sysconfdir}/xdg/autostart/ /rlxos/apps/welcome/assets/welcome.desktop \ No newline at end of file diff --git a/elements/components/x11/libxpresent.yml b/elements/components/x11/libxpresent.yml new file mode 100644 index 000000000..34dc8163e --- /dev/null +++ b/elements/components/x11/libxpresent.yml @@ -0,0 +1,17 @@ +id: libxpresent +version: 1.0.1 +about: X Present Extension library + +sources: + - https://xorg.freedesktop.org/archive/individual/lib/libXpresent-%{version}.tar.xz + +depends: + - components/glibc.yml + - components/x11/libx11.yml + - components/x11/libxext.yml + - components/x11/libxfixes.yml + - components/x11/libxrandr.yml + - components/x11/xorgproto.yml + +build-depends: + - components/x11/util-macros.yml diff --git a/elements/components/xarchiver.yml b/elements/components/xarchiver.yml new file mode 100644 index 000000000..4ff559a89 --- /dev/null +++ b/elements/components/xarchiver.yml @@ -0,0 +1,28 @@ +id: xarchiver +version: 0.5.4.23 +about: GTK+ frontend to various command line archivers + +configure: >- + --libexecdir=%{libdir}/xfce4 + +depends: + - components/gtk.yml + - components/bzip2.yml + - components/cpio.yml + - components/gzip.yml + - components/lz4.yml + - components/tar.yml + - components/zstd.yml + - components/lzip.yml + - components/p7zip.yml + - components/zip.yml + - components/unzip.yml + - components/binutils.yml # deb + - components/xdg-utils.yml + +build-depends: + - components/xmlto.yml + - components/intltool.yml + +sources: + - https://github.com/ib/xarchiver/archive/%{version}/xarchiver-%{version}.tar.gz diff --git a/elements/components/xdg-desktop-portal-gtk.yml b/elements/components/xdg-desktop-portal-gtk.yml index e7d80e54d..050773b26 100644 --- a/elements/components/xdg-desktop-portal-gtk.yml +++ b/elements/components/xdg-desktop-portal-gtk.yml @@ -6,13 +6,11 @@ configure: >- -D wallpaper=disabled post-script: |- - install -v -D -m 0644 /dev/stdin %{install-root}%{datadir}/xdg-desktop-portal/portals.conf << "EOF" + install -v -D -m 0644 /dev/stdin %{install-root}%{datadir}/xdg-desktop-portal/gtk-portals.conf << "EOF" [preferred] default=gtk EOF - - sed -i 's#=gnome#=gnome;XFCE#g' %{install-root}%{datadir}/xdg-desktop-portal/portals/gtk.portal - + depends: - components/gtk.yml - components/xdg-desktop-portal.yml diff --git a/elements/components/xdg-desktop-portal.yml b/elements/components/xdg-desktop-portal.yml index c5291e05f..ae6c4658b 100644 --- a/elements/components/xdg-desktop-portal.yml +++ b/elements/components/xdg-desktop-portal.yml @@ -1,5 +1,5 @@ id: xdg-desktop-portal -version: 1.18.2 +version: 1.18.4 about: Desktop integration portals for sandboxed apps depends: diff --git a/elements/components/xfce4/xfce4-panel.yml b/elements/components/xfce4/xfce4-panel.yml index bff0d5eb3..c8d1e2efa 100644 --- a/elements/components/xfce4/xfce4-panel.yml +++ b/elements/components/xfce4/xfce4-panel.yml @@ -113,7 +113,7 @@ post-script: |- install -vDm 0644 /dev/stdin %{install-root}/%{sysconfdir}/skel/.config/xfce4/panel/docklike-4.rc << "EOF" [user] - pinned=xfce4-appfinder;xfce4-terminal;thunar;firefox;xfce-settings-manager; + pinned=xfce4-appfinder;xfce4-terminal;thunar;firefox;org.gnome.Software;xfce-settings-manager; EOF depends: diff --git a/elements/components/xfce4/xfce4-session.yml b/elements/components/xfce4/xfce4-session.yml index ced489eff..5062fafb8 100644 --- a/elements/components/xfce4/xfce4-session.yml +++ b/elements/components/xfce4/xfce4-session.yml @@ -2,6 +2,10 @@ id: xfce4-session version: 4.18.4 about: A session manager for Xfce +pre-script: |- + patch -Np1 -i source-system-xinitrc-scripts.patch + + configure: >- --disable-debug @@ -16,3 +20,4 @@ depends: - components/x11/iceauth.yml sources: - https://archive.xfce.org/src/xfce/xfce4-session/%{version:2}/xfce4-session-%{version}.tar.bz2 + - patches/xfce4/source-system-xinitrc-scripts.patch diff --git a/elements/components/xfce4/xfce4-settings.yml b/elements/components/xfce4/xfce4-settings.yml index 0e71d3484..800208502 100644 --- a/elements/components/xfce4/xfce4-settings.yml +++ b/elements/components/xfce4/xfce4-settings.yml @@ -11,8 +11,8 @@ post-script: |- - - + + @@ -33,8 +33,8 @@ post-script: |- - - + + diff --git a/elements/components/xfce4/xfce4-terminal.yml b/elements/components/xfce4/xfce4-terminal.yml index 6740ada36..fc1a6883a 100644 --- a/elements/components/xfce4/xfce4-terminal.yml +++ b/elements/components/xfce4/xfce4-terminal.yml @@ -12,6 +12,7 @@ post-script: |- + EOF diff --git a/elements/components/xfce4/xfdesktop.yml b/elements/components/xfce4/xfdesktop.yml index 2ee61f294..a8b95f303 100644 --- a/elements/components/xfce4/xfdesktop.yml +++ b/elements/components/xfce4/xfdesktop.yml @@ -1,13 +1,12 @@ id: xfdesktop version: 4.18.1 about: Xfce desktop manager - +release: 8 pre-script: |- sed -i 's#/backgrounds/xfce/xfce-shapes.svg#/backgrounds/default.jpg#g' common/xfdesktop-common.h post-script: |- - install -vm 0644 /files/backgrounds/default.jpg %{install-root}%{datadir}/backgrounds/default.jpg - install -vm 0644 /files/backgrounds/default-blur.jpg %{install-root}%{datadir}/backgrounds/default-blur.jpg + install -vm 0644 /files/backgrounds/*.jpg -t %{install-root}%{datadir}/backgrounds/ install -vDm 0644 /dev/stdin %{install-root}/%{sysconfdir}/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml << "EOF" diff --git a/elements/components/xfce4/xfwm4.yml b/elements/components/xfce4/xfwm4.yml index 7d0aa7377..c31fb51be 100644 --- a/elements/components/xfce4/xfwm4.yml +++ b/elements/components/xfce4/xfwm4.yml @@ -11,10 +11,9 @@ post-script: |- - - - - + + + diff --git a/elements/components/zenity.yml b/elements/components/zenity.yml index 678c7f4ff..d64300641 100644 --- a/elements/components/zenity.yml +++ b/elements/components/zenity.yml @@ -1,13 +1,14 @@ id: zenity -version: 3.44.2 +version: 4.0.2 about: GNOME port of dialog which allows you to display GTK+ dialog boxes from the command line and shell scripts +configure: >- + -D manpage=false + depends: - - components/gtk.yml - - components/libnotify.yml - - components/libxslt.yml - - components/webkitgtk.yml - - components/enchant.yml + - components/gtk4.yml + - components/libadwaita.yml + - components/pango.yml build-depends: - components/itstool.yml sources: diff --git a/elements/container/image.yml b/elements/container/image.yml index 2fe6dc7f7..9485bb0ac 100644 --- a/elements/container/image.yml +++ b/elements/container/image.yml @@ -26,6 +26,7 @@ include: include-parts: - devel + build-depends: - components/squashfs-tools.yml diff --git a/elements/extensions/qemu.yml b/elements/extensions/qemu.yml index c22944941..d4efa3e7d 100644 --- a/elements/extensions/qemu.yml +++ b/elements/extensions/qemu.yml @@ -4,6 +4,7 @@ about: RLXOS QEMU Virtualization Kit include: - components/qemu.yml - components/bridge-utils.yml + - components/libvirt.yml - components/virt-manager.yml merge: [elements/include/extension.inc] diff --git a/elements/extensions/sdk.yml b/elements/extensions/sdk.yml index 20eaeb7b7..6c1237743 100644 --- a/elements/extensions/sdk.yml +++ b/elements/extensions/sdk.yml @@ -34,9 +34,12 @@ include: - components/sassc.yml - components/xfce4/xfce4-dev-tools.yml - components/gdb.yml + - components/glibc-dbg.yml - components/patch.yml - components/xfce4/xfce4-dev-tools.yml - components/man-pages.yml + - components/rsync.yml + - components/unzip.yml include-parts: - devel diff --git a/elements/include/app.inc b/elements/include/app.inc new file mode 100644 index 000000000..af764ba77 --- /dev/null +++ b/elements/include/app.inc @@ -0,0 +1,15 @@ +extra-commands: "" + +script: |- + ( cd /rlxos; go build -o %{install-root}/%{bindir}/%{id} rlxos/apps/%{id} ) + %{extra-commands} + +post-script: |- + go clean -modcache + rm -rf /go + +build-depends: + - components/go.yml + +depends: + - components/gtk4.yml diff --git a/elements/include/go-pkg.inc b/elements/include/go-pkg.inc new file mode 100644 index 000000000..6c8d3924b --- /dev/null +++ b/elements/include/go-pkg.inc @@ -0,0 +1,12 @@ +script: |- + GOPATH="%{build-root}" go install %{gourl}@%{version} + + find %{build-root} \ + -name ".*" -prune -exec rm -r '{}' \; + + mkdir -p %{install-root}%{libdir}/go + cp -Rv %{build-root}/{src,pkg} %{install-root}%{libdir}/go + + +build-depends: + - components/go.yml \ No newline at end of file diff --git a/elements/installer/image.yml b/elements/installer/image.yml index f1371642c..381bde736 100644 --- a/elements/installer/image.yml +++ b/elements/installer/image.yml @@ -24,6 +24,7 @@ script: |- ostree admin os-init --sysroot=%{sysroot} rlxos ostree config --repo=%{sysroot}/ostree/repo set sysroot.bootloader none + ostree config --repo=%{sysroot}/ostree/repo set sysroot.bootprefix true ostree pull-local --repo=%{sysroot}/ostree/repo %{include-root} %{ostree-branch} @@ -38,7 +39,7 @@ script: |- # read ostree config getconfig() { - cat /sysroot/boot/loader/entries/ostree-1-rlxos.conf | grep "$1" | cut -d ' ' -f2- + cat /sysroot/boot/loader/entries/ostree-1.conf | grep "$1" | cut -d ' ' -f2- } KERNEL=$(getconfig linux) @@ -46,8 +47,8 @@ script: |- KARGS=$(getconfig options) for f in ISO/boot/grub/grub.cfg ISO/isolinux/isolinux.cfg ; do - m4 -D"__KERNEL__=/boot/$KERNEL" \ - -D"__INITRD__=/boot/$INITRD" \ + m4 -D"__KERNEL__=$KERNEL" \ + -D"__INITRD__=$INITRD" \ -D"__KARGS__=$KARGS" $f > ${f}.tmp mv ${f}.tmp ${f} done diff --git a/elements/platform.yml b/elements/platform.yml index ca820cfaa..7aca9a47e 100644 --- a/elements/platform.yml +++ b/elements/platform.yml @@ -67,7 +67,6 @@ depends: - components/dosfstools.yml - components/libconfuse.yml - - components/fuse2.yml - components/xdg-desktop-portal-gtk.yml - components/xdg-desktop-portal-xapp.yml @@ -78,10 +77,9 @@ depends: - components/dracut.yml - components/zsync.yml - - components/apparmor.yml - - components/firmware.yml - components/sof-firmware.yml + - components/intel-ucode.yml - components/system-config-printer.yml @@ -96,17 +94,19 @@ depends: - components/network-manager-applet.yml - components/blueman.yml - components/ntfs-3g.yml + - components/firefox.yml - components/file-roller.yml - components/meta-xfce4.yml - components/meta-x11.yml - components/lightdm.yml - - components/epdfview.yml + - components/picom.yml - - components/firefox.yml - - components/neofetch.yml + - components/capsule.yml + + - components/gnome/gnome-software.yml - - components/welcome-tour.yml + - components/welcome.yml - components/initial-setup.yml - components/distrobox.yml diff --git a/elements/system/repo.yml b/elements/system/repo.yml index 55a0e3fdc..223313776 100644 --- a/elements/system/repo.yml +++ b/elements/system/repo.yml @@ -33,6 +33,8 @@ initial-commands: |- cp /lib/modules/${kerver}/bzImage /lib/modules/${kerver}/vmlinuz dracut --reproducible -v --no-machineid \ + --early-microcode \ + --no-hostonly \ --kver ${kerver} \ --add dmsquash-live \ --add ostree \ diff --git a/files/backgrounds/default-blur.jpg b/files/backgrounds/default-blur.jpg index 481d0cebd..25593da85 100644 Binary files a/files/backgrounds/default-blur.jpg and b/files/backgrounds/default-blur.jpg differ diff --git a/files/backgrounds/default-old.jpeg b/files/backgrounds/default-old.jpeg deleted file mode 100644 index 570c9eea8..000000000 Binary files a/files/backgrounds/default-old.jpeg and /dev/null differ diff --git a/files/backgrounds/default.jpg b/files/backgrounds/default.jpg index bbba8f6eb..5d3128bcd 100644 Binary files a/files/backgrounds/default.jpg and b/files/backgrounds/default.jpg differ diff --git a/files/initial-setup/first-boot.sh b/files/initial-setup/first-boot.sh index 6b8bb6769..5ffe56243 100644 --- a/files/initial-setup/first-boot.sh +++ b/files/initial-setup/first-boot.sh @@ -31,6 +31,7 @@ echo "root":"${ISE_PASSWORD}" | sudo chpasswd || { } fi +if [ -f /etc/greetd/config.toml ] ; then echo ":: Installing greetd configuration" sudo install -v -D -m 0644 /dev/stdin /etc/greetd/config.toml << EOF [terminal] @@ -43,6 +44,7 @@ command = "sway --config /etc/greetd/sway-config" command = "sway --config /etc/sway/config-locked" user = "${ISE_USERNAME}" EOF +fi if [ -f /etc/lightdm/lightdm.conf.d/*initial-setup*.conf ] ; then echo ":: Removing Display manager configuration for inital setup" @@ -57,4 +59,7 @@ fi echo ":: setting up timezone: ${ISE_TIMEZONE}" sudo ln -sf /usr/share/zoneinfo/${ISE_TIMEZONE} /etc/localtime +echo ":: updating bootloader configuration" +sudo grub-mkconfig -o /boot/grub/grub.cfg + exit 0 \ No newline at end of file diff --git a/files/initial-setup/installer.sh b/files/initial-setup/installer.sh index bb2f0fd25..247deb2a0 100644 --- a/files/initial-setup/installer.sh +++ b/files/initial-setup/installer.sh @@ -152,6 +152,7 @@ if [ -d /sysroot/ostree/repo ] ; then } sudo ostree config --repo=${SYSROOT}/ostree/repo set sysroot.bootloader none + sudo ostree config --repo=${SYSROOT}/ostree/repo set sysroot.bootprefix true echo ":: Cloning OStree into the device (this might take a while)" sudo ostree --repo=${SYSROOT}/ostree/repo pull-local "/ostree/repo" @@OSTREE_BRANCH@@ || { @@ -196,88 +197,12 @@ if [ -d /sysroot/ostree/repo ] ; then # TODO: fix this hack (cd ${SYSROOT}/boot/loader; sudo /lib/ostree/ostree-grub-generator . grub.cfg) + sudo sed -i 's#/boot/boot/#/boot/#g' ${SYSROOT}/boot/loader/grub.cfg sudo install -D -m 0644 /dev/stdin ${SYSROOT}/boot/grub/grub.cfg << "EOF" -set timeout=5 -if [ -s $prefix/grubenv ] ; then - set have_grubenv=true - load_env -fi - -if [ x"${feature_menuentry_id}" = xy ] ; then - menuentry_id_option="--id" -else - menuentry_id_option="" -fi - -export menuentry_id_option - -if [ "${prev_saved_entry}" ] ; then - set saved_entry="${prev_saved_entry}" - save_env saved_entry - set pre_saved_entry= - save_env prev_saved_entry - set boot_once=true -fi - -function savedefault { - if [ -z "${boot_once}" ] ; then - saved_entry="${chosed}" - save_env saved_entry - fi -} - -function load_video { - if [ x$feature_all_video_module = xy ] ; then - insmod all_video - else - insmod efi_gop - insmod efi_uga - insmod ieee1275_fb - insmod vbe - insmod vga - insmod video_bochs - insmod video_cirrus - fi -} - -font=unicode - -if loadfont $font ; then - set gfxmode=auto - load_video - insmod gfxterm - set locale_dir=$prefix/locale - set lang=en_IN - insmod gettext -fi - -terminal_output gfxterm -if [ "${recordfail}" = 1 ] ; then - set timeout=30 -else - if [ x$feature_timeout_style = xy ] ; then - set timeout_style=menu - set timeout=5 - else - set timeout=5 - fi -fi - -function gfxmode { - set gfxpayload="${1}" -} - -set linux_gfx_mode= -export linux_gfx_mode - -insmod part_gpt -insmod ext2 - configfile /boot/loader/grub.cfg EOF - sudo ostree config --repo=${SYSROOT}/ostree/repo set sysroot.bootloader grub2 else if [[ -n "$IS_EFI" ]] ; then sudo mkdir -p ${SYSROOT}/efi || { diff --git a/go.mod b/go.mod new file mode 100644 index 000000000..190cffd46 --- /dev/null +++ b/go.mod @@ -0,0 +1,14 @@ +module rlxos + +go 1.22.2 + +require ( + github.com/diamondburned/gotk4/pkg v0.3.1 + gopkg.in/yaml.v3 v3.0.1 +) + +require ( + github.com/KarpelesLab/weak v0.1.1 // indirect + go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect + golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 000000000..7832e9aaa --- /dev/null +++ b/go.sum @@ -0,0 +1,12 @@ +github.com/KarpelesLab/weak v0.1.1 h1:fNnlPo3aypS9tBzoEQluY13XyUfd/eWaSE/vMvo9s4g= +github.com/KarpelesLab/weak v0.1.1/go.mod h1:pzXsWs5f2bf+fpgHayTlBE1qJpO3MpJKo5sRaLu1XNw= +github.com/diamondburned/gotk4/pkg v0.3.1 h1:uhkXSUPUsCyz3yujdvl7DSN8jiLS2BgNTQE95hk6ygg= +github.com/diamondburned/gotk4/pkg v0.3.1/go.mod h1:DqeOW+MxSZFg9OO+esk4JgQk0TiUJJUBfMltKhG+ub4= +go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN/cnWdSH3291CUuxSEqc+AsGTiDxPP3r2J0l4= +go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/patches/colord/colord-1.4.7-upstream_fixes-1.patch b/patches/colord/colord-1.4.7-upstream_fixes-1.patch new file mode 100644 index 000000000..6887c4fe9 --- /dev/null +++ b/patches/colord/colord-1.4.7-upstream_fixes-1.patch @@ -0,0 +1,321 @@ +Submitted By: Xi Ruoyao +Date: 2024-05-04 +Initial Package Version: 1.4.7 +Upstream Status: Committed +Origin: Upstream (PR 168 and commit for issue 166) +Description: Fix a misuse of sqlite API causing test + failure with recent sqlite releases and an + over-strict systemd hardening setting causing + the systemd service fail to start. + +From 10fe2a07e31b5b151e7d46087b6b4155d2c680e1 Mon Sep 17 00:00:00 2001 +From: psykose +Date: Thu, 8 Feb 2024 12:10:45 +0000 +Subject: [PATCH 1/2] fix NULL passed to free with sqlite3 error_msg pointers + +when an error does not happen, and an error_msg pointer is passed, +sqlite does not touch it. that means this pointer is uninitialised +(=NULL) which violates the constraints of g_autofree ("the variable must +be initialized"). + +this is then passed to g_free and crashes in tests. + +use a regular pointer and free it manually on error, after sqlite writes +to it after setting it with sqlite_malloc. + +fixes https://github.com/hughsie/colord/issues/163 +--- + src/cd-mapping-db.c | 3 ++- + src/cd-profile-db.c | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/cd-mapping-db.c b/src/cd-mapping-db.c +index 996f07e3..5ffd74dd 100644 +--- a/src/cd-mapping-db.c ++++ b/src/cd-mapping-db.c +@@ -67,7 +67,7 @@ cd_mapping_db_open (CdMappingDb *mdb, + GError **error) + { + CdMappingDbPrivate *priv = GET_PRIVATE (mdb); +- g_autofree gchar *error_msg = NULL; ++ gchar *error_msg = NULL; + gint rc; + g_autofree gchar *path = NULL; + +@@ -97,6 +97,7 @@ cd_mapping_db_open (CdMappingDb *mdb, + if (rc != SQLITE_OK) { + /* Database appears to be mangled, so wipe it and try again */ + sqlite3_close (priv->db); ++ sqlite3_free(error_msg); + priv->db = NULL; + + if (retry) { +diff --git a/src/cd-profile-db.c b/src/cd-profile-db.c +index 57ab864f..e5b74e37 100644 +--- a/src/cd-profile-db.c ++++ b/src/cd-profile-db.c +@@ -48,7 +48,7 @@ cd_profile_db_load (CdProfileDb *pdb, + { + CdProfileDbPrivate *priv = GET_PRIVATE (pdb); + const gchar *statement; +- g_autofree gchar *error_msg = NULL; ++ gchar *error_msg = NULL; + gint rc; + g_autofree gchar *path = NULL; + +@@ -69,6 +69,7 @@ cd_profile_db_load (CdProfileDb *pdb, + CD_CLIENT_ERROR_INTERNAL, + "Can't open database: %s\n", + sqlite3_errmsg (priv->db)); ++ sqlite3_free (error_msg); + sqlite3_close (priv->db); + return FALSE; + } + +From 80621d986bcfbbfe73052b104a698e76b300b64d Mon Sep 17 00:00:00 2001 +From: psykose +Date: Thu, 8 Feb 2024 13:12:41 +0000 +Subject: [PATCH 2/2] use char * instead of gchar * for pointers passed to + sqlite3_exec + +--- + src/cd-device-db.c | 16 ++++++++-------- + src/cd-mapping-db.c | 18 +++++++++--------- + src/cd-profile-db.c | 10 +++++----- + 3 files changed, 22 insertions(+), 22 deletions(-) + +diff --git a/src/cd-device-db.c b/src/cd-device-db.c +index 3ae44ef2..ac87a527 100644 +--- a/src/cd-device-db.c ++++ b/src/cd-device-db.c +@@ -48,7 +48,7 @@ cd_device_db_load (CdDeviceDb *ddb, + { + CdDeviceDbPrivate *priv = GET_PRIVATE (ddb); + const gchar *statement; +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gint rc; + g_autofree gchar *path = NULL; + +@@ -109,7 +109,7 @@ cd_device_db_empty (CdDeviceDb *ddb, + { + CdDeviceDbPrivate *priv = GET_PRIVATE (ddb); + const gchar *statement; +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gint rc; + + g_return_val_if_fail (CD_IS_DEVICE_DB (ddb), FALSE); +@@ -137,7 +137,7 @@ cd_device_db_add (CdDeviceDb *ddb, + { + CdDeviceDbPrivate *priv = GET_PRIVATE (ddb); + gboolean ret = TRUE; +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gchar *statement; + gint rc; + +@@ -175,7 +175,7 @@ cd_device_db_set_property (CdDeviceDb *ddb, + { + CdDeviceDbPrivate *priv = GET_PRIVATE (ddb); + gboolean ret = TRUE; +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gchar *statement; + gint rc; + +@@ -212,7 +212,7 @@ cd_device_db_remove (CdDeviceDb *ddb, + { + CdDeviceDbPrivate *priv = GET_PRIVATE (ddb); + gboolean ret = TRUE; +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gchar *statement1 = NULL; + gchar *statement2 = NULL; + gint rc; +@@ -277,7 +277,7 @@ cd_device_db_get_property (CdDeviceDb *ddb, + GError **error) + { + CdDeviceDbPrivate *priv = GET_PRIVATE (ddb); +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gchar *statement; + gint rc; + gchar *value = NULL; +@@ -331,7 +331,7 @@ cd_device_db_get_devices (CdDeviceDb *ddb, + GError **error) + { + CdDeviceDbPrivate *priv = GET_PRIVATE (ddb); +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gchar *statement; + gint rc; + GPtrArray *array = NULL; +@@ -372,7 +372,7 @@ cd_device_db_get_properties (CdDeviceDb *ddb, + GError **error) + { + CdDeviceDbPrivate *priv = GET_PRIVATE (ddb); +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gchar *statement; + gint rc; + GPtrArray *array = NULL; +diff --git a/src/cd-mapping-db.c b/src/cd-mapping-db.c +index 5ffd74dd..291274a4 100644 +--- a/src/cd-mapping-db.c ++++ b/src/cd-mapping-db.c +@@ -67,7 +67,7 @@ cd_mapping_db_open (CdMappingDb *mdb, + GError **error) + { + CdMappingDbPrivate *priv = GET_PRIVATE (mdb); +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gint rc; + g_autofree gchar *path = NULL; + +@@ -131,7 +131,7 @@ cd_mapping_db_load (CdMappingDb *mdb, + { + CdMappingDbPrivate *priv = GET_PRIVATE (mdb); + const gchar *statement; +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gint rc; + g_autofree gchar *path = NULL; + +@@ -230,7 +230,7 @@ cd_mapping_db_empty (CdMappingDb *mdb, + { + CdMappingDbPrivate *priv = GET_PRIVATE (mdb); + const gchar *statement; +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gint rc; + + g_return_val_if_fail (CD_IS_MAPPING_DB (mdb), FALSE); +@@ -259,7 +259,7 @@ cd_mapping_db_add (CdMappingDb *mdb, + { + CdMappingDbPrivate *priv = GET_PRIVATE (mdb); + gboolean ret = TRUE; +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gchar *statement; + gint rc; + gint64 timestamp; +@@ -307,7 +307,7 @@ cd_mapping_db_clear_timestamp (CdMappingDb *mdb, + { + CdMappingDbPrivate *priv = GET_PRIVATE (mdb); + gboolean ret = TRUE; +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gchar *statement; + gint rc; + +@@ -351,7 +351,7 @@ cd_mapping_db_remove (CdMappingDb *mdb, + { + CdMappingDbPrivate *priv = GET_PRIVATE (mdb); + gboolean ret = TRUE; +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gchar *statement; + gint rc; + +@@ -406,7 +406,7 @@ cd_mapping_db_get_profiles (CdMappingDb *mdb, + GError **error) + { + CdMappingDbPrivate *priv = GET_PRIVATE (mdb); +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gchar *statement; + gint rc; + GPtrArray *array = NULL; +@@ -456,7 +456,7 @@ cd_mapping_db_get_devices (CdMappingDb *mdb, + GError **error) + { + CdMappingDbPrivate *priv = GET_PRIVATE (mdb); +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gchar *statement; + gint rc; + GPtrArray *array = NULL; +@@ -522,7 +522,7 @@ cd_mapping_db_get_timestamp (CdMappingDb *mdb, + GError **error) + { + CdMappingDbPrivate *priv = GET_PRIVATE (mdb); +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gchar *statement; + gint rc; + guint64 timestamp = G_MAXUINT64; +diff --git a/src/cd-profile-db.c b/src/cd-profile-db.c +index e5b74e37..124fa09f 100644 +--- a/src/cd-profile-db.c ++++ b/src/cd-profile-db.c +@@ -48,7 +48,7 @@ cd_profile_db_load (CdProfileDb *pdb, + { + CdProfileDbPrivate *priv = GET_PRIVATE (pdb); + const gchar *statement; +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gint rc; + g_autofree gchar *path = NULL; + +@@ -98,7 +98,7 @@ cd_profile_db_empty (CdProfileDb *pdb, GError **error) + { + CdProfileDbPrivate *priv = GET_PRIVATE (pdb); + const gchar *statement; +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gint rc; + + g_return_val_if_fail (CD_IS_PROFILE_DB (pdb), FALSE); +@@ -129,7 +129,7 @@ cd_profile_db_set_property (CdProfileDb *pdb, + { + CdProfileDbPrivate *priv = GET_PRIVATE (pdb); + gboolean ret = TRUE; +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gchar *statement; + gint rc; + +@@ -169,7 +169,7 @@ cd_profile_db_remove (CdProfileDb *pdb, + { + CdProfileDbPrivate *priv = GET_PRIVATE (pdb); + gboolean ret = TRUE; +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gchar *statement = NULL; + gint rc; + +@@ -223,7 +223,7 @@ cd_profile_db_get_property (CdProfileDb *pdb, + { + CdProfileDbPrivate *priv = GET_PRIVATE (pdb); + gboolean ret = TRUE; +- gchar *error_msg = NULL; ++ char *error_msg = NULL; + gchar *statement; + gint rc; + +From 08a32b2379fb5582f4312e59bf51a2823df56276 Mon Sep 17 00:00:00 2001 +From: Richard Hughes +Date: Mon, 29 Jan 2024 10:37:11 +0000 +Subject: [PATCH] Fix writing to the database with ProtectSystem=strict + +Fixes https://github.com/hughsie/colord/issues/166 +--- + data/colord.service.in | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/data/colord.service.in b/data/colord.service.in +index 6825d944..c358dc4b 100644 +--- a/data/colord.service.in ++++ b/data/colord.service.in +@@ -17,6 +17,10 @@ ProtectControlGroups=true + RestrictRealtime=true + RestrictAddressFamilies=AF_UNIX + ++ConfigurationDirectory=colord ++StateDirectory=colord ++CacheDirectory=colord ++ + # drop all capabilities + CapabilityBoundingSet=~CAP_SETUID CAP_SETGID CAP_SETPCAP CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_CHOWN CAP_FSETID CAP_SETFCAP CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_FOWNER CAP_IPC_OWNER CAP_NET_ADMIN CAP_SYS_RAWIO CAP_SYS_TIME CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE CAP_KILL CAP_MKNOD CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYS_RESOURCE CAP_MAC_ADMIN CAP_MAC_OVERRIDE CAP_SYS_BOOT CAP_LINUX_IMMUTABLE CAP_IPC_LOCK CAP_SYS_CHROOT CAP_BLOCK_SUSPEND CAP_LEASE CAP_SYS_PACCT CAP_SYS_TTY_CONFIG CAP_WAKE_ALARM + diff --git a/patches/compiz/0001-reverse-unity-config.patch b/patches/compiz/0001-reverse-unity-config.patch new file mode 100644 index 000000000..6828481af --- /dev/null +++ b/patches/compiz/0001-reverse-unity-config.patch @@ -0,0 +1,871 @@ +diff -Nur original/compizconfig/integration/gnome/gsettings/org.compiz.integrated.gschema.xml modified/compizconfig/integration/gnome/gsettings/org.compiz.integrated.gschema.xml +--- original/compizconfig/integration/gnome/gsettings/org.compiz.integrated.gschema.xml 2019-02-16 12:44:41.000000000 +0000 ++++ modified/compizconfig/integration/gnome/gsettings/org.compiz.integrated.gschema.xml 2019-02-17 14:11:58.762747647 +0000 +@@ -10,9 +10,6 @@ + + "gnome-screenshot" + +- +- ["<Control><Alt>Delete"] +- + + ["Disabled"] + +@@ -49,9 +46,6 @@ + + ["Disabled"] + +- +- "/usr/bin/gnome-system-monitor -p" +- + + "" + +diff -Nur original/metadata/core.xml.in modified/metadata/core.xml.in +--- original/metadata/core.xml.in 2019-02-16 12:44:41.000000000 +0000 ++++ modified/metadata/core.xml.in 2019-02-17 14:11:58.762747647 +0000 +@@ -144,7 +144,7 @@ + + + +@@ -179,7 +179,7 @@ + + + + + + + +diff -Nur original/plugins/animation/animation.xml.in modified/plugins/animation/animation.xml.in +--- original/plugins/animation/animation.xml.in 2019-02-16 12:44:41.000000000 +0000 ++++ modified/plugins/animation/animation.xml.in 2019-02-17 14:11:58.766082647 +0000 +@@ -36,7 +36,7 @@ + + + +- animation:Glide 2 ++ animation:Zoom + animation:Fade + animation:Fade + +@@ -48,9 +48,9 @@ + 50 + 4000 + +- 120 +- 80 +- 80 ++ 200 ++ 150 ++ 150 + + + +@@ -102,7 +102,7 @@ + + + +- animation:Glide 2 ++ animation:Zoom + animation:Fade + animation:Fade + +@@ -114,9 +114,9 @@ + 50 + 4000 + +- 120 +- 80 +- 50 ++ 200 ++ 150 ++ 150 + + + +@@ -168,7 +168,7 @@ + + + +- animation:Zoom ++ animation:Magic Lamp + + + + + + +@@ -473,7 +473,7 @@ + + + +@@ -205,7 +205,6 @@ + + + +diff -Nur original/plugins/decor/decor.xml.in modified/plugins/decor/decor.xml.in +--- original/plugins/decor/decor.xml.in 2019-02-16 12:44:41.000000000 +0000 ++++ modified/plugins/decor/decor.xml.in 2019-02-17 14:13:24.345517674 +0000 +@@ -31,7 +31,7 @@ + + +diff -Nur original/plugins/fade/fade.xml.in modified/plugins/fade/fade.xml.in +--- original/plugins/fade/fade.xml.in 2019-02-16 12:44:41.000000000 +0000 ++++ modified/plugins/fade/fade.xml.in 2019-02-17 14:11:58.772752647 +0000 +@@ -10,7 +10,6 @@ + + + decor +- staticswitcher + + + cube +@@ -51,7 +50,7 @@ + + + + +diff -Nur original/plugins/grid/grid.xml.in modified/plugins/grid/grid.xml.in +--- original/plugins/grid/grid.xml.in 2019-02-16 12:44:41.000000000 +0000 ++++ modified/plugins/grid/grid.xml.in 2019-02-17 14:11:58.779422647 +0000 +@@ -68,12 +68,12 @@ + + + + +@@ -82,10 +82,10 @@ + <_short>Fill Color + <_long>Fill color used for rectangle resize mode + +- 0xfbfb +- 0x8b8b +- 0x0 +- 0x1919 ++ 0x2f2f ++ 0x2f2f ++ 0x4f4f ++ 0x4f4f + + + +@@ -46,7 +46,7 @@ + +@@ -76,7 +76,7 @@ + <_long>Overlay an icon on windows once they are scaled + 0 + 2 +- 0 ++ 1 + + 0 + <_name>None +@@ -129,7 +129,7 @@ + <_long>Selects where windows are scaled if multiple output devices are used. + 0 + 1 +- 1 ++ 0 + + 0 + <_name>On current output device +@@ -150,7 +150,7 @@ + + + + + + + + +@@ -160,14 +161,14 @@ + + +@@ -191,7 +192,7 @@ + + + <_short>Selected Window Highlight + + +@@ -78,30 +78,30 @@ + <_short>Base Color + <_long>First color for the background gradient of the switcher window. + +- 0x0000 +- 0x0000 +- 0x0000 +- 0x6464 ++ 0xcccc ++ 0xcccc ++ 0xe665 ++ 0xd998 + + + + + +@@ -112,20 +112,20 @@ + <_short>Base Color + <_long>First color for the thumb gradient of the switcher window. + +- 0x5555 +- 0x5555 +- 0x5555 +- 0x3232 ++ 0x3333 ++ 0x3333 ++ 0x3333 ++ 0x5999 + + + + +@@ -139,7 +139,7 @@ + 0xffff + 0xffff + 0xffff +- 0xffff ++ 0xf332 + + + + +@@ -201,7 +201,7 @@ + + + +@@ -356,7 +356,7 @@ + +