Coder Social home page Coder Social logo

aarnt / octopkg Goto Github PK

View Code? Open in Web Editor NEW
42.0 6.0 4.0 4.17 MB

A Qt-based pkgng (BSD) front end

Home Page: https://tintaescura.com/projects/octopkg

License: GNU Lesser General Public License v2.1

QMake 0.60% Shell 0.03% C++ 99.30% C 0.07%
pkgng pkg freebsd dragonflybsd hardenedbsd ghostbsd qt doas

octopkg's Introduction

This is OctoPkg, a powerful pkgng front end using Qt libs.

Main window

OctoPkg is a Qt based GUI front end to the pkg package manager, derived from Octopi. It consists of a lxqt-sudo clone called qt-sudo used to gain root privileges and a package browser application used to search, install, remove and update packages. The project is compatible with FreeBSD, DragonFly BSD, GhostBSD and HardenedBSD.

You can use pkg to install the latest OctoPkg version available in your BSD:

# pkg install octopkg

Follow the steps bellow to compile the latest source code (you'll need curl, git and qt6 packages):

$ git clone https://github.com/aarnt/octopkg
$ cd octopkg
$ qmake6
$ make
# make install

In order to run OctoPkg:

$ octopkg

Remember: OctoPkg needs doas or sudo tool to work.

Enjoy!

octopkg's People

Contributors

aarnt avatar bsdkaffee avatar nunotexbsd avatar rakuco avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

octopkg's Issues

Categories for applications

Hi @aarnt
This is a possible enhacement. If all the packages in FreeBSD area classified in categories, why not add them to the octopkg front end?
I mean, would be great if people find their apps looking in a categories menu as filter.
Thanks for this project. Regards.

Feature request: ability to clear search

First of all, thanks for octopkg: it's going to make it much easier for me to promote FreeBSD within my university!

Now, for the actual feature request. If I:

  1. enter a search term in the search bar,
  2. click the "X" in the search bar to clear the search term and
  3. press Enter,

I would expect the GUI to show me the complete list of packages like it did before I entered a search term. Instead, it warns me that "Search string must have at least 2 characters." So, it seems that there is no way to get back from a set of search results to the Big List of Packages...

Won't let you cancel an install if it has dependency conflicts.

Problem I had on BSD was with mDNSResponder. If you attempt to install it, it will inform you of dependency conflicts (good) but it won't give you the opportunity to cancel the install... as a result it ends up uninstalling pretty much the entire KDE environment without warning.

Feature request: ability to cancel in-progress transaction

At the command line, I can cancel a long transaction (e.g., installing texlive-full) with Control-C. It would be nice if octopkg provided similar functionality from the GUI. Perhaps the transaction will be cancelled if I close octopkg (or maybe it won't?), but I'd like a big, friendly cancel button. :)

Launching Octopkg does nothing

Occasionally I would try launching OctoPkg and nothing would happen. By doing a ktrace I was able to discover that it was probably failing due to a lock file that it wasn't expecting to be present /tmp/qtsingleapp-OctoPk-df17-3e9-lockfile?.

After deleting this file /tmp/qtsingleapp-OctoPk-df17-3e9-lockfile OctoPkg was able to start.

57260 octopkg  CALL  mmap(0,0x10000,0x7<PROT_READ|PROT_WRITE|PROT_EXEC>,0x1002<MAP_PRIVATE|MAP_ANON>,0xffffffff,0)
 57260 octopkg  RET   mmap 34454446080/0x805a52000
 57260 octopkg  CALL  getuid
 57260 octopkg  RET   getuid 1001/0x3e9
 57260 octopkg  CALL  fstatat(AT_FDCWD,0x805a12a38,0x7fffffffe1c0,0x200<AT_SYMLINK_NOFOLLOW>)
 57260 octopkg  NAMI  "/tmp"
 57260 octopkg  STRU  struct stat {dev=1688810132604225836, ino=4, mode=041777, nlink=24, uid=0, gid=0, rdev=18446744073709551615, atime=1547866952, mtime=1552090801.781472000, ctime=1552090801.781472000, birthtime=1544155858, size=96, blksize=16384, blocks=65, flags=0x800 }
 57260 octopkg  RET   fstatat 0
 57260 octopkg  CALL  openat(AT_FDCWD,0x8033e7b18,0x100202<O_RDWR|O_CREAT|O_CLOEXEC>,0666<S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH>)
 57260 octopkg  NAMI  "/tmp/qtsingleapp-OctoPk-df17-3e9-lockfile"
 57260 octopkg  RET   openat 9
 57260 octopkg  CALL  fcntl(0x9,F_SETLK,0x7fffffffe4c0)
 57260 octopkg  RET   fcntl -1 errno 35 Resource temporarily unavailable
 57260 octopkg  CALL  fcntl(0x9,F_SETLK,0x7fffffffe420)
 57260 octopkg  RET   fcntl -1 errno 35 Resource temporarily unavailable
 57260 octopkg  CALL  socket(PF_LOCAL,0x30000001<SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK>,0)
 57260 octopkg  RET   socket 10/0xa
 57260 octopkg  CALL  fstatat(AT_FDCWD,0x805a12ab8,0x7fffffffe100,0x200<AT_SYMLINK_NOFOLLOW>)
 57260 octopkg  NAMI  "/tmp"
 57260 octopkg  STRU  struct stat {dev=1688810132604225836, ino=4, mode=041777, nlink=24, uid=0, gid=0, rdev=18446744073709551615, atime=1547866952, mtime=1552090801.781472000, ctime=1552090801.781472000, birthtime=1544155858, size=96, blksize=16384, blocks=65, flags=0x800 }
 57260 octopkg  RET   fstatat 0
 57260 octopkg  CALL  connect(0xa,0x7fffffffe400,0x6a)
 57260 octopkg  STRU  struct sockaddr { AF_LOCAL, /tmp/qtsingleapp-OctoPk-df17-3e9 }
 57260 octopkg  NAMI  "/tmp/qtsingleapp-OctoPk-df17-3e9"
 57260 octopkg  RET   connect 0
 57260 octopkg  CALL  getsockname(0xa,0x7fffffffe2c0,0x7fffffffe2ec)
 57260 octopkg  STRU  struct sockaddr { AF_LOCAL,  }
 57260 octopkg  RET   getsockname 0
 57260 octopkg  CALL  getpeername(0xa,0x7fffffffe2c0,0x7fffffffe2ec)
 57260 octopkg  STRU  struct sockaddr { AF_LOCAL, /tmp/qtsingleapp-OctoPk-df17-3e9 }
 57260 octopkg  RET   getpeername 0
 57260 octopkg  CALL  getsockopt(0xa,SOL_SOCKET,SO_TYPE,0x7fffffffe2a0,0x7fffffffe2e8)
 57260 octopkg  RET   getsockopt 0
 57260 octopkg  CALL  fcntl(0xa,F_GETFL)
 57260 octopkg  RET   fcntl 6
 57260 octopkg  CALL  fcntl(0xa,F_SETFL,0x6<O_RDWR|O_NONBLOCK>)
 57260 octopkg  RET   fcntl 0
 57260 octopkg  CALL  write(0x7,0x7fffffffe23f,0x1)
 57260 octopkg  GIO   fd 7 wrote 1 byte
       0x0000 01                                                                                                                                                          |.|

 57260 octopkg  RET   write 1
 57260 octopkg  CALL  mmap(0,0xb000,0x3<PROT_READ|PROT_WRITE>,0x1002<MAP_PRIVATE|MAP_ANON>,0xffffffff,0)
 57260 octopkg  RET   mmap 34454360064/0x805a3d000
 57260 octopkg  CALL  write(0x7,0x7fffffffe31f,0x1)
 57260 octopkg  GIO   fd 7 wrote 1 byte
       0x0000 01                                                                                  

Freezes after applying updates

From PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=276024

This issue started since upgraded to latest patch of FreeBSD 13.2 but persist in FreeBSD 14.0.
I believe it may be related with pkg tool itself, maybe there was a change and it's giving unexpected results back to octopkg.

I can't reproduce it on my local 15-CURRENT as it do all operations normally.

Is there a way to investigate this problem?

Add support of 'sudo -A' for privilege escalation

I am using Enlightenment WM with an internal helper for sudo (askpass method). Obviously, it is impossible to use octopkg as it cannot find neither kdesu nor gksu. Please, add support for askpass approach to octopkg.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.